microcosm
Advanced tools
Comparing version 9.2.0 to 9.3.0
@@ -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){var e=r(9),i=r(1),s=r(2),o=r(4),a=r(6),u=r(7),c=r(8),l=[],f=function(){e(this),this.base={},this.state=this.base,this.plugins=[],this.stores={},this.transactions=[]};f.prototype={constructor:f,getInitialState:function(){return u(this.stores,i.getInitialState)},shouldTransactionMerge:function(t){return t.meta.done},shouldTransactionDispatch:function(t){return t.meta.active},release:function(t){this.transactions.splice(this.transactions.indexOf(t),1)},transactionDidFail:function(t){return this.release(t),this.rollforward()},transactionDidUpdate:function(){var t=this.transactions[0];return this.shouldTransactionMerge(t,this.transactions)&&(this.base=this.dispatch(this.base,t),this.release(t)),this.rollforward()},rollforward:function(){var t=this.transactions.reduce(this.dispatch.bind(this),this.base);return t!==this.state&&(this.state=t,this.emit(this.state)),this},dispatch:function(t,n){return this.shouldTransactionDispatch(n)===!1?t:u(this.stores,function(r,e){return i.send(r,t[e],n)})},prepare:function(t){var n=this,r=arguments.length<=1||void 0===arguments[1]?[]:arguments[1];return function(e,i){return n.push(t,o(r,e),i)}},push:function(t,n,r){var e=s.create(c(t).toString()),i=t.apply(null,o(n));return this.transactions.push(e),s.run(e,i,this.transactionDidUpdate,this.transactionDidFail,r,this)},reset:function(){var t=arguments.length<=0||void 0===arguments[0]?this.getInitialState():arguments[0],n=arguments.length<=1||void 0===arguments[1]?l:arguments[1];return this.transactions=o(n),this.base=t,this.rollforward()},replace:function(t){return this.reset(this.deserialize(t))},addPlugin:function(t,n){return this.plugins.push(a(t,n,this)),this},addStore:function(t,n){return this.stores[t]=n,this},serialize:function(){var t=this;return u(this.stores,function(n,r){return i.serialize(n,t.state[r])})},deserialize:function(t){return void 0==t?this.state:u(this.stores,function(n,r){return i.deserialize(n,t[r])})},toJSON:function(){return this.serialize()},start:function(){for(var t=this,n=arguments.length,r=Array(n),e=0;n>e;e++)r[e]=arguments[e];return this.reset(),a.install(this.plugins,function(n){r.forEach(function(r){return r.call(t,n,t)})}),this}},t.exports=f},function(t,n){n.getInitialState=function(t){return t.getInitialState?t.getInitialState():void 0},n.serialize=function(t,n){return t.serialize?t.serialize(n):n},n.deserialize=function(t,n){return t.deserialize?t.deserialize(n):n},n.send=function(t,n,r){var e=r.payload,i=r.type,s=t.register?t.register()[i]:!1;return s?s.call(t,n,e):n}},function(t,n,r){function e(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return{type:t,payload:n,meta:{active:!1,done:!1},error:!1}}function i(t,n,r,e,i,o){return s(n,function(n,s,a){t.meta.active=!0,t.meta.done=a,n?(t.error=!0,t.payload=n,e.call(o,t)):(t.payload=s,r.call(o,t)),a&&i&&setTimeout(i.bind(o,n,s),0)})}var s=r(3);t.exports={run:i,create:e}},function(t,n,r){var e=r(5),i=r(10),s=new Error("Rejected Promise"),o=function(t,n){return i(t)?t.then(function(t){return n(null,t,!0)},function(t){throw n(t||s,null,!0),t}):n(null,t,!0)},a=function(t,n){return o(t.next().value,function r(e,i){var s=t.next(),a=s.done,u=s.value;return n(e,i,a),e||a?i:o(u,r)})},u=function(t,n){return(e(t)?a:o)(t,n)};t.exports=u},function(t,n){t.exports=Array.prototype.concat.bind([])},function(t,n){function r(t){return t&&"function"==typeof t.next&&"function"==typeof t["throw"]}t.exports=r},function(t,n,r){function e(t,n,r){return a({app:r,options:n},t)}function i(t){}function s(t,n){return i(n),function(r){return r?t(r):n.register?n.register(n.app,n.options,t):t(null)}}function o(t,n){return t.reduceRight(s,n)(null)}var a=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};t.exports=e,t.exports.install=o},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){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){"use strict";function r(t){var n=[];return t=this instanceof r?this:t||{},t.listen=t.subscribe=function(r){if("function"!=typeof r)throw new TypeError("callback must be a function");return n.push(r),t},t.ignore=t.unsubscribe=function(r){return n=n.filter(function(t){return t!==r}),t},t.emit=t.publish=function(){for(var r=0;r<n.length;r++){for(var e=arguments.length,i=Array(e),s=0;e>s;s++)i[s]=arguments[s];n[r].apply(t,i)}return t},t}t.exports=r(r),t.exports.decorate=r},function(t,n){function r(t){return t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof t.then}t.exports=r}]); | ||
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){var e=r(8),i=r(1),s=r(2),o=r(4),u=r(6),a=r(7),c=[],f=function(){e(this),this.base={},this.state=this.base,this.plugins=[],this.stores=[],this.transactions=[]};f.prototype={constructor:f,getInitialState:function(){return i.reduce(this.stores,{},i.getInitialState)},shouldTransactionMerge:function(t){return t.meta.done},shouldTransactionDispatch:function(t){return t.meta.active},release:function(t){this.transactions.splice(this.transactions.indexOf(t),1)},transactionDidFail:function(t){return this.release(t),this.rollforward()},transactionDidUpdate:function(){var t=this.transactions[0];return this.shouldTransactionMerge(t,this.transactions)&&(this.base=this.dispatch(this.base,t),this.release(t)),this.rollforward()},rollforward:function(){var t=this.transactions.reduce(this.dispatch.bind(this),this.base);return t!==this.state&&(this.state=t,this.emit(this.state)),this},dispatch:function(t,n){return this.shouldTransactionDispatch(n)===!1?t:i.reduce(this.stores,t,function(t,r){return i.send(t,r,n)})},prepare:function(t){var n=this,r=arguments.length<=1||void 0===arguments[1]?[]:arguments[1];return function(e,i){return n.push(t,o(r,e),i)}},push:function(t,n,r){var e=s.create(a(t).toString()),i=t.apply(null,o(n));return this.transactions.push(e),s.run(e,i,this.transactionDidUpdate,this.transactionDidFail,r,this)},reset:function(){var t=arguments.length<=0||void 0===arguments[0]?this.getInitialState():arguments[0],n=arguments.length<=1||void 0===arguments[1]?c:arguments[1];return this.transactions=o(n),this.base=t,this.rollforward()},replace:function(t){return this.reset(this.deserialize(t))},addPlugin:function(t,n){return this.plugins.push(u(t,n,this)),this},addStore:function(t,n){return this.stores.push([t,n]),this},serialize:function(){return i.reduce(this.stores,this.state,i.serialize)},deserialize:function(t){return void 0==t?this.state:i.reduce(this.stores,t,i.deserialize)},toJSON:function(){return this.serialize()},start:function(){for(var t=this,n=arguments.length,r=Array(n),e=0;n>e;e++)r[e]=arguments[e];return this.reset(),u.install(this.plugins,function(n){r.forEach(function(r){return r.call(t,n,t)})}),this}},t.exports=f},function(t,n){n.reduce=function(t,n,r,e){return t.reduce(function(t,e){var i=e[0],s=e[1];return t[i]=r(s,n[i],i),t},e||{})},n.getInitialState=function(t){return t.getInitialState?t.getInitialState():void 0},n.serialize=function(t,n){return t.serialize?t.serialize(n):n},n.deserialize=function(t,n){return t.deserialize?t.deserialize(n):n},n.send=function(t,n,r){var e=r.payload,i=r.type,s="function"==typeof t.register?t.register():null;if(!s||i in s==!1)return n;var o=s[i];return"function"==typeof o?o.call(t,n,e):o}},function(t,n,r){function e(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return{type:t,payload:n,meta:{active:!1,done:!1},error:!1}}function i(t,n,r,e,i,o){return s(n,function(n,s,u){t.meta.active=!0,t.meta.done=u,n?(t.error=!0,t.payload=n,e.call(o,t)):(t.payload=s,r.call(o,t)),u&&i&&setTimeout(i.bind(o,n,s),0)})}var s=r(3);t.exports={run:i,create:e}},function(t,n,r){var e=r(5),i=r(9),s=new Error("Rejected Promise"),o=function(t,n){return i(t)?t.then(function(t){return n(null,t,!0)},function(t){throw n(t||s,null,!0),t}):n(null,t,!0)},u=function(t,n){return o(t.next().value,function r(e,i){var s=t.next(),u=s.done,a=s.value;return n(e,i,u),e||u?i:o(a,r)})},a=function(t,n){return(e(t)?u:o)(t,n)};t.exports=a},function(t,n){t.exports=Array.prototype.concat.bind([])},function(t,n){function r(t){return t&&"function"==typeof t.next&&"function"==typeof t["throw"]}t.exports=r},function(t,n,r){function e(t,n,r){return u({app:r,options:n},t)}function i(t){}function s(t,n){return i(n),function(r){return r?t(r):n.register?n.register(n.app,n.options,t):t(null)}}function o(t,n){return t.reduceRight(s,n)(null)}var u=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};t.exports=e,t.exports.install=o},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){"use strict";function r(t){var n=[];return t=this instanceof r?this:t||{},t.listen=t.subscribe=function(r){if("function"!=typeof r)throw new TypeError("callback must be a function");return n.push(r),t},t.ignore=t.unsubscribe=function(r){return n=n.filter(function(t){return t!==r}),t},t.emit=t.publish=function(){for(var r=0;r<n.length;r++){for(var e=arguments.length,i=Array(e),s=0;e>s;s++)i[s]=arguments[s];n[r].apply(t,i)}return t},t}t.exports=r(r),t.exports.decorate=r},function(t,n){function r(t){return t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof t.then}t.exports=r}]); | ||
//# sourceMappingURL=microcosm.build.js.map |
{ | ||
"name": "microcosm", | ||
"version": "9.2.0", | ||
"version": "9.3.0", | ||
"description": "A variant of Facebook's Flux with centralized, isolated state", | ||
@@ -5,0 +5,0 @@ "main": "src/Microcosm.js", |
@@ -6,3 +6,2 @@ var Diode = require('diode'); | ||
var plugin = require('./plugin'); | ||
var remap = require('./remap'); | ||
var tag = require('./tag'); | ||
@@ -36,3 +35,3 @@ | ||
this.plugins = []; | ||
this.stores = {}; | ||
this.stores = []; | ||
this.transactions = []; | ||
@@ -49,3 +48,3 @@ }; | ||
getInitialState: function getInitialState() { | ||
return remap(this.stores, Store.getInitialState); | ||
return Store.reduce(this.stores, {}, Store.getInitialState); | ||
}, | ||
@@ -124,4 +123,4 @@ | ||
return remap(this.stores, function (store, key) { | ||
return Store.send(store, state[key], transaction); | ||
return Store.reduce(this.stores, state, function (store, subset) { | ||
return Store.send(store, subset, transaction); | ||
}); | ||
@@ -197,3 +196,3 @@ }, | ||
*/ | ||
addStore: function addStore(key, config) { | ||
addStore: function addStore(key, store) { | ||
if (process.env.NODE_ENV !== 'production' && arguments.length <= 1) { | ||
@@ -203,3 +202,3 @@ throw TypeError('Microcosm::addStore expected string key but was given: ' + typeof key + '. Did you forget to include the key?'); | ||
this.stores[key] = config; | ||
this.stores.push([key, store]); | ||
@@ -214,7 +213,3 @@ return this; | ||
serialize: function serialize() { | ||
var _this2 = this; | ||
return remap(this.stores, function (store, key) { | ||
return Store.serialize(store, _this2.state[key]); | ||
}); | ||
return Store.reduce(this.stores, this.state, Store.serialize); | ||
}, | ||
@@ -232,5 +227,3 @@ | ||
return remap(this.stores, function (store, key) { | ||
return Store.deserialize(store, data[key]); | ||
}); | ||
return Store.reduce(this.stores, data, Store.deserialize); | ||
}, | ||
@@ -254,3 +247,3 @@ | ||
start: function start() { | ||
var _this3 = this; | ||
var _this2 = this; | ||
@@ -266,3 +259,3 @@ for (var _len = arguments.length, callbacks = Array(_len), _key = 0; _key < _len; _key++) { | ||
callbacks.forEach(function (cb) { | ||
return cb.call(_this3, error, _this3); | ||
return cb.call(_this2, error, _this2); | ||
}); | ||
@@ -277,2 +270,2 @@ }); | ||
module.exports = Microcosm; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9NaWNyb2Nvc20uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzVCLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUM5QixJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDMUMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ2xDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUNoQyxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDOUIsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBOztBQUUxQixJQUFNLFdBQVcsR0FBRyxFQUFFLENBQUE7O0FBRXRCLElBQUksU0FBUyxHQUFHLFNBQVosU0FBUyxHQUFjOzs7Ozs7QUFNekIsT0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBOzs7Ozs7OztBQVFYLE1BQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFBOzs7Ozs7O0FBT2QsTUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBOztBQUV0QixNQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtBQUNqQixNQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUNoQixNQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQTtDQUN2QixDQUFBOztBQUVELFNBQVMsQ0FBQyxTQUFTLEdBQUc7QUFDcEIsYUFBVyxFQUFFLFNBQVM7Ozs7OztBQU10QixpQkFBZSxFQUFBLDJCQUFHO0FBQ2hCLFdBQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0dBQ2pEOzs7Ozs7O0FBT0Qsd0JBQXNCLEVBQUEsZ0NBQUMsV0FBVyxFQUFFO0FB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IjoiTWljcm9jb3NtLmpzIiwic291cmNlc0NvbnRlbnQiOlsibGV0IERpb2RlID0gcmVxdWlyZSgnZGlvZGUnKVxubGV0IFN0b3JlID0gcmVxdWlyZSgnLi9TdG9yZScpXG5sZXQgVHJhbnNhY3Rpb24gPSByZXF1aXJlKCcuL1RyYW5zYWN0aW9uJylcbmxldCBmbGF0dGVuID0gcmVxdWlyZSgnLi9mbGF0dGVuJylcbmxldCBwbHVnaW4gPSByZXF1aXJlKCcuL3BsdWdpbicpXG5sZXQgcmVtYXAgPSByZXF1aXJlKCcuL3JlbWFwJylcbmxldCB0YWcgPSByZXF1aXJlKCcuL3RhZycpXG5cbmNvbnN0IEVNUFRZX0FSUkFZID0gW11cblxubGV0IE1pY3JvY29zbSA9IGZ1bmN0aW9uKCkge1xuICAvKipcbiAgICogTWljcm9jb3NtIHVzZXMgRGlvZGUgZm9yIGV2ZW50IGVtaXNzaW9uLiBEaW9kZSBpcyBhbiBldmVudCBlbWl0dGVyXG4gICAqIHdpdGggYSBzaW5nbGUgZXZlbnQuXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS92aWdldGxhYnMvZGlvZGVcbiAgICovXG4gIERpb2RlKHRoaXMpXG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYWxsIFwibWVyZ2VkXCIgdHJhbnNhY3Rpb25zLiBXaGVuZXZlciBhIHRyYW5zYWN0aW9uIGNvbXBsZXRlcyxcbiAgICogdGhlIHJlc3VsdCBpcyBmb2xkZWQgaW50byBiYXNlIHN0YXRlIGFuZCB0aGUgdHJhbnNhY3Rpb24gb2JqZWN0IGlzXG4gICAqIFwicmVsZWFzZWRcIi4gVGhpcyBsZXRzIHRyYW5zYWN0aW9ucyBleGVjdXRlIGluIGEgcHJlZGljYWJsZSBvcmRlciB3aGlsZVxuICAgKiBub3Qgc29ha2luZyB1cCBtZW1vcnkga2VlcGluZyB0aGVtIGZvcmV2ZXIuXG4gICAqL1xuICB0aGlzLmJhc2UgPSB7fVxuXG4gIC8qKlxuICAgKiBIb2xkcyBwdWJsaWNhbGx5IGF2YWlsYWJsZSBzdGF0ZS4gVGhlIHJlc3VsdCBvZiBmb2xkaW5nIGFsbCBpbmNvbXBsZXRlXG4gICAqIHRyYW5zYWN0aW9ucyBvdmVyIGJhc2Ugc3RhdGUuIFRoaXMgcHJvcGVydHkgY2FuIHNhZmVseSBiZSByZWZlcmVuY2VkIHdoZW5cbiAgICogcmV0cmlldmluZyBhcHBsaWNhdGlvbiBzdGF0ZS5cbiAgICovXG4gIHRoaXMuc3RhdGUgPSB0aGlzLmJhc2VcblxuICB0aGlzLnBsdWdpbnMgPSBbXVxuICB0aGlzLnN0b3JlcyA9IHt9XG4gIHRoaXMudHJhbnNhY3Rpb25zID0gW11cbn1cblxuTWljcm9jb3NtLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IE1pY3JvY29zbSxcblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBpbml0aWFsIHN0YXRlIGEgbWljcm9jb3NtIHN0YXJ0cyB3aXRoLiBDYWxsZWQgd2hlbmV2ZXJcbiAgICogYSBtaWNyb2Nvc20gcnVucyBzdGFydCgpLlxuICAgKi9cbiAgZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIHJldHVybiByZW1hcCh0aGlzLnN0b3JlcywgU3RvcmUuZ2V0SW5pdGlhbFN0YXRlKVxuICB9LFxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIGEgdHJhbnNhY3Rpb24gaXMgc3F1YXNoZWQgaW50byBiYXNlIHN0YXRlLiBUaGlzIG1ldGhvZFxuICAgKiBpcyB1c2VmdWwgdG8gb3ZlcnJpZGUgaWYgeW91IHdpc2ggdG8gcHJlc2VydmUgdHJhbnNhY3Rpb24gaGlzdG9yeVxuICAgKiBiZXlvbmQgb3V0c3RhbmRpbmcgdHJhbnNhY3Rpb25zLlxuICAgKi9cbiAgc2hvdWxkVHJhbnNhY3Rpb25NZXJnZSh0cmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi5tZXRhLmRvbmVcbiAgfSxcblxuICAvKlxuICAgKiBCZWZvcmUgZGlzcGF0Y2hpbmcsIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIGV2ZXJ5IHRyYW5zYWN0aW9uXG4gICAqL1xuICBzaG91bGRUcmFuc2FjdGlvbkRpc3BhdGNoKHRyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm1ldGEuYWN0aXZlXG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgcmVsZWFzZSh0cmFuc2FjdGlvbikge1xuICAgIHRoaXMudHJhbnNhY3Rpb25zLnNwbGljZSh0aGlzLnRyYW5zYWN0aW9ucy5pbmRleE9mKHRyYW5zYWN0aW9uKSwgMSlcbiAgfSxcblxuICB0cmFuc2FjdGlvbkRpZEZhaWwodHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLnJlbGVhc2UodHJhbnNhY3Rpb24pXG4gICAgcmV0dXJuIHRoaXMucm9sbGZvcndhcmQoKVxuICB9LFxuXG4gIC8qKlxuICAgKiBTdGFydGluZyBmcm9tIHRoZSBiZWdpbm5pbmcsIGNvbnNlY3V0aXZlbHkgZm9sZCBjb21wbGV0ZSB0cmFuc2FjdGlvbnMgaW50b1xuICAgKiBiYXNlIHN0YXRlIGFuZCByZW1vdmUgdGhlbSBmcm9tIHRoZSB0cmFuc2FjdGlvbiBsaXN0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25EaWRVcGRhdGUoKSB7XG4gICAgIGxldCBmaXJzdCA9IHRoaXMudHJhbnNhY3Rpb25zWzBdXG5cbiAgICAgaWYgKHRoaXMuc2hvdWxkVHJhbnNhY3Rpb25NZXJnZShmaXJzdCwgdGhpcy50cmFuc2FjdGlvbnMpKSB7XG4gICAgICAgdGhpcy5iYXNlID0gdGhpcy5kaXNwYXRjaCh0aGlzLmJhc2UsIGZpcnN0KVxuICAgICAgIHRoaXMucmVsZWFzZShmaXJzdClcbiAgICAgfVxuXG4gICAgIHJldHVybiB0aGlzLnJvbGxmb3J3YXJkKClcbiAgIH0sXG5cbiAgLyoqXG4gICAqIERpc3BhdGNoIGFsbCBvdXRzdGFuZGluZywgYWN0aXZlIHRyYW5zYWN0aW9ucyB1cG9uIGJhc2Ugc3RhdGUgdG8gZGV0ZXJtaW5lXG4gICAqIGEgbmV3IHN0YXRlLiBUaGlzIGlzIHRoZSBzdGF0ZSBleHBvc2VkIHRvIHRoZSBvdXRzaWRlIHdvcmxkLlxuICAgKi9cbiAgcm9sbGZvcndhcmQoKSB7XG4gICAgbGV0IG5leHQgPSB0aGlzLnRyYW5zYWN0aW9ucy5yZWR1Y2UodGhpcy5kaXNwYXRjaC5iaW5kKHRoaXMpLCB0aGlzLmJhc2UpXG5cbiAgICBpZiAobmV4dCAhPT0gdGhpcy5zdGF0ZSkge1xuICAgICAgdGhpcy5zdGF0ZSA9IG5leHRcbiAgICAgIHRoaXMuZW1pdCh0aGlzLnN0YXRlKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIERpc3BhdGNoIHRha2VzIGFuIGV4aXN0aW5nIHN0YXRlIGFuZCBwZXJmb3JtcyB0aGUgcmVzdWx0IG9mIGEgdHJhbnNhY3Rpb25cbiAgICogb24gdG9wIG9mIGl0LiBUaGlzIGlzIGRpZmZlcmVudCB0aGFuIG90aGVyIEZsdXggaW1wbGVtZW50YXRpb25zLCB0aGVyZVxuICAgKiBhcmUgbm8gc2lkZS1lZmZlY3RzLlxuICAgKlxuICAgKiBEaXNwYXRjaCBhbnN3ZXJzIHRoZSBxdWVzdGlvbjpcbiAgICogXCJXaGF0IHdpbGwgY2hhbmdlIHdoZW4gSSBhY2NvdW50IGZvciBhIHRyYW5zYWN0aW9uP1wiXG4gICAqL1xuICBkaXNwYXRjaChzdGF0ZSwgdHJhbnNhY3Rpb24pIHtcbiAgICBpZiAodGhpcy5zaG91bGRUcmFuc2FjdGlvbkRpc3BhdGNoKHRyYW5zYWN0aW9uKSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgIH1cblxuICAgIHJldHVybiByZW1hcCh0aGlzLnN0b3JlcywgZnVuY3Rpb24oc3RvcmUsIGtleSkge1xuICAgICAgcmV0dXJuIFN0b3JlLnNlbmQoc3RvcmUsIHN0YXRlW2tleV0sIHRyYW5zYWN0aW9uKVxuICAgIH0pXG4gIH0sXG5cbiAgLyoqXG4gICAqIFBhcnRpYWxseSBhcHBsaWVzIGBwdXNoYC5cbiAgICovXG4gIHByZXBhcmUoYWN0aW9uLCBwYXJhbXM9W10pIHtcbiAgICByZXR1cm4gKG1vcmUsIGNhbGxiYWNrKSA9PiB0aGlzLnB1c2goYWN0aW9uLCBmbGF0dGVuKHBhcmFtcywgbW9yZSksIGNhbGxiYWNrKVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbiBhY3Rpb24uIEFzIHRoYXQgYWN0aW9uIHNpZ25hbHMgY2hhbmdlcywgaXQgd2lsbCB1cGRhdGVcbiAgICogYSB1bmlxdWUgdHJhbnNhY3Rpb24uIElmIGFuIGVycm9yIG9jY3VycywgaXQgd2lsbCBtYXJrIGl0IGZvciBjbGVhbiB1cFxuICAgKiBhbmQgdGhlIGNoYW5nZSB3aWxsIGRpc2FwcGVhciBmcm9tIGhpc3RvcnkuXG4gICAqL1xuICBwdXNoKGFjdGlvbiwgcGFyYW1zLCBjYWxsYmFjaykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGVvZiBhY3Rpb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgVHJpZWQgdG8gY3JlYXRlIFRyYW5zYWN0aW9uIGZvciAkeyBhY3Rpb24gfSwgYnV0IGl0IGlzIG5vdCBhIGZ1bmN0aW9uLmApXG4gICAgfVxuXG4gICAgbGV0IHRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uY3JlYXRlKHRhZyhhY3Rpb24pLnRvU3RyaW5nKCkpXG4gICAgbGV0IGJvZHkgPSBhY3Rpb24uYXBwbHkobnVsbCwgZmxhdHRlbihwYXJhbXMpKVxuXG4gICAgdGhpcy50cmFuc2FjdGlvbnMucHVzaCh0cmFuc2FjdGlvbilcblxuICAgIHJldHVybiBUcmFuc2FjdGlvbi5ydW4odHJhbnNhY3Rpb24sIGJvZHksIHRoaXMudHJhbnNhY3Rpb25EaWRVcGRhdGUsIHRoaXMudHJhbnNhY3Rpb25EaWRGYWlsLCBjYWxsYmFjaywgdGhpcylcbiAgfSxcblxuICAvKipcbiAgICogQ2xlYXIgYWxsIG91dHN0YW5kaW5nIHRyYW5zYWN0aW9ucyBhbmQgYXNzaWduIGJhc2Ugc3RhdGVcbiAgICogdG8gYSBnaXZlbiBvYmplY3QgKG9yIGdldEluaXRpYWxTdGF0ZSgpKVxuICAgKi9cbiAgcmVzZXQoc3RhdGU9dGhpcy5nZXRJbml0aWFsU3RhdGUoKSwgdHJhbnNhY3Rpb25zPUVNUFRZX0FSUkFZKSB7XG4gICAgdGhpcy50cmFuc2FjdGlvbnMgPSBmbGF0dGVuKHRyYW5zYWN0aW9ucykgLy8gUHJldmVudCBhY2NpZGVudGFsIG11dGF0aW9uXG4gICAgdGhpcy5iYXNlID0gc3RhdGVcblxuICAgIHJldHVybiB0aGlzLnJvbGxmb3J3YXJkKClcbiAgfSxcblxuICAvKipcbiAgICogUmVzZXRzIHRvIGEgZ2l2ZW4gc3RhdGUsIHBhc3NpbmcgaXQgdGhyb3VnaCBkZXNlcmlhbGl6ZSBmaXJzdFxuICAgKi9cbiAgcmVwbGFjZShkYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzZXQodGhpcy5kZXNlcmlhbGl6ZShkYXRhKSlcbiAgfSxcblxuICAvKipcbiAgICogUHVzaGVzIGEgcGx1Z2luIGluIHRvIHRoZSByZWdpc3RyeSBmb3IgYSBnaXZlbiBtaWNyb2Nvc20uXG4gICAqIFdoZW4gYGFwcC5zdGFydCgpYCBpcyBjYWxsZWQsIGl0IHdpbGwgZXhlY3V0ZSBwbHVnaW5zIGluXG4gICAqIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGhhdmUgYmVlbiBhZGRlZCB1c2luZyB0aGlzIGZ1bmN0aW9uLlxuICAgKi9cbiAgYWRkUGx1Z2luKGNvbmZpZywgb3B0aW9ucykge1xuICAgIHRoaXMucGx1Z2lucy5wdXNoKHBsdWdpbihjb25maWcsIG9wdGlvbnMsIHRoaXMpKVxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHN0b3JlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBgY29uZmlnYCBhbmQgYXNzaWducyBpdCB0b1xuICAgKiBtYW5hZ2UgdGhlIHByb3ZpZGVkIGBrZXlgLiBXaGVuZXZlciB0aGlzIHN0b3JlIHJlc3BvbmRzIHRvIGFuIGFjdGlvbixcbiAgICogaXQgd2lsbCBiZSBwcm92aWRlZCB0aGUgY3VycmVudCBzdGF0ZSBmb3IgdGhhdCBwYXJ0aWN1bGFyIGtleS5cbiAgICovXG4gIGFkZFN0b3JlKGtleSwgY29uZmlnKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgYXJndW1lbnRzLmxlbmd0aCA8PSAxKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYE1pY3JvY29zbTo6YWRkU3RvcmUgZXhwZWN0ZWQgc3RyaW5nIGtleSBidXQgd2FzIGdpdmVuOiAkeyB0eXBlb2Yga2V5IH0uIERpZCB5b3UgZm9yZ2V0IHRvIGluY2x1ZGUgdGhlIGtleT9gKVxuICAgIH1cblxuICAgIHRoaXMuc3RvcmVzW2tleV0gPSBjb25maWdcblxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0cmFuc2Zvcm1pbmcgYXBwbGljYXRpb24gc3RhdGVcbiAgICogYWNjb3JkaW5nIHRvIHRoZSBgc2VyaWFsaXplYCBtZXRob2QgZGVzY3JpYmVkIGJ5IGVhY2ggc3RvcmUuXG4gICAqL1xuICBzZXJpYWxpemUoKSB7XG4gICAgcmV0dXJuIHJlbWFwKHRoaXMuc3RvcmVzLCAoc3RvcmUsIGtleSkgPT4gU3RvcmUuc2VyaWFsaXplKHN0b3JlLCB0aGlzLnN0YXRlW2tleV0pKVxuICB9LFxuXG4gIC8qKlxuICAgKiBGb3IgZWFjaCBrZXkgaW4gdGhlIHByb3ZpZGVkIGBkYXRhYCBwYXJhbWV0ZXIsIHRyYW5zZm9ybSBpdCB1c2luZ1xuICAgKiB0aGUgYGRlc2VyaWFsaXplYCBtZXRob2QgcHJvdmlkZWQgYnkgdGhlIHN0b3JlIG1hbmFnaW5nIHRoYXQga2V5LlxuICAgKiBUaGVuIGZvbGQgdGhlIGRlc2VyaWFsaXplZCBkYXRhIG92ZXIgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGUuXG4gICAqL1xuICBkZXNlcmlhbGl6ZShkYXRhKSB7XG4gICAgaWYgKGRhdGEgPT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZVxuICAgIH1cblxuICAgIHJldHVybiByZW1hcCh0aGlzLnN0b3JlcywgZnVuY3Rpb24oc3RvcmUsIGtleSkge1xuICAgICAgcmV0dXJuIFN0b3JlLmRlc2VyaWFsaXplKHN0b3JlLCBkYXRhW2tleV0pXG4gICAgfSlcbiAgfSxcblxuICAvKipcbiAgICogQWxpYXMgZm9yIGBzZXJpYWxpemVgXG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKClcbiAgfSxcblxuICAvKipcbiAgICogU3RhcnRzIGFuIGFwcGxpY2F0aW9uLiBJdCBkb2VzIGEgY291cGxlIG9mIHRoaW5nczpcbiAgICpcbiAgICogMS4gQ2FsbHMgYHRoaXMucmVzZXQoKWAgdG8gZGV0ZXJtaW5lIGluaXRpYWwgc3RhdGVcbiAgICogMi4gUnVucyB0aHJvdWdoIGFsbCBwbHVnaW5zLCBpdCB3aWxsIHRlcm1pbmF0ZSBpZiBhbnkgZmFpbFxuICAgKiAzLiBFeGVjdXRlcyB0aGUgcHJvdmlkZWQgY2FsbGJhY2ssIHBhc3NpbmcgYWxvbmcgYW55IGVycm9yc1xuICAgKiAgICBnZW5lcmF0ZWQgaWYgaW5zdGFsbGluZyBwbHVnaW5zIGZhaWxzLlxuICAgKi9cbiAgc3RhcnQoLi4uY2FsbGJhY2tzKSB7XG4gICAgdGhpcy5yZXNldCgpXG5cbiAgICAvLyBRdWV1ZSBwbHVnaW5zIGFuZCB0aGVuIG5vdGlmeSB0aGF0IGluc3RhbGxhdGlvbiBoYXMgZmluaXNoZWRcbiAgICBwbHVnaW4uaW5zdGFsbCh0aGlzLnBsdWdpbnMsIGVycm9yID0+IHtcbiAgICAgIGNhbGxiYWNrcy5mb3JFYWNoKGNiID0+IGNiLmNhbGwodGhpcywgZXJyb3IsIHRoaXMpKVxuICAgIH0pXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBNaWNyb2Nvc21cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9NaWNyb2Nvc20uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzVCLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUM5QixJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDMUMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ2xDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUNoQyxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7O0FBRTFCLElBQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQTs7QUFFdEIsSUFBSSxTQUFTLEdBQUcsU0FBWixTQUFTLEdBQWM7Ozs7OztBQU16QixPQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7Ozs7Ozs7O0FBUVgsTUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUE7Ozs7Ozs7QUFPZCxNQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7O0FBRXRCLE1BQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0FBQ2pCLE1BQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO0FBQ2hCLE1BQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFBO0NBQ3ZCLENBQUE7O0FBRUQsU0FBUyxDQUFDLFNBQVMsR0FBRztBQUNwQixhQUFXLEVBQUUsU0FBUzs7Ozs7O0FBTXRCLGlCQUFlLEVBQUEsMkJBQUc7QUFDaEIsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtHQUM1RDs7Ozs7OztBQU9ELHdCQUFzQixFQUFBLGdDQUFDLFdBQVcsRUFBRTtBQUNsQyxXQUFPLFdBQVcsQ0FBQyxJQUFJLENB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Q0FBRSxHQUFHLEVBQUUsS0FBSyxDQUFFLENBQUMsQ0FBQTs7QUFFaEMsV0FBTyxJQUFJLENBQUE7R0FDWjs7Ozs7O0FBTUQsV0FBUyxFQUFBLHFCQUFHO0FBQ1YsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7R0FDOUQ7Ozs7Ozs7QUFPRCxhQUFXLEVBQUEscUJBQUMsSUFBSSxFQUFFO0FBQ2hCLFFBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFO0FBQ2xCLGFBQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtLQUNsQjs7QUFFRCxXQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0dBQzFEOzs7OztBQUtELFFBQU0sRUFBQSxrQkFBRztBQUNQLFdBQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO0dBQ3hCOzs7Ozs7Ozs7O0FBVUQsT0FBSyxFQUFBLGlCQUFlOzs7c0NBQVgsU0FBUztBQUFULGVBQVM7OztBQUNoQixRQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7OztBQUdaLFVBQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFBLEtBQUssRUFBSTtBQUNwQyxlQUFTLENBQUMsT0FBTyxDQUFDLFVBQUEsRUFBRTtlQUFJLEVBQUUsQ0FBQyxJQUFJLFNBQU8sS0FBSyxTQUFPO09BQUEsQ0FBQyxDQUFBO0tBQ3BELENBQUMsQ0FBQTs7QUFFRixXQUFPLElBQUksQ0FBQTtHQUNaOztDQUVGLENBQUE7O0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUEiLCJmaWxlIjoiTWljcm9jb3NtLmpzIiwic291cmNlc0NvbnRlbnQiOlsibGV0IERpb2RlID0gcmVxdWlyZSgnZGlvZGUnKVxubGV0IFN0b3JlID0gcmVxdWlyZSgnLi9TdG9yZScpXG5sZXQgVHJhbnNhY3Rpb24gPSByZXF1aXJlKCcuL1RyYW5zYWN0aW9uJylcbmxldCBmbGF0dGVuID0gcmVxdWlyZSgnLi9mbGF0dGVuJylcbmxldCBwbHVnaW4gPSByZXF1aXJlKCcuL3BsdWdpbicpXG5sZXQgdGFnID0gcmVxdWlyZSgnLi90YWcnKVxuXG5jb25zdCBFTVBUWV9BUlJBWSA9IFtdXG5cbmxldCBNaWNyb2Nvc20gPSBmdW5jdGlvbigpIHtcbiAgLyoqXG4gICAqIE1pY3JvY29zbSB1c2VzIERpb2RlIGZvciBldmVudCBlbWlzc2lvbi4gRGlvZGUgaXMgYW4gZXZlbnQgZW1pdHRlclxuICAgKiB3aXRoIGEgc2luZ2xlIGV2ZW50LlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vdmlnZXRsYWJzL2Rpb2RlXG4gICAqL1xuICBEaW9kZSh0aGlzKVxuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGFsbCBcIm1lcmdlZFwiIHRyYW5zYWN0aW9ucy4gV2hlbmV2ZXIgYSB0cmFuc2FjdGlvbiBjb21wbGV0ZXMsXG4gICAqIHRoZSByZXN1bHQgaXMgZm9sZGVkIGludG8gYmFzZSBzdGF0ZSBhbmQgdGhlIHRyYW5zYWN0aW9uIG9iamVjdCBpc1xuICAgKiBcInJlbGVhc2VkXCIuIFRoaXMgbGV0cyB0cmFuc2FjdGlvbnMgZXhlY3V0ZSBpbiBhIHByZWRpY2FibGUgb3JkZXIgd2hpbGVcbiAgICogbm90IHNvYWtpbmcgdXAgbWVtb3J5IGtlZXBpbmcgdGhlbSBmb3JldmVyLlxuICAgKi9cbiAgdGhpcy5iYXNlID0ge31cblxuICAvKipcbiAgICogSG9sZHMgcHVibGljYWxseSBhdmFpbGFibGUgc3RhdGUuIFRoZSByZXN1bHQgb2YgZm9sZGluZyBhbGwgaW5jb21wbGV0ZVxuICAgKiB0cmFuc2FjdGlvbnMgb3ZlciBiYXNlIHN0YXRlLiBUaGlzIHByb3BlcnR5IGNhbiBzYWZlbHkgYmUgcmVmZXJlbmNlZCB3aGVuXG4gICAqIHJldHJpZXZpbmcgYXBwbGljYXRpb24gc3RhdGUuXG4gICAqL1xuICB0aGlzLnN0YXRlID0gdGhpcy5iYXNlXG5cbiAgdGhpcy5wbHVnaW5zID0gW11cbiAgdGhpcy5zdG9yZXMgPSBbXVxuICB0aGlzLnRyYW5zYWN0aW9ucyA9IFtdXG59XG5cbk1pY3JvY29zbS5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBNaWNyb2Nvc20sXG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgaW5pdGlhbCBzdGF0ZSBhIG1pY3JvY29zbSBzdGFydHMgd2l0aC4gQ2FsbGVkIHdoZW5ldmVyXG4gICAqIGEgbWljcm9jb3NtIHJ1bnMgc3RhcnQoKS5cbiAgICovXG4gIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICByZXR1cm4gU3RvcmUucmVkdWNlKHRoaXMuc3RvcmVzLCB7fSwgU3RvcmUuZ2V0SW5pdGlhbFN0YXRlKVxuICB9LFxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIGEgdHJhbnNhY3Rpb24gaXMgc3F1YXNoZWQgaW50byBiYXNlIHN0YXRlLiBUaGlzIG1ldGhvZFxuICAgKiBpcyB1c2VmdWwgdG8gb3ZlcnJpZGUgaWYgeW91IHdpc2ggdG8gcHJlc2VydmUgdHJhbnNhY3Rpb24gaGlzdG9yeVxuICAgKiBiZXlvbmQgb3V0c3RhbmRpbmcgdHJhbnNhY3Rpb25zLlxuICAgKi9cbiAgc2hvdWxkVHJhbnNhY3Rpb25NZXJnZSh0cmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi5tZXRhLmRvbmVcbiAgfSxcblxuICAvKlxuICAgKiBCZWZvcmUgZGlzcGF0Y2hpbmcsIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIGV2ZXJ5IHRyYW5zYWN0aW9uXG4gICAqL1xuICBzaG91bGRUcmFuc2FjdGlvbkRpc3BhdGNoKHRyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm1ldGEuYWN0aXZlXG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgcmVsZWFzZSh0cmFuc2FjdGlvbikge1xuICAgIHRoaXMudHJhbnNhY3Rpb25zLnNwbGljZSh0aGlzLnRyYW5zYWN0aW9ucy5pbmRleE9mKHRyYW5zYWN0aW9uKSwgMSlcbiAgfSxcblxuICB0cmFuc2FjdGlvbkRpZEZhaWwodHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLnJlbGVhc2UodHJhbnNhY3Rpb24pXG4gICAgcmV0dXJuIHRoaXMucm9sbGZvcndhcmQoKVxuICB9LFxuXG4gIC8qKlxuICAgKiBTdGFydGluZyBmcm9tIHRoZSBiZWdpbm5pbmcsIGNvbnNlY3V0aXZlbHkgZm9sZCBjb21wbGV0ZSB0cmFuc2FjdGlvbnMgaW50b1xuICAgKiBiYXNlIHN0YXRlIGFuZCByZW1vdmUgdGhlbSBmcm9tIHRoZSB0cmFuc2FjdGlvbiBsaXN0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25EaWRVcGRhdGUoKSB7XG4gICAgbGV0IGZpcnN0ID0gdGhpcy50cmFuc2FjdGlvbnNbMF1cblxuICAgIGlmICh0aGlzLnNob3VsZFRyYW5zYWN0aW9uTWVyZ2UoZmlyc3QsIHRoaXMudHJhbnNhY3Rpb25zKSkge1xuICAgICAgdGhpcy5iYXNlID0gdGhpcy5kaXNwYXRjaCh0aGlzLmJhc2UsIGZpcnN0KVxuICAgICAgdGhpcy5yZWxlYXNlKGZpcnN0KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJvbGxmb3J3YXJkKClcbiAgfSxcblxuICAvKipcbiAgICogRGlzcGF0Y2ggYWxsIG91dHN0YW5kaW5nLCBhY3RpdmUgdHJhbnNhY3Rpb25zIHVwb24gYmFzZSBzdGF0ZSB0byBkZXRlcm1pbmVcbiAgICogYSBuZXcgc3RhdGUuIFRoaXMgaXMgdGhlIHN0YXRlIGV4cG9zZWQgdG8gdGhlIG91dHNpZGUgd29ybGQuXG4gICAqL1xuICByb2xsZm9yd2FyZCgpIHtcbiAgICBsZXQgbmV4dCA9IHRoaXMudHJhbnNhY3Rpb25zLnJlZHVjZSh0aGlzLmRpc3BhdGNoLmJpbmQodGhpcyksIHRoaXMuYmFzZSlcblxuICAgIGlmIChuZXh0ICE9PSB0aGlzLnN0YXRlKSB7XG4gICAgICB0aGlzLnN0YXRlID0gbmV4dFxuICAgICAgdGhpcy5lbWl0KHRoaXMuc3RhdGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogRGlzcGF0Y2ggdGFrZXMgYW4gZXhpc3Rpbmcgc3RhdGUgYW5kIHBlcmZvcm1zIHRoZSByZXN1bHQgb2YgYSB0cmFuc2FjdGlvblxuICAgKiBvbiB0b3Agb2YgaXQuIFRoaXMgaXMgZGlmZmVyZW50IHRoYW4gb3RoZXIgRmx1eCBpbXBsZW1lbnRhdGlvbnMsIHRoZXJlXG4gICAqIGFyZSBubyBzaWRlLWVmZmVjdHMuXG4gICAqXG4gICAqIERpc3BhdGNoIGFuc3dlcnMgdGhlIHF1ZXN0aW9uOlxuICAgKiBcIldoYXQgd2lsbCBjaGFuZ2Ugd2hlbiBJIGFjY291bnQgZm9yIGEgdHJhbnNhY3Rpb24/XCJcbiAgICovXG4gIGRpc3BhdGNoKHN0YXRlLCB0cmFuc2FjdGlvbikge1xuICAgIGlmICh0aGlzLnNob3VsZFRyYW5zYWN0aW9uRGlzcGF0Y2godHJhbnNhY3Rpb24pID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuXG4gICAgcmV0dXJuIFN0b3JlLnJlZHVjZSh0aGlzLnN0b3Jlcywgc3RhdGUsIGZ1bmN0aW9uKHN0b3JlLCBzdWJzZXQpIHtcbiAgICAgIHJldHVybiBTdG9yZS5zZW5kKHN0b3JlLCBzdWJzZXQsIHRyYW5zYWN0aW9uKVxuICAgIH0pXG4gIH0sXG5cbiAgLyoqXG4gICAqIFBhcnRpYWxseSBhcHBsaWVzIGBwdXNoYC5cbiAgICovXG4gIHByZXBhcmUoYWN0aW9uLCBwYXJhbXM9W10pIHtcbiAgICByZXR1cm4gKG1vcmUsIGNhbGxiYWNrKSA9PiB0aGlzLnB1c2goYWN0aW9uLCBmbGF0dGVuKHBhcmFtcywgbW9yZSksIGNhbGxiYWNrKVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbiBhY3Rpb24uIEFzIHRoYXQgYWN0aW9uIHNpZ25hbHMgY2hhbmdlcywgaXQgd2lsbCB1cGRhdGVcbiAgICogYSB1bmlxdWUgdHJhbnNhY3Rpb24uIElmIGFuIGVycm9yIG9jY3VycywgaXQgd2lsbCBtYXJrIGl0IGZvciBjbGVhbiB1cFxuICAgKiBhbmQgdGhlIGNoYW5nZSB3aWxsIGRpc2FwcGVhciBmcm9tIGhpc3RvcnkuXG4gICAqL1xuICBwdXNoKGFjdGlvbiwgcGFyYW1zLCBjYWxsYmFjaykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGVvZiBhY3Rpb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgVHJpZWQgdG8gY3JlYXRlIFRyYW5zYWN0aW9uIGZvciAkeyBhY3Rpb24gfSwgYnV0IGl0IGlzIG5vdCBhIGZ1bmN0aW9uLmApXG4gICAgfVxuXG4gICAgbGV0IHRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uY3JlYXRlKHRhZyhhY3Rpb24pLnRvU3RyaW5nKCkpXG4gICAgbGV0IGJvZHkgPSBhY3Rpb24uYXBwbHkobnVsbCwgZmxhdHRlbihwYXJhbXMpKVxuXG4gICAgdGhpcy50cmFuc2FjdGlvbnMucHVzaCh0cmFuc2FjdGlvbilcblxuICAgIHJldHVybiBUcmFuc2FjdGlvbi5ydW4odHJhbnNhY3Rpb24sIGJvZHksIHRoaXMudHJhbnNhY3Rpb25EaWRVcGRhdGUsIHRoaXMudHJhbnNhY3Rpb25EaWRGYWlsLCBjYWxsYmFjaywgdGhpcylcbiAgfSxcblxuICAvKipcbiAgICogQ2xlYXIgYWxsIG91dHN0YW5kaW5nIHRyYW5zYWN0aW9ucyBhbmQgYXNzaWduIGJhc2Ugc3RhdGVcbiAgICogdG8gYSBnaXZlbiBvYmplY3QgKG9yIGdldEluaXRpYWxTdGF0ZSgpKVxuICAgKi9cbiAgcmVzZXQoc3RhdGU9dGhpcy5nZXRJbml0aWFsU3RhdGUoKSwgdHJhbnNhY3Rpb25zPUVNUFRZX0FSUkFZKSB7XG4gICAgdGhpcy50cmFuc2FjdGlvbnMgPSBmbGF0dGVuKHRyYW5zYWN0aW9ucykgLy8gUHJldmVudCBhY2NpZGVudGFsIG11dGF0aW9uXG4gICAgdGhpcy5iYXNlID0gc3RhdGVcblxuICAgIHJldHVybiB0aGlzLnJvbGxmb3J3YXJkKClcbiAgfSxcblxuICAvKipcbiAgICogUmVzZXRzIHRvIGEgZ2l2ZW4gc3RhdGUsIHBhc3NpbmcgaXQgdGhyb3VnaCBkZXNlcmlhbGl6ZSBmaXJzdFxuICAgKi9cbiAgcmVwbGFjZShkYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzZXQodGhpcy5kZXNlcmlhbGl6ZShkYXRhKSlcbiAgfSxcblxuICAvKipcbiAgICogUHVzaGVzIGEgcGx1Z2luIGluIHRvIHRoZSByZWdpc3RyeSBmb3IgYSBnaXZlbiBtaWNyb2Nvc20uXG4gICAqIFdoZW4gYGFwcC5zdGFydCgpYCBpcyBjYWxsZWQsIGl0IHdpbGwgZXhlY3V0ZSBwbHVnaW5zIGluXG4gICAqIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGhhdmUgYmVlbiBhZGRlZCB1c2luZyB0aGlzIGZ1bmN0aW9uLlxuICAgKi9cbiAgYWRkUGx1Z2luKGNvbmZpZywgb3B0aW9ucykge1xuICAgIHRoaXMucGx1Z2lucy5wdXNoKHBsdWdpbihjb25maWcsIG9wdGlvbnMsIHRoaXMpKVxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHN0b3JlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBgY29uZmlnYCBhbmQgYXNzaWducyBpdCB0b1xuICAgKiBtYW5hZ2UgdGhlIHByb3ZpZGVkIGBrZXlgLiBXaGVuZXZlciB0aGlzIHN0b3JlIHJlc3BvbmRzIHRvIGFuIGFjdGlvbixcbiAgICogaXQgd2lsbCBiZSBwcm92aWRlZCB0aGUgY3VycmVudCBzdGF0ZSBmb3IgdGhhdCBwYXJ0aWN1bGFyIGtleS5cbiAgICovXG4gIGFkZFN0b3JlKGtleSwgc3RvcmUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBhcmd1bWVudHMubGVuZ3RoIDw9IDEpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgTWljcm9jb3NtOjphZGRTdG9yZSBleHBlY3RlZCBzdHJpbmcga2V5IGJ1dCB3YXMgZ2l2ZW46ICR7IHR5cGVvZiBrZXkgfS4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSB0aGUga2V5P2ApXG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZXMucHVzaChbIGtleSwgc3RvcmUgXSlcblxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0cmFuc2Zvcm1pbmcgYXBwbGljYXRpb24gc3RhdGVcbiAgICogYWNjb3JkaW5nIHRvIHRoZSBgc2VyaWFsaXplYCBtZXRob2QgZGVzY3JpYmVkIGJ5IGVhY2ggc3RvcmUuXG4gICAqL1xuICBzZXJpYWxpemUoKSB7XG4gICAgcmV0dXJuIFN0b3JlLnJlZHVjZSh0aGlzLnN0b3JlcywgdGhpcy5zdGF0ZSwgU3RvcmUuc2VyaWFsaXplKVxuICB9LFxuXG4gIC8qKlxuICAgKiBGb3IgZWFjaCBrZXkgaW4gdGhlIHByb3ZpZGVkIGBkYXRhYCBwYXJhbWV0ZXIsIHRyYW5zZm9ybSBpdCB1c2luZ1xuICAgKiB0aGUgYGRlc2VyaWFsaXplYCBtZXRob2QgcHJvdmlkZWQgYnkgdGhlIHN0b3JlIG1hbmFnaW5nIHRoYXQga2V5LlxuICAgKiBUaGVuIGZvbGQgdGhlIGRlc2VyaWFsaXplZCBkYXRhIG92ZXIgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGUuXG4gICAqL1xuICBkZXNlcmlhbGl6ZShkYXRhKSB7XG4gICAgaWYgKGRhdGEgPT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZVxuICAgIH1cblxuICAgIHJldHVybiBTdG9yZS5yZWR1Y2UodGhpcy5zdG9yZXMsIGRhdGEsIFN0b3JlLmRlc2VyaWFsaXplKVxuICB9LFxuXG4gIC8qKlxuICAgKiBBbGlhcyBmb3IgYHNlcmlhbGl6ZWBcbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKVxuICB9LFxuXG4gIC8qKlxuICAgKiBTdGFydHMgYW4gYXBwbGljYXRpb24uIEl0IGRvZXMgYSBjb3VwbGUgb2YgdGhpbmdzOlxuICAgKlxuICAgKiAxLiBDYWxscyBgdGhpcy5yZXNldCgpYCB0byBkZXRlcm1pbmUgaW5pdGlhbCBzdGF0ZVxuICAgKiAyLiBSdW5zIHRocm91Z2ggYWxsIHBsdWdpbnMsIGl0IHdpbGwgdGVybWluYXRlIGlmIGFueSBmYWlsXG4gICAqIDMuIEV4ZWN1dGVzIHRoZSBwcm92aWRlZCBjYWxsYmFjaywgcGFzc2luZyBhbG9uZyBhbnkgZXJyb3JzXG4gICAqICAgIGdlbmVyYXRlZCBpZiBpbnN0YWxsaW5nIHBsdWdpbnMgZmFpbHMuXG4gICAqL1xuICBzdGFydCguLi5jYWxsYmFja3MpIHtcbiAgICB0aGlzLnJlc2V0KClcblxuICAgIC8vIFF1ZXVlIHBsdWdpbnMgYW5kIHRoZW4gbm90aWZ5IHRoYXQgaW5zdGFsbGF0aW9uIGhhcyBmaW5pc2hlZFxuICAgIHBsdWdpbi5pbnN0YWxsKHRoaXMucGx1Z2lucywgZXJyb3IgPT4ge1xuICAgICAgY2FsbGJhY2tzLmZvckVhY2goY2IgPT4gY2IuY2FsbCh0aGlzLCBlcnJvciwgdGhpcykpXG4gICAgfSlcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1pY3JvY29zbVxuIl19 |
@@ -6,2 +6,13 @@ /** | ||
exports.reduce = function (stores, state, transformer, initial) { | ||
return stores.reduce(function (next, item) { | ||
var key = item[0]; | ||
var store = item[1]; | ||
next[key] = transformer(store, state[key], key); | ||
return next; | ||
}, initial || {}); | ||
}; | ||
exports.getInitialState = function (store) { | ||
@@ -23,6 +34,12 @@ return store.getInitialState ? store.getInitialState() : undefined; | ||
var handler = store.register ? store.register()[type] : false; | ||
var pool = typeof store.register === 'function' ? store.register() : null; | ||
return handler ? handler.call(store, state, payload) : state; | ||
if (!pool || type in pool === false) { | ||
return state; | ||
} | ||
var handler = pool[type]; | ||
return typeof handler === 'function' ? handler.call(store, state, payload) : handler; | ||
}; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TdG9yZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBLE9BQU8sQ0FBQyxlQUFlLEdBQUcsVUFBVSxLQUFLLEVBQUU7QUFDekMsU0FBTyxLQUFLLENBQUMsZUFBZSxHQUFFLEtBQUssQ0FBQyxlQUFlLEVBQUUsR0FBRyxTQUFTLENBQUE7Q0FDbEUsQ0FBQTs7QUFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLFVBQVUsS0FBSyxFQUFFLEtBQUssRUFBRTtBQUMxQyxTQUFPLEtBQUssQ0FBQyxTQUFTLEdBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUE7Q0FDdkQsQ0FBQTs7QUFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLFVBQVUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUMxQyxTQUFPLEtBQUssQ0FBQyxXQUFXLEdBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUE7Q0FDdkQsQ0FBQTs7QUFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLFVBQVUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFpQixFQUFFO01BQWpCLE9BQU8sR0FBVCxJQUFpQixDQUFmLE9BQU87TUFBRSxJQUFJLEdBQWYsSUFBaUIsQ0FBTixJQUFJOztBQUNwRCxNQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxHQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUE7O0FBRTVELFNBQU8sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUE7Q0FDN0QsQ0FBQSIsImZpbGUiOiJTdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RvcmVcbiAqIFVzZWQgdG8gcHJvdmlkZSBkZWZhdWx0IHZhbHVlcyBmb3IgYSBzdG9yZSBjb25maWd1cmF0aW9uXG4gKi9cblxuZXhwb3J0cy5nZXRJbml0aWFsU3RhdGUgPSBmdW5jdGlvbiAoc3RvcmUpIHtcbiAgcmV0dXJuIHN0b3JlLmdldEluaXRpYWxTdGF0ZT8gc3RvcmUuZ2V0SW5pdGlhbFN0YXRlKCkgOiB1bmRlZmluZWRcbn1cblxuZXhwb3J0cy5zZXJpYWxpemUgPSBmdW5jdGlvbiAoc3RvcmUsIHN0YXRlKSB7XG4gIHJldHVybiBzdG9yZS5zZXJpYWxpemU/IHN0b3JlLnNlcmlhbGl6ZShzdGF0ZSkgOiBzdGF0ZVxufVxuXG5leHBvcnRzLmRlc2VyaWFsaXplID0gZnVuY3Rpb24gKHN0b3JlLCByYXcpIHtcbiAgcmV0dXJuIHN0b3JlLmRlc2VyaWFsaXplPyBzdG9yZS5kZXNlcmlhbGl6ZShyYXcpIDogcmF3XG59XG5cbmV4cG9ydHMuc2VuZCA9IGZ1bmN0aW9uIChzdG9yZSwgc3RhdGUsIHsgcGF5bG9hZCwgdHlwZSB9KSB7XG4gIGxldCBoYW5kbGVyID0gc3RvcmUucmVnaXN0ZXI/IHN0b3JlLnJlZ2lzdGVyKClbdHlwZV0gOiBmYWxzZVxuXG4gIHJldHVybiBoYW5kbGVyID8gaGFuZGxlci5jYWxsKHN0b3JlLCBzdGF0ZSwgcGF5bG9hZCkgOiBzdGF0ZVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TdG9yZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBLE9BQU8sQ0FBQyxNQUFNLEdBQUcsVUFBVSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7QUFDOUQsU0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN4QyxRQUFJLEdBQUcsR0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDbkIsUUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBOztBQUVuQixRQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7O0FBRS9DLFdBQU8sSUFBSSxDQUFBO0dBQ1osRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLENBQUE7Q0FDbEIsQ0FBQTs7QUFFRCxPQUFPLENBQUMsZUFBZSxHQUFHLFVBQVUsS0FBSyxFQUFFO0FBQ3pDLFNBQU8sS0FBSyxDQUFDLGVBQWUsR0FBRSxLQUFLLENBQUMsZUFBZSxFQUFFLEdBQUcsU0FBUyxDQUFBO0NBQ2xFLENBQUE7O0FBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxVQUFVLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDMUMsU0FBTyxLQUFLLENBQUMsU0FBUyxHQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFBO0NBQ3ZELENBQUE7O0FBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxVQUFVLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDMUMsU0FBTyxLQUFLLENBQUMsV0FBVyxHQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFBO0NBQ3ZELENBQUE7O0FBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxVQUFVLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBaUIsRUFBRTtNQUFqQixPQUFPLEdBQVQsSUFBaUIsQ0FBZixPQUFPO01BQUUsSUFBSSxHQUFmLElBQWlCLENBQU4sSUFBSTs7QUFDcEQsTUFBSSxJQUFJLEdBQUcsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFBOztBQUV6RSxNQUFJLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO0FBQ25DLFdBQU8sS0FBSyxDQUFBO0dBQ2I7O0FBRUQsTUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBOztBQUV4QixTQUFPLE9BQU8sT0FBTyxLQUFLLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFBO0NBQ3JGLENBQUEiLCJmaWxlIjoiU3RvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0b3JlXG4gKiBVc2VkIHRvIHByb3ZpZGUgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgc3RvcmUgY29uZmlndXJhdGlvblxuICovXG5cbmV4cG9ydHMucmVkdWNlID0gZnVuY3Rpb24gKHN0b3Jlcywgc3RhdGUsIHRyYW5zZm9ybWVyLCBpbml0aWFsKSB7XG4gIHJldHVybiBzdG9yZXMucmVkdWNlKGZ1bmN0aW9uKG5leHQsIGl0ZW0pIHtcbiAgICBsZXQga2V5ICAgPSBpdGVtWzBdXG4gICAgbGV0IHN0b3JlID0gaXRlbVsxXVxuXG4gICAgbmV4dFtrZXldID0gdHJhbnNmb3JtZXIoc3RvcmUsIHN0YXRlW2tleV0sIGtleSlcblxuICAgIHJldHVybiBuZXh0XG4gIH0sIGluaXRpYWwgfHwge30pXG59XG5cbmV4cG9ydHMuZ2V0SW5pdGlhbFN0YXRlID0gZnVuY3Rpb24gKHN0b3JlKSB7XG4gIHJldHVybiBzdG9yZS5nZXRJbml0aWFsU3RhdGU/IHN0b3JlLmdldEluaXRpYWxTdGF0ZSgpIDogdW5kZWZpbmVkXG59XG5cbmV4cG9ydHMuc2VyaWFsaXplID0gZnVuY3Rpb24gKHN0b3JlLCBzdGF0ZSkge1xuICByZXR1cm4gc3RvcmUuc2VyaWFsaXplPyBzdG9yZS5zZXJpYWxpemUoc3RhdGUpIDogc3RhdGVcbn1cblxuZXhwb3J0cy5kZXNlcmlhbGl6ZSA9IGZ1bmN0aW9uIChzdG9yZSwgcmF3KSB7XG4gIHJldHVybiBzdG9yZS5kZXNlcmlhbGl6ZT8gc3RvcmUuZGVzZXJpYWxpemUocmF3KSA6IHJhd1xufVxuXG5leHBvcnRzLnNlbmQgPSBmdW5jdGlvbiAoc3RvcmUsIHN0YXRlLCB7IHBheWxvYWQsIHR5cGUgfSkge1xuICBsZXQgcG9vbCA9IHR5cGVvZiBzdG9yZS5yZWdpc3RlciA9PT0gJ2Z1bmN0aW9uJyA/IHN0b3JlLnJlZ2lzdGVyKCkgOiBudWxsXG5cbiAgaWYgKCFwb29sIHx8IHR5cGUgaW4gcG9vbCA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gc3RhdGVcbiAgfVxuXG4gIGxldCBoYW5kbGVyID0gcG9vbFt0eXBlXVxuXG4gIHJldHVybiB0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJyA/IGhhbmRsZXIuY2FsbChzdG9yZSwgc3RhdGUsIHBheWxvYWQpIDogaGFuZGxlclxufVxuIl19 |
Sorry, the diff of this file is not supported yet
238481
24
451