UNPKG

whistle

Version:

HTTP, HTTP2, HTTPS, Websocket debugging proxy

2 lines 1.9 MB
!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return/^https?:\/\/[^/]/i.test(e)}function o(e){if(/\.json$/i.test(e.name)&&se.test(e.value))try{JSON.parse(e.value)}catch(t){X.warn("Warning: the value of "+e.name+" can`t be parsed into json. "+t.message)}}function i(e,t){for(var n=Object.keys(e),r=0,o=n.length;o>r;r++){var i=n[r],a=t.get(i);if(a&&a.value!==e[i])return!0}return!1}function a(e,t){var n=new FormData,r=new File([JSON.stringify(e)],"data.json",{type:"application/json"});return n.append(t||"rules",r),n}function s(e){return e=e.trim(),e?r(e)?e:void X.error("Please input the correct url."):void X.error("The url cannot be empty.")}function l(e,t){var n={url:e};O.importRemote(n,function(e,n){if(!e)return H.showSystemError(n),t(!0);if(0!==e.ec)return X.error(e.em),t(!0);try{if(e=e.body&&JSON.parse(e.body),e&&Object.keys(e).length)return t(!1,e);X.info("No body data.")}catch(r){X.error(r.message)}t(!0)})}function c(e,t){return H.isString(e)?e.length>de?(oe.alert("The file size is too large."),t()):t(p(e)):e&&/\.(txt|json)$/i.test(e.name)?e.size>de?(oe.alert("The file size is too large."),t()):void H.readFileAsText(e,function(e){t(p(e))}):(oe.alert("Only supports .txt or .json file."),t())}function u(e,t,n){c(e,function(e){return!e||H.handleImportData(e)?t():void t(e)})}function d(e){var t=location.hash.substring(1);return t=t?t.replace(/[?#].*$/,""):location.href.replace(/[?#].*$/,"").replace(/.*\//,""),e.showAccount&&"account"===t?t:e.networkMode?"network":e.rulesMode&&e.pluginsMode?"plugins":e.rulesOnlyMode?"values"===t?"values":"rules":e.rulesMode?"network"===t?"rules":t:e.pluginsMode?"plugins"!==t?"network":t:be&&!t?P.get("pageName")||"network":t}function p(e){try{var t=JSON.parse(e);return t&&"object"===("undefined"==typeof t?"undefined":y(t))?t:null}catch(n){X.error(n.message)}}function h(e,t){var n,r=e.length;for(n=0;r>n;n++)if(-1===T.inArray(e[n],t))return!1;var o=t.length;if(r!==o)for(n=0;o>n;n++)if(-1===T.inArray(t[n],e))return!1;return!0}function g(e){if(0==e.indexOf("{")){var t=e.lastIndexOf("}");return t>1&&e.substring(1,t)}return!1}function f(e){if(0==e.indexOf("(")){var t=e.lastIndexOf(")");return-1!=t&&e.substring(1,t)||""}return!1}function m(e,t){if(t.length){for(var n=0,r=e.length;r>n;n++)if(H.isGroup(e[n]))return t.unshift(n,0),void e.splice.apply(e,t);e.push.apply(e,t)}}function A(e,t,n){var r=n.getChangedList();if(r.length){var o,i,a=[];return r.forEach(function(e){var n=e.name,r=t[n];r?r.value!=e.value&&(o=!0,t[n]=e):(t[n]=e,a.push(n),e.active&&(i=e))}),m(e,a),i&&(e.forEach(function(e){t[e].active=!1}),i.active=!0),o}}function M(e){return"crt"===e||"pem"===e?e:"cer"}var w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n(4);var b,v,x,T=n(8),N=n(9),C=n(42),I=n(181),E=n(189),D=n(215),S=n(335),L=n(336),k=n(594),j=n(598),B=n(565),U=n(564),z=n(602),Q=n(605),R=n(608),O=n(202),H=n(204),F=n(288),V=n(201),P=n(213),Y=n(200),G=n(614),W=n(617),X=n(208),_=n(618),J=n(293),q=n(619),K=n(623),Z=n(624),$=n(630),ee=n(633),te=n(635),ne=n(637),re=n(638),oe=n(211),ie=/^(?:[\w-]+:\/\/)?temp\/([\da-z]{64}|blank)(?:\.[\w-]+)?$/,ae=/http\/2\.0/i,se=/^\s*(?:[\{{][\w\W]+[\}}]|\[[\w\W]+\])\s*$/,le="Default",ce=7,ue=134217728,de=37748736,pe=2097152,he=100,ge=".cm-js-type, .cm-js-http-url, .cm-string, .cm-js-at",fe=/^"(https?:)?(\/\/[^/]\S+)"$/i,me=/^@(https?:)?(\/\/[^/]\S+)$/i,Ae=["removeSelected","exportWhistleFile","exportSazFile"],Me={display:"none"},we=window.location.search,ye=H.getQuery(),be="client"===ye.mode,ve=!(!ye.hideMenus&&!ye.hideMenu);window.setWhistleDataUrl=function(e){return r(e)?(O.handleDataUrl?O.handleDataUrl(e):x=e,!0):!1},/[&#?]showTreeView=(0|false|1|true)(?:&|$|#)/.test(we)&&(v="1"===RegExp.$1||"true"===RegExp.$1),/[&#?]hideLeft(?:Bar|Menu)=(0|false|1|true)(?:&|$|#)/.test(we)?b="1"===RegExp.$1||"true"===RegExp.$1:/[&#?]showLeft(?:Bar|Menu)=(0|false|1|true)(?:&|$|#)/.test(we)&&(b="0"===RegExp.$1||"false"===RegExp.$1);var xe=[{name:"Scroll To Top",action:"top"},{name:"Scroll To Selected",action:"selected"},{name:"Scroll To Bottom",action:"bottom"}],Te=[{name:"Clear",icon:"remove"},{name:"Save",icon:"save-file"},{name:"Tree View",multiple:!0},{name:"Rules",multiple:!0},{name:"Plugins",multiple:!0}],Ne=[{name:"Export Selected",icon:"export",id:"exportRules"},{name:"Export All",href:"cgi-bin/rules/export",target:"downloadTargetFrame",id:"exportAllRules"},{name:"Import",icon:"import",id:"importRules"}],Ce=[{name:"Export Selected",icon:"export",id:"exportValues"},{name:"Export All",href:"cgi-bin/values/export",target:"downloadTargetFrame",id:"exportAllValues"},{name:"Import",icon:"import",id:"importValues"}],Ie=[{name:"Remove Selected Sessions",icon:"remove",id:"removeSelected",disabled:!0,title:"Ctrl[Command] + D"},{name:"Remove Unselected Sessions",id:"removeUnselected",disabled:!0,title:"Ctrl[Command] + Shift + D"}],Ee=[{name:"Abort",icon:"ban-circle",id:"abort"}],De=N.createClass({displayName:"Index",getInitialState:function(){var e=this,t=e.props.modal,n=t.rules,r=t.values,o=t.server,i=!!o.multiEnv,a={replayCount:1,tabs:[],caType:M(P.get("caType")),allowMultipleChoice:t.rules.allowMultipleChoice,backRulesFirst:t.rules.backRulesFirst,networkMode:!!o.networkMode,rulesMode:!!o.rulesMode,pluginsMode:!!o.pluginsMode,rulesOnlyMode:!!o.rulesOnlyMode,multiEnv:o.multiEnv,isWin:o.isWin,ndr:o.ndr,ndp:o.ndp,drb:o.drb,drm:o.drm,version:t.version};b!==!1&&(b=b||o.hideLeftMenu);var s=d(a);s&&-1==s.indexOf("rules")?-1!=s.indexOf("values")?(a.hasValues=!0,a.name="values"):-1!=s.indexOf("plugins")?(a.hasPlugins=!0,a.name="plugins"):a.showAccount&&"account"===s?(a.hasAccount=!0,a.name="account"):(a.hasNetwork=!0,a.name="network"):(a.hasRules=!0,a.name="rules");var l,c=[],u=[],p={},h=[],g=[],f={},m=P.get("rulesTheme"),A=P.get("valuesTheme"),w=P.get("rulesFontSize"),y=P.get("valuesFontSize"),x=P.get("showRulesLineNumbers"),T=P.get("showValuesLineNumbers"),N=P.get("autoRulesLineWrapping"),C=P.get("autoValuesLineWrapping");if(n){l=P.get("activeRules")||n.current;var I=!n.defaultRulesIsDisabled;m||(m=n.theme),w||(w=n.fontSize),x||(x=n.showLineNumbers?"true":"false"),c.push(le),p.Default={name:le,fixed:!0,value:n.defaultRules,selected:I,isDefault:!0,active:l===le},u.push(p.Default),n.list.forEach(function(e){c.push(e.name),e=p[e.name]={name:e.name,value:e.data,selected:e.selected,active:l===e.name},u.push(e)})}r&&(l=P.get("activeValues")||r.current,A||(A=r.theme),y||(y=r.fontSize),T||(T=r.showLineNumbers?"true":"false"),r.list.forEach(function(e){h.push(e.name),f[e.name]={name:e.name,value:e.data,active:l===e.name},g.push({name:e.name,icon:"edit"})}));var E=new S(c,p),D=new S(h,f),L=O.networkModal;O.setValuesModal(D),O.rulesModal=E,O.exportSessions=function(t,n,r){var o;"string"==typeof n?o=n:n&&(o=n.type,r=n.name||r),("saz"===o||"fiddler"===o)&&(o="Fiddler"),"string"!=typeof r&&(r=""),e.exportSessions(o,r,t)},a.rulesTheme=m,a.valuesTheme=A,a.rulesFontSize=w,a.valuesFontSize=y,a.showRulesLineNumbers="true"===x,a.showValuesLineNumbers="true"===T,a.autoRulesLineWrapping=!!N,a.foldGutter=""!==!!P.get("foldGutter"),a.autoValuesLineWrapping=!!C,a.plugins=t.plugins,a.disabledPlugins=t.disabledPlugins,a.disabledAllRules=t.disabledAllRules,a.disabledAllPlugins=t.disabledAllPlugins,a.interceptHttpsConnects=!i&&t.interceptHttpsConnects,a.enableHttp2=t.enableHttp2,a.rules=E,a.network=L,a.rulesOptions=u,a.pluginsOptions=e.createPluginsOptions(t.plugins),O.valuesModal=a.values=D,a.valuesOptions=g,O.syncData=e.syncData,O.syncRules=e.syncRules,O.syncValues=e.syncValues,e.initPluginTabs(a,t.plugins),E.exists(O.activeRulesName)&&e.setRulesActive(O.activeRulesName,E),D.exists(O.activeValuesName)&&e.setValuesActive(O.activeValuesName,D),a.networkOptions=[{name:"Remove All Sessions",icon:"remove",id:"removeAll",disabled:!0,title:"Ctrl[Command] + X"},{name:"Remove Selected Sessions",id:"removeSelected",disabled:!0,title:"Ctrl[Command] + D"},{name:"Remove Unselected Sessions",id:"removeUnselected",disabled:!0,title:"Ctrl[Command] + Shift + D"},{name:"Export Selected Sessions (*.txt)",icon:"export",id:"exportWhistleFile",disabled:!0,title:"Ctrl + S"},{name:"Export Selected Sessions (*.saz)",id:"exportSazFile",disabled:!0,title:"Ctrl + S"},{name:"Export Selected Sessions (*.har)",id:"exportHarFile",disabled:!0,title:"Ctrl + S"},{name:"Import Sessions",icon:"import",id:"importSessions",title:"Ctrl + I"},{name:"Show Tree View",icon:"tree-conifer",id:"toggleView"}],a.helpOptions=[{name:"GitHub",href:"https://github.com/avwo/whistle",icon:!1},{name:"Docs",href:"https://avwo.github.io/whistle/",icon:!1},{name:"Update",href:"https://avwo.github.io/whistle/update.html",icon:!1},{name:"Issue",href:"https://github.com/avwo/whistle/issues/new",icon:!1}],F.setPlugins(a),a.exportFileType=P.get("exportFileType");var k=P.get("showLeftMenu");return a.showLeftMenu=null==k?!0:k,H.triggerPageChange(a.name),(v||v===!1)&&L.setTreeView(v,!0),V.on("importSessionsFromUrl",function(t,n){e.importSessionsFromUrl(n)}),e.updateMenuView(a)},initPluginTabs:function(e,t){t=t||{};var n,r,o=e.tabs;try{n=JSON.parse(P.get("activePluginTabList")),r=P.get("activePluginTabName")}catch(i){}if(Array.isArray(n)){var a={};Object.keys(t).forEach(function(o){var i=t[o];o=o.slice(0,-1),-1!==n.indexOf(o)&&(r===o&&(e.active=o),a[o]={name:o,url:i.pluginHomepage||"plugin."+o+"/"})}),n.forEach(function(e){e=e&&a[e],e&&o.push(e)})}},getListByName:function(e,t){var n=this.state[e].list,r=this.state[e].data;return{type:t,url:location.href,list:n.map(function(e){var t=r[e];return{name:e,value:t&&t.value||""}})}},triggerRulesChange:function(e){H.triggerListChange("rules",this.getListByName("rules",e))},triggerValuesChange:function(e){H.triggerListChange("values",this.getListByName("values",e))},syncData:function(e,t){var n=this.state;this.refs.syncDialog.show(e,n.rules,n.values,t)},syncRules:function(e){var t=this;t.syncData(e,function(){t.refs.syncDialog.syncRules(e)})},syncValues:function(e){var t=this;t.syncData(e,function(){t.refs.syncDialog.syncValues(e)})},createPluginsOptions:function(e){e=e||{};var t=[{name:"Home"}];return Object.keys(e).sort(function(t,n){var r=e[t],o=e[n];return H.compare(r.priority,o.priority)||H.compare(o.mtime,r.mtime)||(t>n?1:-1)}).forEach(function(n){var r=e[n];t.push({name:n.slice(0,-1),icon:"checkbox",mtime:r.mtime,homepage:r.homepage,latest:r.latest,hideLongProtocol:r.hideLongProtocol,hideShortProtocol:r.hideShortProtocol,path:r.path,pluginVars:r.pluginVars})}),t},reloadRules:function(e,t){var n=this,r=P.get("activeRules",!0)||e.current,o=[],i={};o.push(le),i.Default={name:le,fixed:!0,value:e.defaultRules,selected:!e.defaultRulesIsDisabled,isDefault:!0,active:r===le},e.list.forEach(function(e){o.push(e.name),e=i[e.name]={name:e.name,value:e.data,selected:e.selected,active:r===e.name}});var a=t&&A(o,i,n.state.rules);return n.state.rules.reset(o,i),n.setState({}),a},reloadValues:function(e,t){var n=this,r=P.get("activeValues",!0)||e.current,o=[],i={};e.list.forEach(function(e){o.push(e.name),i[e.name]={name:e.name,value:e.data,active:r===e.name}});var a=t&&A(o,i,n.state.values);return n.state.values.reset(o,i),n.setState({}),a},reloadDataQuite:function(){this.reloadData(!0)},reloadData:function(e){var t=this,n=T(".w-reload-data-tips").closest(".w-confirm-reload-dialog"),r=n.find(".w-reload-data-tips").attr("data-name"),o="rules"===r;e=e===!0;var i=function(n,r){return n?void(o?(t.reloadRules(n,e)&&V.trigger("rulesChanged",!0),t.triggerRulesChange("reload")):(t.reloadValues(n,e)&&V.trigger("valuesChanged",!0),t.triggerValuesChange("reload"))):(!e&&H.showSystemError(r,!0),setTimeout(function(){V.trigger(o?"rulesChanged":"valuesChanged",!0)},2e3))};o?(O.rules.list(i),V.trigger("reloadRulesRecycleBin")):(O.values.list(i),V.trigger("reloadValuesRecycleBin"))},showReloadRules:function(e){if(this.rulesChanged&&"rules"===this.state.name){this.rulesChanged=!1;var t=this.state.rules.hasChanged();this.showReloadDialog("The rules has been modified.<br/>Do you want to reload it.",t,e)}},showReloadValues:function(e){if(this.valuesChanged&&"values"===this.state.name){this.valuesChanged=!1;var t=this.state.values.hasChanged();this.showReloadDialog("The values has been modified.<br/>Do you want to reload it.",t,e)}},componentDidUpdate:function(){this.showReloadRules(),this.showReloadValues()},showReloadDialog:function(e,t,n){var r=this.refs.confirmReload;clearTimeout(this.reloadTimer);var o=T(".w-reload-data-tips");return o.attr("data-name",this.state.name),n||r.isVisible()?(r.show(),t&&(e+='<p class="w-confim-reload-note">Note: There are unsaved changes.</p>'),void o.html(e)):void(this.reloadTimer=setTimeout(this.reloadDataQuite,1e3))},showTab:function(){var e=d(this.state);e&&-1==e.indexOf("rules")?-1!=e.indexOf("values")?this.showValues():-1!=e.indexOf("plugins")?this.showPlugins():this.state.showAccount&&"account"===e?this.showAccount():this.showNetwork():this.showRules(),P.set("pageName",e||"")},componentDidMount:function(){function e(e){if(e=e&&e.trim()){var t=e.indexOf("://")+3;if(e=-1!=t?e.substring(t):e,0===e.indexOf("{"))return t=e.lastIndexOf("}"),t>1?e.substring(1,t):null}}var t=this,n=new I(".w-copy-text");n.on("error",function(e){oe.alert("Copy failed.")}),n=new I(".w-copy-text-with-tips"),n.on("error",function(e){X.error("Copy failed.")}),n.on("success",function(e){X.success("Copied clipboard.")});var r=function(e){e.preventDefault()};if(V.on("showRulesDialog",function(e,n){n&&!t.isHideRules()&&t.refs.rulesDialog.show(n.rules,n.values)}),V.on("showHttpsSettingsDialog",t.showHttpsSettingsDialog),be){var o=function(e,t){return V.editorMatchedCount=0,V.trigger(t?"findEditorPrev":"findEditorNext",e),V.editorMatchedCount};window.__findWhistleCodeMirrorEditor_=o}var i,s;V.one("composerDidMount",function(){i=!0,s&&(V.trigger("_setComposerData",s),s=null)}),V.on("showPluginOptionTab",function(e,n){n&&t.showPluginTab(H.getSimplePluginName(n))}),V.on("disablePlugin",function(e,n,r){t.setPluginState(H.getSimplePluginName(n),r)}),V.on("showCustomCerts",t.showCustomCertsInfo),V.on("setComposerData",function(e,n){n&&!t.state.rulesMode&&("network"!==t.state.name&&t.showNetwork(),V.trigger("showComposerTab"),i?V.trigger("_setComposerData",n):s=n)}),V.on("showPluginOption",function(e,n){if(n){var r=H.getSimplePluginName(n),o=n.pluginHomepage||"plugin."+r+"/";if((n.pluginHomepage||n.openExternal)&&!n.openInPlugins&&!n.openInModal)return window.open(o);var i=n.openInModal||"";i&&!n.pluginHomepage&&(o+="?openInModal=5b6af7b9884e1165"),t.refs.iframeDialog.show({name:r,url:o,homepage:n.homepage,disabled:H.pluginIsDisabled(t.state,r),width:i.width,height:i.height})}}),V.on("hidePluginOption",function(){t.refs.iframeDialog.hide()}),V.on("download",function(e,n){t.download(n)}),V.on("showMockDialog",function(e,n){n&&t.refs.mockDialog.show(n.item,n.type)}),V.on("enableRecord",function(){t.enableRecord()}),V.on("showJsonViewDialog",function(e,n,r){t.refs.jsonDialog.show(n,r)}),V.on("rulesChanged",function(e,n){t.rulesChanged=!0,t.showReloadRules(n===!0)}),V.on("switchTreeView",function(){t.toggleTreeView()}),V.on("updateGlobal",function(){t.setState({})}),V.on("valuesChanged",function(e,n){t.valuesChanged=!0,t.showReloadValues(n===!0)}),V.on("showNetwork",function(){t.showNetwork()}),V.on("showRules",function(){t.showRules()}),V.on("showValues",function(){t.showValues()}),V.on("showPlugins",function(){t.showPlugins()}),V.on("disableAllPlugins",t.disableAllPlugins),V.on("disableAllRules",t.disableAllRules),V.on("activeRules",function(){var e=O.rulesModal;e.exists(O.activeRulesName)&&(t.setRulesActive(O.activeRulesName,e),t.setState({}))}),V.on("activeValues",function(){var e=O.valuesModal;e.exists(O.activeValuesName)&&(t.setValuesActive(O.activeValuesName,e),t.setState({}))});var l;V.on("openEditor",function(e,n){if("1"===P.get("viewAllInNewWindow"))return H.openInNewWin(n||"");try{if(l&&"function"==typeof l.setValue)return window.getTextFromWhistle_=null,t.refs.editorWin.show(),l.setValue(n);window._initWhistleTextEditor_=function(e){l=e,l.setValue(n)},t.refs.editorWin.show("editor.html")}catch(r){}}),V.on("openInNewWin",function(){try{H.openInNewWin(l.getEditorValue()||""),t.refs.editorWin.hide()}catch(e){}});var c;V.on("updateUIThrottle",function(){c||(c=setTimeout(function(){c=null,t.setState({})},200))}),V.on("addNewRulesFile",function(e,n){var r=n.filename,o=t.state.rules,i=o.add(r,n.data);o.setChanged(r,!1),t.setRulesActive(r),t.setState({activeRules:i}),n.update||t.triggerRulesChange("create")}),V.on("addNewValuesFile",function(e,n){var r=n.filename,o=t.state.values,i=o.add(r,n.data);o.setChanged(r,!1),n.update?t.setState({}):(t.setValuesActive(r),t.setState({activeValues:i}),t.triggerValuesChange("create"))}),V.on("recoverRules",function(e,n){var r=t.state.rules,o=n.filename,i=function(e){e&&O.rules.add({name:o,value:n.data,recycleFilename:n.name},function(e,i){if(e&&0===e.ec){var a=r.add(o,n.data);t.setRulesActive(o),t.setState({activeRules:a}),t.triggerRulesChange("create"),V.trigger("rulesRecycleList",e),V.trigger("focusRulesList")}else H.showSystemError(i)})};return r.exists(o)?void oe.confirm("The name `"+o+"` already exists, whether to overwrite it?",i):i(!0)}),V.on("recoverValues",function(e,n){var r=t.state.values,o=n.filename,i=function(e){e&&O.values.add({name:o,value:n.data,recycleFilename:n.name},function(e,i){if(e&&0===e.ec){var a=r.add(o,n.data);t.setValuesActive(o),t.setState({activeValues:a}),t.triggerValuesChange("create"),V.trigger("valuesRecycleList",e)}else H.showSystemError(i)})};return r.exists(o)?void oe.confirm("The name `"+o+"` already exists, whether to overwrite it?",i):i(!0)}),T(document).on("dragleave",r).on("dragenter",r).on("dragover",r).on("drop",function(e){e.preventDefault();var n=e.originalEvent.dataTransfer.files,r=n&&n[0];if(r){if(T(".w-files-dialog.in").length)return V.trigger("uploadFile",r);var o,i=t.state.name,a=T(e.target);if("network"===i){if(a.closest(".w-frames-composer").length)return;if(/\.log$/i.test(r.name))return r.size>pe?oe.alert("The file size cannot exceed 2m."):void H.readFileAsText(r,function(e){e=H.parseLogs(e),e&&(null!==O.uploadLogs&&(O.uploadLogs=e),V.trigger("showLog"),V.trigger("uploadLogs",{logs:e}))});if(o=new FormData,o.append("importSessions",n[0]),t.uploadSessionsForm(o),!/\.(txt|json)$/i.test(r&&r.name))return}var s=a.closest(".w-divider-left").length,l="plugins"===i;!s&&!l||t.isHideRules()||u(r,function(e){e&&s&&("rules"===i?t.handleImportRules(e):"values"===i&&t.handleImportValues(e))})}}).on("keyup",function(e){if((e.metaKey||e.ctrlKey)&&82===e.keyCode)e.preventDefault();else if("network"==t.state.name&&191===e.keyCode){var n=document.activeElement&&document.activeElement.nodeName;"INPUT"===n||"TEXTAREA"===n||T(".modal.in").length||V.trigger("focusNetworkFilterInput")}}).on("contextmenu",".w-textarea-bar",function(e){e.preventDefault()});var d=function(e){var n=e.target;"A"==n.nodeName&&T(n).parent().hasClass("w-list-data")&&("rules"==t.state.name?t.removeRules():t.removeValues()),e.preventDefault()};T(window).on("hashchange",t.showTab).on("keyup",function(e){if(27==e.keyCode){t.setMenuOptionsState();var n=T(".modal");"function"==typeof n.modal&&n.modal("hide")}}).on("keydown",function(e){if(46==e.keyCode&&d(e),!e.ctrlKey&&!e.metaKey)return void(112===e.keyCode?(e.preventDefault(),window.open("https://avwo.github.io/whistle/webui/"+t.state.name+".html")):116===e.keyCode&&e.preventDefault());77===e.keyCode?(t.toggleLeftMenu(),e.preventDefault()):66===e.keyCode&&(t.toggleTreeView(),e.preventDefault(),V.trigger("toggleTreeViewByAccessKey"));var n="network"===t.state.name;n&&88==e.keyCode&&(H.isFocusEditor()||T(e.target).closest(".w-frames-list").length||t.clear()),68==e.keyCode&&d(e);var r=t.state.network;if(n&&83===e.keyCode){if(e.preventDefault(),T(".modal.in").length)return void(T(C.findDOMNode(t.refs.chooseFileType)).is(":visible")&&t.exportBySave());var o=e.target.nodeName;if("INPUT"===o||"TEXTAREA"===o)return;var i=r.hasSelected();return void(i&&(T(C.findDOMNode(t.refs.chooseFileType)).modal("show"),setTimeout(function(){C.findDOMNode(t.refs.sessionsName).focus()},500)))}n&&73===e.keyCode&&(t.importSessions(e),e.preventDefault())});var p=function(){var e=t.state.name;return"rules"===e||"values"===e};T(document.body).on("mouseenter",ge,function(t){if(p()&&(t.ctrlKey||t.metaKey)){var n,r=T(this);(r.hasClass("cm-js-http-url")||r.hasClass("cm-string")||r.hasClass("cm-js-at")||ie.test(n=r.text())||e(n))&&r.addClass("w-is-link")}}).on("mouseleave",ge,function(e){T(this).removeClass("w-is-link")}).on("mousedown",ge,function(n){if(p()&&(n.ctrlKey||n.metaKey)){var r=T(this),o=r.text();if(r.hasClass("cm-js-at"))return void(me.test(o)&&window.open((RegExp.$1||"http:")+RegExp.$2));if(r.hasClass("cm-string"))return void(fe.test(o)&&window.open((RegExp.$1||"http:")+RegExp.$2));if(r.hasClass("cm-js-http-url"))return/^https?:\/\//i.test(o)||(o="http:"+("/"===o[0]?"":"//")+o),void window.open(o);if(ie.test(o)){var i=RegExp.$1;return V.trigger("showEditorDialog",[{ruleName:t.getActiveRuleName(),tempFile:i},r])}var a=e(o);return a?V.trigger("showEditorDialog",{name:a}):void 0}}),"network"==t.state.name&&t.startLoadData(!0),O.on("settings",function(e){var n=t.state,r=e.server;if(n.interceptHttpsConnects!==e.interceptHttpsConnects||n.enableHttp2!==e.enableHttp2||n.disabledAllRules!==e.disabledAllRules||n.allowMultipleChoice!==e.allowMultipleChoice||n.disabledAllPlugins!==e.disabledAllPlugins||n.backRulesFirst!==e.backRulesFirst||n.multiEnv!=r.multiEnv||n.ndp!=r.ndp||n.ndr!=r.ndr||n.drb!=r.drb||n.drm!=r.drm){n.interceptHttpsConnects=e.interceptHttpsConnects,n.enableHttp2=e.enableHttp2,n.disabledAllRules=e.disabledAllRules,n.allowMultipleChoice=e.allowMultipleChoice,n.backRulesFirst=e.backRulesFirst,n.disabledAllPlugins=e.disabledAllPlugins,n.multiEnv=r.multiEnv,n.ndp=r.ndp,n.ndr=r.ndr,n.drb=r.drb,n.drm=r.drm,F.setPlugins(n);var o=Te;return o[3].checked=!n.disabledAllRules,o[4].checked=!n.disabledAllPlugins,t.refs.contextMenu.update(),t.setState({})}}),O.on("rules",function(e){var n=t.state.rules,r=e.list;e.defaultRulesIsDisabled||-1!==r.indexOf("Default")||r.unshift("Default");var o=n.getSelectedNames();h(o,r)||(t.reselectRules(e,!0),t.setState({}))}),O.on("serverInfo",function(e){t.serverInfo=e}),V.on("executeComposer",function(){t.autoRefresh&&t.autoRefresh()});var g=function(e){if(Array.isArray(e))return e;if(e&&!e.selected)return[e]};V.on("updateUI",function(){t.setState({})}),V.on("replaySessions",function(e,n,r){var o=t.state.network,i=g(n)||o.getSelectedList(),a=i&&i.length;return r&&1===a?(t.replayList=i,t.refs.setReplayCount.show(),void setTimeout(function(){var e=C.findDOMNode(t.refs.replayCount);e.select(),e.focus()},300)):void t.replay(e,i)}),V.on("importSessions",t.importSessions),V.on("filterSessions",t.showSettings),V.on("exportSessions",function(e,n){t.exportData(e,g(n))}),V.on("abortRequest",function(e,n){t.abort(g(n))}),V.on("uploadSessions",function(e,n){var r=g(n&&n.curItem),o=n&&n.upload;if("function"==typeof o){if(!r){var i=t.state.network;r=i.getSelectedList(),r&&r.length&&(r=T.extend(!0,[],r))}r&&o(r)}}),V.on("removeIt",function(e,n){var r=t.state.network;n&&r&&(r.remove(n),t.setState({}))}),V.on("removeOthers",function(e,n){var r=t.state.network;n&&r&&(n.selected?r.removeUnselectedItems():r.removeOthers(n),t.setState({}))}),V.on("clearAll",t.clear),V.on("removeSelected",function(){var e=t.state.network;e&&(e.removeSelectedItems(),t.setState({}))}),V.on("removeUnselected",function(){var e=t.state.network;e&&(e.removeUnselectedItems(),t.setState({}))}),V.on("removeUnmarked",function(){var e=t.state.network;e&&(e.removeUnmarkedItems(),t.setState({}))}),V.on("saveRules",function(e,n){if(n.changed||!n.selected){var r=t.state.rules.getChangedGroupList(n);r.forEach(t.selectRules)}else t.unselectRules(n)}),V.on("saveValues",function(e,n){var r=t.state.values.getChangedGroupList(n);r.forEach(t.saveValues)}),V.on("renameRules",function(e,n){t.showEditRules(n)}),V.on("renameValues",function(e,n){t.showEditValues(n)}),V.on("deleteRules",function(e,n){setTimeout(function(){t.removeRules(n)},0)}),V.on("deleteValues",function(e,n){setTimeout(function(){t.removeValues(n)},0)}),V.on("createRules",t.showCreateRules),V.on("createValues",t.showCreateValues),V.on("exportRules",t.exportData),V.on("exportValues",t.exportData),V.on("importRules",t.importRules),V.on("importValues",t.importValues),V.on("uploadRules",function(e,n){var r=a(n);r.append("replaceAll","1"),t._uploadRules(r,!0)}),V.on("uploadValues",function(e,n){var r=a(n,"values");r.append("replaceAll","1"),t._uploadValues(r,!0)});var f,m,A=document.hidden;T(document).on("visibilitychange",function(){clearTimeout(f);var e="network"===t.state.name;return document.hidden||!e?void(e&&A!==document.hidden&&(A=!0,m=t.scrollerAtBottom&&t.scrollerAtBottom())):(A=!1,void(f=setTimeout(function(){var e=m||t.scrollerAtBottom&&t.scrollerAtBottom();m=!1,t.setState({},function(){e&&t.autoRefresh()})},100)))}),setTimeout(function(){O.checkUpdate(function(e){e&&e.showUpdate&&t.setState({version:e.version,latestVersion:e.latestVersion},function(){T(C.findDOMNode(t.refs.showUpdateTipsDialog)).modal("show")})})},1e4),O.getLogIdList=this.getLogIdListFromRules,O.importAnySessions=t.importAnySessions,O.on("plugins",function(e){var n=t.createPluginsOptions(e.plugins),r=t.state.pluginsOptions,o=t.state.disabledPlugins,i=t.state.disabledAllPlugins,a=e.disabledPlugins;if(i==e.disabledAllPlugins&&n.length==r.length){for(var s,l=0,c=n.length;c>l;l++){var u=n[l],d=r[l];if(u.name!=d.name||u.latest!==d.latest||u.mtime!=d.mtime||o[u.name]!=a[u.name]||u.hideLongProtocol!=d.hideLongProtocol||u.hideShortProtocol!=d.hideShortProtocol||u.path!=d.path){s=!0;break}}if(!s)return}var p=t.state.plugins;p&&e.plugins&&Object.keys(e.plugins).forEach(function(t){var n=p[t];if(n){var r=e.plugins[t];r.selectedRulesHistory=n.selectedRulesHistory,r.selectedValuesHistory=n.selectedValuesHistory}});var h={plugins:e.plugins,disabledPlugins:e.disabledPlugins,pluginsOptions:n,disabledAllPlugins:e.disabledAllPlugins};F.setPlugins(h),t.setState(h)});try{var M=window.parent.onWhistleReady;if("function"==typeof M){var w=function(e){var n=e&&t.state.network,r=n&&n.getList().indexOf(e);r>=0&&V.trigger("selectedIndex",r)},y=function(e){V.trigger("selectedIndex",e)};M({url:location.href,pageId:O.getPageId(),compose:O.compose,importSessions:t.importAnySessions,importHarSessions:t.importHarSessions,clearSessions:t.clear,selectIndex:y,selectItem:w,setActive:function(e){e>=0?y(e):w(e)}})}}catch(b){}t.handleDataUrl(x||H.getDataUrl()),O.handleDataUrl=t.handleDataUrl,x=null},shouldComponentUpdate:function(e,t){var n=this.state.name;return"network"===n&&t.name!==n&&(this._isAtBottom=this.scrollerAtBottom&&this.scrollerAtBottom()),!0},handleDataUrl:function(e){if(r(e)){var t=this;l(e,function(e,n){e||t.importAnySessions(n)})}},importAnySessions:function(e){e&&!H.handleImportData(e)&&(Array.isArray(e)?O.addNetworkList(e):this.importHarSessions(e))},donotShowAgain:function(){O.donotShowAgain()},hideUpdateTipsDialog:function(){T(C.findDOMNode(this.refs.showUpdateTipsDialog)).modal("hide")},getAllRulesText:function(){var e=" "+this.getAllRulesValue();return e.replace(/#[^\r\n]*[\r\n]/g,"\n")},getLogIdListFromRules:function(){var e=this.getAllRulesText();if(e=e.match(/\slog:\/\/(?:\{[^\s]{1,36}\}|[^/\\{}()<>\s]{1,36})\s/g)){var t={};e=e.map(function(e){return e=H.removeProtocol(e.trim()),"{"===e[0]&&(e=e.slice(1,-1)),e}).filter(function(e){return e?t[e]?!1:(t[e]=1,!0):!1})}return e},getWeinreFromRules:function(){var e=this.state.values,t=this.getAllRulesText();if(t=t.match(/(?:^|\s)weinre:\/\/[^\s#]+(?:$|\s)/gm)){var n={};t=t.map(function(t){t=H.removeProtocol(t.trim());var n=f(t);if(n!==!1)return n;var r=g(t);return r!==!1?(r=e.get(r),r&&r.value):t}).filter(function(e){return e?n[e]?!1:(n[e]=1,!0):!1})}return t},getValuesFromRules:function(){var e=" "+this.getAllRulesValue();return(e=e.match(/\s(?:[\w-]+:\/\/)?\{[^\s#]+\}/g))&&(e=e.map(function(e){return g(H.removeProtocol(e.trim()))}).filter(function(e){return!!e})),e},getAllRulesValue:function(){var e=[],t=[],n=[],r=this.state.rules;return r.list.forEach(function(o){var i=r.get(o),a=i.value||"";i.active?t.push(a):i.selected?n.push(a):e.push(a)}),r=this.state.values,r.list.forEach(function(t){/\.rules$/.test(t)&&e.push(r.get(t).value)}),t.concat(n).concat(e).join("\r\n")},preventBlur:function(e){"INPUT"!=e.target.nodeName&&e.preventDefault()},startLoadData:function(e){function t(e,i){e=e||o.state.network,clearTimeout(a),a=null,"network"==o.state.name&&(i=i||r(),e.update(i)&&i&&(a=setTimeout(t,3e3)),document.hidden||o.setState({},function(){i&&n()}))}function n(e){(e||!o.state.network.isTreeView)&&(l.scrollTop=1e7)}function r(e){var t=s.find(".ReactVirtualized__Grid__innerScrollContainer")[0];if(!t)return e&&V.trigger("toggleBackToBottomBtn",!1),!0;var n=l.offsetHeight+5,r=t.offsetHeight,o=l.scrollTop+n>r;return V.trigger("toggleBackToBottomBtn",!o&&r>=n),o}var o=this;if(o._updateNetwork)return void(e?o._updateNetwork():setTimeout(o._updateNetwork,30));var i,a,s=T(".w-req-data-list .ReactVirtualized__Grid:first").scroll(function(){var e=o.state.network;i&&clearTimeout(i),i=null,r()&&(i=setTimeout(function(){t(e,!0)},1e3))}),l=s[0];this.container=s,O.on("data",t),T(document).on("dblclick",".w-network-menu-list",function(e){T(e.target).hasClass("w-network-menu-list")&&(l.scrollTop<1?n(!0):l.scrollTop=0)}),o._updateNetwork=t,o.autoRefresh=n,o.scrollerAtBottom=r,V.on("checkAtBottom",r)},showPlugins:function(e){"plugins"!=this.state.name?(this.setMenuOptionsState(),this.hidePluginsOptions()):e&&!this.state.showLeftMenu&&this.showPluginsOptions(),this.setState({hasPlugins:!0,name:"plugins"}),H.changePageName("plugins")},handleAction:function(e){if("top"===e)return void(this.container[0].scrollTop=0);if("bottom"===e)return this.autoRefresh(!0);if("pause"===e)return V.trigger("changeRecordState",e),O.pauseNetworkRecord();var t="refresh"===e;return t?V.trigger("changeRecordState"):V.trigger("changeRecordState","stop"),O.stopNetworkRecord(!t),t?this.autoRefresh():void 0},showNetwork:function(e){var t=this;return"network"==t.state.name?void(e&&!t.state.showLeftMenu&&t.showNetworkOptions()):(t.setMenuOptionsState(),t.setState({hasNetwork:!0,name:"network"},function(){t.startLoadData(),t._isAtBottom&&(t._isAtBottom=!1,t.autoRefresh&&t.autoRefresh())}),void H.changePageName("network"))},showAccount:function(){var e=this;"account"!=e.state.name&&(e.setState({name:"account",hasAccount:!0}),H.changePageName("account"))},signOut:function(){this.state.showAccount=!1,this.showTab()},handleNetwork:function(e,t){var n=this.state.network;"removeAll"==e.id?this.clear():"removeSelected"==e.id?n.removeSelectedItems():"removeUnselected"==e.id?n.removeUnselectedItems():"exportWhistleFile"==e.id?this.exportSessions("whistle"):"exportSazFile"==e.id?this.exportSessions("Fiddler"):"exportHarFile"==e.id?this.exportSessions("har"):"importSessions"==e.id?this.importSessions(t):"toggleView"===e.id&&this.toggleTreeView(),this.hideNetworkOptions()},importData:function(e){switch(this.state.name){case"network":this.importSessions(e);break;case"rules":this.importRules(e);break;case"values":this.importValues(e)}},exportData:function(e,t){switch(this.state.name){case"network":var n=this.state.network,r=Array.isArray(t)||n.hasSelected();if(this.currentFoucsItem=t,r){T(C.findDOMNode(this.refs.chooseFileType)).modal("show");var o=this;setTimeout(function(){C.findDOMNode(o.refs.sessionsName).focus()},500); }else X.info("Please select the sessions first.");break;case"rules":this.showAndActiveRules({id:"exportRules"});break;case"values":this.showAndActiveValues({id:"exportValues"})}},importSessions:function(e,t){var n=this,r=e&&e.shiftKey||t&&t.shiftKey;return r?(n.refs.importRemoteSessions.show(),void setTimeout(function(){var e=C.findDOMNode(n.refs.sessionsRemoteUrl);e.focus(),e.select()},500)):void C.findDOMNode(n.refs.importSessions).click()},importSessionsFromUrl:function(e,t){if(e){var n=this;n.setState({pendingSessions:!0}),l(e,function(e,r){n.setState({pendingSessions:!1}),e||(t&&n.refs.importRemoteSessions.hide(),n.importAnySessions(r))})}},importRemoteSessions:function(e){if(!e||"click"===e.type||13===e.keyCode){var t=this,n=C.findDOMNode(t.refs.sessionsRemoteUrl),r=s(n.value);t.importSessionsFromUrl(r,!0)}},importRules:function(e,t){var n=this,r=e&&e.shiftKey||t&&t.shiftKey;return r?(n.refs.importRemoteRules.show(),void setTimeout(function(){var e=C.findDOMNode(n.refs.rulesRemoteUrl);e.focus(),e.select()},500)):void C.findDOMNode(n.refs.importRules).click()},importRemoteRules:function(e){if(!e||"click"===e.type||13===e.keyCode){var t=this,n=C.findDOMNode(t.refs.rulesRemoteUrl),r=s(n.value);r&&(t.setState({pendingRules:!0}),l(r,function(e,n){t.setState({pendingRules:!1}),e||(t.refs.importRemoteRules.hide(),n&&!H.handleImportData(n)&&t.handleImportRules(n))}))}},importValues:function(e,t){var n=this,r=e&&e.shiftKey||t&&t.shiftKey;return r?(n.refs.importRemoteValues.show(),void setTimeout(function(){var e=C.findDOMNode(n.refs.valuesRemoteUrl);e.focus(),e.select()},500)):void C.findDOMNode(n.refs.importValues).click()},importRemoteValues:function(e){if(!e||"click"===e.type||13===e.keyCode){var t=this,n=C.findDOMNode(t.refs.valuesRemoteUrl),r=s(n.value);r&&(t.setState({pendingValues:!0}),l(r,function(e,n){t.setState({pendingValues:!1}),e||(t.refs.importRemoteValues.hide(),n&&!H.handleImportData(n)&&t.handleImportValues(n))}))}},_uploadRules:function(e,t){var n=this;O.upload.importRules(e,function(e,r){e?0===e.ec?(n.reloadRules(e),t&&X.success("Successful synchronization Rules.")):oe.alert(e.em):H.showSystemError(r)})},_uploadValues:function(e,t){var n=this;O.upload.importValues(e,function(e,r){e||H.showSystemError(r),0===e.ec?(n.reloadValues(e),t&&X.success("Successful synchronization Values.")):oe.alert(e.em)})},handleImportRules:function(e){e&&(this.rulesForm=a(e),i(e,this.state.rules)?this.refs.confirmImportRules.show():this.uploadRules())},handleImportValues:function(e){e&&(this.valuesForm=a(e,"values"),this.refs.confirmImportValues.show())},uploadRules:function(e){var t=this.rulesForm;self.rulesForm=null,t&&((!e||T(e.target).hasClass("btn-danger"))&&t.append("replaceAll","1"),this._uploadRules(t),C.findDOMNode(this.refs.importRules).value="")},uploadValues:function(e){var t=this.valuesForm;self.valuesForm=null,t&&((!e||T(e.target).hasClass("btn-danger"))&&t.append("replaceAll","1"),this._uploadValues(t),C.findDOMNode(this.refs.importValues).value="")},uploadRulesForm:function(){var e=new FormData(C.findDOMNode(this.refs.importRulesForm));u(e.get("rules"),this.handleImportRules)},uploadValuesForm:function(){var e=new FormData(C.findDOMNode(this.refs.importValuesForm));u(e.get("values"),this.handleImportValues)},showAndActiveRules:function(e,t){if("rules"===this.state.name)switch(e.id){case"exportRules":this.refs.selectRulesDialog.show();break;case"importRules":this.importRules(t)}else this.setRulesActive(e.name),this.showRules();this.hideRulesOptions()},showRules:function(e){"rules"!=this.state.name?(this.setMenuOptionsState(),this.hideRulesOptions()):e&&!this.state.showLeftMenu&&this.showRulesOptions(e),this.setState({hasRules:!0,name:"rules"}),H.changePageName("rules")},showAndActiveValues:function(e,t){var n=this;if("values"===n.state.name&&e.id)switch(e.id){case"exportValues":n.refs.selectValuesDialog.show();break;case"importValues":this.importValues(t)}else{var r=n.state.values,o=e.name;r.exists(o)?n.setValuesActive(o):O.values.add({name:o},function(e,t){if(e&&0===e.ec){var i=r.add(o);n.setValuesActive(o),n.setState({activeValues:i}),V.trigger("focusValuesList")}else H.showSystemError(t)}),this.showValues()}n.hideValuesOptions()},addValue:function(){},showValues:function(e){"values"!=this.state.name?(this.setMenuOptionsState(),this.hideValuesOptions()):e&&!this.state.showLeftMenu&&this.showValuesOptions(e),this.setState({hasValues:!0,name:"values"}),H.changePageName("values")},showNetworkOptions:function(){"network"==this.state.name&&this.setState({showNetworkOptions:!0})},hideNetworkOptions:function(){this.setState({showRemoveOptions:!1,showAbortOptions:!1,showNetworkOptions:!1})},showRemoveOptions:function(){this.setState({showRemoveOptions:!0})},showAbortOptions:function(){var e=this.state.network,t=e.getSelectedList();Ee[0].disabled=!t||!t.filter(H.canAbort).length,this.setState({showAbortOptions:!0})},showCreateOptions:function(){this.setState({showCreateOptions:!0})},hideCreateOptions:function(){this.setState({showCreateOptions:!1})},hideRemoveOptions:function(){this.setState({showRemoveOptions:!1})},hideAbortOptions:function(){this.setState({showAbortOptions:!1})},showHelpOptions:function(){this.setState({showHelpOptions:!0})},hideHelpOptions:function(){this.setState({showHelpOptions:!1})},showHasNewVersion:function(e){this.setState({hasNewVersion:e})},showRulesOptions:function(e){var t,n=this,r=n.state.rules,o=r.data,i=r.list;if("rules"===n.state.name){var a=i.length;Ne[0].disabled=2>a,Ne[1].disabled=1>a,t=Ne}else t=[],i.forEach(function(e){t.push(o[e])});n.setState({rulesOptions:t,showRulesOptions:!0})},hideRulesOptions:function(){this.setState({showRulesOptions:!1})},showValuesOptions:function(e){var t,n=this,r=this.state.values.list;if("values"===n.state.name){var o=r.length;Ce[0].disabled=2>o,Ce[1].disabled=1>o,t=Ce}else{t=[];var i=n.getValuesFromRules()||[];i=H.unique(r.concat(i));var a=[];i.forEach(function(e){var n=-1!=r.indexOf(e),o={name:e,icon:n?"edit":"plus"};n?t.push(o):a.push(o)}),t=a.concat(t)}n.setState({valuesOptions:t,showValuesOptions:!0})},hideValuesOptions:function(){this.setState({showValuesOptions:!1})},showAndActivePlugins:function(e){this.hidePluginsOptions(),this.showPlugins(),this.showPluginTab(e.name)},showPluginTab:function(e){var t="Home",n=this.state.tabs||[];if(e&&e!=t)for(var r=0,o=n.length;o>r;r++)if(n[r].name==e){t=e,e=null;break}var i=e&&this.state.plugins[e+":"];if(i){if(n.length>=ce)return oe.alert("At most "+ce+" tabs can be opened at the same time."),this.showPlugins();if(t=e,i.pluginHomepage&&!i.openInPlugins)return window.open(i.pluginHomepage);n.push({name:e,url:i.pluginHomepage||"plugin."+e+"/"})}this.setState({active:t,tabs:n}),this.updatePluginTabInfo(n,t)},updatePluginTabInfo:function(e,t){e=e.map(function(e){return e.name}),P.set("activePluginTabList",JSON.stringify(e)),t&&P.set("activePluginTabName",t)},activePluginTab:function(e){this.showPluginTab(T(e.target).attr("data-name"))},closePluginTab:function(e){for(var t=T(e.target).attr("data-name"),n=this.state.tabs||[],r=0,o=n.length;o>r;r++)if(n[r].name==t){n.splice(r,1);var i=this.state.active;if(i==t){var a=n[r]||n[r-1];this.state.active=a?a.name:null}return this.setState({tabs:n}),void this.updatePluginTabInfo(n)}},showPluginsOptions:function(e){this.setState({showPluginsOptions:!0})},hidePluginsOptions:function(){this.setState({showPluginsOptions:!1})},showWeinreOptionsQuick:function(e){var t=this.getWeinreFromRules();return t&&t.length?void T(e.target).closest("div").addClass("w-menu-wrapper-show"):void this.showAnonymousWeinre()},showWeinreOptions:function(e){var t=this,n=t.state.weinreOptions=t.getWeinreFromRules()||[];t.state.weinreOptions=H.unique(n).map(function(e){return{name:e,icon:"console"}}),t.setState({showWeinreOptions:!0})},hideWeinreOptions:function(){this.setState({showWeinreOptions:!1})},setMenuOptionsState:function(e,t){var n={showCreateRules:!1,showCreateValues:!1,showEditRules:!1,showEditValues:!1,showCreateOptions:!1};e&&(n[e]=!0),this.setState(n,t)},hideRulesInput:function(){this.setState({showCreateRules:!1})},hideValuesInput:function(){this.setState({showCreateValues:!1})},hideRenameRuleInput:function(){this.setState({showEditRules:!1})},hideRenameValueInput:function(){this.setState({showEditValues:!1})},showCreateRules:function(e,t,n){var r=C.findDOMNode(this.refs.createRulesInput);this._curFocusRulesGroup=t,this._curFocusRulesItem=n,this.setState({showCreateRules:!0},function(){r.focus()})},showCreateValues:function(e,t,n){var r=C.findDOMNode(this.refs.createValuesInput);this._curFocusValuesGroup=t,this._curFocusValuesItem=n,this.setState({showCreateValues:!0},function(){r.focus()})},showHttpsSettingsDialog:function(){T(C.findDOMNode(this.refs.rootCADialog)).modal("show")},interceptHttpsConnects:function(e){var t=this,n=e.target.checked;O.interceptHttpsConnects({interceptHttpsConnects:n?1:0},function(e,r){e&&0===e.ec?(t.state.interceptHttpsConnects=n,O.isCapture=n?1:0,V.trigger("reqTabsChange"),V.trigger("resTabsChange")):H.showSystemError(r),t.setState({})})},enableHttp2:function(e){var t=this;if(!O.supportH2)return void oe.confirm("The current version of Node.js cannot support HTTP/2.\nPlease upgrade to the latest LTS version.",function(e){e&&window.open("https://nodejs.org/"),t.setState({})});var n=e.target.checked;O.enableHttp2({enableHttp2:n?1:0},function(e,r){e&&0===e.ec?t.state.enableHttp2=n:H.showSystemError(r),t.setState({})})},createRules:function(e){if(13==e.keyCode||"click"==e.type){var t=this,n=C.findDOMNode(t.refs.createRulesInput),r=n.value.trim();if(!r)return void X.error("The name cannot be empty.");var o,i=t.state.rules,a=e&&e.target.getAttribute("data-type");if("group"===a&&(o=!0,r="\r"+r),i.exists(r))return void X.error("The name '"+r+"' already exists.");var s="top"===a?1:"",l=t._curFocusRulesGroup,c=t._curFocusRulesItem,u={name:r,addToTop:s};if(o){var d=c&&c.name;d&&("Default"===d&&(d=t.state.rules.list[1]),u.focusName=d)}else l&&(u.groupName=l.name);O.rules.add(u,function(e,a){if(e&&0===e.ec){var l=i[s?"unshift":"add"](r);n.value="",n.blur();var c=u.focusName;c?i.moveTo(r,c):i.moveToGroup(r,u.groupName,s),o?l&&(l._isNewGroup=!0):t.setRulesActive(r),u.groupName&&V.trigger("expandRulesGroup",u.groupName),t.setState(o?{}:{activeRules:l}),t.triggerRulesChange("create")}else H.showSystemError(a)})}},createValues:function(e){if(13==e.keyCode||"click"==e.type){var t=this,n=C.findDOMNode(t.refs.createValuesInput),r=n.value.trim();if(!r)return void X.error("The name cannot be empty.");if(/\s/.test(r))return void X.error("The name cannot contain spaces.");if(/#/.test(r))return void X.error("The name cannot contain #.");var o,i=t.state.values,a=e&&e.target.getAttribute("data-type");if("group"===a&&(o=!0,r="\r"+r),i.exists(r))return void X.error("The name '"+r+"' already exists.");var s=t._curFocusValuesGroup,l=t._curFocusValuesItem,c={name:r};o?l&&(c.focusName=l.name):s&&(c.groupName=s.name),O.values.add(c,function(e,a){if(e&&0===e.ec){var s=i.add(r);n.value="",n.blur();var l=c.focusName;l?i.moveTo(r,l):i.moveToGroup(r,c.groupName),o?s&&(s._isNewGroup=!0):t.setValuesActive(r),c.groupName&&V.trigger("expandValuesGroup",c.groupName),t.setState(o?{}:{activeValues:s}),t.triggerValuesChange("create")}else H.showSystemError(a)})}},showEditRules:function(e){this.currentFocusRules=e;var t=this.state.rules,n=e||t.getActive();if(n&&!n.isDefault){var r=C.findDOMNode(this.refs.editRulesInput);r.value=n.name,this.setState({showEditRules:!0,selectedRule:n},function(){r.select(),r.focus()})}},showEditValuesByDBClick:function(e){!e.changed&&this.showEditValues()},showEditValues:function(e){this.currentFocusValues=e;var t=this.state.values,n=e||t.getActive();if(n&&!n.isDefault){var r=C.findDOMNode(this.refs.editValuesInput);r.value=n.name,this.setState({showEditValues:!0,selectedValue:n},function(){r.select(),r.focus()})}},editRules:function(e){if(13==e.keyCode||"click"==e.type){var t=this,n=t.state.rules,r=this.currentFocusRules||n.getActive();if(r){var o=C.findDOMNode(t.refs.editRulesInput),i=H.isGroup(r.name),a=(i?"\r":"")+o.value.trim();if(!a)return void X.error("The name cannot be empty.");if(n.exists(a))return void X.error("The name '"+a+"' already exists.");var s=r.name;O.rules.rename({name:s,newName:a},function(e,r){e&&0===e.ec?(n.rename(s,a),o.value="",o.blur(),!i&&t.setRulesActive(a),V.trigger("rulesNameChanged",[s,a]),t.setState({activeRules:n.getActive()}),t.triggerRulesChange("rename")):H.showSystemError(r)})}}},editValues:function(e){if(13==e.keyCode||"click"==e.type){var t=this,n=t.state.values,r=this.currentFocusValues||n.getActive();if(r){var i=C.findDOMNode(t.refs.editValuesInput),a=H.isGroup(r.name),s=(a?"\r":"")+i.value.trim();if(!s)return void X.error("The name cannot be empty.");if(n.exists(s))return void X.error("The name '"+s+"' already exists.");var l=r.name;O.values.rename({name:l,newName:s},function(e,c){e&&0===e.ec?(n.rename(l,s),i.value="",i.blur(),!a&&t.setValuesActive(s),V.trigger("valuesNameChanged",[l,s]),t.setState({activeValues:n.getActive()}),t.triggerValuesChange("rename"),o(r)):H.showSystemError(c)})}}},getActiveRuleName:function(){var e=this.state.rules,t=e.getActive();return t?t.name:""},showAnonymousWeinre:function(){this.openWeinre()},showWeinre:function(e){this.openWeinre(e.name)},openWeinre:function(e){window.open("weinre/client/#"+(e||"anonymous")),this.setState({showWeinreOptions:!1})},onClickRulesOption:function(e){e.selected?this.unselectRules(e):this.selectRules(e)},selectRules:function(e){if(!H.isGroup(e.name)){var t=this;return O.rules[e.isDefault?"enableDefault":"select"](e,function(n,r){n&&0===n.ec?(t.reselectRules(n),t.state.rules.setChanged(e.name,!1),t.setState({}),t.triggerRulesChange("save"),n.changed&&V.trigger("rulesChanged"),t.state.disabledAllRules&&oe.confirm("Rules has been turn off, do you want to turn on it?",function(e){e&&O.rules.disableAllRules({disabledAllRules:0},function(e,n){e&&0===e.ec?(t.state.disabledAllRules=!1,t.setState({})):H.showSystemError(n)})})):H.showSystemError(r)}),!1}},selectRulesByOptions:function(e){var t=this.state.rules.data[T(e.target).attr("data-name")];this[e.target.checked?"selectRules":"unselectRules"](t)},unselectRules:function(e){var t=this;return O.rules[e.isDefault?"disableDefault":"unselect"](e,function(e,n){e&&0===e.ec?(t.reselectRules(e),t.setState({})):H.showSystemError(n)}),!1},reselectRules:function(e,t){var n=this;n.state.rules.clearAllSelected(),n.setSelected(n.state.rules,"Default",!e.defaultRulesIsDisabled,t),e.list.forEach(function(e){n.setSelected(n.state.rules,e,!0,t)})},saveValues:function(e){if(e.changed&&!H.isGroup(e.name)){var t=this;return O.values.add(e,function(n,r){n&&0===n.ec?(t.setSelected(t.state.values,e.name),t.triggerValuesChange("save"),o(e)):H.showSystemError(r)}),!1}},setSelected:function(e,t,n,r){e.setSelected(t,n)&&(r||e.setChanged(t,!1),this.setState({curSelectedName:t}))},replayCountChange:function(e){var t=e.target.value.replace(/^\s*0*|[^\d]+/,""),n=t.slice(0,3);n>he&&(n=he),this.setState({replayCount:n})},clickReplay:function(e){e.shiftKey?V.trigger("replaySessions",[null,e.shiftKey]):this.replay(e)},replay:function(e,t,n){var r=this.state.network;if(t=Array.isArray(t)?t:r.getSelectedList(),t&&t.length){this.enableRecord();var o,i=function(e,t){var n=e.req;O.compose2({repeatCount:t,useH2:e.useH2?1:"",url:e.url,headers:H.getOriginalReqHeaders(e),method:n.method,base64:n.base64})};if(n>1?i(t[0],Math.min(n,he)):(o={},t.slice(0,he).forEach(function(e){o[e.id]=1,i(e)})),r.isTreeView){var a=O.lastSelectedDataId;if(!a)return;if(!o)return V.trigger("replayTreeView",[a,n]);var s=a&&r.getTreeNode(a);if(s=s&&s.parent,!s)return;n=0,s.children.forEach(function(e){e=e.data,e&&o[e.id]&&++n}),V.trigger("replayTreeView",[a,n])}else this.autoRefresh&&this.autoRefresh()}},enableRecord:function(){this.refs.recordBtn.enable(),V.trigger("changeRecordState")},composer:function(){V.trigger("composer")},clear:function(){var e=this.state.network;this.setState({network:e.clear(),showRemoveOptions:!1})},removeRulesBatch:function(e){var t=this;O.rules.remove({list:e},function(n,r){if(n&&0===n.ec){var o,i=t.state.rules;e.forEach(function(e){var n=i.data[e]||"";n.active&&(o=i.getSibling(e),o&&t.setRulesActive(o.name)),i.remove(e)}),o&&V.trigger("expandRulesGroup",o.name),t.setState(o?{activeRules:o}:{}),t.triggerRulesChange("remove"),V.trigger("focusRulesList")}else H.showSystemError(r)}),this.refs.deleteRulesDialog.hide()},removeValuesBatch:function(e){var t=this;O.values.remove({list:e},function(n,r){if(n&&0===n.ec){var o,i=t.state.values;e.forEach(function(e){var n=i.data[e]||"";n.active&&(o=i.getSibling(e),o&&t.setValuesActive(o.name)),i.remove(e)}),o&&V.trigger("expandValuesGroup",o.name),t.setState(o?{activeValues:o}:{}),t.triggerValuesChange("remove"),V.trigger("focusValuesList")}else H.showSystemError(r)}),this.refs.deleteValuesDialog.hide()},removeRules:function(e){var t=this.state.rules,n=e||t.getActive();n&&!n.isDefault&&this.refs.deleteRulesDialog.show(n.name)},removeValues:function(e){var t=this.state.values,n=e||t.getActive();n&&!n.isDefault&&this.refs.deleteValuesDialog.show(n.name)},setRulesActive:function(e,t){t=t||this.state.rules,P.set("activeRules",e),t.setActive(e)},setValuesActive:function(e,t){t=t||this.state.values,P.set("activeValues",e),t.setActive(e)},showRulesSettings:function(){var e=this;T(C.findDOMNode(e.refs.rulesSettingsDialog)).modal("show"),O.rules.accountRules(function(t,n){t&&0===t.ec?e.setState({accountRules:t.rules}):H.showSystemError(n)})},showValuesSettings:function(){T(C.findDOMNode(this.refs.valuesSettingsDialog)).modal("show")},toggleLeftMenu:function(){var e=!this.state.showLeftMenu;this.setState({showLeftMenu:e}),P.set("showLeftMenu",e?1:""),V.trigger("editorResize")},handleCreate:function(){"rules"==this.state.name?this.showCreateRules():this.showCreateValues()},saveRulesOrValues:function(){var e,t=this,n=t.state,r="rules"==n.name;if(r){e=n.rules.getChanged