microcosm
Advanced tools
Comparing version 8.2.0-rc1 to 8.2.0-rc2
@@ -1,2 +0,2 @@ | ||
module.exports=function(t){function n(e){if(r[e])return r[e].exports;var i=r[e]={exports:{},id:e,loaded:!1};return t[e].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var r={};return n.m=t,n.c=r,n.p="",n(0)}([function(t,n,r){function e(){o.apply(this,arguments),this.stores={},this.plugins=[]}var i=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},o=r(16),u=r(6),s=(r(17),r(7)),a=r(8),c=r(11),f=r(12),h=r(13),l=r(14);e.prototype=i({},o.prototype,{_getInitialState:function(){return c(this.stores,function(t){return t.getInitialState()})},reset:function(){return this.commit(this._getInitialState()),this},replace:function(t){return this.update(this.deserialize(t)),this},addPlugin:function(t,n){return this.plugins.push(new u(t,n)),this},addStore:function(t,n){return this.stores[t]=new s(n,t),this},serialize:function(){var t=this;return c(this.stores,function(n,r){return n.serialize(t.get(r))})},deserialize:function(t){var n=this;return c(t,function(t,r){return n.stores[r].deserialize(t)})},toJSON:function(){return this.serialize()},toObject:function(){return this.valueOf()},start:function(){var t=this,n=arguments;return this.reset(),a(this.plugins,this,function(){return f(n,[],t,"start")}),this},prepare:function(t){for(var n,r=arguments.length,e=Array(r>1?r-1:0),i=1;r>i;i++)e[i-1]=arguments[i];return(n=this.push).bind.apply(n,[this,t].concat(e))},rollback:function(t,n){var r=this,e=c(n,function(n,e){var i=t[e],o=r.get(e);return o!==n&&o!==i?o:i});this.update(e)},stateFor:function(t){var n=this,r=Object.keys(this.stores).filter(function(r){return s.taskFor(n.stores[r],t)});return r.reduce(function(t,r){return t[r]=n.get(r),t},{})},push:function(t){for(var n=this,r=arguments.length,e=Array(r>1?r-1:0),i=1;r>i;i++)e[i-1]=arguments[i];l(t);var o={},u=this.stateFor(t),s=function(r){return o=n.dispatch(u,t,r),n.update(o)},a=function(){return n.rollback(u,o)};return h(s,a,t.apply(this,e))},dispatch:function(t,n,r){var e=this;return c(t,function(t,i){return s.send(e.stores[i],n,t,r)})}}),t.exports=e,e.get=r(1),e.set=r(5),e.remove=r(4)},function(t,n,r){var e=r(2);t.exports=function(t,n,r){n=e(n);for(var i=0;i<n.length;i++){if(void 0===t)return r;t=t[n[i]]}return void 0===t?r:t}},function(t,n){t.exports=function(t){return Array.isArray(t)?t:[t]}},function(t,n){t.exports=function(t){if(Array.isArray(t))return t.slice();var n={};for(var r in t)n[r]=t[r];return n}},function(t,n,r){var e={},i=r(3),o=r(1),u=r(2);t.exports=function s(t,n){if(void 0===o(t,n))return t;n=u(n);var r=n[0],a=n.slice(1),c=i(t);return a.length?(c[r]=s(o(t,r,e),a),0===Object.keys(o(c,r,e)).length&&delete c[r]):delete c[r],c}},function(t,n,r){var e=r(3),i=r(1),o=r(2);t.exports=function u(t,n,r){if(i(t,n)===r)return t;n=o(n);var s=n[0],a=n.slice(1);if(n.length){var c=e(t);return a.length?c[s]=u(i(c,s,{}),a,r):c[s]=r,c}return r}},function(t,n){function r(t,n){e(this,t),this.name=this.name||"microcosm_plugin_"+i++,this.options=n}var e=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},i=0;r.prototype={register:function(t,n,r){r()},toString:function(){return this.name}},t.exports=r},function(t,n,r){function e(t,n){i(this,t),this.toString=function(){return n}}var i=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},o=function(t){return t},u=!1;e.prototype={getInitialState:o,serialize:o,deserialize:o,register:function(){return{}}},e.send=function(t,n,r,e){var i=t.register(),o=i[n];if(u&&n in i&&"function"!=typeof o)throw TypeError(""+t+" registered "+n+" with non-function value");return o?o.call(t,r,e):r},e.taskFor=function(t,n){return t.register()[n]},t.exports=e},function(t,n){var r=function e(t,n,r){var i=t[0],o=t.slice(1);return i?void i.register(n,i.options,function(t){if(t)throw t;e(o,n,r)}):r()};t.exports=r},function(t,n){t.exports=function(t){return t&&"function"==typeof t.next}},function(t,n){t.exports=function(t){return t&&"function"==typeof t.then}},function(t,n){t.exports=function(t,n,r){var e={};for(var i in t)e[i]=n.call(r,t[i],i,t);return e}},function(t,n,r){t.exports=function(t,n,r,e){for(var i=0;i<t.length;i++)t[i].apply(r,n)}},function(t,n,r){var e=r(9),i=r(10);t.exports=function o(t,n,r){var u=o.bind(null,t,n);if(i(r))return r.then(u,n),r;if(e(r)){for(var s=r,a=Array.isArray(s),c=0,s=a?s:s[Symbol.iterator]();;){var f;if(a){if(c>=s.length)break;f=s[c++]}else{if(c=s.next(),c.done)break;f=c.value}var h=f;u(h)}return h}return t(r)}},function(t,n){var r=0;t.exports=function(t){var n=t.name||"microcosm_action",e=r++;return t.hasOwnProperty("toString")||(t.toString=function(){return""+n+"_"+e}),t}},function(t,n){function r(t){var n=[],e=t,i=null;t=this instanceof r?this:t||{};var o=function(r){for(var e=0;e<n.length;e++)n[e].apply(t,r)},u=function(){var t=+new Date;i&&10>t-i?cancelAnimationFrame(e):i=t};return t.listen=t.subscribe=function(r){return n=n.concat(r),t},t.ignore=t.unsubscribe=function(r){return n=n.filter(function(t){return t!==r}),t},t.emit=t.publish=function(){return o(arguments),t},t.volley=function(){return n.length>0&&(u(),e=requestAnimationFrame(o.bind(void 0,arguments))),t},t}var e=1e3/120;t.exports=r(r),t.exports.decorate=r,t.exports.FRAMES=e},function(t,n,r){function e(t){i(this),this._path=c,this._root=this,this.state=a,this.commit(t)}var i=r(15),o=r(5),u=r(4),s=r(1),a={},c=[];e.prototype={getPath:function(t){return this._path.concat(t).filter(function(t){return void 0!==t})},getRoot:function(){return this._root},commit:function(){var t=void 0===arguments[0]?this.state:arguments[0],n=this.getRoot(),r=n.state;null==t&&(t=a),r!==t&&(n.state=t,this.volley(n.state))},clear:function(){this.commit(null)},get:function(t,n){return s(this.state,this.getPath(t),n)},set:function(t,n){1===arguments.length&&(n=arguments[0],t=void 0),this.commit(o(this.state,this.getPath(t),n))},update:function(t,n){1===arguments.length&&(n=arguments[0],t=void 0);for(var r in n)this.set([t,r],n[r])},remove:function(t){this.commit(u(this.state,this.getPath(t)))},refine:function(t){return Object.create(this,{_path:{value:this.getPath(t)}})},keys:function(){return Object.keys(this.valueOf()||{})},values:function(){return this.keys().map(function(t){return this.get(t)},this)},valueOf:function(){return s(this.state,this.getPath())},toJSON:function(){return this.valueOf()},is:function(t){return t.valueOf()==this.valueOf()},find:function(t,n){return this.filter(t,n)[0]},includes:function(t){return this.indexOf(t)>-1},first:function(){return this.values().shift()},last:function(){return this.values().pop()},size:function(){return this.values().length}};var f=["sort","map","reduce","filter","forEach","some","every","join","indexOf"];f.forEach(function(t){e.prototype[t]=function(){var n;return(n=this.values())[t].apply(n,arguments)}}),t.exports=e},function(t,n){t.exports=require("React")}]); | ||
module.exports=function(t){function r(e){if(n[e])return n[e].exports;var o=n[e]={exports:{},id:e,loaded:!1};return t[e].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var n={};return r.m=t,r.c=n,r.p="",r(0)}([function(t,r,n){function e(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function o(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function, not "+typeof r);t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),r&&(t.__proto__=r)}var i=n(16),u=n(6),s=(n(17),n(7)),a=n(8),c=n(11),f=n(12),p=n(13),h=n(14),l=function(t){function r(){e(this,r),t.call(this),this.stores={},this.plugins=[]}return o(r,t),r.prototype.getInitialState=function(){return c(this.stores,function(t){return t.getInitialState()})},r.prototype.reset=function(){return this.commit(this.getInitialState()),this},r.prototype.replace=function(t){return this.update(this.deserialize(t)),this},r.prototype.addPlugin=function(t,r){return this.plugins.push(new u(t,r)),this},r.prototype.addStore=function(t,r){return this.stores[t]=new s(r,t),this},r.prototype.serialize=function(){var t=this;return c(this.stores,function(r,n){return r.serialize(t.get(n))})},r.prototype.deserialize=function(t){var r=this;return c(t,function(t,n){return r.stores[n].deserialize(t)})},r.prototype.toJSON=function(){return this.serialize()},r.prototype.toObject=function(){return this.valueOf()},r.prototype.start=function(){var t=this,r=arguments;return this.reset(),a(this.plugins,this,function(){return f(r,[],t,"start")}),this},r.prototype.prepare=function(t){for(var r,n=arguments.length,e=Array(n>1?n-1:0),o=1;n>o;o++)e[o-1]=arguments[o];return(r=this.push).bind.apply(r,[this,t].concat(e))},r.prototype.rollback=function(t,r){var n=this,e=c(r,function(r,e){var o=t[e],i=n.get(e);return i!==r&&i!==o?i:o});this.update(e)},r.prototype.stateFor=function(t){var r=this,n=Object.keys(this.stores).filter(function(n){return s.taskFor(r.stores[n],t)});return n.reduce(function(t,n){return t[n]=r.get(n),t},{})},r.prototype.push=function(t){for(var r=this,n=arguments.length,e=Array(n>1?n-1:0),o=1;n>o;o++)e[o-1]=arguments[o];h(t);var i={},u=this.stateFor(t),s=function(n){return i=r.dispatch(u,t,n),r.update(i)},a=function(){return r.rollback(u,i)};return p(s,a,t.apply(this,e))},r.prototype.dispatch=function(t,r,n){var e=this;return c(t,function(t,o){return s.send(e.stores[o],r,t,n)})},r}(i);t.exports=l,l.get=n(1),l.set=n(5),l.remove=n(4)},function(t,r,n){var e=n(2);t.exports=function(t,r,n){r=e(r);for(var o=0;o<r.length;o++){if(void 0===t)return n;t=t[r[o]]}return void 0===t?n:t}},function(t,r){t.exports=function(t){return Array.isArray(t)?t:[t]}},function(t,r){t.exports=function(t){if(Array.isArray(t))return t.slice();var r={};for(var n in t)r[n]=t[n];return r}},function(t,r,n){var e={},o=n(3),i=n(1),u=n(2);t.exports=function s(t,r){if(void 0===i(t,r))return t;r=u(r);var n=r[0],a=r.slice(1),c=o(t);return a.length?(c[n]=s(i(t,n,e),a),0===Object.keys(i(c,n,e)).length&&delete c[n]):delete c[n],c}},function(t,r,n){var e=n(3),o=n(1),i=n(2);t.exports=function u(t,r,n){if(o(t,r)===n)return t;r=i(r);var s=r[0],a=r.slice(1);if(r.length){var c=e(t);return a.length?c[s]=u(o(c,s,{}),a,n):c[s]=n,c}return n}},function(t,r){function n(t,r){e(this,t),this.name=this.name||"microcosm_plugin_"+o++,this.options=r}var e=Object.assign||function(t){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])}return t},o=0;n.prototype={register:function(t,r,n){n()},toString:function(){return this.name}},t.exports=n},function(t,r,n){function e(t,r){o(this,t),this.toString=function(){return r}}var o=Object.assign||function(t){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])}return t},i=function(t){return t},u=!1;e.prototype={getInitialState:i,serialize:i,deserialize:i,register:function(){return{}}},e.send=function(t,r,n,e){var o=t.register(),i=o[r];if(u&&r in o&&"function"!=typeof i)throw TypeError(""+t+" registered "+r+" with non-function value");return i?i.call(t,n,e):n},e.taskFor=function(t,r){return t.register()[r]},t.exports=e},function(t,r){var n=function e(t,r,n){var o=t[0],i=t.slice(1);return o?void o.register(r,o.options,function(t){if(t)throw t;e(i,r,n)}):n()};t.exports=n},function(t,r){t.exports=function(t){return t&&"function"==typeof t.next}},function(t,r){t.exports=function(t){return t&&"function"==typeof t.then}},function(t,r){t.exports=function(t,r,n){var e={};for(var o in t)e[o]=r.call(n,t[o],o,t);return e}},function(t,r,n){t.exports=function(t,r,n,e){for(var o=0;o<t.length;o++)t[o].apply(n,r)}},function(t,r,n){var e=n(9),o=n(10);t.exports=function i(t,r,n){var u=i.bind(null,t,r);if(o(n))return n.then(u,r),n;if(e(n)){for(var s=n,a=Array.isArray(s),c=0,s=a?s:s[Symbol.iterator]();;){var f;if(a){if(c>=s.length)break;f=s[c++]}else{if(c=s.next(),c.done)break;f=c.value}var p=f;u(p)}return p}return t(n)}},function(t,r){var n=0;t.exports=function(t){var r=t.name||"microcosm_action",e=n++;return t.hasOwnProperty("toString")||(t.toString=function(){return""+r+"_"+e}),t}},function(t,r){function n(t){var r=[],e=t,o=null;t=this instanceof n?this:t||{};var i=function(n){for(var e=0;e<r.length;e++)r[e].apply(t,n)},u=function(){var t=+new Date;o&&10>t-o?cancelAnimationFrame(e):o=t};return t.listen=t.subscribe=function(n){return r=r.concat(n),t},t.ignore=t.unsubscribe=function(n){return r=r.filter(function(t){return t!==n}),t},t.emit=t.publish=function(){return i(arguments),t},t.volley=function(){return r.length>0&&(u(),e=requestAnimationFrame(i.bind(void 0,arguments))),t},t}var e=1e3/120;t.exports=n(n),t.exports.decorate=n,t.exports.FRAMES=e},function(t,r,n){function e(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}var o=n(15),i=n(5),u=n(4),s=n(1),a={},c=[],f=function(){function t(r){e(this,t),o(this),this._path=c,this._root=this,this.state=a,this.commit(r)}return t.prototype.getPath=function(t){return this._path.concat(t).filter(function(t){return void 0!==t})},t.prototype.getRoot=function(){return this._root},t.prototype.commit=function(){var t=void 0===arguments[0]?this.state:arguments[0],r=this.getRoot(),n=r.state;null==t&&(t=a),n!==t&&(r.state=t,this.volley(r.state))},t.prototype.clear=function(){this.commit(null)},t.prototype.get=function(t,r){return s(this.state,this.getPath(t),r)},t.prototype.set=function(t,r){1===arguments.length&&(r=arguments[0],t=void 0),this.commit(i(this.state,this.getPath(t),r))},t.prototype.update=function(t,r){1===arguments.length&&(r=arguments[0],t=void 0);for(var n in r)this.set([t,n],r[n])},t.prototype.remove=function(t){this.commit(u(this.state,this.getPath(t)))},t.prototype.refine=function(t){return Object.create(this,{_path:{value:this.getPath(t)}})},t.prototype.keys=function(){return Object.keys(this.valueOf()||{})},t.prototype.values=function(){return this.keys().map(function(t){return this.get(t)},this)},t.prototype.valueOf=function(){return s(this.state,this.getPath())},t.prototype.toJSON=function(){return this.valueOf()},t.prototype.is=function(t){return t.valueOf()==this.valueOf()},t.prototype.find=function(t,r){return this.filter(t,r)[0]},t.prototype.includes=function(t){return this.indexOf(t)>-1},t.prototype.first=function(){return this.values().shift()},t.prototype.last=function(){return this.values().pop()},t.prototype.size=function(){return this.values().length},t}(),p=["sort","map","reduce","filter","forEach","some","every","join","indexOf"];p.forEach(function(t){f.prototype[t]=function(){var r;return(r=this.values())[t].apply(r,arguments)}}),t.exports=f},function(t,r){t.exports=require("React")}]); | ||
//# sourceMappingURL=microcosm.build.js.map |
{ | ||
"name": "microcosm", | ||
"version": "8.2.0-rc1", | ||
"version": "8.2.0-rc2", | ||
"description": "A variant of Facebook's Flux with centralized, isolated state", | ||
@@ -16,4 +16,4 @@ "main": "src/Microcosm.js", | ||
"dependencies": { | ||
"foliage": "~0.22.0" | ||
"foliage": "~0.24.0" | ||
} | ||
} |
@@ -1,3 +0,5 @@ | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } | ||
var Foliage = require('foliage'); | ||
@@ -13,10 +15,14 @@ var Plugin = require('./Plugin'); | ||
function Microcosm() { | ||
Foliage.apply(this, arguments); | ||
var Microcosm = (function (_Foliage) { | ||
function Microcosm() { | ||
_classCallCheck(this, Microcosm); | ||
this.stores = {}; | ||
this.plugins = []; | ||
} | ||
_Foliage.call(this); | ||
Microcosm.prototype = _extends({}, Foliage.prototype, { | ||
this.stores = {}; | ||
this.plugins = []; | ||
} | ||
_inherits(Microcosm, _Foliage); | ||
/** | ||
@@ -27,7 +33,8 @@ * Generates the initial state a microcosm starts with. The reduction | ||
*/ | ||
_getInitialState: function _getInitialState() { | ||
Microcosm.prototype.getInitialState = function getInitialState() { | ||
return remap(this.stores, function (store) { | ||
return store.getInitialState(); | ||
}); | ||
}, | ||
}; | ||
@@ -38,6 +45,7 @@ /** | ||
*/ | ||
reset: function reset() { | ||
this.commit(this._getInitialState()); | ||
Microcosm.prototype.reset = function reset() { | ||
this.commit(this.getInitialState()); | ||
return this; | ||
}, | ||
}; | ||
@@ -53,6 +61,7 @@ /** | ||
*/ | ||
replace: function replace(data) { | ||
Microcosm.prototype.replace = function replace(data) { | ||
this.update(this.deserialize(data)); | ||
return this; | ||
}, | ||
}; | ||
@@ -68,6 +77,7 @@ /** | ||
*/ | ||
addPlugin: function addPlugin(config, options) { | ||
Microcosm.prototype.addPlugin = function addPlugin(config, options) { | ||
this.plugins.push(new Plugin(config, options)); | ||
return this; | ||
}, | ||
}; | ||
@@ -83,3 +93,4 @@ /** | ||
*/ | ||
addStore: function addStore(key, config) { | ||
Microcosm.prototype.addStore = function addStore(key, config) { | ||
if (process.env.NODE_ENV !== 'production' && arguments.length <= 1) { | ||
@@ -92,3 +103,3 @@ throw TypeError('Microcosm::addStore expected string key but was given: ' + typeof key + '. Did you forget to include the key?'); | ||
return this; | ||
}, | ||
}; | ||
@@ -101,3 +112,4 @@ /** | ||
*/ | ||
serialize: function serialize() { | ||
Microcosm.prototype.serialize = function serialize() { | ||
var _this = this; | ||
@@ -108,3 +120,3 @@ | ||
}); | ||
}, | ||
}; | ||
@@ -119,3 +131,4 @@ /** | ||
*/ | ||
deserialize: function deserialize(data) { | ||
Microcosm.prototype.deserialize = function deserialize(data) { | ||
var _this2 = this; | ||
@@ -126,3 +139,3 @@ | ||
}); | ||
}, | ||
}; | ||
@@ -133,5 +146,6 @@ /** | ||
*/ | ||
toJSON: function toJSON() { | ||
Microcosm.prototype.toJSON = function toJSON() { | ||
return this.serialize(); | ||
}, | ||
}; | ||
@@ -142,5 +156,6 @@ /** | ||
*/ | ||
toObject: function toObject() { | ||
Microcosm.prototype.toObject = function toObject() { | ||
return this.valueOf(); | ||
}, | ||
}; | ||
@@ -158,3 +173,4 @@ /** | ||
*/ | ||
start: function start() { | ||
Microcosm.prototype.start = function start() { | ||
var _this3 = this; | ||
@@ -172,3 +188,3 @@ | ||
return this; | ||
}, | ||
}; | ||
@@ -182,3 +198,4 @@ /** | ||
*/ | ||
prepare: function prepare(action) { | ||
Microcosm.prototype.prepare = function prepare(action) { | ||
var _push; | ||
@@ -191,3 +208,3 @@ | ||
return (_push = this.push).bind.apply(_push, [this, action].concat(params)); | ||
}, | ||
}; | ||
@@ -201,3 +218,4 @@ /** | ||
*/ | ||
rollback: function rollback(state, changes) { | ||
Microcosm.prototype.rollback = function rollback(state, changes) { | ||
var _this4 = this; | ||
@@ -213,3 +231,3 @@ | ||
this.update(resolution); | ||
}, | ||
}; | ||
@@ -219,3 +237,4 @@ /** | ||
*/ | ||
stateFor: function stateFor(action) { | ||
Microcosm.prototype.stateFor = function stateFor(action) { | ||
var _this5 = this; | ||
@@ -231,3 +250,3 @@ | ||
}, {}); | ||
}, | ||
}; | ||
@@ -242,3 +261,4 @@ /** | ||
*/ | ||
push: function push(action) { | ||
Microcosm.prototype.push = function push(action) { | ||
var _this6 = this; | ||
@@ -269,3 +289,3 @@ | ||
return signal(resolve, reject, action.apply(this, params)); | ||
}, | ||
}; | ||
@@ -281,3 +301,4 @@ /** | ||
*/ | ||
dispatch: function dispatch(state, action, body) { | ||
Microcosm.prototype.dispatch = function dispatch(state, action, body) { | ||
var _this7 = this; | ||
@@ -288,5 +309,7 @@ | ||
}); | ||
} | ||
}); | ||
}; | ||
return Microcosm; | ||
})(Foliage); | ||
module.exports = Microcosm; | ||
@@ -298,2 +321,2 @@ | ||
/*...callbacks*/ | ||
//# sourceMappingURL=data:application/json;base64,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RyxTQUFULE1BQU07YUFBUyxPQUFLLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO0tBQUEsQ0FBQTs7QUFFaEQsV0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0dBQzNEOzs7Ozs7Ozs7OztBQVdELFVBQVEsRUFBQSxrQkFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7O0FBQzVCLFdBQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUs7QUFDbkMsYUFBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7S0FDMUQsQ0FBQyxDQUFBO0dBQ0g7Q0FDRixDQUFDLENBQUE7O0FBRUYsTUFBTSxDQUFDLE9BQU8sR0FBSyxTQUFTLENBQUE7O0FBRTVCLFNBQVMsQ0FBQyxHQUFHLEdBQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDN0MsU0FBUyxDQUFDLEdBQUcsR0FBTSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUM3QyxTQUFTLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBIiwiZmlsZSI6Ik1pY3JvY29zbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBGb2xpYWdlID0gcmVxdWlyZSgnZm9saWFnZScpXG5sZXQgUGx1Z2luICA9IHJlcXVpcmUoJy4vUGx1Z2luJylcbmxldCBSZWFjdCAgID0gcmVxdWlyZSgncmVhY3QnKVxubGV0IFN0b3JlICAgPSByZXF1aXJlKCcuL1N0b3JlJylcbmxldCBpbnN0YWxsID0gcmVxdWlyZSgnLi9pbnN0YWxsJylcbmxldCByZW1hcCAgID0gcmVxdWlyZSgnLi9yZW1hcCcpXG5sZXQgcnVuICAgICA9IHJlcXVpcmUoJy4vcnVuJylcbmxldCBzaWduYWwgID0gcmVxdWlyZSgnLi9zaWduYWwnKVxubGV0IHRhZyAgICAgPSByZXF1aXJlKCcuL3RhZycpXG5cbmZ1bmN0aW9uIE1pY3JvY29zbSgpIHtcbiAgRm9saWFnZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG5cbiAgdGhpcy5zdG9yZXMgID0ge31cbiAgdGhpcy5wbHVnaW5zID0gW11cbn1cblxuTWljcm9jb3NtLnByb3RvdHlwZSA9IE9iamVjdC5hc3NpZ24oe30sIEZvbGlhZ2UucHJvdG90eXBlLCB7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGluaXRpYWwgc3RhdGUgYSBtaWNyb2Nvc20gc3RhcnRzIHdpdGguIFRoZSByZWR1Y3Rpb25cbiAgICogb2YgY2FsbGluZyBgZ2V0SW5pdGlhbFN0YXRlYCBvbiBhbGwgc3RvcmVzLlxuICAgKiBAcmV0dXJuIE9iamVjdFxuICAgKi9cbiAgX2dldEluaXRpYWxTdGF0ZSgpIHtcbiAgICByZXR1cm4gcmVtYXAodGhpcy5zdG9yZXMsIHN0b3JlID0+IHN0b3JlLmdldEluaXRpYWxTdGF0ZSgpKVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXNldHMgc3RhdGUgdG8gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIGBnZXRJbml0aWFsU3RhdGUoKWBcbiAgICogQHJldHVybiB0aGlzXG4gICAqL1xuICByZXNldCgpIHtcbiAgICB0aGlzLmNvbW1pdCh0aGlzLl9nZXRJbml0aWFsU3RhdGUoKSlcbiAgICByZXR1cm4gdGhpc1xuICB9LFxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBgZGVzZXJpYWxpemVgIG9uIHRoZSBwcm92aWRlZCBkYXRhIGFuZCB0aGVuIG1lcmdlcyBpdCBpbnRvXG4gICAqIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlLiBUaGlzIGZ1bmN0aW9uIGlzIGdyZWF0IGZvclxuICAgKiBib290c3RyYXBwaW5nIGRhdGEgd2hlbiByZW5kZXJpbmcgZnJvbSB0aGUgc2VydmVyLiBJdCB3aWxsIG5vdFxuICAgKiBibG93IGF3YXkga2V5cyB0aGF0IGhhdmVuJ3QgYmVlbiBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBBIEphdmFTY3JpcHQgb2JqZWN0IG9mIGRhdGEgdG8gcmVwbGFjZVxuICAgKiBAcmV0dXJuIHRoaXNcbiAgICovXG4gIHJlcGxhY2UoZGF0YSkge1xuICAgIHRoaXMudXBkYXRlKHRoaXMuZGVzZXJpYWxpemUoZGF0YSkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogUHVzaGVzIGEgcGx1Z2luIGluIHRvIHRoZSByZWdpc3RyeSBmb3IgYSBnaXZlbiBtaWNyb2Nvc20uXG4gICAqIFdoZW4gYGFwcC5zdGFydCgpYCBpcyBjYWxsZWQsIGl0IHdpbGwgZXhlY3V0ZSBwbHVnaW5zIGluXG4gICAqIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGhhdmUgYmVlbiBhZGRlZCB1c2luZyB0aGlzIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGx1Z2luICAtIFRoZSBwbHVnaW4gdGhhdCB3aWxsIGJlIGFkZGVkXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gT3B0aW9ucyBwYXNzZWQgdG8gdGhlIHBsdWdpbiBvbiBzdGFydFxuICAgKiBAcmV0dXJuIHRoaXNcbiAgICovXG4gIGFkZFBsdWdpbihjb25maWcsIG9wdGlvbnMpIHtcbiAgICB0aGlzLnBsdWdpbnMucHVzaChuZXcgUGx1Z2luKGNvbmZpZywgb3B0aW9ucykpXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgc3RvcmUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGBjb25maWdgIGFuZCBhc3NpZ25zIGl0IHRvXG4gICAqIG1hbmFnZSB0aGUgcHJvdmlkZWQgYGtleWAuIFdoZW5ldmVyIHRoaXMgc3RvcmUgcmVzcG9uZHMgdG8gYW4gYWN0aW9uLFxuICAgKiBpdCB3aWxsIGJlIHByb3ZpZGVkIHRoZSBjdXJyZW50IHN0YXRlIGZvciB0aGF0IHBhcnRpY3VsYXIga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IC0gVGhlIGtleSBpbiBnbG9iYWwgc3RhdGUgdGhlIHN0b3JlIHdpbGwgbWFuYWdlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gYnVpbGQgYSBuZXcgc3RvcmVcbiAgICogQHJldHVybiB0aGlzXG4gICAqL1xuICBhZGRTdG9yZShrZXksIGNvbmZpZykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGFyZ3VtZW50cy5sZW5ndGggPD0gMSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKGBNaWNyb2Nvc206OmFkZFN0b3JlIGV4cGVjdGVkIHN0cmluZyBrZXkgYnV0IHdhcyBnaXZlbjogJHsgdHlwZW9mIGtleSB9LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIHRoZSBrZXk/YClcbiAgICB9XG5cbiAgICB0aGlzLnN0b3Jlc1trZXldID0gbmV3IFN0b3JlKGNvbmZpZywga2V5KVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRyYW5zZm9ybWluZyBhcHBsaWNhdGlvbiBzdGF0ZVxuICAgKiBhY2NvcmRpbmcgdG8gdGhlIGBzZXJpYWxpemVgIG1ldGhvZCBkZXNjcmliZWQgYnkgZWFjaCBzdG9yZS5cbiAgICpcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIHNlcmlhbGl6ZSgpIHtcbiAgICByZXR1cm4gcmVtYXAodGhpcy5zdG9yZXMsIChzdG9yZSwga2V5KSA9PiBzdG9yZS5zZXJpYWxpemUodGhpcy5nZXQoa2V5KSkpXG4gIH0sXG5cbiAgLyoqXG4gICAqIEZvciBlYWNoIGtleSBpbiB0aGUgcHJvdmlkZWQgYGRhdGFgIHBhcmFtZXRlciwgdHJhbnNmb3JtIGl0IHVzaW5nXG4gICAqIHRoZSBgZGVzZXJpYWxpemVgIG1ldGhvZCBwcm92aWRlZCBieSB0aGUgc3RvcmUgbWFuYWdpbmcgdGhhdCBrZXkuXG4gICAqIFRoZW4gZm9sZCB0aGUgZGVzZXJpYWxpemVkIGRhdGEgb3ZlciB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBEYXRhIHRvIGRlc2VyaWFsaXplXG4gICAqIEByZXR1cm4gT2JqZWN0XG4gICAqL1xuICBkZXNlcmlhbGl6ZShkYXRhKSB7XG4gICAgcmV0dXJuIHJlbWFwKGRhdGEsIChzdGF0ZSwga2V5KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZXNba2V5XS5kZXNlcmlhbGl6ZShzdGF0ZSlcbiAgICB9KVxuICB9LFxuXG4gIC8qKlxuICAgKiBBbGlhcyBmb3IgYHNlcmlhbGl6ZWBcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2xvbmUgb2YgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGVcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIHRvT2JqZWN0KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKVxuICB9LFxuXG4gIC8qKlxuICAgKiBTdGFydHMgYW4gYXBwbGljYXRpb24uIEl0IGRvZXMgYSBjb3VwbGUgb2YgdGhpbmdzOlxuICAgKlxuICAgKiAxLiBDYWxscyBgdGhpcy5yZXNldCgpYCB0byBkZXRlcm1pbmUgaW5pdGlhbCBzdGF0ZVxuICAgKiAyLiBSdW5zIHRocm91Z2ggYWxsIHBsdWdpbnMsIGl0IHdpbGwgdGVybWluYXRlIGlmIGFueSBmYWlsXG4gICAqIDMuIEV4ZWN1dGVzIHRoZSBwcm92aWRlZCBsaXN0IG9mIGNhbGxiYWNrcywgcGFzc2luZyBhbG9uZyBhbnkgZXJyb3JzXG4gICAqICAgIGdlbmVyYXRlZCBpZiBpbnN0YWxsaW5nIHBsdWdpbnMgZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSB7Li4uRnVuY3Rpb259IGNhbGxiYWNrcyAtIENhbGxiYWNrcyB0byBydW4gYWZ0ZXIgcGx1Z2lucyBpbnN0YWxsXG4gICAqIEByZXR1cm4gTWljcm9jb3NtXG4gICAqL1xuICBzdGFydCgvKi4uLmNhbGxiYWNrcyovKSB7XG4gICAgbGV0IGNhbGxiYWNrcyA9IGFyZ3VtZW50c1xuXG4gICAgdGhpcy5yZXNldCgpXG5cbiAgICAvLyBRdWV1ZSBwbHVnaW5zIGFuZCB0aGVuIG5vdGlmeSB0aGF0IGluc3RhbGxhdGlvbiBoYXMgZmluaXNoZWRcbiAgICBpbnN0YWxsKHRoaXMucGx1Z2lucywgdGhpcywgKCkgPT4gcnVuKGNhbGxiYWNrcywgW10sIHRoaXMsICdzdGFydCcpKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogUGFydGlhbGx5IGFwcGxpZXMgYHB1c2hgLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIGJpbmRcbiAgICogQHBhcmFtIHsuLi5hbnl9IHBhcmFtcyAtIFByZWZpbGxlZCBhcmd1bWVudHNcbiAgICogQHJldHVybiBmdW5jdGlvblxuICAgKi9cbiAgcHJlcGFyZShhY3Rpb24sIC4uLnBhcmFtcykge1xuICAgIHJldHVybiB0aGlzLnB1c2guYmluZCh0aGlzLCBhY3Rpb24sIC4uLnBhcmFtcylcbiAgfSxcblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gU1RBVEUsIHJldmVydCBhbGwga2V5cyBpbiBhIENIQU5HRVNFVFxuICAgKiB0byB0aGUgb3JpZ2luYWwsIHVubGVzcyBuZXcgZmFjdHMgaGF2ZSBjaGFuZ2VkIHRoZSBjdXJyZW50IHZhbHVlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBiYXNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBoZWFkXG4gICAqL1xuICByb2xsYmFjayhzdGF0ZSwgY2hhbmdlcykge1xuICAgIGxldCByZXNvbHV0aW9uID0gcmVtYXAoY2hhbmdlcywgKGhlYWQsIGtleSkgPT4ge1xuICAgICAgbGV0IGJhc2UgICAgPSBzdGF0ZVtrZXldXG4gICAgICBsZXQgY3VycmVudCA9IHRoaXMuZ2V0KGtleSlcblxuICAgICAgcmV0dXJuIGN1cnJlbnQgIT09IGhlYWQgJiYgY3VycmVudCAhPT0gYmFzZSA/IGN1cnJlbnQgOiBiYXNlXG4gICAgfSlcblxuICAgIHRoaXMudXBkYXRlKHJlc29sdXRpb24pXG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RhdGUgbWFuYWdlZCBieSBhbGwgc3RvcmVzIHRoYXQgY2FuIHJlc3BvbmQgdG8gYSBnaXZlbiBhY3Rpb25cbiAgICovXG4gIHN0YXRlRm9yKGFjdGlvbikge1xuICAgIGxldCBzdG9yZXMgPSBPYmplY3Qua2V5cyh0aGlzLnN0b3JlcylcbiAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihrZXkgPT4gU3RvcmUudGFza0Zvcih0aGlzLnN0b3Jlc1trZXldLCBhY3Rpb24pKVxuXG4gICAgcmV0dXJuIHN0b3Jlcy5yZWR1Y2UoKG1lbW8sIGtleSkgPT4ge1xuICAgICAgbWVtb1trZXldID0gdGhpcy5nZXQoa2V5KVxuICAgICAgcmV0dXJuIG1lbW9cbiAgICB9LCB7fSlcbiAgfSxcblxuICAvKipcbiAgICogUmVzb2x2ZXMgYW4gYWN0aW9uLiBJZiBpdCByZXNvbHZlZCBzdWNjZXNzZnVsbHksIGl0IGRpc3BhdGNoZXMgdGhhdFxuICAgKiB0aGUgcmVzdWx0aW5nIHBhcmFtZXRlcnMgdG8gcmVnaXN0ZXJlZCBzdG9yZXMgZm9yIHRyYW5zZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIGRpc3BhdGNoXG4gICAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbXMgLSBBcmd1bWVudHMgdGhlIGFjdGlvbiBpcyBjYWxsZWQgd2l0aFxuICAgKiBAcmV0dXJuIGFjdGlvbiByZXN1bHRcbiAgICovXG4gIHB1c2goYWN0aW9uLCAuLi5wYXJhbXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgYWN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYFRyaWVkIHRvIHB1c2ggJHsgYWN0aW9uIH0sIGJ1dCBpcyBub3QgYSBmdW5jdGlvbi5gKVxuICAgIH1cblxuICAgIHRhZyhhY3Rpb24pXG5cbiAgICBsZXQgY2hhbmdlcyA9IHt9XG4gICAgbGV0IHN0YXRlICAgPSB0aGlzLnN0YXRlRm9yKGFjdGlvbilcblxuICAgIGxldCByZXNvbHZlID0gYm9keSA9PiB7XG4gICAgICBjaGFuZ2VzID0gdGhpcy5kaXNwYXRjaChzdGF0ZSwgYWN0aW9uLCBib2R5KVxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKGNoYW5nZXMpXG4gICAgfVxuXG4gICAgbGV0IHJlamVjdCA9ICgpID0+IHRoaXMucm9sbGJhY2soc3RhdGUsIGNoYW5nZXMpXG5cbiAgICByZXR1cm4gc2lnbmFsKHJlc29sdmUsIHJlamVjdCwgYWN0aW9uLmFwcGx5KHRoaXMsIHBhcmFtcykpXG4gIH0sXG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgbWVzc2FnZSB0byBlYWNoIGtub3duIHN0b3JlIGFza2luZyBpZiBpdCBjYW4gcmVzcG9uZCB0byB0aGVcbiAgICogcHJvdmlkZWQgYWN0aW9uLiBJZiBzbywgdGFrZXMgdGhlIHJldHVybmVkIG5ldyBzdGF0ZSBmb3IgdGhhdCBzdG9yZSdzXG4gICAqIG1hbmFnZWQga2V5IGFuZCBhc3NpZ25zIGl0IGFzIG5ldyBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHN0YXRlIC0gVGhlIGN1cnJlbnQgc3RhdGUgb2JqZWN0IHRvIHNlZWQgc3RvcmVzIHdpdGhcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWN0aW9uIC0gVGhlIGFjdGlvbiB0byBzZW5kIHRvIGVhY2ggc3RvcmVcbiAgICogQHBhcmFtIHthbnl9IGJvZHkgLSBUaGUgcGF5bG9hZCBvZiB0aGUgYWN0aW9uXG4gICAqL1xuICBkaXNwYXRjaChzdGF0ZSwgYWN0aW9uLCBib2R5KSB7XG4gICAgcmV0dXJuIHJlbWFwKHN0YXRlLCAoc3Vic2V0LCBrZXkpID0+IHtcbiAgICAgIHJldHVybiBTdG9yZS5zZW5kKHRoaXMuc3RvcmVzW2tleV0sIGFjdGlvbiwgc3Vic2V0LCBib2R5KVxuICAgIH0pXG4gIH1cbn0pXG5cbm1vZHVsZS5leHBvcnRzICAgPSBNaWNyb2Nvc21cblxuTWljcm9jb3NtLmdldCAgICA9IHJlcXVpcmUoJ2ZvbGlhZ2Uvc3JjL2dldCcpXG5NaWNyb2Nvc20uc2V0ICAgID0gcmVxdWlyZSgnZm9saWFnZS9zcmMvc2V0Jylcbk1pY3JvY29zbS5yZW1vdmUgPSByZXF1aXJlKCdmb2xpYWdlL3NyYy9yZW1vdmUnKVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,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USxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDNUMsYUFBTyxPQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtLQUM1QixDQUFBOztBQUVELFFBQUksTUFBTSxHQUFHLFNBQVQsTUFBTTthQUFTLE9BQUssUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7S0FBQSxDQUFBOztBQUVoRCxXQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUE7R0FDM0Q7Ozs7Ozs7Ozs7OztBQTNNRyxXQUFTLFdBc05iLFFBQVEsR0FBQSxrQkFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7O0FBQzVCLFdBQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUs7QUFDbkMsYUFBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7S0FDMUQsQ0FBQyxDQUFBO0dBQ0g7O1NBMU5HLFNBQVM7R0FBUyxPQUFPOztBQTZOL0IsTUFBTSxDQUFDLE9BQU8sR0FBSyxTQUFTLENBQUE7O0FBRTVCLFNBQVMsQ0FBQyxHQUFHLEdBQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDN0MsU0FBUyxDQUFDLEdBQUcsR0FBTSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUM3QyxTQUFTLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBIiwiZmlsZSI6Ik1pY3JvY29zbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBGb2xpYWdlID0gcmVxdWlyZSgnZm9saWFnZScpXG5sZXQgUGx1Z2luICA9IHJlcXVpcmUoJy4vUGx1Z2luJylcbmxldCBSZWFjdCAgID0gcmVxdWlyZSgncmVhY3QnKVxubGV0IFN0b3JlICAgPSByZXF1aXJlKCcuL1N0b3JlJylcbmxldCBpbnN0YWxsID0gcmVxdWlyZSgnLi9pbnN0YWxsJylcbmxldCByZW1hcCAgID0gcmVxdWlyZSgnLi9yZW1hcCcpXG5sZXQgcnVuICAgICA9IHJlcXVpcmUoJy4vcnVuJylcbmxldCBzaWduYWwgID0gcmVxdWlyZSgnLi9zaWduYWwnKVxubGV0IHRhZyAgICAgPSByZXF1aXJlKCcuL3RhZycpXG5cbmNsYXNzIE1pY3JvY29zbSBleHRlbmRzIEZvbGlhZ2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG5cbiAgICB0aGlzLnN0b3JlcyAgPSB7fVxuICAgIHRoaXMucGx1Z2lucyA9IFtdXG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBpbml0aWFsIHN0YXRlIGEgbWljcm9jb3NtIHN0YXJ0cyB3aXRoLiBUaGUgcmVkdWN0aW9uXG4gICAqIG9mIGNhbGxpbmcgYGdldEluaXRpYWxTdGF0ZWAgb24gYWxsIHN0b3Jlcy5cbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICByZXR1cm4gcmVtYXAodGhpcy5zdG9yZXMsIHN0b3JlID0+IHN0b3JlLmdldEluaXRpYWxTdGF0ZSgpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyBzdGF0ZSB0byB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgYGdldEluaXRpYWxTdGF0ZSgpYFxuICAgKiBAcmV0dXJuIHRoaXNcbiAgICovXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuY29tbWl0KHRoaXMuZ2V0SW5pdGlhbFN0YXRlKCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBgZGVzZXJpYWxpemVgIG9uIHRoZSBwcm92aWRlZCBkYXRhIGFuZCB0aGVuIG1lcmdlcyBpdCBpbnRvXG4gICAqIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlLiBUaGlzIGZ1bmN0aW9uIGlzIGdyZWF0IGZvclxuICAgKiBib290c3RyYXBwaW5nIGRhdGEgd2hlbiByZW5kZXJpbmcgZnJvbSB0aGUgc2VydmVyLiBJdCB3aWxsIG5vdFxuICAgKiBibG93IGF3YXkga2V5cyB0aGF0IGhhdmVuJ3QgYmVlbiBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBBIEphdmFTY3JpcHQgb2JqZWN0IG9mIGRhdGEgdG8gcmVwbGFjZVxuICAgKiBAcmV0dXJuIHRoaXNcbiAgICovXG4gIHJlcGxhY2UoZGF0YSkge1xuICAgIHRoaXMudXBkYXRlKHRoaXMuZGVzZXJpYWxpemUoZGF0YSkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXNoZXMgYSBwbHVnaW4gaW4gdG8gdGhlIHJlZ2lzdHJ5IGZvciBhIGdpdmVuIG1pY3JvY29zbS5cbiAgICogV2hlbiBgYXBwLnN0YXJ0KClgIGlzIGNhbGxlZCwgaXQgd2lsbCBleGVjdXRlIHBsdWdpbnMgaW5cbiAgICogdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgaGF2ZSBiZWVuIGFkZGVkIHVzaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwbHVnaW4gIC0gVGhlIHBsdWdpbiB0aGF0IHdpbGwgYmUgYWRkZWRcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBPcHRpb25zIHBhc3NlZCB0byB0aGUgcGx1Z2luIG9uIHN0YXJ0XG4gICAqIEByZXR1cm4gdGhpc1xuICAgKi9cbiAgYWRkUGx1Z2luKGNvbmZpZywgb3B0aW9ucykge1xuICAgIHRoaXMucGx1Z2lucy5wdXNoKG5ldyBQbHVnaW4oY29uZmlnLCBvcHRpb25zKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHN0b3JlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBgY29uZmlnYCBhbmQgYXNzaWducyBpdCB0b1xuICAgKiBtYW5hZ2UgdGhlIHByb3ZpZGVkIGBrZXlgLiBXaGVuZXZlciB0aGlzIHN0b3JlIHJlc3BvbmRzIHRvIGFuIGFjdGlvbixcbiAgICogaXQgd2lsbCBiZSBwcm92aWRlZCB0aGUgY3VycmVudCBzdGF0ZSBmb3IgdGhhdCBwYXJ0aWN1bGFyIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSAtIFRoZSBrZXkgaW4gZ2xvYmFsIHN0YXRlIHRoZSBzdG9yZSB3aWxsIG1hbmFnZVxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIHRvIGJ1aWxkIGEgbmV3IHN0b3JlXG4gICAqIEByZXR1cm4gdGhpc1xuICAgKi9cbiAgYWRkU3RvcmUoa2V5LCBjb25maWcpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBhcmd1bWVudHMubGVuZ3RoIDw9IDEpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgTWljcm9jb3NtOjphZGRTdG9yZSBleHBlY3RlZCBzdHJpbmcga2V5IGJ1dCB3YXMgZ2l2ZW46ICR7IHR5cGVvZiBrZXkgfS4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSB0aGUga2V5P2ApXG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZXNba2V5XSA9IG5ldyBTdG9yZShjb25maWcsIGtleSlcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRyYW5zZm9ybWluZyBhcHBsaWNhdGlvbiBzdGF0ZVxuICAgKiBhY2NvcmRpbmcgdG8gdGhlIGBzZXJpYWxpemVgIG1ldGhvZCBkZXNjcmliZWQgYnkgZWFjaCBzdG9yZS5cbiAgICpcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIHNlcmlhbGl6ZSgpIHtcbiAgICByZXR1cm4gcmVtYXAodGhpcy5zdG9yZXMsIChzdG9yZSwga2V5KSA9PiBzdG9yZS5zZXJpYWxpemUodGhpcy5nZXQoa2V5KSkpXG4gIH1cblxuICAvKipcbiAgICogRm9yIGVhY2gga2V5IGluIHRoZSBwcm92aWRlZCBgZGF0YWAgcGFyYW1ldGVyLCB0cmFuc2Zvcm0gaXQgdXNpbmdcbiAgICogdGhlIGBkZXNlcmlhbGl6ZWAgbWV0aG9kIHByb3ZpZGVkIGJ5IHRoZSBzdG9yZSBtYW5hZ2luZyB0aGF0IGtleS5cbiAgICogVGhlbiBmb2xkIHRoZSBkZXNlcmlhbGl6ZWQgZGF0YSBvdmVyIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSAtIERhdGEgdG8gZGVzZXJpYWxpemVcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIGRlc2VyaWFsaXplKGRhdGEpIHtcbiAgICByZXR1cm4gcmVtYXAoZGF0YSwgKHN0YXRlLCBrZXkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnN0b3Jlc1trZXldLmRlc2VyaWFsaXplKHN0YXRlKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQWxpYXMgZm9yIGBzZXJpYWxpemVgXG4gICAqIEByZXR1cm4gT2JqZWN0XG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2xvbmUgb2YgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGVcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIHRvT2JqZWN0KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhbiBhcHBsaWNhdGlvbi4gSXQgZG9lcyBhIGNvdXBsZSBvZiB0aGluZ3M6XG4gICAqXG4gICAqIDEuIENhbGxzIGB0aGlzLnJlc2V0KClgIHRvIGRldGVybWluZSBpbml0aWFsIHN0YXRlXG4gICAqIDIuIFJ1bnMgdGhyb3VnaCBhbGwgcGx1Z2lucywgaXQgd2lsbCB0ZXJtaW5hdGUgaWYgYW55IGZhaWxcbiAgICogMy4gRXhlY3V0ZXMgdGhlIHByb3ZpZGVkIGxpc3Qgb2YgY2FsbGJhY2tzLCBwYXNzaW5nIGFsb25nIGFueSBlcnJvcnNcbiAgICogICAgZ2VuZXJhdGVkIGlmIGluc3RhbGxpbmcgcGx1Z2lucyBmYWlscy5cbiAgICpcbiAgICogQHBhcmFtIHsuLi5GdW5jdGlvbn0gY2FsbGJhY2tzIC0gQ2FsbGJhY2tzIHRvIHJ1biBhZnRlciBwbHVnaW5zIGluc3RhbGxcbiAgICogQHJldHVybiBNaWNyb2Nvc21cbiAgICovXG4gIHN0YXJ0KC8qLi4uY2FsbGJhY2tzKi8pIHtcbiAgICBsZXQgY2FsbGJhY2tzID0gYXJndW1lbnRzXG5cbiAgICB0aGlzLnJlc2V0KClcblxuICAgIC8vIFF1ZXVlIHBsdWdpbnMgYW5kIHRoZW4gbm90aWZ5IHRoYXQgaW5zdGFsbGF0aW9uIGhhcyBmaW5pc2hlZFxuICAgIGluc3RhbGwodGhpcy5wbHVnaW5zLCB0aGlzLCAoKSA9PiBydW4oY2FsbGJhY2tzLCBbXSwgdGhpcywgJ3N0YXJ0JykpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnRpYWxseSBhcHBsaWVzIGBwdXNoYC5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWN0aW9uIC0gVGhlIGFjdGlvbiB0byBiaW5kXG4gICAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbXMgLSBQcmVmaWxsZWQgYXJndW1lbnRzXG4gICAqIEByZXR1cm4gZnVuY3Rpb25cbiAgICovXG4gIHByZXBhcmUoYWN0aW9uLCAuLi5wYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5wdXNoLmJpbmQodGhpcywgYWN0aW9uLCAuLi5wYXJhbXMpXG4gIH1cblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gU1RBVEUsIHJldmVydCBhbGwga2V5cyBpbiBhIENIQU5HRVNFVFxuICAgKiB0byB0aGUgb3JpZ2luYWwsIHVubGVzcyBuZXcgZmFjdHMgaGF2ZSBjaGFuZ2VkIHRoZSBjdXJyZW50IHZhbHVlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBiYXNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBoZWFkXG4gICAqL1xuICByb2xsYmFjayhzdGF0ZSwgY2hhbmdlcykge1xuICAgIGxldCByZXNvbHV0aW9uID0gcmVtYXAoY2hhbmdlcywgKGhlYWQsIGtleSkgPT4ge1xuICAgICAgbGV0IGJhc2UgICAgPSBzdGF0ZVtrZXldXG4gICAgICBsZXQgY3VycmVudCA9IHRoaXMuZ2V0KGtleSlcblxuICAgICAgcmV0dXJuIGN1cnJlbnQgIT09IGhlYWQgJiYgY3VycmVudCAhPT0gYmFzZSA/IGN1cnJlbnQgOiBiYXNlXG4gICAgfSlcblxuICAgIHRoaXMudXBkYXRlKHJlc29sdXRpb24pXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzdGF0ZSBtYW5hZ2VkIGJ5IGFsbCBzdG9yZXMgdGhhdCBjYW4gcmVzcG9uZCB0byBhIGdpdmVuIGFjdGlvblxuICAgKi9cbiAgc3RhdGVGb3IoYWN0aW9uKSB7XG4gICAgbGV0IHN0b3JlcyA9IE9iamVjdC5rZXlzKHRoaXMuc3RvcmVzKVxuICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IFN0b3JlLnRhc2tGb3IodGhpcy5zdG9yZXNba2V5XSwgYWN0aW9uKSlcblxuICAgIHJldHVybiBzdG9yZXMucmVkdWNlKChtZW1vLCBrZXkpID0+IHtcbiAgICAgIG1lbW9ba2V5XSA9IHRoaXMuZ2V0KGtleSlcbiAgICAgIHJldHVybiBtZW1vXG4gICAgfSwge30pXG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgYW4gYWN0aW9uLiBJZiBpdCByZXNvbHZlZCBzdWNjZXNzZnVsbHksIGl0IGRpc3BhdGNoZXMgdGhhdFxuICAgKiB0aGUgcmVzdWx0aW5nIHBhcmFtZXRlcnMgdG8gcmVnaXN0ZXJlZCBzdG9yZXMgZm9yIHRyYW5zZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIGRpc3BhdGNoXG4gICAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbXMgLSBBcmd1bWVudHMgdGhlIGFjdGlvbiBpcyBjYWxsZWQgd2l0aFxuICAgKiBAcmV0dXJuIGFjdGlvbiByZXN1bHRcbiAgICovXG4gIHB1c2goYWN0aW9uLCAuLi5wYXJhbXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgYWN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYFRyaWVkIHRvIHB1c2ggJHsgYWN0aW9uIH0sIGJ1dCBpcyBub3QgYSBmdW5jdGlvbi5gKVxuICAgIH1cblxuICAgIHRhZyhhY3Rpb24pXG5cbiAgICBsZXQgY2hhbmdlcyA9IHt9XG4gICAgbGV0IHN0YXRlICAgPSB0aGlzLnN0YXRlRm9yKGFjdGlvbilcblxuICAgIGxldCByZXNvbHZlID0gYm9keSA9PiB7XG4gICAgICBjaGFuZ2VzID0gdGhpcy5kaXNwYXRjaChzdGF0ZSwgYWN0aW9uLCBib2R5KVxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKGNoYW5nZXMpXG4gICAgfVxuXG4gICAgbGV0IHJlamVjdCA9ICgpID0+IHRoaXMucm9sbGJhY2soc3RhdGUsIGNoYW5nZXMpXG5cbiAgICByZXR1cm4gc2lnbmFsKHJlc29sdmUsIHJlamVjdCwgYWN0aW9uLmFwcGx5KHRoaXMsIHBhcmFtcykpXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBtZXNzYWdlIHRvIGVhY2gga25vd24gc3RvcmUgYXNraW5nIGlmIGl0IGNhbiByZXNwb25kIHRvIHRoZVxuICAgKiBwcm92aWRlZCBhY3Rpb24uIElmIHNvLCB0YWtlcyB0aGUgcmV0dXJuZWQgbmV3IHN0YXRlIGZvciB0aGF0IHN0b3JlJ3NcbiAgICogbWFuYWdlZCBrZXkgYW5kIGFzc2lnbnMgaXQgYXMgbmV3IHN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gc3RhdGUgLSBUaGUgY3VycmVudCBzdGF0ZSBvYmplY3QgdG8gc2VlZCBzdG9yZXMgd2l0aFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIHNlbmQgdG8gZWFjaCBzdG9yZVxuICAgKiBAcGFyYW0ge2FueX0gYm9keSAtIFRoZSBwYXlsb2FkIG9mIHRoZSBhY3Rpb25cbiAgICovXG4gIGRpc3BhdGNoKHN0YXRlLCBhY3Rpb24sIGJvZHkpIHtcbiAgICByZXR1cm4gcmVtYXAoc3RhdGUsIChzdWJzZXQsIGtleSkgPT4ge1xuICAgICAgcmV0dXJuIFN0b3JlLnNlbmQodGhpcy5zdG9yZXNba2V5XSwgYWN0aW9uLCBzdWJzZXQsIGJvZHkpXG4gICAgfSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyAgID0gTWljcm9jb3NtXG5cbk1pY3JvY29zbS5nZXQgICAgPSByZXF1aXJlKCdmb2xpYWdlL3NyYy9nZXQnKVxuTWljcm9jb3NtLnNldCAgICA9IHJlcXVpcmUoJ2ZvbGlhZ2Uvc3JjL3NldCcpXG5NaWNyb2Nvc20ucmVtb3ZlID0gcmVxdWlyZSgnZm9saWFnZS9zcmMvcmVtb3ZlJylcbiJdfQ== |
Sorry, the diff of this file is not supported yet
266117
408
+ Addedfoliage@0.24.1(transitive)
- Removedfoliage@0.22.0(transitive)
Updatedfoliage@~0.24.0