New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

flummox

Package Overview
Dependencies
Maintainers
1
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flummox - npm Package Compare versions

Comparing version 3.1.1 to 3.1.2

4

CHANGELOG.md

@@ -12,2 +12,6 @@ # Changelog

## 3.1.2
- **Bugfix**
- Switch back to using `cloneWithProps()` instead of `cloneElement()` to fix context passing with FluxComponent. See [this issue](https://github.com/acdlite/flummox/issues/111#issuecomment-85172486) for an explanation.
## 3.1.1

@@ -14,0 +18,0 @@ - **Bugfix**

24

dist/flummox.js

@@ -5,10 +5,10 @@ var Flummox =

/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/
/******/ // Create a new module (and put it into the cache)

@@ -20,23 +20,23 @@ /******/ var module = installedModules[moduleId] = {

/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports

@@ -1350,2 +1350,2 @@ /******/ return __webpack_require__(0);

/***/ }
/******/ ])
/******/ ]);

@@ -1,1 +0,1 @@

var Flummox=function(t){function e(i){if(n[i])return n[i].exports;var s=n[i]={exports:{},id:i,loaded:!1};return t[i].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t.prototype.constructor.name}var s=function(t){return t&&t.__esModule?t["default"]:t},r=function(t,e){var n=Object.create(t.prototype),i=t.apply(n,e);return null==i||"object"!=typeof i&&"function"!=typeof i?n:i},a=function(){function t(t,e){for(var n in e){var i=e[n];i.configurable=!0,i.value&&(i.writable=!0)}Object.defineProperties(t,e)}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},c=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(e,"__esModule",{value:!0});var h=s(n(1)),u=s(n(2)),p=n(3).Dispatcher,f=s(n(4)),l=function(t){function e(){c(this,e),this.dispatcher=new p,this._stores={},this._actions={}}return o(e,t),a(e,{createStore:{value:function(t,e){for(var n=arguments.length,s=Array(n>2?n-2:0),a=2;n>a;a++)s[a-2]=arguments[a];if(!(e.prototype instanceof h)){var o=i(e);throw new Error("You've attempted to create a store from the class "+o+", which does not have the base Store class in its prototype chain. Make sure "+("you're using the `extends` keyword: `class "+o+" extends ")+"Store { ... }`")}if(this._stores.hasOwnProperty(t)&&this._stores[t])throw new Error("You've attempted to create multiple stores with key "+t+". Keys must be unique.");var c=r(e,s),u=this.dispatcher.register(c.handler.bind(c));return c._waitFor=this.waitFor.bind(this),c._token=u,this._stores[t]=c,c}},getStore:{value:function(t){return this._stores.hasOwnProperty(t)?this._stores[t]:void 0}},createActions:{value:function(t,e){for(var n=arguments.length,s=Array(n>2?n-2:0),a=2;n>a;a++)s[a-2]=arguments[a];if(!(e.prototype instanceof u)&&e!==u){var o=i(e);throw new Error("You've attempted to create actions from the class "+o+", which does not have the base Actions class in its prototype chain. Make "+("sure you're using the `extends` keyword: `class "+o+" ")+"extends Actions { ... }`")}if(this._actions.hasOwnProperty(t)&&this._actions[t])throw new Error("You've attempted to create multiple actions with key "+t+". Keys must be unique.");var c=r(e,s);return c.dispatch=this.dispatch.bind(this),c.dispatchAsync=this.dispatchAsync.bind(this),this._actions[t]=c,c}},getActions:{value:function(t){return this._actions.hasOwnProperty(t)?this._actions[t]:void 0}},getActionIds:{value:function(t){var e=this.getActions(t);if(e)return e.getConstants()}},dispatch:{value:function(t,e){this._dispatch({actionId:t,body:e})}},dispatchAsync:{value:function(t,e,n){var i=this,s={actionId:t,async:"begin"};return n&&(s.actionArgs=n),this._dispatch(s),e.then(function(e){return i._dispatch({actionId:t,body:e,async:"success"}),e},function(e){return i._dispatch({actionId:t,error:e,async:"failure"}),Promise.reject(e)})["catch"](function(t){return i.emit("error",t),Promise.reject(t)})}},_dispatch:{value:function(t){this.dispatcher.dispatch(t),this.emit("dispatch",t)}},waitFor:{value:function(t){Array.isArray(t)||(t=[t]);var e=function(t){return t instanceof h?t._token:t},n=t.map(e);this.dispatcher.waitFor(n)}},removeAllStoreListeners:{value:function(t){for(var e in this._stores)if(this._stores.hasOwnProperty(e)){var n=this._stores[e];n.removeAllListeners(t)}}},serialize:{value:function n(){var t={};for(var e in this._stores)if(this._stores.hasOwnProperty(e)){var i=this._stores[e],n=i.constructor.serialize;if("function"==typeof n){var s=n(i.state);if("string"!=typeof s){i.constructor.name}if(t[e]=s,"function"!=typeof i.constructor.deserialize){i.constructor.name}}}return JSON.stringify(t)}},deserialize:{value:function s(t){var e=void 0;try{e=JSON.parse(t)}catch(n){{this.constructor.name}}for(var i in this._stores)if(this._stores.hasOwnProperty(i)){var r=this._stores[i],s=r.constructor.deserialize;if("function"==typeof s){var a=e[i],o=s(a);if(r.replaceState(o),"function"!=typeof r.constructor.serialize){r.constructor.name}}}}}}),e}(f);e["default"]=l,l.prototype.getConstants=l.prototype.getActionIds,l.prototype.dehydrate=l.prototype.serialize,l.prototype.hydrate=l.prototype.deserialize;var d=l;e.Flux=l,e.Flummox=d,e.Store=h,e.Actions=u},function(t,e,n){"use strict";function i(t){return"function"==typeof t?t._id:t}var s=function(t){return t&&t.__esModule?t["default"]:t},r=function(){function t(t,e){for(var n in e){var i=e[n];i.configurable=!0,i.value&&(i.writable=!0)}Object.defineProperties(t,e)}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},c=s(n(4)),h=s(n(6)),u=function(t){function e(){o(this,e),this.state=null,this._handlers={},this._asyncHandlers={}}return a(e,t),r(e,{setState:{value:function(t){if("function"==typeof t){var e=this._isHandlingDispatch?this._pendingState:this.state;t=t(e)}this._isHandlingDispatch?(this._pendingState=this._assignState(this._pendingState,t),this._emitChangeAfterHandlingDispatch=!0):(this.state=this._assignState(this.state,t),this.emit("change"))}},replaceState:{value:function(t){this._isHandlingDispatch?(this._pendingState=this._assignState(void 0,t),this._emitChangeAfterHandlingDispatch=!0):(this.state=this._assignState(void 0,t),this.emit("change"))}},getStateAsObject:{value:function(){return this.state}},_assignState:{value:function(){for(var t=arguments.length,n=Array(t),i=0;t>i;i++)n[i]=arguments[i];return(this.constructor.assignState||e.assignState).apply(void 0,n)}},forceUpdate:{value:function(){this._isHandlingDispatch?this._emitChangeAfterHandlingDispatch=!0:this.emit("change")}},register:{value:function(t,e){t=i(t),"function"==typeof e&&(this._handlers[t]=e.bind(this))}},registerAsync:{value:function(t,e,n,s){t=i(t);var r={begin:e,success:n,failure:s};for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];"function"==typeof o?r[a]=o.bind(this):delete r[a]}this._asyncHandlers[t]=r}},waitFor:{value:function(t){this._waitFor(t)}},handler:{value:function(t){var e=t.body,n=t.actionId,i=t.async,s=t.actionArgs,r=t.error,a=this._handlers[n],o=this._asyncHandlers[n]&&this._asyncHandlers[n][i];if(i)switch(i){case"begin":return void("function"==typeof o&&this._performHandler.apply(this,[o].concat(s)));case"failure":return void("function"==typeof o&&this._performHandler(o,r));case"success":"function"==typeof o&&(a=o);break;default:return}"function"==typeof a&&this._performHandler(a,e)}},_performHandler:{value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),i=1;e>i;i++)n[i-1]=arguments[i];this._isHandlingDispatch=!0,this._pendingState=this._assignState(void 0,this.state),this._emitChangeAfterHandlingDispatch=!1;try{t.apply(this,n)}finally{this._emitChangeAfterHandlingDispatch&&(this.state=this._pendingState,this.emit("change")),this._isHandlingDispatch=!1,this._pendingState=void 0,this._emitChangeAfterHandlingDispatch=!1}}}},{assignState:{value:function(t,e){return h({},t,e)}}}),e}(c);t.exports=u},function(t,e,n){"use strict";function i(t){return t&&"function"==typeof t.then}var s=function(t){return t&&t.__esModule?t["default"]:t},r=function(){function t(t,e){for(var n in e){var i=e[n];i.configurable=!0,i.value&&(i.writable=!0)}Object.defineProperties(t,e)}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},o=s(n(7)),c=function(){function t(){a(this,t),this._baseId=o();for(var e=this._getActionMethodNames(),n=0;n<e.length;n++){var i=e[n];this._wrapAction(i)}this.getConstants=this.getActionIds}return r(t,{getActionIds:{value:function(){var t=this;return this._getActionMethodNames().reduce(function(e,n){return e[n]=t[n]._id,e},{})}},_getActionMethodNames:{value:function(){var t=this;return Object.getOwnPropertyNames(this.constructor.prototype).filter(function(e){return"constructor"!==e&&"function"==typeof t[e]})}},_wrapAction:{value:function(t){var e=this,n=this[t],s=this._createActionId(t),r=function(){for(var r=arguments.length,a=Array(r),o=0;r>o;o++)a[o]=arguments[o];var c=n.apply(e,a);if(i(c)){var h=c;e._dispatchAsync(s,h,a,t)["catch"](function(){})}else e._dispatch(s,c,a,t);return c};r._id=s,this[t]=r}},_createActionId:{value:function(t){return""+this._baseId+"-"+t}},_dispatch:{value:function(t,e,n,i){return"function"==typeof this.dispatch&&"undefined"!=typeof e&&this.dispatch(t,e,n),e}},_dispatchAsync:{value:function(t,e,n,i){return"function"==typeof this.dispatchAsync?this.dispatchAsync(t,e,n):e}}}),t}();t.exports=c},function(t,e,n){t.exports.Dispatcher=n(5)},function(t){"use strict";function e(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function n(){}n.prototype._events=void 0,n.prototype.listeners=function(t){if(!this._events||!this._events[t])return[];if(this._events[t].fn)return[this._events[t].fn];for(var e=0,n=this._events[t].length,i=new Array(n);n>e;e++)i[e]=this._events[t][e].fn;return i},n.prototype.emit=function(t,e,n,i,s,r){if(!this._events||!this._events[t])return!1;var a,o,c=this._events[t],h=arguments.length;if("function"==typeof c.fn){switch(c.once&&this.removeListener(t,c.fn,!0),h){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,i),!0;case 5:return c.fn.call(c.context,e,n,i,s),!0;case 6:return c.fn.call(c.context,e,n,i,s,r),!0}for(o=1,a=new Array(h-1);h>o;o++)a[o-1]=arguments[o];c.fn.apply(c.context,a)}else{var u,p=c.length;for(o=0;p>o;o++)switch(c[o].once&&this.removeListener(t,c[o].fn,!0),h){case 1:c[o].fn.call(c[o].context);break;case 2:c[o].fn.call(c[o].context,e);break;case 3:c[o].fn.call(c[o].context,e,n);break;default:if(!a)for(u=1,a=new Array(h-1);h>u;u++)a[u-1]=arguments[u];c[o].fn.apply(c[o].context,a)}}return!0},n.prototype.on=function(t,n,i){var s=new e(n,i||this);return this._events||(this._events={}),this._events[t]?this._events[t].fn?this._events[t]=[this._events[t],s]:this._events[t].push(s):this._events[t]=s,this},n.prototype.once=function(t,n,i){var s=new e(n,i||this,!0);return this._events||(this._events={}),this._events[t]?this._events[t].fn?this._events[t]=[this._events[t],s]:this._events[t].push(s):this._events[t]=s,this},n.prototype.removeListener=function(t,e,n){if(!this._events||!this._events[t])return this;var i=this._events[t],s=[];if(e&&(i.fn&&(i.fn!==e||n&&!i.once)&&s.push(i),!i.fn))for(var r=0,a=i.length;a>r;r++)(i[r].fn!==e||n&&!i[r].once)&&s.push(i[r]);return s.length?this._events[t]=1===s.length?s[0]:s:delete this._events[t],this},n.prototype.removeAllListeners=function(t){return this._events?(t?delete this._events[t]:this._events={},this):this},n.prototype.off=n.prototype.removeListener,n.prototype.addListener=n.prototype.on,n.prototype.setMaxListeners=function(){return this},n.EventEmitter=n,n.EventEmitter2=n,n.EventEmitter3=n,t.exports=n},function(t,e,n){"use strict";function i(){this.$Dispatcher_callbacks={},this.$Dispatcher_isPending={},this.$Dispatcher_isHandled={},this.$Dispatcher_isDispatching=!1,this.$Dispatcher_pendingPayload=null}var s=n(8),r=1,a="ID_";i.prototype.register=function(t){var e=a+r++;return this.$Dispatcher_callbacks[e]=t,e},i.prototype.unregister=function(t){s(this.$Dispatcher_callbacks[t],"Dispatcher.unregister(...): `%s` does not map to a registered callback.",t),delete this.$Dispatcher_callbacks[t]},i.prototype.waitFor=function(t){s(this.$Dispatcher_isDispatching,"Dispatcher.waitFor(...): Must be invoked while dispatching.");for(var e=0;e<t.length;e++){var n=t[e];this.$Dispatcher_isPending[n]?s(this.$Dispatcher_isHandled[n],"Dispatcher.waitFor(...): Circular dependency detected while waiting for `%s`.",n):(s(this.$Dispatcher_callbacks[n],"Dispatcher.waitFor(...): `%s` does not map to a registered callback.",n),this.$Dispatcher_invokeCallback(n))}},i.prototype.dispatch=function(t){s(!this.$Dispatcher_isDispatching,"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch."),this.$Dispatcher_startDispatching(t);try{for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]||this.$Dispatcher_invokeCallback(e)}finally{this.$Dispatcher_stopDispatching()}},i.prototype.isDispatching=function(){return this.$Dispatcher_isDispatching},i.prototype.$Dispatcher_invokeCallback=function(t){this.$Dispatcher_isPending[t]=!0,this.$Dispatcher_callbacks[t](this.$Dispatcher_pendingPayload),this.$Dispatcher_isHandled[t]=!0},i.prototype.$Dispatcher_startDispatching=function(t){for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]=!1,this.$Dispatcher_isHandled[e]=!1;this.$Dispatcher_pendingPayload=t,this.$Dispatcher_isDispatching=!0},i.prototype.$Dispatcher_stopDispatching=function(){this.$Dispatcher_pendingPayload=null,this.$Dispatcher_isDispatching=!1},t.exports=i},function(t){"use strict";function e(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=Object.assign||function(t){for(var n,i,s=e(t),r=1;r<arguments.length;r++){n=arguments[r],i=Object.keys(Object(n));for(var a=0;a<i.length;a++)s[i[a]]=n[i[a]]}return s}},function(t){"use strict";var e=0,n=t.exports=function(t){t=t||{};var n=t.prefix,i=t.suffix,s=++e*(t.multiplier||1);return null==n&&(n=""),null==i&&(i=""),String(n)+s+String(i)};n.reset=function(){return e=0}},function(t){"use strict";var e=function(t,e,n,i,s,r,a,o){if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var h=[n,i,s,r,a,o],u=0;c=new Error("Invariant Violation: "+e.replace(/%s/g,function(){return h[u++]}))}throw c.framesToPop=1,c}};t.exports=e}]);
var Flummox=function(t){function e(i){if(n[i])return n[i].exports;var s=n[i]={exports:{},id:i,loaded:!1};return t[i].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t.prototype.constructor.name}var s=function(t){return t&&t.__esModule?t["default"]:t},r=function(t,e){var n=Object.create(t.prototype),i=t.apply(n,e);return null==i||"object"!=typeof i&&"function"!=typeof i?n:i},a=function(){function t(t,e){for(var n in e){var i=e[n];i.configurable=!0,i.value&&(i.writable=!0)}Object.defineProperties(t,e)}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},c=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(e,"__esModule",{value:!0});var h=s(n(1)),u=s(n(2)),p=n(3).Dispatcher,f=s(n(4)),l=function(t){function e(){c(this,e),this.dispatcher=new p,this._stores={},this._actions={}}return o(e,t),a(e,{createStore:{value:function(t,e){for(var n=arguments.length,s=Array(n>2?n-2:0),a=2;n>a;a++)s[a-2]=arguments[a];if(!(e.prototype instanceof h)){var o=i(e);throw new Error("You've attempted to create a store from the class "+o+", which does not have the base Store class in its prototype chain. Make sure "+("you're using the `extends` keyword: `class "+o+" extends ")+"Store { ... }`")}if(this._stores.hasOwnProperty(t)&&this._stores[t])throw new Error("You've attempted to create multiple stores with key "+t+". Keys must be unique.");var c=r(e,s),u=this.dispatcher.register(c.handler.bind(c));return c._waitFor=this.waitFor.bind(this),c._token=u,this._stores[t]=c,c}},getStore:{value:function(t){return this._stores.hasOwnProperty(t)?this._stores[t]:void 0}},createActions:{value:function(t,e){for(var n=arguments.length,s=Array(n>2?n-2:0),a=2;n>a;a++)s[a-2]=arguments[a];if(!(e.prototype instanceof u)&&e!==u){var o=i(e);throw new Error("You've attempted to create actions from the class "+o+", which does not have the base Actions class in its prototype chain. Make "+("sure you're using the `extends` keyword: `class "+o+" ")+"extends Actions { ... }`")}if(this._actions.hasOwnProperty(t)&&this._actions[t])throw new Error("You've attempted to create multiple actions with key "+t+". Keys must be unique.");var c=r(e,s);return c.dispatch=this.dispatch.bind(this),c.dispatchAsync=this.dispatchAsync.bind(this),this._actions[t]=c,c}},getActions:{value:function(t){return this._actions.hasOwnProperty(t)?this._actions[t]:void 0}},getActionIds:{value:function(t){var e=this.getActions(t);if(e)return e.getConstants()}},dispatch:{value:function(t,e){this._dispatch({actionId:t,body:e})}},dispatchAsync:{value:function(t,e,n){var i=this,s={actionId:t,async:"begin"};return n&&(s.actionArgs=n),this._dispatch(s),e.then(function(e){return i._dispatch({actionId:t,body:e,async:"success"}),e},function(e){return i._dispatch({actionId:t,error:e,async:"failure"}),Promise.reject(e)})["catch"](function(t){return i.emit("error",t),Promise.reject(t)})}},_dispatch:{value:function(t){this.dispatcher.dispatch(t),this.emit("dispatch",t)}},waitFor:{value:function(t){Array.isArray(t)||(t=[t]);var e=function(t){return t instanceof h?t._token:t},n=t.map(e);this.dispatcher.waitFor(n)}},removeAllStoreListeners:{value:function(t){for(var e in this._stores)if(this._stores.hasOwnProperty(e)){var n=this._stores[e];n.removeAllListeners(t)}}},serialize:{value:function n(){var t={};for(var e in this._stores)if(this._stores.hasOwnProperty(e)){var i=this._stores[e],n=i.constructor.serialize;if("function"==typeof n){var s=n(i.state);if("string"!=typeof s){i.constructor.name}if(t[e]=s,"function"!=typeof i.constructor.deserialize){i.constructor.name}}}return JSON.stringify(t)}},deserialize:{value:function s(t){var e=void 0;try{e=JSON.parse(t)}catch(n){{this.constructor.name}}for(var i in this._stores)if(this._stores.hasOwnProperty(i)){var r=this._stores[i],s=r.constructor.deserialize;if("function"==typeof s){var a=e[i],o=s(a);if(r.replaceState(o),"function"!=typeof r.constructor.serialize){r.constructor.name}}}}}}),e}(f);e["default"]=l,l.prototype.getConstants=l.prototype.getActionIds,l.prototype.dehydrate=l.prototype.serialize,l.prototype.hydrate=l.prototype.deserialize;var d=l;e.Flux=l,e.Flummox=d,e.Store=h,e.Actions=u},function(t,e,n){"use strict";function i(t){return"function"==typeof t?t._id:t}var s=function(t){return t&&t.__esModule?t["default"]:t},r=function(){function t(t,e){for(var n in e){var i=e[n];i.configurable=!0,i.value&&(i.writable=!0)}Object.defineProperties(t,e)}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},c=s(n(4)),h=s(n(5)),u=function(t){function e(){o(this,e),this.state=null,this._handlers={},this._asyncHandlers={}}return a(e,t),r(e,{setState:{value:function(t){if("function"==typeof t){var e=this._isHandlingDispatch?this._pendingState:this.state;t=t(e)}this._isHandlingDispatch?(this._pendingState=this._assignState(this._pendingState,t),this._emitChangeAfterHandlingDispatch=!0):(this.state=this._assignState(this.state,t),this.emit("change"))}},replaceState:{value:function(t){this._isHandlingDispatch?(this._pendingState=this._assignState(void 0,t),this._emitChangeAfterHandlingDispatch=!0):(this.state=this._assignState(void 0,t),this.emit("change"))}},getStateAsObject:{value:function(){return this.state}},_assignState:{value:function(){for(var t=arguments.length,n=Array(t),i=0;t>i;i++)n[i]=arguments[i];return(this.constructor.assignState||e.assignState).apply(void 0,n)}},forceUpdate:{value:function(){this._isHandlingDispatch?this._emitChangeAfterHandlingDispatch=!0:this.emit("change")}},register:{value:function(t,e){t=i(t),"function"==typeof e&&(this._handlers[t]=e.bind(this))}},registerAsync:{value:function(t,e,n,s){t=i(t);var r={begin:e,success:n,failure:s};for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];"function"==typeof o?r[a]=o.bind(this):delete r[a]}this._asyncHandlers[t]=r}},waitFor:{value:function(t){this._waitFor(t)}},handler:{value:function(t){var e=t.body,n=t.actionId,i=t.async,s=t.actionArgs,r=t.error,a=this._handlers[n],o=this._asyncHandlers[n]&&this._asyncHandlers[n][i];if(i)switch(i){case"begin":return void("function"==typeof o&&this._performHandler.apply(this,[o].concat(s)));case"failure":return void("function"==typeof o&&this._performHandler(o,r));case"success":"function"==typeof o&&(a=o);break;default:return}"function"==typeof a&&this._performHandler(a,e)}},_performHandler:{value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),i=1;e>i;i++)n[i-1]=arguments[i];this._isHandlingDispatch=!0,this._pendingState=this._assignState(void 0,this.state),this._emitChangeAfterHandlingDispatch=!1;try{t.apply(this,n)}finally{this._emitChangeAfterHandlingDispatch&&(this.state=this._pendingState,this.emit("change")),this._isHandlingDispatch=!1,this._pendingState=void 0,this._emitChangeAfterHandlingDispatch=!1}}}},{assignState:{value:function(t,e){return h({},t,e)}}}),e}(c);t.exports=u},function(t,e,n){"use strict";function i(t){return t&&"function"==typeof t.then}var s=function(t){return t&&t.__esModule?t["default"]:t},r=function(){function t(t,e){for(var n in e){var i=e[n];i.configurable=!0,i.value&&(i.writable=!0)}Object.defineProperties(t,e)}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},o=s(n(7)),c=function(){function t(){a(this,t),this._baseId=o();for(var e=this._getActionMethodNames(),n=0;n<e.length;n++){var i=e[n];this._wrapAction(i)}this.getConstants=this.getActionIds}return r(t,{getActionIds:{value:function(){var t=this;return this._getActionMethodNames().reduce(function(e,n){return e[n]=t[n]._id,e},{})}},_getActionMethodNames:{value:function(){var t=this;return Object.getOwnPropertyNames(this.constructor.prototype).filter(function(e){return"constructor"!==e&&"function"==typeof t[e]})}},_wrapAction:{value:function(t){var e=this,n=this[t],s=this._createActionId(t),r=function(){for(var r=arguments.length,a=Array(r),o=0;r>o;o++)a[o]=arguments[o];var c=n.apply(e,a);if(i(c)){var h=c;e._dispatchAsync(s,h,a,t)["catch"](function(){})}else e._dispatch(s,c,a,t);return c};r._id=s,this[t]=r}},_createActionId:{value:function(t){return""+this._baseId+"-"+t}},_dispatch:{value:function(t,e,n,i){return"function"==typeof this.dispatch&&"undefined"!=typeof e&&this.dispatch(t,e,n),e}},_dispatchAsync:{value:function(t,e,n,i){return"function"==typeof this.dispatchAsync?this.dispatchAsync(t,e,n):e}}}),t}();t.exports=c},function(t,e,n){t.exports.Dispatcher=n(6)},function(t){"use strict";function e(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function n(){}n.prototype._events=void 0,n.prototype.listeners=function(t){if(!this._events||!this._events[t])return[];if(this._events[t].fn)return[this._events[t].fn];for(var e=0,n=this._events[t].length,i=new Array(n);n>e;e++)i[e]=this._events[t][e].fn;return i},n.prototype.emit=function(t,e,n,i,s,r){if(!this._events||!this._events[t])return!1;var a,o,c=this._events[t],h=arguments.length;if("function"==typeof c.fn){switch(c.once&&this.removeListener(t,c.fn,!0),h){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,i),!0;case 5:return c.fn.call(c.context,e,n,i,s),!0;case 6:return c.fn.call(c.context,e,n,i,s,r),!0}for(o=1,a=new Array(h-1);h>o;o++)a[o-1]=arguments[o];c.fn.apply(c.context,a)}else{var u,p=c.length;for(o=0;p>o;o++)switch(c[o].once&&this.removeListener(t,c[o].fn,!0),h){case 1:c[o].fn.call(c[o].context);break;case 2:c[o].fn.call(c[o].context,e);break;case 3:c[o].fn.call(c[o].context,e,n);break;default:if(!a)for(u=1,a=new Array(h-1);h>u;u++)a[u-1]=arguments[u];c[o].fn.apply(c[o].context,a)}}return!0},n.prototype.on=function(t,n,i){var s=new e(n,i||this);return this._events||(this._events={}),this._events[t]?this._events[t].fn?this._events[t]=[this._events[t],s]:this._events[t].push(s):this._events[t]=s,this},n.prototype.once=function(t,n,i){var s=new e(n,i||this,!0);return this._events||(this._events={}),this._events[t]?this._events[t].fn?this._events[t]=[this._events[t],s]:this._events[t].push(s):this._events[t]=s,this},n.prototype.removeListener=function(t,e,n){if(!this._events||!this._events[t])return this;var i=this._events[t],s=[];if(e&&(i.fn&&(i.fn!==e||n&&!i.once)&&s.push(i),!i.fn))for(var r=0,a=i.length;a>r;r++)(i[r].fn!==e||n&&!i[r].once)&&s.push(i[r]);return s.length?this._events[t]=1===s.length?s[0]:s:delete this._events[t],this},n.prototype.removeAllListeners=function(t){return this._events?(t?delete this._events[t]:this._events={},this):this},n.prototype.off=n.prototype.removeListener,n.prototype.addListener=n.prototype.on,n.prototype.setMaxListeners=function(){return this},n.EventEmitter=n,n.EventEmitter2=n,n.EventEmitter3=n,t.exports=n},function(t){"use strict";function e(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=Object.assign||function(t){for(var n,i,s=e(t),r=1;r<arguments.length;r++){n=arguments[r],i=Object.keys(Object(n));for(var a=0;a<i.length;a++)s[i[a]]=n[i[a]]}return s}},function(t,e,n){"use strict";function i(){this.$Dispatcher_callbacks={},this.$Dispatcher_isPending={},this.$Dispatcher_isHandled={},this.$Dispatcher_isDispatching=!1,this.$Dispatcher_pendingPayload=null}var s=n(8),r=1,a="ID_";i.prototype.register=function(t){var e=a+r++;return this.$Dispatcher_callbacks[e]=t,e},i.prototype.unregister=function(t){s(this.$Dispatcher_callbacks[t],"Dispatcher.unregister(...): `%s` does not map to a registered callback.",t),delete this.$Dispatcher_callbacks[t]},i.prototype.waitFor=function(t){s(this.$Dispatcher_isDispatching,"Dispatcher.waitFor(...): Must be invoked while dispatching.");for(var e=0;e<t.length;e++){var n=t[e];this.$Dispatcher_isPending[n]?s(this.$Dispatcher_isHandled[n],"Dispatcher.waitFor(...): Circular dependency detected while waiting for `%s`.",n):(s(this.$Dispatcher_callbacks[n],"Dispatcher.waitFor(...): `%s` does not map to a registered callback.",n),this.$Dispatcher_invokeCallback(n))}},i.prototype.dispatch=function(t){s(!this.$Dispatcher_isDispatching,"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch."),this.$Dispatcher_startDispatching(t);try{for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]||this.$Dispatcher_invokeCallback(e)}finally{this.$Dispatcher_stopDispatching()}},i.prototype.isDispatching=function(){return this.$Dispatcher_isDispatching},i.prototype.$Dispatcher_invokeCallback=function(t){this.$Dispatcher_isPending[t]=!0,this.$Dispatcher_callbacks[t](this.$Dispatcher_pendingPayload),this.$Dispatcher_isHandled[t]=!0},i.prototype.$Dispatcher_startDispatching=function(t){for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]=!1,this.$Dispatcher_isHandled[e]=!1;this.$Dispatcher_pendingPayload=t,this.$Dispatcher_isDispatching=!0},i.prototype.$Dispatcher_stopDispatching=function(){this.$Dispatcher_pendingPayload=null,this.$Dispatcher_isDispatching=!1},t.exports=i},function(t){"use strict";var e=0,n=t.exports=function(t){t=t||{};var n=t.prefix,i=t.suffix,s=++e*(t.multiplier||1);return null==n&&(n=""),null==i&&(i=""),String(n)+s+String(i)};n.reset=function(){return e=0}},function(t){"use strict";var e=function(t,e,n,i,s,r,a,o){if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var h=[n,i,s,r,a,o],u=0;c=new Error("Invariant Violation: "+e.replace(/%s/g,function(){return h[u++]}))}throw c.framesToPop=1,c}};t.exports=e}]);

@@ -87,2 +87,6 @@ API: `FluxComponent`

### `flux`
Indicates the [Flux instance](./Flux.md) to be used. It will be added to the context of all its nested components. If unset, it'll try to infer it from the context.
### `connectToStores`

@@ -95,1 +99,5 @@

This prop has the same effect as passing the second argument to [FluxMixin](FluxMixin.md)'s `connectToStores()`.
### `render`
Optionally overrides the rendering function, useful to control what state is passed down as props to components.

@@ -107,3 +107,3 @@ API: `Store`

```js
setState(object nextState)
setState(function|object nextState[, function callback])
```

@@ -115,2 +115,8 @@

You can also do transactional state updates by passing a function:
```js
this.setState(state => ({ counter: state.counter + 1 }));
```
### replaceState

@@ -117,0 +123,0 @@

@@ -129,1 +129,44 @@ # React integration guide

If `storeA` has state `{foo: 'bar'}` and `storeB` has state `{bar: 'baz'}`, then MyComponent has state `{foo: 'bar', bar: 'baz'}`. Whenever the stores change, so does MyComponent.
## Using a Custom Dispatcher
**tl;dr** Flummox uses the flux dispatcher from Facebook, but you can switch out whatever api compatible dispatcher you want.
***
Usually the dispatcher provided by Facebook is sufficient, but you aren't limited to using it if you find you need more than it provides. If you want to have custom behavior when dispatching actions, you can provide a wrapper for the Facebook dispatcher that does what you want. Or use something else entirely. It's up to you.
To substitute a different dispatcher object just change the `constructor()` function of your flux object like this:
```js
class Flux extends Flummox {
constructor() {
super();
this.dispatcher = new MyCustomDispatcher();
}
}
```
Just remember, whatever object you provide has to follow the same api as the dispatcher from Facebook. The easiest way to do that is to extend the Facebook dispatcher in a new class, and then provide whatever alternate or extended functionality you desire.
For instance, say you want to allow the dispatcher to receive actions for dispatching while it is in the middle of another action dispatch. The standard dispatcher will complain that you cannot dispatch an action during another action. There are good reasons for this, but perhaps you just want to queue up that action and have it execute when the current action is completed. One easy way to do this would be to use `setTimeout()`. To do this you would provide a dispatcher with slightly different dispatch functionality, like this:
```js
class MyCustomDispatcher extends Dispatcher {
dispatch(...args) {
if (!this.isDispatching()) {
super.dispatch(...args); // This will execute the Facebook dispatcher's dispatch function.
} else {
setTimeout(() => { // We are currently dispatching, so delay this action using setTimeout
super.dispatch(...args);
}, 0);
}
}
}
```

@@ -129,8 +129,7 @@ "use strict";

value: function render() {
return React.createElement(FluxComponent, {
flux: flux,
render: function () {
return React.createElement(SubView, null);
}
});
return React.createElement(
FluxComponent,
{ flux: flux },
React.createElement(SubView, null)
);
}

@@ -395,2 +394,2 @@ }

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGRvbnMvX190ZXN0c19fL0ZsdXhDb21wb25lbnQtdGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7b0JBQXdDLFlBQVk7O0lBQTNDLE9BQU8sU0FBUCxPQUFPO0lBQUUsS0FBSyxTQUFMLEtBQUs7SUFBRSxPQUFPLFNBQVAsT0FBTzs7SUFDekIsVUFBVSwyQkFBTSxjQUFjOztJQUU5QixLQUFLLDJCQUFNLGNBQWM7O0lBQ3hCLFNBQVMsR0FBSyxLQUFLLENBQUMsTUFBTSxDQUExQixTQUFTOztJQUVWLGFBQWEsMkJBQU0sa0JBQWtCOztJQUNyQyxLQUFLLDJCQUFNLE9BQU87O0FBRXpCLFFBQVEsQ0FBQyxlQUFlLEVBQUUsWUFBTTtNQUV4QixXQUFXO2FBQVgsV0FBVzs0QkFBWCxXQUFXOzs7Ozs7O2NBQVgsV0FBVzs7aUJBQVgsV0FBVztBQUNmLGtCQUFZO2VBQUEsc0JBQUMsU0FBUyxFQUFFO0FBQ3RCLGlCQUFPLFNBQVMsQ0FBQztTQUNsQjs7OztXQUhHLFdBQVc7S0FBUyxPQUFPOztNQU0zQixTQUFTO0FBQ0YsYUFEUCxTQUFTLENBQ0QsSUFBSSxFQUFFOzRCQURkLFNBQVM7O0FBRVgsaUNBRkUsU0FBUyw2Q0FFSDs7QUFFUixVQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLFVBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs7QUFFakUsVUFBSSxDQUFDLEtBQUssR0FBRztBQUNYLGlCQUFTLEVBQUUsSUFBSTtPQUNoQixDQUFDO0tBQ0g7O2NBVkcsU0FBUzs7aUJBQVQsU0FBUztBQVliLHdCQUFrQjtlQUFBLDRCQUFDLFNBQVMsRUFBRTtBQUM1QixjQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFULFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDOUI7Ozs7V0FkRyxT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QUMsb0JBQUMsS0FBSyxPQUFHLENBQUMsQ0FBQztBQUN0RCxRQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsK0JBQStCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDOztBQUVwRSxVQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLFNBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUMvQixVQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQ3ZDLENBQUMsQ0FBQztDQUVKLENBQUMsQ0FBQyIsImZpbGUiOiJzcmMvYWRkb25zL19fdGVzdHNfXy9GbHV4Q29tcG9uZW50LXRlc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbHVtbW94LCBTdG9yZSwgQWN0aW9ucyB9IGZyb20gJy4uLy4uL0ZsdXgnO1xuaW1wb3J0IGFkZENvbnRleHQgZnJvbSAnLi9hZGRDb250ZXh0JztcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0L2FkZG9ucyc7XG5jb25zdCB7IFRlc3RVdGlscyB9ID0gUmVhY3QuYWRkb25zO1xuXG5pbXBvcnQgRmx1eENvbXBvbmVudCBmcm9tICcuLi9GbHV4Q29tcG9uZW50JztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5cbmRlc2NyaWJlKCdGbHV4Q29tcG9uZW50JywgKCkgPT4ge1xuXG4gIGNsYXNzIFRlc3RBY3Rpb25zIGV4dGVuZHMgQWN0aW9ucyB7XG4gICAgZ2V0U29tZXRoaW5nKHNvbWV0aGluZykge1xuICAgICAgcmV0dXJuIHNvbWV0aGluZztcbiAgICB9XG4gIH1cblxuICBjbGFzcyBUZXN0U3RvcmUgZXh0ZW5kcyBTdG9yZSB7XG4gICAgY29uc3RydWN0b3IoZmx1eCkge1xuICAgICAgc3VwZXIoKTtcblxuICAgICAgY29uc3QgdGVzdEFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ3Rlc3QnKTtcbiAgICAgIHRoaXMucmVnaXN0ZXIodGVzdEFjdGlvbnMuZ2V0U29tZXRoaW5nLCB0aGlzLmhhbmRsZUdldFNvbWV0aGluZyk7XG5cbiAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgIHNvbWV0aGluZzogbnVsbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBoYW5kbGVHZXRTb21ldGhpbmcoc29tZXRoaW5nKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc29tZXRoaW5nIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsYXNzIEZsdXggZXh0ZW5kcyBGbHVtbW94IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG5cbiAgICAgIHRoaXMuY3JlYXRlQWN0aW9ucygndGVzdCcsIFRlc3RBY3Rpb25zKTtcbiAgICAgIHRoaXMuY3JlYXRlU3RvcmUoJ3Rlc3QnLCBUZXN0U3RvcmUsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIGl0KCdnZXRzIEZsdXggcHJvcGVydHkgZnJvbSBlaXRoZXIgcHJvcHMgb3IgY29udGV4dCcsICgpID0+IHtcbiAgICBjb25zdCBmbHV4ID0gbmV3IEZsdXgoKTtcbiAgICBsZXQgY29udGV4dENvbXBvbmVudCwgcHJvcHNDb21wb25lbnQ7XG5cbiAgICBjb25zdCBDb250ZXh0Q29tcG9uZW50ID0gYWRkQ29udGV4dChcbiAgICAgIEZsdXhDb21wb25lbnQsXG4gICAgICB7IGZsdXggfSxcbiAgICAgIHsgZmx1eDogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoRmx1bW1veCkgfVxuICAgICk7XG5cbiAgICBjb25zdCB0cmVlID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCg8Q29udGV4dENvbXBvbmVudCAvPik7XG5cbiAgICBjb250ZXh0Q29tcG9uZW50ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZENvbXBvbmVudFdpdGhUeXBlKFxuICAgICAgdHJlZSwgRmx1eENvbXBvbmVudFxuICAgICk7XG5cbiAgICBwcm9wc0NvbXBvbmVudCA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fSAvPlxuICAgICk7XG5cbiAgICBleHBlY3QoY29udGV4dENvbXBvbmVudC5mbHV4KS50by5iZS5hbi5pbnN0YW5jZW9mKEZsdW1tb3gpO1xuICAgIGV4cGVjdChwcm9wc0NvbXBvbmVudC5mbHV4KS50by5iZS5hbi5pbnN0YW5jZW9mKEZsdW1tb3gpO1xuICB9KTtcblxuICBpdCgnYWxsb3dzIGZvciBGbHV4Q29tcG9uZW50cyB0aHJvdWdoIHRoZSB0cmVlIHZpYSBjb250ZXh0JywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ3Rlc3QnKTtcblxuICAgIGNsYXNzIFRvcFZpZXcgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGbHV4Q29tcG9uZW50XG4gICAgICAgICAgICBmbHV4PXtmbHV4fVxuICAgICAgICAgICAgcmVuZGVyPXsoKSA9PiA8U3ViVmlldyAvPn1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNsYXNzIFN1YlZpZXcgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gPFN1YlN1YlZpZXcgLz47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3MgU3ViU3ViVmlldyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiA8Rmx1eENvbXBvbmVudCBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCI+XG4gICAgICAgICAgPGRpdiAvPlxuICAgICAgICA8L0ZsdXhDb21wb25lbnQ+O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRyZWUgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgPFRvcFZpZXcgLz5cbiAgICApO1xuXG4gICAgY29uc3QgZGl2ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcodHJlZSwgJ2RpdicpO1xuXG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgZXhwZWN0KGRpdi5wcm9wcy5zb21ldGhpbmcpLnRvLmVxdWFsKCdzb21ldGhpbmcgZ29vZCcpO1xuICB9KTtcblxuICBpdCgncGFzc2VzIGNvbm5lY3RUb1N0b3JlIHByb3AgdG8gcmVhY3RDb21wb25lbnRNZXRob2QgY29ubmVjdFRvU3RvcmVzKCknLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG4gICAgY29uc3QgYWN0aW9ucyA9IGZsdXguZ2V0QWN0aW9ucygndGVzdCcpO1xuXG4gICAgY29uc3QgY29tcG9uZW50ID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIDxGbHV4Q29tcG9uZW50IGZsdXg9e2ZsdXh9IGNvbm5lY3RUb1N0b3Jlcz1cInRlc3RcIiAvPlxuICAgICk7XG5cbiAgICBhY3Rpb25zLmdldFNvbWV0aGluZygnc29tZXRoaW5nIGdvb2QnKTtcbiAgICBleHBlY3QoY29tcG9uZW50LnN0YXRlLnNvbWV0aGluZykudG8uZGVlcC5lcXVhbCgnc29tZXRoaW5nIGdvb2QnKTtcbiAgICBhY3Rpb25zLmdldFNvbWV0aGluZygnc29tZXRoaW5nIGVsc2UnKTtcbiAgICBleHBlY3QoY29tcG9uZW50LnN0YXRlLnNvbWV0aGluZykudG8uZGVlcC5lcXVhbCgnc29tZXRoaW5nIGVsc2UnKTtcbiAgfSk7XG5cbiAgaXQoJ3Bhc3NlcyBzdGF0ZUdldHRlciBwcm9wIHRvIHJlYWN0Q29tcG9uZW50TWV0aG9kIGNvbm5lY3RUb1N0b3JlcygpJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ3Rlc3QnKTtcbiAgICBjb25zdCBzdGF0ZUdldHRlciA9IHNpbm9uLnN0dWIoKS5yZXR1cm5zKHsgZml6OiAnYmluJyB9KTtcblxuICAgIGNvbnN0IGNvbXBvbmVudCA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fSBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCIgc3RhdGVHZXR0ZXI9e3N0YXRlR2V0dGVyfSAvPlxuICAgICk7XG5cbiAgICBleHBlY3QoY29tcG9uZW50LnN0YXRlLmZpeikudG8uZXF1YWwoJ2JpbicpO1xuICB9KTtcblxuICBpdCgnaW5qZWN0cyBjaGlsZHJlbiB3aXRoIGZsdXggcHJvcCcsICgpID0+IHtcbiAgICBjb25zdCBmbHV4ID0gbmV3IEZsdXgoKTtcbiAgICBjb25zdCBhY3Rpb25zID0gZmx1eC5nZXRBY3Rpb25zKCd0ZXN0Jyk7XG5cbiAgICBjb25zdCB0cmVlID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIDxGbHV4Q29tcG9uZW50IGZsdXg9e2ZsdXh9PlxuICAgICAgICA8ZGl2IC8+XG4gICAgICA8L0ZsdXhDb21wb25lbnQ+XG4gICAgKTtcblxuICAgIGNvbnN0IGRpdiA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKHRyZWUsICdkaXYnKTtcblxuICAgIGV4cGVjdChkaXYucHJvcHMuZmx1eCkudG8uZXF1YWwoZmx1eCk7XG4gIH0pO1xuXG4gIGl0KCdpbmplY3RzIGNoaWxkcmVuIHdpdGggcHJvcHMgY29ycmVzcG9uZGluZyB0byBjb21wb25lbnQgc3RhdGUnLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG4gICAgY29uc3QgYWN0aW9ucyA9IGZsdXguZ2V0QWN0aW9ucygndGVzdCcpO1xuXG4gICAgY29uc3QgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fSBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCI+XG4gICAgICAgIDxkaXYgLz5cbiAgICAgIDwvRmx1eENvbXBvbmVudD5cbiAgICApO1xuXG4gICAgY29uc3QgZGl2ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcodHJlZSwgJ2RpdicpO1xuXG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgZXhwZWN0KGRpdi5wcm9wcy5zb21ldGhpbmcpLnRvLmVxdWFsKCdzb21ldGhpbmcgZ29vZCcpO1xuICAgIGFjdGlvbnMuZ2V0U29tZXRoaW5nKCdzb21ldGhpbmcgZWxzZScpO1xuICAgIGV4cGVjdChkaXYucHJvcHMuc29tZXRoaW5nKS50by5lcXVhbCgnc29tZXRoaW5nIGVsc2UnKTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdHMgY2hpbGRyZW4gd2l0aCBhbnkgZXh0cmEgcHJvcHMnLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG4gICAgY29uc3Qgc3RhdGVHZXR0ZXIgPSAoKSA9PiB7fTtcblxuICAgIC8vIFBhc3MgYWxsIHBvc3NpYmxlIFByb3BUeXBlcyB0byBlbnN1cmUgb25seSBleHRyYSBwcm9wc1xuICAgIC8vIGFyZSBpbmplY3RlZC5cbiAgICBjb25zdCB0cmVlID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIDxGbHV4Q29tcG9uZW50XG4gICAgICAgIGZsdXg9e2ZsdXh9XG4gICAgICAgIGNvbm5lY3RUb1N0b3Jlcz1cInRlc3RcIlxuICAgICAgICBzdGF0ZUdldHRlcj17c3RhdGVHZXR0ZXJ9XG4gICAgICAgIGV4dHJhUHJvcD1cImhlbGxvXCJcbiAgICAgICAgcmVuZGVyPXsocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPn1cbiAgICAgIC8+XG4gICAgKTtcblxuICAgIGNvbnN0IGRpdiA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKHRyZWUsICdkaXYnKTtcblxuICAgIGV4cGVjdChkaXYucHJvcHMuZXh0cmFQcm9wKS50by5lcXVhbCgnaGVsbG8nKTtcbiAgICBleHBlY3QoT2JqZWN0LmtleXMoZGl2LnByb3BzKSkudG8uZGVlcC5lcXVhbChbJ2ZsdXgnLCAnZXh0cmFQcm9wJ10pO1xuICB9KTtcblxuICBpdCgnd3JhcHMgbXVsdGlwbGUgY2hpbGRyZW4gaW4gc3BhbiB0YWcnLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG5cbiAgICBjb25zdCB0cmVlID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIDxGbHV4Q29tcG9uZW50IGZsdXg9e2ZsdXh9PlxuICAgICAgICA8ZGl2IC8+XG4gICAgICAgIDxkaXYgLz5cbiAgICAgIDwvRmx1eENvbXBvbmVudD5cbiAgICApO1xuXG4gICAgY29uc3Qgd3JhcHBlciA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKHRyZWUsICdzcGFuJyk7XG4gICAgY29uc3QgZGl2cyA9IFRlc3RVdGlscy5zY3J5UmVuZGVyZWRET01Db21wb25lbnRzV2l0aFRhZyh0cmVlLCAnZGl2Jyk7XG5cbiAgICBleHBlY3QoZGl2cy5sZW5ndGgpLnRvLmVxdWFsKDIpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3Qgd3JhcCBzaW5nbGUgY2hpbGQgaW4gc3BhbiB0YWcnLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG5cbiAgICBjb25zdCB0cmVlID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIDxGbHV4Q29tcG9uZW50IGZsdXg9e2ZsdXh9PlxuICAgICAgICA8ZGl2IC8+XG4gICAgICA8L0ZsdXhDb21wb25lbnQ+XG4gICAgKTtcblxuICAgIGV4cGVjdChcbiAgICAgIFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnLmJpbmQoVGVzdFV0aWxzLCB0cmVlLCAnc3BhbicpXG4gICAgKS50by50aHJvdygnRGlkIG5vdCBmaW5kIGV4YWN0bHkgb25lIG1hdGNoIGZvciB0YWc6c3BhbicpO1xuICB9KTtcblxuICBpdCgnYWxsb3dzIGZvciBuZXN0ZWQgRmx1eENvbXBvbmVudHMnLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG4gICAgY29uc3QgYWN0aW9ucyA9IGZsdXguZ2V0QWN0aW9ucygndGVzdCcpO1xuXG4gICAgY29uc3QgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fSBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCI+XG4gICAgICAgIDxGbHV4Q29tcG9uZW50PlxuICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgPC9GbHV4Q29tcG9uZW50PlxuICAgICAgPC9GbHV4Q29tcG9uZW50PlxuICAgICk7XG5cbiAgICBjb25zdCBkaXYgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyh0cmVlLCAnZGl2Jyk7XG5cbiAgICBhY3Rpb25zLmdldFNvbWV0aGluZygnc29tZXRoaW5nIGdvb2QnKTtcbiAgICBleHBlY3QoZGl2LnByb3BzLnNvbWV0aGluZykudG8uZXF1YWwoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBlbHNlJyk7XG4gICAgZXhwZWN0KGRpdi5wcm9wcy5zb21ldGhpbmcpLnRvLmVxdWFsKCdzb21ldGhpbmcgZWxzZScpO1xuICB9KTtcblxuICBpdCgndXNlcyBgcmVuZGVyYCBwcm9wIGZvciBjdXN0b20gcmVuZGVyaW5nLCBpZiBpdCBleGlzdHMnLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG4gICAgY29uc3QgYWN0aW9ucyA9IGZsdXguZ2V0QWN0aW9ucygndGVzdCcpO1xuXG4gICAgY29uc3QgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudFxuICAgICAgICBmbHV4PXtmbHV4fVxuICAgICAgICBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCJcbiAgICAgICAgcmVuZGVyPXtwcm9wcyA9PlxuICAgICAgICAgIDxkaXYgc29tZXRoaW5nPXtwcm9wcy5zb21ldGhpbmd9IC8+XG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgKTtcblxuICAgIGNvbnN0IGRpdiA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKHRyZWUsICdkaXYnKTtcblxuICAgIGFjdGlvbnMuZ2V0U29tZXRoaW5nKCdzb21ldGhpbmcgZ29vZCcpO1xuICAgIGV4cGVjdChkaXYucHJvcHMuc29tZXRoaW5nKS50by5lcXVhbCgnc29tZXRoaW5nIGdvb2QnKTtcbiAgICBhY3Rpb25zLmdldFNvbWV0aGluZygnc29tZXRoaW5nIGVsc2UnKTtcbiAgICBleHBlY3QoZGl2LnByb3BzLnNvbWV0aGluZykudG8uZXF1YWwoJ3NvbWV0aGluZyBlbHNlJyk7XG4gIH0pO1xuXG4gIGl0KCd1cGRhdGVzIHdpdGggcmVuZGVyLXRpbWUgY29tcHV0ZWQgdmFsdWVzIGluIHN0YXRlIGdldHRlcnMgb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuXG4gICAgY2xhc3MgT3duZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgZm9vOiAnYmFyJ1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEZsdXhDb21wb25lbnRcbiAgICAgICAgICAgIGZsdXg9e2ZsdXh9XG4gICAgICAgICAgICBjb25uZWN0VG9TdG9yZXM9e3tcbiAgICAgICAgICAgICAgdGVzdDogc3RvcmUgPT4gKHtcbiAgICAgICAgICAgICAgICB5YXk6IHRoaXMuc3RhdGUuZm9vXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcmVuZGVyPXtzdG9yZVN0YXRlID0+IDxkaXYgey4uLnN0b3JlU3RhdGV9IC8+fVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3duZXIgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KDxPd25lciAvPik7XG4gICAgY29uc3QgZGl2ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcob3duZXIsICdkaXYnKTtcblxuICAgIGV4cGVjdChkaXYucHJvcHMueWF5KS50by5lcXVhbCgnYmFyJyk7XG4gICAgb3duZXIuc2V0U3RhdGUoeyBmb286ICdiYXonIH0pO1xuICAgIGV4cGVjdChkaXYucHJvcHMueWF5KS50by5lcXVhbCgnYmF6Jyk7XG4gIH0pO1xuXG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGRvbnMvX190ZXN0c19fL0ZsdXhDb21wb25lbnQtdGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7b0JBQXdDLFlBQVk7O0lBQTNDLE9BQU8sU0FBUCxPQUFPO0lBQUUsS0FBSyxTQUFMLEtBQUs7SUFBRSxPQUFPLFNBQVAsT0FBTzs7SUFDekIsVUFBVSwyQkFBTSxjQUFjOztJQUU5QixLQUFLLDJCQUFNLGNBQWM7O0lBQ3hCLFNBQVMsR0FBSyxLQUFLLENBQUMsTUFBTSxDQUExQixTQUFTOztJQUVWLGFBQWEsMkJBQU0sa0JBQWtCOztJQUNyQyxLQUFLLDJCQUFNLE9BQU87O0FBRXpCLFFBQVEsQ0FBQyxlQUFlLEVBQUUsWUFBTTtNQUV4QixXQUFXO2FBQVgsV0FBVzs0QkFBWCxXQUFXOzs7Ozs7O2NBQVgsV0FBVzs7aUJBQVgsV0FBVztBQUNmLGtCQUFZO2VBQUEsc0JBQUMsU0FBUyxFQUFFO0FBQ3RCLGlCQUFPLFNBQVMsQ0FBQztTQUNsQjs7OztXQUhHLFdBQVc7S0FBUyxPQUFPOztNQU0zQixTQUFTO0FBQ0YsYUFEUCxTQUFTLENBQ0QsSUFBSSxFQUFFOzRCQURkLFNBQVM7O0FBRVgsaUNBRkUsU0FBUyw2Q0FFSDs7QUFFUixVQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLFVBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs7QUFFakUsVUFBSSxDQUFDLEtBQUssR0FBRztBQUNYLGlCQUFTLEVBQUUsSUFBSTtPQUNoQixDQUFDO0tBQ0g7O2NBVkcsU0FBUzs7aUJBQVQsU0FBUztBQVliLHdCQUFrQjtlQUFBLDRCQUFDLFNBQVMsRUFBRTtBQUM1QixjQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFULFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDOUI7Ozs7V0FkRyxT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QUM7QUFDdEQsUUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLCtCQUErQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzs7QUFFcEUsVUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxTQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDL0IsVUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztHQUN2QyxDQUFDLENBQUM7Q0FFSixDQUFDLENBQUMiLCJmaWxlIjoic3JjL2FkZG9ucy9fX3Rlc3RzX18vRmx1eENvbXBvbmVudC10ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmx1bW1veCwgU3RvcmUsIEFjdGlvbnMgfSBmcm9tICcuLi8uLi9GbHV4JztcbmltcG9ydCBhZGRDb250ZXh0IGZyb20gJy4vYWRkQ29udGV4dCc7XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdC9hZGRvbnMnO1xuY29uc3QgeyBUZXN0VXRpbHMgfSA9IFJlYWN0LmFkZG9ucztcblxuaW1wb3J0IEZsdXhDb21wb25lbnQgZnJvbSAnLi4vRmx1eENvbXBvbmVudCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuXG5kZXNjcmliZSgnRmx1eENvbXBvbmVudCcsICgpID0+IHtcblxuICBjbGFzcyBUZXN0QWN0aW9ucyBleHRlbmRzIEFjdGlvbnMge1xuICAgIGdldFNvbWV0aGluZyhzb21ldGhpbmcpIHtcbiAgICAgIHJldHVybiBzb21ldGhpbmc7XG4gICAgfVxuICB9XG5cbiAgY2xhc3MgVGVzdFN0b3JlIGV4dGVuZHMgU3RvcmUge1xuICAgIGNvbnN0cnVjdG9yKGZsdXgpIHtcbiAgICAgIHN1cGVyKCk7XG5cbiAgICAgIGNvbnN0IHRlc3RBY3Rpb25zID0gZmx1eC5nZXRBY3Rpb25zKCd0ZXN0Jyk7XG4gICAgICB0aGlzLnJlZ2lzdGVyKHRlc3RBY3Rpb25zLmdldFNvbWV0aGluZywgdGhpcy5oYW5kbGVHZXRTb21ldGhpbmcpO1xuXG4gICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICBzb21ldGhpbmc6IG51bGxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaGFuZGxlR2V0U29tZXRoaW5nKHNvbWV0aGluZykge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvbWV0aGluZyB9KTtcbiAgICB9XG4gIH1cblxuICBjbGFzcyBGbHV4IGV4dGVuZHMgRmx1bW1veCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuXG4gICAgICB0aGlzLmNyZWF0ZUFjdGlvbnMoJ3Rlc3QnLCBUZXN0QWN0aW9ucyk7XG4gICAgICB0aGlzLmNyZWF0ZVN0b3JlKCd0ZXN0JywgVGVzdFN0b3JlLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICBpdCgnZ2V0cyBGbHV4IHByb3BlcnR5IGZyb20gZWl0aGVyIHByb3BzIG9yIGNvbnRleHQnLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG4gICAgbGV0IGNvbnRleHRDb21wb25lbnQsIHByb3BzQ29tcG9uZW50O1xuXG4gICAgY29uc3QgQ29udGV4dENvbXBvbmVudCA9IGFkZENvbnRleHQoXG4gICAgICBGbHV4Q29tcG9uZW50LFxuICAgICAgeyBmbHV4IH0sXG4gICAgICB7IGZsdXg6IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKEZsdW1tb3gpIH1cbiAgICApO1xuXG4gICAgY29uc3QgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoPENvbnRleHRDb21wb25lbnQgLz4pO1xuXG4gICAgY29udGV4dENvbXBvbmVudCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRDb21wb25lbnRXaXRoVHlwZShcbiAgICAgIHRyZWUsIEZsdXhDb21wb25lbnRcbiAgICApO1xuXG4gICAgcHJvcHNDb21wb25lbnQgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgPEZsdXhDb21wb25lbnQgZmx1eD17Zmx1eH0gLz5cbiAgICApO1xuXG4gICAgZXhwZWN0KGNvbnRleHRDb21wb25lbnQuZmx1eCkudG8uYmUuYW4uaW5zdGFuY2VvZihGbHVtbW94KTtcbiAgICBleHBlY3QocHJvcHNDb21wb25lbnQuZmx1eCkudG8uYmUuYW4uaW5zdGFuY2VvZihGbHVtbW94KTtcbiAgfSk7XG5cbiAgaXQoJ2FsbG93cyBmb3IgRmx1eENvbXBvbmVudHMgdGhyb3VnaCB0aGUgdHJlZSB2aWEgY29udGV4dCcsICgpID0+IHtcbiAgICBjb25zdCBmbHV4ID0gbmV3IEZsdXgoKTtcbiAgICBjb25zdCBhY3Rpb25zID0gZmx1eC5nZXRBY3Rpb25zKCd0ZXN0Jyk7XG5cbiAgICBjbGFzcyBUb3BWaWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fT5cbiAgICAgICAgICAgIDxTdWJWaWV3IC8+XG4gICAgICAgICAgPC9GbHV4Q29tcG9uZW50PlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNsYXNzIFN1YlZpZXcgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gPFN1YlN1YlZpZXcgLz47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3MgU3ViU3ViVmlldyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEZsdXhDb21wb25lbnQgY29ubmVjdFRvU3RvcmVzPVwidGVzdFwiPlxuICAgICAgICAgICAgPGRpdiAvPlxuICAgICAgICAgIDwvRmx1eENvbXBvbmVudD5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0cmVlID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIDxUb3BWaWV3IC8+XG4gICAgKTtcblxuICAgIGNvbnN0IGRpdiA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKHRyZWUsICdkaXYnKTtcblxuICAgIGFjdGlvbnMuZ2V0U29tZXRoaW5nKCdzb21ldGhpbmcgZ29vZCcpO1xuICAgIGV4cGVjdChkaXYucHJvcHMuc29tZXRoaW5nKS50by5lcXVhbCgnc29tZXRoaW5nIGdvb2QnKTtcbiAgfSk7XG5cbiAgaXQoJ3Bhc3NlcyBjb25uZWN0VG9TdG9yZSBwcm9wIHRvIHJlYWN0Q29tcG9uZW50TWV0aG9kIGNvbm5lY3RUb1N0b3JlcygpJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ3Rlc3QnKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudCA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fSBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCIgLz5cbiAgICApO1xuXG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgZXhwZWN0KGNvbXBvbmVudC5zdGF0ZS5zb21ldGhpbmcpLnRvLmRlZXAuZXF1YWwoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBlbHNlJyk7XG4gICAgZXhwZWN0KGNvbXBvbmVudC5zdGF0ZS5zb21ldGhpbmcpLnRvLmRlZXAuZXF1YWwoJ3NvbWV0aGluZyBlbHNlJyk7XG4gIH0pO1xuXG4gIGl0KCdwYXNzZXMgc3RhdGVHZXR0ZXIgcHJvcCB0byByZWFjdENvbXBvbmVudE1ldGhvZCBjb25uZWN0VG9TdG9yZXMoKScsICgpID0+IHtcbiAgICBjb25zdCBmbHV4ID0gbmV3IEZsdXgoKTtcbiAgICBjb25zdCBhY3Rpb25zID0gZmx1eC5nZXRBY3Rpb25zKCd0ZXN0Jyk7XG4gICAgY29uc3Qgc3RhdGVHZXR0ZXIgPSBzaW5vbi5zdHViKCkucmV0dXJucyh7IGZpejogJ2JpbicgfSk7XG5cbiAgICBjb25zdCBjb21wb25lbnQgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgPEZsdXhDb21wb25lbnQgZmx1eD17Zmx1eH0gY29ubmVjdFRvU3RvcmVzPVwidGVzdFwiIHN0YXRlR2V0dGVyPXtzdGF0ZUdldHRlcn0gLz5cbiAgICApO1xuXG4gICAgZXhwZWN0KGNvbXBvbmVudC5zdGF0ZS5maXopLnRvLmVxdWFsKCdiaW4nKTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdHMgY2hpbGRyZW4gd2l0aCBmbHV4IHByb3AnLCAoKSA9PiB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KCk7XG4gICAgY29uc3QgYWN0aW9ucyA9IGZsdXguZ2V0QWN0aW9ucygndGVzdCcpO1xuXG4gICAgY29uc3QgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fT5cbiAgICAgICAgPGRpdiAvPlxuICAgICAgPC9GbHV4Q29tcG9uZW50PlxuICAgICk7XG5cbiAgICBjb25zdCBkaXYgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyh0cmVlLCAnZGl2Jyk7XG5cbiAgICBleHBlY3QoZGl2LnByb3BzLmZsdXgpLnRvLmVxdWFsKGZsdXgpO1xuICB9KTtcblxuICBpdCgnaW5qZWN0cyBjaGlsZHJlbiB3aXRoIHByb3BzIGNvcnJlc3BvbmRpbmcgdG8gY29tcG9uZW50IHN0YXRlJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ3Rlc3QnKTtcblxuICAgIGNvbnN0IHRyZWUgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgPEZsdXhDb21wb25lbnQgZmx1eD17Zmx1eH0gY29ubmVjdFRvU3RvcmVzPVwidGVzdFwiPlxuICAgICAgICA8ZGl2IC8+XG4gICAgICA8L0ZsdXhDb21wb25lbnQ+XG4gICAgKTtcblxuICAgIGNvbnN0IGRpdiA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKHRyZWUsICdkaXYnKTtcblxuICAgIGFjdGlvbnMuZ2V0U29tZXRoaW5nKCdzb21ldGhpbmcgZ29vZCcpO1xuICAgIGV4cGVjdChkaXYucHJvcHMuc29tZXRoaW5nKS50by5lcXVhbCgnc29tZXRoaW5nIGdvb2QnKTtcbiAgICBhY3Rpb25zLmdldFNvbWV0aGluZygnc29tZXRoaW5nIGVsc2UnKTtcbiAgICBleHBlY3QoZGl2LnByb3BzLnNvbWV0aGluZykudG8uZXF1YWwoJ3NvbWV0aGluZyBlbHNlJyk7XG4gIH0pO1xuXG4gIGl0KCdpbmplY3RzIGNoaWxkcmVuIHdpdGggYW55IGV4dHJhIHByb3BzJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgIGNvbnN0IHN0YXRlR2V0dGVyID0gKCkgPT4ge307XG5cbiAgICAvLyBQYXNzIGFsbCBwb3NzaWJsZSBQcm9wVHlwZXMgdG8gZW5zdXJlIG9ubHkgZXh0cmEgcHJvcHNcbiAgICAvLyBhcmUgaW5qZWN0ZWQuXG4gICAgY29uc3QgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudFxuICAgICAgICBmbHV4PXtmbHV4fVxuICAgICAgICBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCJcbiAgICAgICAgc3RhdGVHZXR0ZXI9e3N0YXRlR2V0dGVyfVxuICAgICAgICBleHRyYVByb3A9XCJoZWxsb1wiXG4gICAgICAgIHJlbmRlcj17KHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz59XG4gICAgICAvPlxuICAgICk7XG5cbiAgICBjb25zdCBkaXYgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyh0cmVlLCAnZGl2Jyk7XG5cbiAgICBleHBlY3QoZGl2LnByb3BzLmV4dHJhUHJvcCkudG8uZXF1YWwoJ2hlbGxvJyk7XG4gICAgZXhwZWN0KE9iamVjdC5rZXlzKGRpdi5wcm9wcykpLnRvLmRlZXAuZXF1YWwoWydmbHV4JywgJ2V4dHJhUHJvcCddKTtcbiAgfSk7XG5cbiAgaXQoJ3dyYXBzIG11bHRpcGxlIGNoaWxkcmVuIGluIHNwYW4gdGFnJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuXG4gICAgY29uc3QgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fT5cbiAgICAgICAgPGRpdiAvPlxuICAgICAgICA8ZGl2IC8+XG4gICAgICA8L0ZsdXhDb21wb25lbnQ+XG4gICAgKTtcblxuICAgIGNvbnN0IHdyYXBwZXIgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyh0cmVlLCAnc3BhbicpO1xuICAgIGNvbnN0IGRpdnMgPSBUZXN0VXRpbHMuc2NyeVJlbmRlcmVkRE9NQ29tcG9uZW50c1dpdGhUYWcodHJlZSwgJ2RpdicpO1xuXG4gICAgZXhwZWN0KGRpdnMubGVuZ3RoKS50by5lcXVhbCgyKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IHdyYXAgc2luZ2xlIGNoaWxkIGluIHNwYW4gdGFnJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuXG4gICAgY29uc3QgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fT5cbiAgICAgICAgPGRpdiAvPlxuICAgICAgPC9GbHV4Q29tcG9uZW50PlxuICAgICk7XG5cbiAgICBleHBlY3QoXG4gICAgICBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZy5iaW5kKFRlc3RVdGlscywgdHJlZSwgJ3NwYW4nKVxuICAgICkudG8udGhyb3coJ0RpZCBub3QgZmluZCBleGFjdGx5IG9uZSBtYXRjaCBmb3IgdGFnOnNwYW4nKTtcbiAgfSk7XG5cbiAgaXQoJ2FsbG93cyBmb3IgbmVzdGVkIEZsdXhDb21wb25lbnRzJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ3Rlc3QnKTtcblxuICAgIGNvbnN0IHRyZWUgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgPEZsdXhDb21wb25lbnQgZmx1eD17Zmx1eH0gY29ubmVjdFRvU3RvcmVzPVwidGVzdFwiPlxuICAgICAgICA8Rmx1eENvbXBvbmVudD5cbiAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgIDwvRmx1eENvbXBvbmVudD5cbiAgICAgIDwvRmx1eENvbXBvbmVudD5cbiAgICApO1xuXG4gICAgY29uc3QgZGl2ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcodHJlZSwgJ2RpdicpO1xuXG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgZXhwZWN0KGRpdi5wcm9wcy5zb21ldGhpbmcpLnRvLmVxdWFsKCdzb21ldGhpbmcgZ29vZCcpO1xuICAgIGFjdGlvbnMuZ2V0U29tZXRoaW5nKCdzb21ldGhpbmcgZWxzZScpO1xuICAgIGV4cGVjdChkaXYucHJvcHMuc29tZXRoaW5nKS50by5lcXVhbCgnc29tZXRoaW5nIGVsc2UnKTtcbiAgfSk7XG5cbiAgaXQoJ3VzZXMgYHJlbmRlcmAgcHJvcCBmb3IgY3VzdG9tIHJlbmRlcmluZywgaWYgaXQgZXhpc3RzJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ3Rlc3QnKTtcblxuICAgIGNvbnN0IHRyZWUgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgPEZsdXhDb21wb25lbnRcbiAgICAgICAgZmx1eD17Zmx1eH1cbiAgICAgICAgY29ubmVjdFRvU3RvcmVzPVwidGVzdFwiXG4gICAgICAgIHJlbmRlcj17cHJvcHMgPT5cbiAgICAgICAgICA8ZGl2IHNvbWV0aGluZz17cHJvcHMuc29tZXRoaW5nfSAvPlxuICAgICAgICB9XG4gICAgICAvPlxuICAgICk7XG5cbiAgICBjb25zdCBkaXYgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyh0cmVlLCAnZGl2Jyk7XG5cbiAgICBhY3Rpb25zLmdldFNvbWV0aGluZygnc29tZXRoaW5nIGdvb2QnKTtcbiAgICBleHBlY3QoZGl2LnByb3BzLnNvbWV0aGluZykudG8uZXF1YWwoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBlbHNlJyk7XG4gICAgZXhwZWN0KGRpdi5wcm9wcy5zb21ldGhpbmcpLnRvLmVxdWFsKCdzb21ldGhpbmcgZWxzZScpO1xuICB9KTtcblxuICBpdCgndXBkYXRlcyB3aXRoIHJlbmRlci10aW1lIGNvbXB1dGVkIHZhbHVlcyBpbiBzdGF0ZSBnZXR0ZXJzIG9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKScsICgpID0+IHtcbiAgICBjb25zdCBmbHV4ID0gbmV3IEZsdXgoKTtcblxuICAgIGNsYXNzIE93bmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgIGZvbzogJ2JhcidcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGbHV4Q29tcG9uZW50XG4gICAgICAgICAgICBmbHV4PXtmbHV4fVxuICAgICAgICAgICAgY29ubmVjdFRvU3RvcmVzPXt7XG4gICAgICAgICAgICAgIHRlc3Q6IHN0b3JlID0+ICh7XG4gICAgICAgICAgICAgICAgeWF5OiB0aGlzLnN0YXRlLmZvb1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHJlbmRlcj17c3RvcmVTdGF0ZSA9PiA8ZGl2IHsuLi5zdG9yZVN0YXRlfSAvPn1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG93bmVyID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCg8T3duZXIgLz4pO1xuICAgIGNvbnN0IGRpdiA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKG93bmVyLCAnZGl2Jyk7XG5cbiAgICBleHBlY3QoZGl2LnByb3BzLnlheSkudG8uZXF1YWwoJ2JhcicpO1xuICAgIG93bmVyLnNldFN0YXRlKHsgZm9vOiAnYmF6JyB9KTtcbiAgICBleHBlY3QoZGl2LnByb3BzLnlheSkudG8uZXF1YWwoJ2JheicpO1xuICB9KTtcblxufSk7XG4iXX0=

@@ -64,3 +64,3 @@ "use strict";

var React = _interopRequire(require("react"));
var React = _interopRequire(require("react/addons"));

@@ -96,3 +96,3 @@ var _reactComponentMethods = require("./reactComponentMethods");

value: function wrapChild(child) {
return React.cloneElement(child, this.getChildProps());
return React.addons.cloneWithProps(child, this.getChildProps());
}

@@ -149,2 +149,2 @@ },

module.exports = FluxComponent;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvRmx1eENvbXBvbmVudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFpRE8sS0FBSywyQkFBTSxPQUFPOztxQ0FDeUIseUJBQXlCOztJQUFsRSxlQUFlLDBCQUFmLGVBQWU7SUFBRSxnQkFBZ0IsMEJBQWhCLGdCQUFnQjs7SUFDbkMsTUFBTSwyQkFBTSxlQUFlOztBQUVsQyxJQUFNLHNCQUFzQixHQUFHO0FBQzdCLFFBQU0sRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUk7QUFDNUIsYUFBVyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNsQyxDQUFDOztJQUVJLGFBQWE7QUFDTixXQURQLGFBQWEsQ0FDTCxLQUFLLEVBQUUsT0FBTyxFQUFFOzBCQUR4QixhQUFhOztBQUVmLCtCQUZFLGFBQWEsNkNBRVQsS0FBSyxFQUFFLE9BQU8sRUFBRTs7QUFFdEIsUUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDOztBQUVsQixRQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7O0FBRTVFLFFBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUM7O1lBVEcsYUFBYTs7ZUFBYixhQUFhO0FBV2pCLGFBQVM7YUFBQSxtQkFBQyxLQUFLLEVBQUU7QUFDZixlQUFPLEtBQUssQ0FBQyxZQUFZLENBQ3ZCLEtBQUssRUFDTCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQ3JCLENBQUM7T0FDSDs7QUFFRCxpQkFBYTthQUFBLHlCQUFHO3FCQU9NLElBQUksQ0FBQyxLQUFLO1lBTDVCLFFBQVEsVUFBUixRQUFRO1lBQ1IsTUFBTSxVQUFOLE1BQU07WUFDTixlQUFlLFVBQWYsZUFBZTtZQUNmLFdBQVcsVUFBWCxXQUFXO1lBQ1gsSUFBSSxVQUFKLElBQUk7O1lBQ0QsVUFBVTs7QUFFZixlQUFPLE1BQU0sQ0FDWCxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFDeEIsSUFBSSxDQUFDLEtBQUssRUFDVixVQUFVLENBQ1gsQ0FBQztPQUNIOztBQUVELFVBQU07YUFBQSxrQkFBRztxQkFDc0IsSUFBSSxDQUFDLEtBQUs7WUFBL0IsUUFBUSxVQUFSLFFBQVE7WUFBRSxNQUFNLFVBQU4sTUFBTTs7QUFFeEIsWUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7QUFDaEMsaUJBQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUNyRDs7QUFFRCxZQUFJLENBQUMsUUFBUTtBQUFFLGlCQUFPLElBQUksQ0FBQztTQUFBLEFBRTNCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0FBQzVCLGNBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQztBQUN2QixpQkFBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCLE1BQU07QUFDTCxpQkFBTzs7O1lBQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7V0FBUSxDQUFDO1NBQ3BFO09BQ0Y7Ozs7U0FqREcsYUFBYTtHQUFTLEtBQUssQ0FBQyxTQUFTOztBQW9EM0MsTUFBTSxDQUNKLGFBQWEsQ0FBQyxTQUFTLEVBQ3ZCLGVBQWUsQ0FDaEIsQ0FBQzs7QUFFRixNQUFNLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDeEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQzs7aUJBRXpDLGFBQWEiLCJmaWxlIjoic3JjL2FkZG9ucy9GbHV4Q29tcG9uZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGbHV4IENvbXBvbmVudFxuICpcbiAqIENvbXBvbmVudCBmb3JtIG9mIGZsdXhNaXhpbi4gVXNlcyBmbHV4TWl4aW4gYXMgcGFydCBvZiBpdHMgaW1wbGVtZW50YXRpb24sXG4gKiBzbyByZXF1aXJlcyBhIGZsdXggaW5zdGFuY2UgdG8gYmUgcHJvdmlkZWQgYXMgZWl0aGVyIGNvbnRleHQgb3IgYSBwcm9wLlxuICpcbiAqIExpa2UgZmx1eE1peGluLCBjaGlsZHJlbiBhcmUgZ2l2ZW4gYWNjZXNzIHRvIHRoZSBmbHV4IGluc3RhbmNlIHZpYVxuICogYGNvbnRleHQuZmx1eGAuIFVzZSB0aGlzIG5lYXIgdGhlIHRvcCBvZiB5b3VyIGFwcCBoaWVyYXJjaHkgYW5kIGFsbCBjaGlsZHJlblxuICogd2lsbCBoYXZlIGVhc3kgYWNjZXNzIHRvIHRoZSBmbHV4IGluc3RhbmNlIChpbmNsdWRpbmcsIG9mIGNvdXJzZSwgb3RoZXJcbiAqIEZsdXggY29tcG9uZW50cyEpOlxuICpcbiAqIDxGbHV4Q29tcG9uZW50IGZsdXg9e2ZsdXh9PlxuICogICAgLi4udGhlIHJlc3Qgb2YgeW91ciBhcHBcbiAqIDwvRmx1eENvbXBvbmVudD5cbiAqXG4gKiBOb3cgYW55IGNoaWxkIGNhbiBhY2Nlc3MgdGhlIGZsdXggaW5zdGFuY2UgYWdhaW4gbGlrZSB0aGlzOlxuICpcbiAqIDxGbHV4Q29tcG9uZW50PlxuICogICAgLi4uY2hpbGRyZW5cbiAqIDwvRmx1eENvbXBvbmVudD5cbiAqXG4gKiBXZSBkb24ndCBuZWVkIHRoZSBmbHV4IHByb3AgdGhpcyB0aW1lIGJlY2F1c2UgZmx1eCBpcyBhbHJlYWR5IHBhcnQgb2ZcbiAqIHRoZSBjb250ZXh0LlxuICpcbiAqIEFkZGl0aW9uYWxseSwgaW1tZWRpYXRlIGNoaWxkcmVuIGFyZSBnaXZlbiBhIGBmbHV4YCBwcm9wLlxuICpcbiAqIFRoZSBjb21wb25lbnQgaGFzIGFuIG9wdGlvbmFsIHByb3AgYGNvbm5lY3RUb1N0b3Jlc2AsIHdoaWNoIGlzIC0tIHlvdSBndWVzc2VkXG4gKiBpdCAtLSBwYXNzZWQgZGlyZWN0bHkgdG8gZmx1eE1peGluJ3MgYGNvbm5lY3RUb1N0b3JlcygpYCBmdW5jdGlvbiBhbmRcbiAqIHNldCBhcyB0aGUgaW5pdGlhbCBzdGF0ZS4gVGhlIGNvbXBvbmVudCdzIHN0YXRlIGlzIGluamVjdGVkIGFzIHByb3BzIHRvXG4gKiBjaGlsZCBjb21wb25lbnRzLlxuICpcbiAqIFRoZSBwcmFjdGljYWwgdXBzaG90IG9mIGFsbCB0aGlzIGlzIHRoYXQgZmx1eE1peGluLCBzdGF0ZSBjaGFuZ2VzLCBhbmRcbiAqIGNvbnRleHQgYXJlIG5vdyBzaW1wbHkgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gQW1vbmcgb3RoZXIgdGhpbmdzLCB0aGlzIG1lYW5zXG4gKiB5b3UgY2FuIHdyaXRlIHlvdXIgY29tcG9uZW50cyBhcyBwbGFpbiBFUzYgY2xhc3Nlcy4gSGVyZSdzIGFuIGV4YW1wbGU6XG4gKlxuICogY2xhc3MgUGFyZW50Q29tcG9uZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAqXG4gKiAgIHJlbmRlcigpIHtcbiAqICAgICA8Rmx1eENvbXBvbmVudCBjb25uZWN0VG9TdG9yZT1cImZvb1N0b3JlXCI+XG4gKiAgICAgICA8Q2hpbGRDb21wb25lbnQgLz5cbiAqICAgICA8L0ZsdXhDb21wb25lbnQ+XG4gKiAgIH1cbiAqXG4gKiB9XG4gKlxuICogQ2hpbGRDb21wb25lbnQgaW4gdGhpcyBleGFtcGxlIGhhcyBwcm9wIGBmbHV4YCBjb250YWluaW5nIHRoZSBmbHV4IGluc3RhbmNlLFxuICogYW5kIHByb3BzIHRoYXQgc3luYyB3aXRoIGVhY2ggb2YgdGhlIHN0YXRlIGtleXMgb2YgZm9vU3RvcmUuXG4gKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGluc3RhbmNlTWV0aG9kcywgc3RhdGljUHJvcGVydGllcyB9IGZyb20gJy4vcmVhY3RDb21wb25lbnRNZXRob2RzJztcbmltcG9ydCBhc3NpZ24gZnJvbSAnb2JqZWN0LWFzc2lnbic7XG5cbmNvbnN0IEZsdXhDb21wb25lbnRQcm9wVHlwZXMgPSB7XG4gIHJlbmRlcjogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gIHN0YXRlR2V0dGVyOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbn07XG5cbmNsYXNzIEZsdXhDb21wb25lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuY29ubmVjdFRvU3RvcmVzKHByb3BzLmNvbm5lY3RUb1N0b3JlcywgcHJvcHMuc3RhdGVHZXR0ZXIpO1xuXG4gICAgdGhpcy53cmFwQ2hpbGQgPSB0aGlzLndyYXBDaGlsZC5iaW5kKHRoaXMpO1xuICB9XG5cbiAgd3JhcENoaWxkKGNoaWxkKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChcbiAgICAgIGNoaWxkLFxuICAgICAgdGhpcy5nZXRDaGlsZFByb3BzKClcbiAgICApO1xuICB9XG5cbiAgZ2V0Q2hpbGRQcm9wcygpIHtcbiAgICBjb25zdCB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHJlbmRlcixcbiAgICAgIGNvbm5lY3RUb1N0b3JlcyxcbiAgICAgIHN0YXRlR2V0dGVyLFxuICAgICAgZmx1eCxcbiAgICAgIC4uLmV4dHJhUHJvcHMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gYXNzaWduKFxuICAgICAgeyBmbHV4OiB0aGlzLmdldEZsdXgoKSB9LFxuICAgICAgdGhpcy5zdGF0ZSxcbiAgICAgIGV4dHJhUHJvcHNcbiAgICApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIHJlbmRlciB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICh0eXBlb2YgcmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gcmVuZGVyKHRoaXMuZ2V0Q2hpbGRQcm9wcygpLCB0aGlzLmdldEZsdXgoKSk7XG4gICAgfVxuXG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuO1xuICAgICAgcmV0dXJuIHRoaXMud3JhcENoaWxkKGNoaWxkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxzcGFuPntSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIHRoaXMud3JhcENoaWxkKX08L3NwYW4+O1xuICAgIH1cbiAgfVxufVxuXG5hc3NpZ24oXG4gIEZsdXhDb21wb25lbnQucHJvdG90eXBlLFxuICBpbnN0YW5jZU1ldGhvZHNcbik7XG5cbmFzc2lnbihGbHV4Q29tcG9uZW50LCBzdGF0aWNQcm9wZXJ0aWVzKTtcbmFzc2lnbihGbHV4Q29tcG9uZW50LnByb3BUeXBlcywgRmx1eENvbXBvbmVudFByb3BUeXBlcyk7XG5cbmV4cG9ydCBkZWZhdWx0IEZsdXhDb21wb25lbnQ7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvRmx1eENvbXBvbmVudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFpRE8sS0FBSywyQkFBTSxjQUFjOztxQ0FDa0IseUJBQXlCOztJQUFsRSxlQUFlLDBCQUFmLGVBQWU7SUFBRSxnQkFBZ0IsMEJBQWhCLGdCQUFnQjs7SUFDbkMsTUFBTSwyQkFBTSxlQUFlOztBQUVsQyxJQUFNLHNCQUFzQixHQUFHO0FBQzdCLFFBQU0sRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUk7QUFDNUIsYUFBVyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNsQyxDQUFDOztJQUVJLGFBQWE7QUFDTixXQURQLGFBQWEsQ0FDTCxLQUFLLEVBQUUsT0FBTyxFQUFFOzBCQUR4QixhQUFhOztBQUVmLCtCQUZFLGFBQWEsNkNBRVQsS0FBSyxFQUFFLE9BQU8sRUFBRTs7QUFFdEIsUUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDOztBQUVsQixRQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7O0FBRTVFLFFBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUM7O1lBVEcsYUFBYTs7ZUFBYixhQUFhO0FBV2pCLGFBQVM7YUFBQSxtQkFBQyxLQUFLLEVBQUU7QUFDZixlQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUNoQyxLQUFLLEVBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUNyQixDQUFDO09BQ0g7O0FBRUQsaUJBQWE7YUFBQSx5QkFBRztxQkFPTSxJQUFJLENBQUMsS0FBSztZQUw1QixRQUFRLFVBQVIsUUFBUTtZQUNSLE1BQU0sVUFBTixNQUFNO1lBQ04sZUFBZSxVQUFmLGVBQWU7WUFDZixXQUFXLFVBQVgsV0FBVztZQUNYLElBQUksVUFBSixJQUFJOztZQUNELFVBQVU7O0FBRWYsZUFBTyxNQUFNLENBQ1gsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQ1YsVUFBVSxDQUNYLENBQUM7T0FDSDs7QUFFRCxVQUFNO2FBQUEsa0JBQUc7cUJBQ3NCLElBQUksQ0FBQyxLQUFLO1lBQS9CLFFBQVEsVUFBUixRQUFRO1lBQUUsTUFBTSxVQUFOLE1BQU07O0FBRXhCLFlBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFO0FBQ2hDLGlCQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDckQ7O0FBRUQsWUFBSSxDQUFDLFFBQVE7QUFBRSxpQkFBTyxJQUFJLENBQUM7U0FBQSxBQUUzQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUM1QixjQUFNLEtBQUssR0FBRyxRQUFRLENBQUM7QUFDdkIsaUJBQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QixNQUFNO0FBQ0wsaUJBQU87OztZQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO1dBQVEsQ0FBQztTQUNwRTtPQUNGOzs7O1NBakRHLGFBQWE7R0FBUyxLQUFLLENBQUMsU0FBUzs7QUFvRDNDLE1BQU0sQ0FDSixhQUFhLENBQUMsU0FBUyxFQUN2QixlQUFlLENBQ2hCLENBQUM7O0FBRUYsTUFBTSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLHNCQUFzQixDQUFDLENBQUM7O2lCQUV6QyxhQUFhIiwiZmlsZSI6InNyYy9hZGRvbnMvRmx1eENvbXBvbmVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmx1eCBDb21wb25lbnRcbiAqXG4gKiBDb21wb25lbnQgZm9ybSBvZiBmbHV4TWl4aW4uIFVzZXMgZmx1eE1peGluIGFzIHBhcnQgb2YgaXRzIGltcGxlbWVudGF0aW9uLFxuICogc28gcmVxdWlyZXMgYSBmbHV4IGluc3RhbmNlIHRvIGJlIHByb3ZpZGVkIGFzIGVpdGhlciBjb250ZXh0IG9yIGEgcHJvcC5cbiAqXG4gKiBMaWtlIGZsdXhNaXhpbiwgY2hpbGRyZW4gYXJlIGdpdmVuIGFjY2VzcyB0byB0aGUgZmx1eCBpbnN0YW5jZSB2aWFcbiAqIGBjb250ZXh0LmZsdXhgLiBVc2UgdGhpcyBuZWFyIHRoZSB0b3Agb2YgeW91ciBhcHAgaGllcmFyY2h5IGFuZCBhbGwgY2hpbGRyZW5cbiAqIHdpbGwgaGF2ZSBlYXN5IGFjY2VzcyB0byB0aGUgZmx1eCBpbnN0YW5jZSAoaW5jbHVkaW5nLCBvZiBjb3Vyc2UsIG90aGVyXG4gKiBGbHV4IGNvbXBvbmVudHMhKTpcbiAqXG4gKiA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fT5cbiAqICAgIC4uLnRoZSByZXN0IG9mIHlvdXIgYXBwXG4gKiA8L0ZsdXhDb21wb25lbnQ+XG4gKlxuICogTm93IGFueSBjaGlsZCBjYW4gYWNjZXNzIHRoZSBmbHV4IGluc3RhbmNlIGFnYWluIGxpa2UgdGhpczpcbiAqXG4gKiA8Rmx1eENvbXBvbmVudD5cbiAqICAgIC4uLmNoaWxkcmVuXG4gKiA8L0ZsdXhDb21wb25lbnQ+XG4gKlxuICogV2UgZG9uJ3QgbmVlZCB0aGUgZmx1eCBwcm9wIHRoaXMgdGltZSBiZWNhdXNlIGZsdXggaXMgYWxyZWFkeSBwYXJ0IG9mXG4gKiB0aGUgY29udGV4dC5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIGltbWVkaWF0ZSBjaGlsZHJlbiBhcmUgZ2l2ZW4gYSBgZmx1eGAgcHJvcC5cbiAqXG4gKiBUaGUgY29tcG9uZW50IGhhcyBhbiBvcHRpb25hbCBwcm9wIGBjb25uZWN0VG9TdG9yZXNgLCB3aGljaCBpcyAtLSB5b3UgZ3Vlc3NlZFxuICogaXQgLS0gcGFzc2VkIGRpcmVjdGx5IHRvIGZsdXhNaXhpbidzIGBjb25uZWN0VG9TdG9yZXMoKWAgZnVuY3Rpb24gYW5kXG4gKiBzZXQgYXMgdGhlIGluaXRpYWwgc3RhdGUuIFRoZSBjb21wb25lbnQncyBzdGF0ZSBpcyBpbmplY3RlZCBhcyBwcm9wcyB0b1xuICogY2hpbGQgY29tcG9uZW50cy5cbiAqXG4gKiBUaGUgcHJhY3RpY2FsIHVwc2hvdCBvZiBhbGwgdGhpcyBpcyB0aGF0IGZsdXhNaXhpbiwgc3RhdGUgY2hhbmdlcywgYW5kXG4gKiBjb250ZXh0IGFyZSBub3cgc2ltcGx5IGltcGxlbWVudGF0aW9uIGRldGFpbHMuIEFtb25nIG90aGVyIHRoaW5ncywgdGhpcyBtZWFuc1xuICogeW91IGNhbiB3cml0ZSB5b3VyIGNvbXBvbmVudHMgYXMgcGxhaW4gRVM2IGNsYXNzZXMuIEhlcmUncyBhbiBleGFtcGxlOlxuICpcbiAqIGNsYXNzIFBhcmVudENvbXBvbmVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gKlxuICogICByZW5kZXIoKSB7XG4gKiAgICAgPEZsdXhDb21wb25lbnQgY29ubmVjdFRvU3RvcmU9XCJmb29TdG9yZVwiPlxuICogICAgICAgPENoaWxkQ29tcG9uZW50IC8+XG4gKiAgICAgPC9GbHV4Q29tcG9uZW50PlxuICogICB9XG4gKlxuICogfVxuICpcbiAqIENoaWxkQ29tcG9uZW50IGluIHRoaXMgZXhhbXBsZSBoYXMgcHJvcCBgZmx1eGAgY29udGFpbmluZyB0aGUgZmx1eCBpbnN0YW5jZSxcbiAqIGFuZCBwcm9wcyB0aGF0IHN5bmMgd2l0aCBlYWNoIG9mIHRoZSBzdGF0ZSBrZXlzIG9mIGZvb1N0b3JlLlxuICovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdC9hZGRvbnMnO1xuaW1wb3J0IHsgaW5zdGFuY2VNZXRob2RzLCBzdGF0aWNQcm9wZXJ0aWVzIH0gZnJvbSAnLi9yZWFjdENvbXBvbmVudE1ldGhvZHMnO1xuaW1wb3J0IGFzc2lnbiBmcm9tICdvYmplY3QtYXNzaWduJztcblxuY29uc3QgRmx1eENvbXBvbmVudFByb3BUeXBlcyA9IHtcbiAgcmVuZGVyOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgc3RhdGVHZXR0ZXI6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxufTtcblxuY2xhc3MgRmx1eENvbXBvbmVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICB0aGlzLnN0YXRlID0gdGhpcy5jb25uZWN0VG9TdG9yZXMocHJvcHMuY29ubmVjdFRvU3RvcmVzLCBwcm9wcy5zdGF0ZUdldHRlcik7XG5cbiAgICB0aGlzLndyYXBDaGlsZCA9IHRoaXMud3JhcENoaWxkLmJpbmQodGhpcyk7XG4gIH1cblxuICB3cmFwQ2hpbGQoY2hpbGQpIHtcbiAgICByZXR1cm4gUmVhY3QuYWRkb25zLmNsb25lV2l0aFByb3BzKFxuICAgICAgY2hpbGQsXG4gICAgICB0aGlzLmdldENoaWxkUHJvcHMoKVxuICAgICk7XG4gIH1cblxuICBnZXRDaGlsZFByb3BzKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgcmVuZGVyLFxuICAgICAgY29ubmVjdFRvU3RvcmVzLFxuICAgICAgc3RhdGVHZXR0ZXIsXG4gICAgICBmbHV4LFxuICAgICAgLi4uZXh0cmFQcm9wcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBhc3NpZ24oXG4gICAgICB7IGZsdXg6IHRoaXMuZ2V0Rmx1eCgpIH0sXG4gICAgICB0aGlzLnN0YXRlLFxuICAgICAgZXh0cmFQcm9wc1xuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgcmVuZGVyIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKHR5cGVvZiByZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiByZW5kZXIodGhpcy5nZXRDaGlsZFByb3BzKCksIHRoaXMuZ2V0Rmx1eCgpKTtcbiAgICB9XG5cbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gbnVsbDtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW47XG4gICAgICByZXR1cm4gdGhpcy53cmFwQ2hpbGQoY2hpbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPHNwYW4+e1JlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgdGhpcy53cmFwQ2hpbGQpfTwvc3Bhbj47XG4gICAgfVxuICB9XG59XG5cbmFzc2lnbihcbiAgRmx1eENvbXBvbmVudC5wcm90b3R5cGUsXG4gIGluc3RhbmNlTWV0aG9kc1xuKTtcblxuYXNzaWduKEZsdXhDb21wb25lbnQsIHN0YXRpY1Byb3BlcnRpZXMpO1xuYXNzaWduKEZsdXhDb21wb25lbnQucHJvcFR5cGVzLCBGbHV4Q29tcG9uZW50UHJvcFR5cGVzKTtcblxuZXhwb3J0IGRlZmF1bHQgRmx1eENvbXBvbmVudDtcbiJdfQ==
{
"name": "flummox",
"version": "3.1.1",
"version": "3.1.2",
"description": "Idiomatic, modular, testable, isomorphic Flux. No singletons required.",

@@ -5,0 +5,0 @@ "main": "lib/Flux.js",

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