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

microcosm

Package Overview
Dependencies
Maintainers
1
Versions
233
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

microcosm - npm Package Compare versions

Comparing version 8.2.0-alpha to 8.2.0-rc1

2

microcosm.build.js

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

module.exports=function(t){function n(e){if(r[e])return r[e].exports;var i=r[e]={exports:{},id:e,loaded:!1};return t[e].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var r={};return n.m=t,n.c=r,n.p="",n(0)}([function(t,n,r){function e(){o.apply(this,arguments),this.stores={},this.plugins=[],this.constructor.displayName="Microcosm"}var i=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},o=r(18),s=r(7),u=r(8),a=r(6),c=r(9),f=r(10),h=r(13),l=r(14),p=r(15),v=r(16);e.prototype=i({},o.prototype,{render:function(){return a.createElement(s,this.props)},_getInitialState:function(){return h(this.stores,function(t){return t.getInitialState()})},reset:function(){return this.commit(this._getInitialState()),this},replace:function(t){return this.update(this.deserialize(t)),this},addPlugin:function(t,n){return this.plugins.push(new u(t,n)),this},addStore:function(t,n){return this.stores[t]=new c(n,t),this},serialize:function(){var t=this;return h(this.stores,function(n,r){return n.serialize(t.get(r))})},deserialize:function(t){var n=this;return h(t,function(t,r){return n.stores[r].deserialize(t)})},toJSON:function(){return this.serialize()},toObject:function(){return this.valueOf()},start:function(){var t=this,n=arguments;return this.reset(),f(this.plugins,this,function(){return l(n,[],t,"start")}),this},prepare:function(t){for(var n,r=arguments.length,e=Array(r>1?r-1:0),i=1;r>i;i++)e[i-1]=arguments[i];return(n=this.push).bind.apply(n,[this,t].concat(e))},rollback:function(t,n){var r=this,e=h(n,function(n,e){var i=t[e],o=r.get(e);return o!==n&&o!==i?o:i});this.update(e)},stateFor:function(t){var n=this,r=Object.keys(this.stores).filter(function(r){return c.taskFor(n.stores[r],t)});return r.reduce(function(t,r){return t[r]=n.get(r),t},{})},push:function(t){for(var n=this,r=arguments.length,e=Array(r>1?r-1:0),i=1;r>i;i++)e[i-1]=arguments[i];v(t);var o={},s=this.stateFor(t),u=function(r){return o=n.dispatch(s,t,r),n.update(o)},a=function(){return n.rollback(s,o)};return p(u,a,t.apply(this,e))},dispatch:function(t,n,r){var e=this;return h(t,function(t,i){return c.send(e.stores[i],n,t,r)})}}),t.exports=e,e.get=r(1),e.set=r(5),e.remove=r(4)},function(t,n,r){var e=r(2);t.exports=function(t,n,r){n=e(n);for(var i=0;i<n.length;i++){if(void 0===t)return r;t=t[n[i]]}return void 0===t?r:t}},function(t,n){t.exports=function(t){return Array.isArray(t)?t:[t]}},function(t,n){t.exports=function(t){if(Array.isArray(t))return t.slice();var n={};for(var r in t)n[r]=t[r];return n}},function(t,n,r){var e={},i=r(3),o=r(1),s=r(2);t.exports=function u(t,n){if(void 0===o(t,n))return t;n=s(n);var r=n[0],a=n.slice(1),c=i(t);return a.length?(c[r]=u(o(t,r,e),a),0===Object.keys(o(c,r,e)).length&&delete c[r]):delete c[r],c}},function(t,n,r){var e=r(3),i=r(1),o=r(2);t.exports=function s(t,n,r){if(i(t,n)===r)return t;n=o(n);var u=n[0],a=n.slice(1);if(n.length){var c=e(t);return a.length?c[u]=s(i(c,u,{}),a,r):c[u]=r,c}return r}},function(t,n){t.exports=require("React")},function(t,n,r){var e=r(6);t.exports=e.createClass({displayName:"Microscope",getInitialState:function(){return this.getState()},getState:function(){return this.props.instance.toObject()},updateState:function(){this.setState(this.getState())},componentDidMount:function(){this.props.instance.listen(this.updateState)},componentWillUnmount:function(){this.props.instance.ignore(this.updateState)},getChild:function(){return e.cloneElement(this.props.children,this.state)},getChildren:function(){var t=this,n=e.Children.map(this.props.children,function(n){return e.cloneElement(n,t.state)});return e.createElement("span",null,n)},render:function(){var t=e.Children.count(this.props.children);return t>1?this.getChildren():this.getChild()}})},function(t,n){function r(t,n){e(this,t),this.name=this.name||"microcosm_plugin_"+i++,this.options=n}var e=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},i=0;r.prototype={register:function(t,n,r){r()},toString:function(){return this.name}},t.exports=r},function(t,n,r){function e(t,n){i(this,t),this.toString=function(){return n}}var i=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},o=function(t){return t},s=!1;e.prototype={getInitialState:o,serialize:o,deserialize:o,register:function(){return{}}},e.send=function(t,n,r,e){var i=t.register(),o=i[n];if(s&&n in i&&"function"!=typeof o)throw TypeError(""+t+" registered "+n+" with non-function value");return o?o.call(t,r,e):r},e.taskFor=function(t,n){return t.register()[n]},t.exports=e},function(t,n){var r=function e(t,n,r){var i=t[0],o=t.slice(1);return i?void i.register(n,i.options,function(t){if(t)throw t;e(o,n,r)}):r()};t.exports=r},function(t,n){t.exports=function(t){return t&&"function"==typeof t.next}},function(t,n){t.exports=function(t){return t&&"function"==typeof t.then}},function(t,n){t.exports=function(t,n,r){var e={};for(var i in t)e[i]=n.call(r,t[i],i,t);return e}},function(t,n,r){t.exports=function(t,n,r,e){for(var i=0;i<t.length;i++)t[i].apply(r,n)}},function(t,n,r){var e=r(11),i=r(12);t.exports=function o(t,n,r){var s=o.bind(null,t,n);if(i(r))return r.then(s,n),r;if(e(r)){for(var u=r,a=Array.isArray(u),c=0,u=a?u:u[Symbol.iterator]();;){var f;if(a){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var h=f;s(h)}return h}return t(r)}},function(t,n){var r=0;t.exports=function(t){var n=t.name||"microcosm_action",e=r++;return t.hasOwnProperty("toString")||(t.toString=function(){return""+n+"_"+e}),t}},function(t,n){function r(t){var n=[],e=t,i=null;t=this instanceof r?this:t||{};var o=function(r){for(var e=0;e<n.length;e++)n[e].apply(t,r)},s=function(){var t=+new Date;i&&10>t-i?cancelAnimationFrame(e):i=t};return t.listen=t.subscribe=function(r){return n=n.concat(r),t},t.ignore=t.unsubscribe=function(r){return n=n.filter(function(t){return t!==r}),t},t.emit=t.publish=function(){return o(arguments),t},t.volley=function(){return n.length>0&&(s(),e=requestAnimationFrame(o.bind(void 0,arguments))),t},t}var e=1e3/120;t.exports=r(r),t.exports.decorate=r,t.exports.FRAMES=e},function(t,n,r){function e(t){i(this),this._path=c,this._root=this,this.state=a,this.commit(t)}var i=r(17),o=r(5),s=r(4),u=r(1),a={},c=[];e.prototype={getPath:function(t){return this._path.concat(t).filter(function(t){return void 0!==t})},getRoot:function(){return this._root},commit:function(){var t=void 0===arguments[0]?this.state:arguments[0],n=this.getRoot(),r=n.state;null==t&&(t=a),r!==t&&(n.state=t,this.volley(n.state))},clear:function(){this.commit(null)},get:function(t,n){return u(this.state,this.getPath(t),n)},set:function(t,n){1===arguments.length&&(n=arguments[0],t=void 0),this.commit(o(this.state,this.getPath(t),n))},update:function(t,n){1===arguments.length&&(n=arguments[0],t=void 0);for(var r in n)this.set([t,r],n[r])},remove:function(t){this.commit(s(this.state,this.getPath(t)))},refine:function(t){return Object.create(this,{_path:{value:this.getPath(t)}})},keys:function(){return Object.keys(this.valueOf()||{})},values:function(){return this.keys().map(function(t){return this.get(t)},this)},valueOf:function(){return u(this.state,this.getPath())},toJSON:function(){return this.valueOf()},is:function(t){return t.valueOf()==this.valueOf()},find:function(t,n){return this.filter(t,n)[0]},includes:function(t){return this.indexOf(t)>-1},first:function(){return this.values().shift()},last:function(){return this.values().pop()},size:function(){return this.values().length}};var f=["sort","map","reduce","filter","forEach","some","every","join","indexOf"];f.forEach(function(t){e.prototype[t]=function(){var n;return(n=this.values())[t].apply(n,arguments)}}),t.exports=e}]);
module.exports=function(t){function n(e){if(r[e])return r[e].exports;var i=r[e]={exports:{},id:e,loaded:!1};return t[e].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var r={};return n.m=t,n.c=r,n.p="",n(0)}([function(t,n,r){function e(){o.apply(this,arguments),this.stores={},this.plugins=[]}var i=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},o=r(16),u=r(6),s=(r(17),r(7)),a=r(8),c=r(11),f=r(12),h=r(13),l=r(14);e.prototype=i({},o.prototype,{_getInitialState:function(){return c(this.stores,function(t){return t.getInitialState()})},reset:function(){return this.commit(this._getInitialState()),this},replace:function(t){return this.update(this.deserialize(t)),this},addPlugin:function(t,n){return this.plugins.push(new u(t,n)),this},addStore:function(t,n){return this.stores[t]=new s(n,t),this},serialize:function(){var t=this;return c(this.stores,function(n,r){return n.serialize(t.get(r))})},deserialize:function(t){var n=this;return c(t,function(t,r){return n.stores[r].deserialize(t)})},toJSON:function(){return this.serialize()},toObject:function(){return this.valueOf()},start:function(){var t=this,n=arguments;return this.reset(),a(this.plugins,this,function(){return f(n,[],t,"start")}),this},prepare:function(t){for(var n,r=arguments.length,e=Array(r>1?r-1:0),i=1;r>i;i++)e[i-1]=arguments[i];return(n=this.push).bind.apply(n,[this,t].concat(e))},rollback:function(t,n){var r=this,e=c(n,function(n,e){var i=t[e],o=r.get(e);return o!==n&&o!==i?o:i});this.update(e)},stateFor:function(t){var n=this,r=Object.keys(this.stores).filter(function(r){return s.taskFor(n.stores[r],t)});return r.reduce(function(t,r){return t[r]=n.get(r),t},{})},push:function(t){for(var n=this,r=arguments.length,e=Array(r>1?r-1:0),i=1;r>i;i++)e[i-1]=arguments[i];l(t);var o={},u=this.stateFor(t),s=function(r){return o=n.dispatch(u,t,r),n.update(o)},a=function(){return n.rollback(u,o)};return h(s,a,t.apply(this,e))},dispatch:function(t,n,r){var e=this;return c(t,function(t,i){return s.send(e.stores[i],n,t,r)})}}),t.exports=e,e.get=r(1),e.set=r(5),e.remove=r(4)},function(t,n,r){var e=r(2);t.exports=function(t,n,r){n=e(n);for(var i=0;i<n.length;i++){if(void 0===t)return r;t=t[n[i]]}return void 0===t?r:t}},function(t,n){t.exports=function(t){return Array.isArray(t)?t:[t]}},function(t,n){t.exports=function(t){if(Array.isArray(t))return t.slice();var n={};for(var r in t)n[r]=t[r];return n}},function(t,n,r){var e={},i=r(3),o=r(1),u=r(2);t.exports=function s(t,n){if(void 0===o(t,n))return t;n=u(n);var r=n[0],a=n.slice(1),c=i(t);return a.length?(c[r]=s(o(t,r,e),a),0===Object.keys(o(c,r,e)).length&&delete c[r]):delete c[r],c}},function(t,n,r){var e=r(3),i=r(1),o=r(2);t.exports=function u(t,n,r){if(i(t,n)===r)return t;n=o(n);var s=n[0],a=n.slice(1);if(n.length){var c=e(t);return a.length?c[s]=u(i(c,s,{}),a,r):c[s]=r,c}return r}},function(t,n){function r(t,n){e(this,t),this.name=this.name||"microcosm_plugin_"+i++,this.options=n}var e=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},i=0;r.prototype={register:function(t,n,r){r()},toString:function(){return this.name}},t.exports=r},function(t,n,r){function e(t,n){i(this,t),this.toString=function(){return n}}var i=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},o=function(t){return t},u=!1;e.prototype={getInitialState:o,serialize:o,deserialize:o,register:function(){return{}}},e.send=function(t,n,r,e){var i=t.register(),o=i[n];if(u&&n in i&&"function"!=typeof o)throw TypeError(""+t+" registered "+n+" with non-function value");return o?o.call(t,r,e):r},e.taskFor=function(t,n){return t.register()[n]},t.exports=e},function(t,n){var r=function e(t,n,r){var i=t[0],o=t.slice(1);return i?void i.register(n,i.options,function(t){if(t)throw t;e(o,n,r)}):r()};t.exports=r},function(t,n){t.exports=function(t){return t&&"function"==typeof t.next}},function(t,n){t.exports=function(t){return t&&"function"==typeof t.then}},function(t,n){t.exports=function(t,n,r){var e={};for(var i in t)e[i]=n.call(r,t[i],i,t);return e}},function(t,n,r){t.exports=function(t,n,r,e){for(var i=0;i<t.length;i++)t[i].apply(r,n)}},function(t,n,r){var e=r(9),i=r(10);t.exports=function o(t,n,r){var u=o.bind(null,t,n);if(i(r))return r.then(u,n),r;if(e(r)){for(var s=r,a=Array.isArray(s),c=0,s=a?s:s[Symbol.iterator]();;){var f;if(a){if(c>=s.length)break;f=s[c++]}else{if(c=s.next(),c.done)break;f=c.value}var h=f;u(h)}return h}return t(r)}},function(t,n){var r=0;t.exports=function(t){var n=t.name||"microcosm_action",e=r++;return t.hasOwnProperty("toString")||(t.toString=function(){return""+n+"_"+e}),t}},function(t,n){function r(t){var n=[],e=t,i=null;t=this instanceof r?this:t||{};var o=function(r){for(var e=0;e<n.length;e++)n[e].apply(t,r)},u=function(){var t=+new Date;i&&10>t-i?cancelAnimationFrame(e):i=t};return t.listen=t.subscribe=function(r){return n=n.concat(r),t},t.ignore=t.unsubscribe=function(r){return n=n.filter(function(t){return t!==r}),t},t.emit=t.publish=function(){return o(arguments),t},t.volley=function(){return n.length>0&&(u(),e=requestAnimationFrame(o.bind(void 0,arguments))),t},t}var e=1e3/120;t.exports=r(r),t.exports.decorate=r,t.exports.FRAMES=e},function(t,n,r){function e(t){i(this),this._path=c,this._root=this,this.state=a,this.commit(t)}var i=r(15),o=r(5),u=r(4),s=r(1),a={},c=[];e.prototype={getPath:function(t){return this._path.concat(t).filter(function(t){return void 0!==t})},getRoot:function(){return this._root},commit:function(){var t=void 0===arguments[0]?this.state:arguments[0],n=this.getRoot(),r=n.state;null==t&&(t=a),r!==t&&(n.state=t,this.volley(n.state))},clear:function(){this.commit(null)},get:function(t,n){return s(this.state,this.getPath(t),n)},set:function(t,n){1===arguments.length&&(n=arguments[0],t=void 0),this.commit(o(this.state,this.getPath(t),n))},update:function(t,n){1===arguments.length&&(n=arguments[0],t=void 0);for(var r in n)this.set([t,r],n[r])},remove:function(t){this.commit(u(this.state,this.getPath(t)))},refine:function(t){return Object.create(this,{_path:{value:this.getPath(t)}})},keys:function(){return Object.keys(this.valueOf()||{})},values:function(){return this.keys().map(function(t){return this.get(t)},this)},valueOf:function(){return s(this.state,this.getPath())},toJSON:function(){return this.valueOf()},is:function(t){return t.valueOf()==this.valueOf()},find:function(t,n){return this.filter(t,n)[0]},includes:function(t){return this.indexOf(t)>-1},first:function(){return this.values().shift()},last:function(){return this.values().pop()},size:function(){return this.values().length}};var f=["sort","map","reduce","filter","forEach","some","every","join","indexOf"];f.forEach(function(t){e.prototype[t]=function(){var n;return(n=this.values())[t].apply(n,arguments)}}),t.exports=e},function(t,n){t.exports=require("React")}]);
//# sourceMappingURL=microcosm.build.js.map
{
"name": "microcosm",
"version": "8.2.0-alpha",
"version": "8.2.0-rc1",
"description": "A variant of Facebook's Flux with centralized, isolated state",

@@ -5,0 +5,0 @@ "main": "src/Microcosm.js",

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var Foliage = require('foliage');
var Microscope = require('./Microscope');
var Plugin = require('./Plugin');

@@ -19,18 +18,6 @@ var React = require('react');

this.plugins = [];
// For Debugging purposes
this.constructor.displayName = 'Microcosm';
}
Microcosm.prototype = _extends({}, Foliage.prototype, {
/**
* Allows Microcosm to be used as a component, defering to the
* <Microscope /> component
*/
render: function render() {
return React.createElement(Microscope, this.props);
},
/**
* Generates the initial state a microcosm starts with. The reduction

@@ -287,2 +274,2 @@ * of calling `getInitialState` on all stores.

/*...callbacks*/
//# sourceMappingURL=data:application/json;base64,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QUMsQ0FBQTs7QUFFbkMsUUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLENBQUcsSUFBSSxFQUFJO0FBQ3BCLGFBQU8sR0FBRyxPQUFLLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzVDLGFBQU8sT0FBSyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDNUIsQ0FBQTs7QUFFRCxRQUFJLE1BQU0sR0FBRyxTQUFULE1BQU07YUFBUyxPQUFLLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO0tBQUEsQ0FBQTs7QUFFaEQsV0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0dBQzNEOzs7Ozs7Ozs7OztBQVdELFVBQVEsRUFBQSxrQkFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7O0FBQzVCLFdBQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUs7QUFDbkMsYUFBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7S0FDMUQsQ0FBQyxDQUFBO0dBQ0g7Q0FDRixDQUFDLENBQUE7O0FBRUYsTUFBTSxDQUFDLE9BQU8sR0FBSyxTQUFTLENBQUE7O0FBRTVCLFNBQVMsQ0FBQyxHQUFHLEdBQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDN0MsU0FBUyxDQUFDLEdBQUcsR0FBTSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUM3QyxTQUFTLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBIiwiZmlsZSI6Ik1pY3JvY29zbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBGb2xpYWdlICAgID0gcmVxdWlyZSgnZm9saWFnZScpXG5sZXQgTWljcm9zY29wZSA9IHJlcXVpcmUoJy4vTWljcm9zY29wZScpXG5sZXQgUGx1Z2luICAgICA9IHJlcXVpcmUoJy4vUGx1Z2luJylcbmxldCBSZWFjdCAgICAgID0gcmVxdWlyZSgncmVhY3QnKVxubGV0IFN0b3JlICAgICAgPSByZXF1aXJlKCcuL1N0b3JlJylcbmxldCBpbnN0YWxsICAgID0gcmVxdWlyZSgnLi9pbnN0YWxsJylcbmxldCByZW1hcCAgICAgID0gcmVxdWlyZSgnLi9yZW1hcCcpXG5sZXQgcnVuICAgICAgICA9IHJlcXVpcmUoJy4vcnVuJylcbmxldCBzaWduYWwgICAgID0gcmVxdWlyZSgnLi9zaWduYWwnKVxubGV0IHRhZyAgICAgICAgPSByZXF1aXJlKCcuL3RhZycpXG5cbmZ1bmN0aW9uIE1pY3JvY29zbSgpIHtcbiAgRm9saWFnZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG5cbiAgdGhpcy5zdG9yZXMgID0ge31cbiAgdGhpcy5wbHVnaW5zID0gW11cblxuICAvLyBGb3IgRGVidWdnaW5nIHB1cnBvc2VzXG4gIHRoaXMuY29uc3RydWN0b3IuZGlzcGxheU5hbWUgPSAnTWljcm9jb3NtJ1xufVxuXG5NaWNyb2Nvc20ucHJvdG90eXBlID0gT2JqZWN0LmFzc2lnbih7fSwgRm9saWFnZS5wcm90b3R5cGUsIHtcblxuICAvKipcbiAgICogQWxsb3dzIE1pY3JvY29zbSB0byBiZSB1c2VkIGFzIGEgY29tcG9uZW50LCBkZWZlcmluZyB0byB0aGVcbiAgICogPE1pY3Jvc2NvcGUgLz4gY29tcG9uZW50XG4gICAqL1xuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWljcm9zY29wZSwgdGhpcy5wcm9wcylcbiAgfSxcblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBpbml0aWFsIHN0YXRlIGEgbWljcm9jb3NtIHN0YXJ0cyB3aXRoLiBUaGUgcmVkdWN0aW9uXG4gICAqIG9mIGNhbGxpbmcgYGdldEluaXRpYWxTdGF0ZWAgb24gYWxsIHN0b3Jlcy5cbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIF9nZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgcmV0dXJuIHJlbWFwKHRoaXMuc3RvcmVzLCBzdG9yZSA9PiBzdG9yZS5nZXRJbml0aWFsU3RhdGUoKSlcbiAgfSxcblxuICAvKipcbiAgICogUmVzZXRzIHN0YXRlIHRvIHRoZSByZXN1bHQgb2YgY2FsbGluZyBgZ2V0SW5pdGlhbFN0YXRlKClgXG4gICAqIEByZXR1cm4gdGhpc1xuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5jb21taXQodGhpcy5fZ2V0SW5pdGlhbFN0YXRlKCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogRXhlY3V0ZXMgYGRlc2VyaWFsaXplYCBvbiB0aGUgcHJvdmlkZWQgZGF0YSBhbmQgdGhlbiBtZXJnZXMgaXQgaW50b1xuICAgKiB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBzdGF0ZS4gVGhpcyBmdW5jdGlvbiBpcyBncmVhdCBmb3JcbiAgICogYm9vdHN0cmFwcGluZyBkYXRhIHdoZW4gcmVuZGVyaW5nIGZyb20gdGhlIHNlcnZlci4gSXQgd2lsbCBub3RcbiAgICogYmxvdyBhd2F5IGtleXMgdGhhdCBoYXZlbid0IGJlZW4gcHJvdmlkZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gQSBKYXZhU2NyaXB0IG9iamVjdCBvZiBkYXRhIHRvIHJlcGxhY2VcbiAgICogQHJldHVybiB0aGlzXG4gICAqL1xuICByZXBsYWNlKGRhdGEpIHtcbiAgICB0aGlzLnVwZGF0ZSh0aGlzLmRlc2VyaWFsaXplKGRhdGEpKVxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIFB1c2hlcyBhIHBsdWdpbiBpbiB0byB0aGUgcmVnaXN0cnkgZm9yIGEgZ2l2ZW4gbWljcm9jb3NtLlxuICAgKiBXaGVuIGBhcHAuc3RhcnQoKWAgaXMgY2FsbGVkLCBpdCB3aWxsIGV4ZWN1dGUgcGx1Z2lucyBpblxuICAgKiB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBoYXZlIGJlZW4gYWRkZWQgdXNpbmcgdGhpcyBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBsdWdpbiAgLSBUaGUgcGx1Z2luIHRoYXQgd2lsbCBiZSBhZGRlZFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBwbHVnaW4gb24gc3RhcnRcbiAgICogQHJldHVybiB0aGlzXG4gICAqL1xuICBhZGRQbHVnaW4oY29uZmlnLCBvcHRpb25zKSB7XG4gICAgdGhpcy5wbHVnaW5zLnB1c2gobmV3IFBsdWdpbihjb25maWcsIG9wdGlvbnMpKVxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHN0b3JlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBgY29uZmlnYCBhbmQgYXNzaWducyBpdCB0b1xuICAgKiBtYW5hZ2UgdGhlIHByb3ZpZGVkIGBrZXlgLiBXaGVuZXZlciB0aGlzIHN0b3JlIHJlc3BvbmRzIHRvIGFuIGFjdGlvbixcbiAgICogaXQgd2lsbCBiZSBwcm92aWRlZCB0aGUgY3VycmVudCBzdGF0ZSBmb3IgdGhhdCBwYXJ0aWN1bGFyIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSAtIFRoZSBrZXkgaW4gZ2xvYmFsIHN0YXRlIHRoZSBzdG9yZSB3aWxsIG1hbmFnZVxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIHRvIGJ1aWxkIGEgbmV3IHN0b3JlXG4gICAqIEByZXR1cm4gdGhpc1xuICAgKi9cbiAgYWRkU3RvcmUoa2V5LCBjb25maWcpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBhcmd1bWVudHMubGVuZ3RoIDw9IDEpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgTWljcm9jb3NtOjphZGRTdG9yZSBleHBlY3RlZCBzdHJpbmcga2V5IGJ1dCB3YXMgZ2l2ZW46ICR7IHR5cGVvZiBrZXkgfS4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSB0aGUga2V5P2ApXG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZXNba2V5XSA9IG5ldyBTdG9yZShjb25maWcsIGtleSlcblxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0cmFuc2Zvcm1pbmcgYXBwbGljYXRpb24gc3RhdGVcbiAgICogYWNjb3JkaW5nIHRvIHRoZSBgc2VyaWFsaXplYCBtZXRob2QgZGVzY3JpYmVkIGJ5IGVhY2ggc3RvcmUuXG4gICAqXG4gICAqIEByZXR1cm4gT2JqZWN0XG4gICAqL1xuICBzZXJpYWxpemUoKSB7XG4gICAgcmV0dXJuIHJlbWFwKHRoaXMuc3RvcmVzLCAoc3RvcmUsIGtleSkgPT4gc3RvcmUuc2VyaWFsaXplKHRoaXMuZ2V0KGtleSkpKVxuICB9LFxuXG4gIC8qKlxuICAgKiBGb3IgZWFjaCBrZXkgaW4gdGhlIHByb3ZpZGVkIGBkYXRhYCBwYXJhbWV0ZXIsIHRyYW5zZm9ybSBpdCB1c2luZ1xuICAgKiB0aGUgYGRlc2VyaWFsaXplYCBtZXRob2QgcHJvdmlkZWQgYnkgdGhlIHN0b3JlIG1hbmFnaW5nIHRoYXQga2V5LlxuICAgKiBUaGVuIGZvbGQgdGhlIGRlc2VyaWFsaXplZCBkYXRhIG92ZXIgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gRGF0YSB0byBkZXNlcmlhbGl6ZVxuICAgKiBAcmV0dXJuIE9iamVjdFxuICAgKi9cbiAgZGVzZXJpYWxpemUoZGF0YSkge1xuICAgIHJldHVybiByZW1hcChkYXRhLCAoc3RhdGUsIGtleSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmVzW2tleV0uZGVzZXJpYWxpemUoc3RhdGUpXG4gICAgfSlcbiAgfSxcblxuICAvKipcbiAgICogQWxpYXMgZm9yIGBzZXJpYWxpemVgXG4gICAqIEByZXR1cm4gT2JqZWN0XG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKClcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBhIGNsb25lIG9mIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlXG4gICAqIEByZXR1cm4gT2JqZWN0XG4gICAqL1xuICB0b09iamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZU9mKClcbiAgfSxcblxuICAvKipcbiAgICogU3RhcnRzIGFuIGFwcGxpY2F0aW9uLiBJdCBkb2VzIGEgY291cGxlIG9mIHRoaW5nczpcbiAgICpcbiAgICogMS4gQ2FsbHMgYHRoaXMucmVzZXQoKWAgdG8gZGV0ZXJtaW5lIGluaXRpYWwgc3RhdGVcbiAgICogMi4gUnVucyB0aHJvdWdoIGFsbCBwbHVnaW5zLCBpdCB3aWxsIHRlcm1pbmF0ZSBpZiBhbnkgZmFpbFxuICAgKiAzLiBFeGVjdXRlcyB0aGUgcHJvdmlkZWQgbGlzdCBvZiBjYWxsYmFja3MsIHBhc3NpbmcgYWxvbmcgYW55IGVycm9yc1xuICAgKiAgICBnZW5lcmF0ZWQgaWYgaW5zdGFsbGluZyBwbHVnaW5zIGZhaWxzLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLkZ1bmN0aW9ufSBjYWxsYmFja3MgLSBDYWxsYmFja3MgdG8gcnVuIGFmdGVyIHBsdWdpbnMgaW5zdGFsbFxuICAgKiBAcmV0dXJuIE1pY3JvY29zbVxuICAgKi9cbiAgc3RhcnQoLyouLi5jYWxsYmFja3MqLykge1xuICAgIGxldCBjYWxsYmFja3MgPSBhcmd1bWVudHNcblxuICAgIHRoaXMucmVzZXQoKVxuXG4gICAgLy8gUXVldWUgcGx1Z2lucyBhbmQgdGhlbiBub3RpZnkgdGhhdCBpbnN0YWxsYXRpb24gaGFzIGZpbmlzaGVkXG4gICAgaW5zdGFsbCh0aGlzLnBsdWdpbnMsIHRoaXMsICgpID0+IHJ1bihjYWxsYmFja3MsIFtdLCB0aGlzLCAnc3RhcnQnKSlcblxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIFBhcnRpYWxseSBhcHBsaWVzIGBwdXNoYC5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWN0aW9uIC0gVGhlIGFjdGlvbiB0byBiaW5kXG4gICAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbXMgLSBQcmVmaWxsZWQgYXJndW1lbnRzXG4gICAqIEByZXR1cm4gZnVuY3Rpb25cbiAgICovXG4gIHByZXBhcmUoYWN0aW9uLCAuLi5wYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5wdXNoLmJpbmQodGhpcywgYWN0aW9uLCAuLi5wYXJhbXMpXG4gIH0sXG5cbiAgLyoqXG4gICAqIEZvciBhIGdpdmVuIFNUQVRFLCByZXZlcnQgYWxsIGtleXMgaW4gYSBDSEFOR0VTRVRcbiAgICogdG8gdGhlIG9yaWdpbmFsLCB1bmxlc3MgbmV3IGZhY3RzIGhhdmUgY2hhbmdlZCB0aGUgY3VycmVudCB2YWx1ZVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gYmFzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gaGVhZFxuICAgKi9cbiAgcm9sbGJhY2soc3RhdGUsIGNoYW5nZXMpIHtcbiAgICBsZXQgcmVzb2x1dGlvbiA9IHJlbWFwKGNoYW5nZXMsIChoZWFkLCBrZXkpID0+IHtcbiAgICAgIGxldCBiYXNlICAgID0gc3RhdGVba2V5XVxuICAgICAgbGV0IGN1cnJlbnQgPSB0aGlzLmdldChrZXkpXG5cbiAgICAgIHJldHVybiBjdXJyZW50ICE9PSBoZWFkICYmIGN1cnJlbnQgIT09IGJhc2UgPyBjdXJyZW50IDogYmFzZVxuICAgIH0pXG5cbiAgICB0aGlzLnVwZGF0ZShyZXNvbHV0aW9uKVxuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0YXRlIG1hbmFnZWQgYnkgYWxsIHN0b3JlcyB0aGF0IGNhbiByZXNwb25kIHRvIGEgZ2l2ZW4gYWN0aW9uXG4gICAqL1xuICBzdGF0ZUZvcihhY3Rpb24pIHtcbiAgICBsZXQgc3RvcmVzID0gT2JqZWN0LmtleXModGhpcy5zdG9yZXMpXG4gICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IFN0b3JlLnRhc2tGb3IodGhpcy5zdG9yZXNba2V5XSwgYWN0aW9uKSlcblxuICAgIHJldHVybiBzdG9yZXMucmVkdWNlKChtZW1vLCBrZXkpID0+IHtcbiAgICAgIG1lbW9ba2V5XSA9IHRoaXMuZ2V0KGtleSlcbiAgICAgIHJldHVybiBtZW1vXG4gICAgfSwge30pXG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGFuIGFjdGlvbi4gSWYgaXQgcmVzb2x2ZWQgc3VjY2Vzc2Z1bGx5LCBpdCBkaXNwYXRjaGVzIHRoYXRcbiAgICogdGhlIHJlc3VsdGluZyBwYXJhbWV0ZXJzIHRvIHJlZ2lzdGVyZWQgc3RvcmVzIGZvciB0cmFuc2Zvcm1hdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWN0aW9uIC0gVGhlIGFjdGlvbiB0byBkaXNwYXRjaFxuICAgKiBAcGFyYW0gey4uLmFueX0gcGFyYW1zIC0gQXJndW1lbnRzIHRoZSBhY3Rpb24gaXMgY2FsbGVkIHdpdGhcbiAgICogQHJldHVybiBhY3Rpb24gcmVzdWx0XG4gICAqL1xuICBwdXNoKGFjdGlvbiwgLi4ucGFyYW1zKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGFjdGlvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKGBUcmllZCB0byBwdXNoICR7IGFjdGlvbiB9LCBidXQgaXMgbm90IGEgZnVuY3Rpb24uYClcbiAgICB9XG5cbiAgICB0YWcoYWN0aW9uKVxuXG4gICAgbGV0IGNoYW5nZXMgPSB7fVxuICAgIGxldCBzdGF0ZSAgID0gdGhpcy5zdGF0ZUZvcihhY3Rpb24pXG5cbiAgICBsZXQgcmVzb2x2ZSA9IGJvZHkgPT4ge1xuICAgICAgY2hhbmdlcyA9IHRoaXMuZGlzcGF0Y2goc3RhdGUsIGFjdGlvbiwgYm9keSlcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShjaGFuZ2VzKVxuICAgIH1cblxuICAgIGxldCByZWplY3QgPSAoKSA9PiB0aGlzLnJvbGxiYWNrKHN0YXRlLCBjaGFuZ2VzKVxuXG4gICAgcmV0dXJuIHNpZ25hbChyZXNvbHZlLCByZWplY3QsIGFjdGlvbi5hcHBseSh0aGlzLCBwYXJhbXMpKVxuICB9LFxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIG1lc3NhZ2UgdG8gZWFjaCBrbm93biBzdG9yZSBhc2tpbmcgaWYgaXQgY2FuIHJlc3BvbmQgdG8gdGhlXG4gICAqIHByb3ZpZGVkIGFjdGlvbi4gSWYgc28sIHRha2VzIHRoZSByZXR1cm5lZCBuZXcgc3RhdGUgZm9yIHRoYXQgc3RvcmUnc1xuICAgKiBtYW5hZ2VkIGtleSBhbmQgYXNzaWducyBpdCBhcyBuZXcgc3RhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSAtIFRoZSBjdXJyZW50IHN0YXRlIG9iamVjdCB0byBzZWVkIHN0b3JlcyB3aXRoXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGFjdGlvbiAtIFRoZSBhY3Rpb24gdG8gc2VuZCB0byBlYWNoIHN0b3JlXG4gICAqIEBwYXJhbSB7YW55fSBib2R5IC0gVGhlIHBheWxvYWQgb2YgdGhlIGFjdGlvblxuICAgKi9cbiAgZGlzcGF0Y2goc3RhdGUsIGFjdGlvbiwgYm9keSkge1xuICAgIHJldHVybiByZW1hcChzdGF0ZSwgKHN1YnNldCwga2V5KSA9PiB7XG4gICAgICByZXR1cm4gU3RvcmUuc2VuZCh0aGlzLnN0b3Jlc1trZXldLCBhY3Rpb24sIHN1YnNldCwgYm9keSlcbiAgICB9KVxuICB9XG59KVxuXG5tb2R1bGUuZXhwb3J0cyAgID0gTWljcm9jb3NtXG5cbk1pY3JvY29zbS5nZXQgICAgPSByZXF1aXJlKCdmb2xpYWdlL3NyYy9nZXQnKVxuTWljcm9jb3NtLnNldCAgICA9IHJlcXVpcmUoJ2ZvbGlhZ2Uvc3JjL3NldCcpXG5NaWNyb2Nvc20ucmVtb3ZlID0gcmVxdWlyZSgnZm9saWFnZS9zcmMvcmVtb3ZlJylcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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RyxTQUFULE1BQU07YUFBUyxPQUFLLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO0tBQUEsQ0FBQTs7QUFFaEQsV0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0dBQzNEOzs7Ozs7Ozs7OztBQVdELFVBQVEsRUFBQSxrQkFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7O0FBQzVCLFdBQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUs7QUFDbkMsYUFBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7S0FDMUQsQ0FBQyxDQUFBO0dBQ0g7Q0FDRixDQUFDLENBQUE7O0FBRUYsTUFBTSxDQUFDLE9BQU8sR0FBSyxTQUFTLENBQUE7O0FBRTVCLFNBQVMsQ0FBQyxHQUFHLEdBQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDN0MsU0FBUyxDQUFDLEdBQUcsR0FBTSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUM3QyxTQUFTLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBIiwiZmlsZSI6Ik1pY3JvY29zbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBGb2xpYWdlID0gcmVxdWlyZSgnZm9saWFnZScpXG5sZXQgUGx1Z2luICA9IHJlcXVpcmUoJy4vUGx1Z2luJylcbmxldCBSZWFjdCAgID0gcmVxdWlyZSgncmVhY3QnKVxubGV0IFN0b3JlICAgPSByZXF1aXJlKCcuL1N0b3JlJylcbmxldCBpbnN0YWxsID0gcmVxdWlyZSgnLi9pbnN0YWxsJylcbmxldCByZW1hcCAgID0gcmVxdWlyZSgnLi9yZW1hcCcpXG5sZXQgcnVuICAgICA9IHJlcXVpcmUoJy4vcnVuJylcbmxldCBzaWduYWwgID0gcmVxdWlyZSgnLi9zaWduYWwnKVxubGV0IHRhZyAgICAgPSByZXF1aXJlKCcuL3RhZycpXG5cbmZ1bmN0aW9uIE1pY3JvY29zbSgpIHtcbiAgRm9saWFnZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG5cbiAgdGhpcy5zdG9yZXMgID0ge31cbiAgdGhpcy5wbHVnaW5zID0gW11cbn1cblxuTWljcm9jb3NtLnByb3RvdHlwZSA9IE9iamVjdC5hc3NpZ24oe30sIEZvbGlhZ2UucHJvdG90eXBlLCB7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGluaXRpYWwgc3RhdGUgYSBtaWNyb2Nvc20gc3RhcnRzIHdpdGguIFRoZSByZWR1Y3Rpb25cbiAgICogb2YgY2FsbGluZyBgZ2V0SW5pdGlhbFN0YXRlYCBvbiBhbGwgc3RvcmVzLlxuICAgKiBAcmV0dXJuIE9iamVjdFxuICAgKi9cbiAgX2dldEluaXRpYWxTdGF0ZSgpIHtcbiAgICByZXR1cm4gcmVtYXAodGhpcy5zdG9yZXMsIHN0b3JlID0+IHN0b3JlLmdldEluaXRpYWxTdGF0ZSgpKVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXNldHMgc3RhdGUgdG8gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIGBnZXRJbml0aWFsU3RhdGUoKWBcbiAgICogQHJldHVybiB0aGlzXG4gICAqL1xuICByZXNldCgpIHtcbiAgICB0aGlzLmNvbW1pdCh0aGlzLl9nZXRJbml0aWFsU3RhdGUoKSlcbiAgICByZXR1cm4gdGhpc1xuICB9LFxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBgZGVzZXJpYWxpemVgIG9uIHRoZSBwcm92aWRlZCBkYXRhIGFuZCB0aGVuIG1lcmdlcyBpdCBpbnRvXG4gICAqIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlLiBUaGlzIGZ1bmN0aW9uIGlzIGdyZWF0IGZvclxuICAgKiBib290c3RyYXBwaW5nIGRhdGEgd2hlbiByZW5kZXJpbmcgZnJvbSB0aGUgc2VydmVyLiBJdCB3aWxsIG5vdFxuICAgKiBibG93IGF3YXkga2V5cyB0aGF0IGhhdmVuJ3QgYmVlbiBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBBIEphdmFTY3JpcHQgb2JqZWN0IG9mIGRhdGEgdG8gcmVwbGFjZVxuICAgKiBAcmV0dXJuIHRoaXNcbiAgICovXG4gIHJlcGxhY2UoZGF0YSkge1xuICAgIHRoaXMudXBkYXRlKHRoaXMuZGVzZXJpYWxpemUoZGF0YSkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogUHVzaGVzIGEgcGx1Z2luIGluIHRvIHRoZSByZWdpc3RyeSBmb3IgYSBnaXZlbiBtaWNyb2Nvc20uXG4gICAqIFdoZW4gYGFwcC5zdGFydCgpYCBpcyBjYWxsZWQsIGl0IHdpbGwgZXhlY3V0ZSBwbHVnaW5zIGluXG4gICAqIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGhhdmUgYmVlbiBhZGRlZCB1c2luZyB0aGlzIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGx1Z2luICAtIFRoZSBwbHVnaW4gdGhhdCB3aWxsIGJlIGFkZGVkXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gT3B0aW9ucyBwYXNzZWQgdG8gdGhlIHBsdWdpbiBvbiBzdGFydFxuICAgKiBAcmV0dXJuIHRoaXNcbiAgICovXG4gIGFkZFBsdWdpbihjb25maWcsIG9wdGlvbnMpIHtcbiAgICB0aGlzLnBsdWdpbnMucHVzaChuZXcgUGx1Z2luKGNvbmZpZywgb3B0aW9ucykpXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgc3RvcmUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGBjb25maWdgIGFuZCBhc3NpZ25zIGl0IHRvXG4gICAqIG1hbmFnZSB0aGUgcHJvdmlkZWQgYGtleWAuIFdoZW5ldmVyIHRoaXMgc3RvcmUgcmVzcG9uZHMgdG8gYW4gYWN0aW9uLFxuICAgKiBpdCB3aWxsIGJlIHByb3ZpZGVkIHRoZSBjdXJyZW50IHN0YXRlIGZvciB0aGF0IHBhcnRpY3VsYXIga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IC0gVGhlIGtleSBpbiBnbG9iYWwgc3RhdGUgdGhlIHN0b3JlIHdpbGwgbWFuYWdlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gYnVpbGQgYSBuZXcgc3RvcmVcbiAgICogQHJldHVybiB0aGlzXG4gICAqL1xuICBhZGRTdG9yZShrZXksIGNvbmZpZykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGFyZ3VtZW50cy5sZW5ndGggPD0gMSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKGBNaWNyb2Nvc206OmFkZFN0b3JlIGV4cGVjdGVkIHN0cmluZyBrZXkgYnV0IHdhcyBnaXZlbjogJHsgdHlwZW9mIGtleSB9LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIHRoZSBrZXk/YClcbiAgICB9XG5cbiAgICB0aGlzLnN0b3Jlc1trZXldID0gbmV3IFN0b3JlKGNvbmZpZywga2V5KVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRyYW5zZm9ybWluZyBhcHBsaWNhdGlvbiBzdGF0ZVxuICAgKiBhY2NvcmRpbmcgdG8gdGhlIGBzZXJpYWxpemVgIG1ldGhvZCBkZXNjcmliZWQgYnkgZWFjaCBzdG9yZS5cbiAgICpcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIHNlcmlhbGl6ZSgpIHtcbiAgICByZXR1cm4gcmVtYXAodGhpcy5zdG9yZXMsIChzdG9yZSwga2V5KSA9PiBzdG9yZS5zZXJpYWxpemUodGhpcy5nZXQoa2V5KSkpXG4gIH0sXG5cbiAgLyoqXG4gICAqIEZvciBlYWNoIGtleSBpbiB0aGUgcHJvdmlkZWQgYGRhdGFgIHBhcmFtZXRlciwgdHJhbnNmb3JtIGl0IHVzaW5nXG4gICAqIHRoZSBgZGVzZXJpYWxpemVgIG1ldGhvZCBwcm92aWRlZCBieSB0aGUgc3RvcmUgbWFuYWdpbmcgdGhhdCBrZXkuXG4gICAqIFRoZW4gZm9sZCB0aGUgZGVzZXJpYWxpemVkIGRhdGEgb3ZlciB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBEYXRhIHRvIGRlc2VyaWFsaXplXG4gICAqIEByZXR1cm4gT2JqZWN0XG4gICAqL1xuICBkZXNlcmlhbGl6ZShkYXRhKSB7XG4gICAgcmV0dXJuIHJlbWFwKGRhdGEsIChzdGF0ZSwga2V5KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZXNba2V5XS5kZXNlcmlhbGl6ZShzdGF0ZSlcbiAgICB9KVxuICB9LFxuXG4gIC8qKlxuICAgKiBBbGlhcyBmb3IgYHNlcmlhbGl6ZWBcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2xvbmUgb2YgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGVcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIHRvT2JqZWN0KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKVxuICB9LFxuXG4gIC8qKlxuICAgKiBTdGFydHMgYW4gYXBwbGljYXRpb24uIEl0IGRvZXMgYSBjb3VwbGUgb2YgdGhpbmdzOlxuICAgKlxuICAgKiAxLiBDYWxscyBgdGhpcy5yZXNldCgpYCB0byBkZXRlcm1pbmUgaW5pdGlhbCBzdGF0ZVxuICAgKiAyLiBSdW5zIHRocm91Z2ggYWxsIHBsdWdpbnMsIGl0IHdpbGwgdGVybWluYXRlIGlmIGFueSBmYWlsXG4gICAqIDMuIEV4ZWN1dGVzIHRoZSBwcm92aWRlZCBsaXN0IG9mIGNhbGxiYWNrcywgcGFzc2luZyBhbG9uZyBhbnkgZXJyb3JzXG4gICAqICAgIGdlbmVyYXRlZCBpZiBpbnN0YWxsaW5nIHBsdWdpbnMgZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSB7Li4uRnVuY3Rpb259IGNhbGxiYWNrcyAtIENhbGxiYWNrcyB0byBydW4gYWZ0ZXIgcGx1Z2lucyBpbnN0YWxsXG4gICAqIEByZXR1cm4gTWljcm9jb3NtXG4gICAqL1xuICBzdGFydCgvKi4uLmNhbGxiYWNrcyovKSB7XG4gICAgbGV0IGNhbGxiYWNrcyA9IGFyZ3VtZW50c1xuXG4gICAgdGhpcy5yZXNldCgpXG5cbiAgICAvLyBRdWV1ZSBwbHVnaW5zIGFuZCB0aGVuIG5vdGlmeSB0aGF0IGluc3RhbGxhdGlvbiBoYXMgZmluaXNoZWRcbiAgICBpbnN0YWxsKHRoaXMucGx1Z2lucywgdGhpcywgKCkgPT4gcnVuKGNhbGxiYWNrcywgW10sIHRoaXMsICdzdGFydCcpKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfSxcblxuICAvKipcbiAgICogUGFydGlhbGx5IGFwcGxpZXMgYHB1c2hgLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIGJpbmRcbiAgICogQHBhcmFtIHsuLi5hbnl9IHBhcmFtcyAtIFByZWZpbGxlZCBhcmd1bWVudHNcbiAgICogQHJldHVybiBmdW5jdGlvblxuICAgKi9cbiAgcHJlcGFyZShhY3Rpb24sIC4uLnBhcmFtcykge1xuICAgIHJldHVybiB0aGlzLnB1c2guYmluZCh0aGlzLCBhY3Rpb24sIC4uLnBhcmFtcylcbiAgfSxcblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gU1RBVEUsIHJldmVydCBhbGwga2V5cyBpbiBhIENIQU5HRVNFVFxuICAgKiB0byB0aGUgb3JpZ2luYWwsIHVubGVzcyBuZXcgZmFjdHMgaGF2ZSBjaGFuZ2VkIHRoZSBjdXJyZW50IHZhbHVlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBiYXNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBoZWFkXG4gICAqL1xuICByb2xsYmFjayhzdGF0ZSwgY2hhbmdlcykge1xuICAgIGxldCByZXNvbHV0aW9uID0gcmVtYXAoY2hhbmdlcywgKGhlYWQsIGtleSkgPT4ge1xuICAgICAgbGV0IGJhc2UgICAgPSBzdGF0ZVtrZXldXG4gICAgICBsZXQgY3VycmVudCA9IHRoaXMuZ2V0KGtleSlcblxuICAgICAgcmV0dXJuIGN1cnJlbnQgIT09IGhlYWQgJiYgY3VycmVudCAhPT0gYmFzZSA/IGN1cnJlbnQgOiBiYXNlXG4gICAgfSlcblxuICAgIHRoaXMudXBkYXRlKHJlc29sdXRpb24pXG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RhdGUgbWFuYWdlZCBieSBhbGwgc3RvcmVzIHRoYXQgY2FuIHJlc3BvbmQgdG8gYSBnaXZlbiBhY3Rpb25cbiAgICovXG4gIHN0YXRlRm9yKGFjdGlvbikge1xuICAgIGxldCBzdG9yZXMgPSBPYmplY3Qua2V5cyh0aGlzLnN0b3JlcylcbiAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihrZXkgPT4gU3RvcmUudGFza0Zvcih0aGlzLnN0b3Jlc1trZXldLCBhY3Rpb24pKVxuXG4gICAgcmV0dXJuIHN0b3Jlcy5yZWR1Y2UoKG1lbW8sIGtleSkgPT4ge1xuICAgICAgbWVtb1trZXldID0gdGhpcy5nZXQoa2V5KVxuICAgICAgcmV0dXJuIG1lbW9cbiAgICB9LCB7fSlcbiAgfSxcblxuICAvKipcbiAgICogUmVzb2x2ZXMgYW4gYWN0aW9uLiBJZiBpdCByZXNvbHZlZCBzdWNjZXNzZnVsbHksIGl0IGRpc3BhdGNoZXMgdGhhdFxuICAgKiB0aGUgcmVzdWx0aW5nIHBhcmFtZXRlcnMgdG8gcmVnaXN0ZXJlZCBzdG9yZXMgZm9yIHRyYW5zZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIGRpc3BhdGNoXG4gICAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbXMgLSBBcmd1bWVudHMgdGhlIGFjdGlvbiBpcyBjYWxsZWQgd2l0aFxuICAgKiBAcmV0dXJuIGFjdGlvbiByZXN1bHRcbiAgICovXG4gIHB1c2goYWN0aW9uLCAuLi5wYXJhbXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgYWN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYFRyaWVkIHRvIHB1c2ggJHsgYWN0aW9uIH0sIGJ1dCBpcyBub3QgYSBmdW5jdGlvbi5gKVxuICAgIH1cblxuICAgIHRhZyhhY3Rpb24pXG5cbiAgICBsZXQgY2hhbmdlcyA9IHt9XG4gICAgbGV0IHN0YXRlICAgPSB0aGlzLnN0YXRlRm9yKGFjdGlvbilcblxuICAgIGxldCByZXNvbHZlID0gYm9keSA9PiB7XG4gICAgICBjaGFuZ2VzID0gdGhpcy5kaXNwYXRjaChzdGF0ZSwgYWN0aW9uLCBib2R5KVxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKGNoYW5nZXMpXG4gICAgfVxuXG4gICAgbGV0IHJlamVjdCA9ICgpID0+IHRoaXMucm9sbGJhY2soc3RhdGUsIGNoYW5nZXMpXG5cbiAgICByZXR1cm4gc2lnbmFsKHJlc29sdmUsIHJlamVjdCwgYWN0aW9uLmFwcGx5KHRoaXMsIHBhcmFtcykpXG4gIH0sXG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgbWVzc2FnZSB0byBlYWNoIGtub3duIHN0b3JlIGFza2luZyBpZiBpdCBjYW4gcmVzcG9uZCB0byB0aGVcbiAgICogcHJvdmlkZWQgYWN0aW9uLiBJZiBzbywgdGFrZXMgdGhlIHJldHVybmVkIG5ldyBzdGF0ZSBmb3IgdGhhdCBzdG9yZSdzXG4gICAqIG1hbmFnZWQga2V5IGFuZCBhc3NpZ25zIGl0IGFzIG5ldyBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHN0YXRlIC0gVGhlIGN1cnJlbnQgc3RhdGUgb2JqZWN0IHRvIHNlZWQgc3RvcmVzIHdpdGhcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWN0aW9uIC0gVGhlIGFjdGlvbiB0byBzZW5kIHRvIGVhY2ggc3RvcmVcbiAgICogQHBhcmFtIHthbnl9IGJvZHkgLSBUaGUgcGF5bG9hZCBvZiB0aGUgYWN0aW9uXG4gICAqL1xuICBkaXNwYXRjaChzdGF0ZSwgYWN0aW9uLCBib2R5KSB7XG4gICAgcmV0dXJuIHJlbWFwKHN0YXRlLCAoc3Vic2V0LCBrZXkpID0+IHtcbiAgICAgIHJldHVybiBTdG9yZS5zZW5kKHRoaXMuc3RvcmVzW2tleV0sIGFjdGlvbiwgc3Vic2V0LCBib2R5KVxuICAgIH0pXG4gIH1cbn0pXG5cbm1vZHVsZS5leHBvcnRzICAgPSBNaWNyb2Nvc21cblxuTWljcm9jb3NtLmdldCAgICA9IHJlcXVpcmUoJ2ZvbGlhZ2Uvc3JjL2dldCcpXG5NaWNyb2Nvc20uc2V0ICAgID0gcmVxdWlyZSgnZm9saWFnZS9zcmMvc2V0Jylcbk1pY3JvY29zbS5yZW1vdmUgPSByZXF1aXJlKCdmb2xpYWdlL3NyYy9yZW1vdmUnKVxuIl19

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc