mirror of
https://github.com/BorysLevytskyi/BitwiseCmd.git
synced 2025-12-23 21:22:48 +01:00
2 lines
37 KiB
JavaScript
2 lines
37 KiB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,,,,,,,function(e,t,n){"use strict";var a=n(1),i=n(2),r=[{regex:/^-?\d+$/,radix:10,base:"dec",prefix:"^$"},{regex:/^-?0x[0-9,a-f]+$/i,radix:16,base:"hex",prefix:/0x/i},{regex:/^-?0b[0-1]+$/i,radix:2,base:"bin",prefix:/0b/i}],s=new(function(){function e(t){Object(a.a)(this,e),this.parsers=void 0,this.parsers=t}return Object(i.a)(e,[{key:"parse",value:function(e){var t=this;return this.parsers.map(function(n){return t.applyParser(n,e)}).reduce(function(e,t){return e||t})}},{key:"parseOperator",value:function(e){var t=e.match(e);return null==t||0==t.length?null:t[0]}},{key:"applyParser",value:function(e,t){return e.regex.test(t)?{value:parseInt(t.replace(e.prefix,""),e.radix),base:e.base,input:t}:null}}]),e}())(r);n.d(t,"a",function(){return o});var l=1,o=function(){function e(t,n){Object(a.a)(this,e),this.id=void 0,this.value=void 0,this.base=void 0,this.lengthInBits=void 0,this.isExpression=void 0,this.id=l++,this.value=t,this.base=n||"dec",this.lengthInBits=e.getBitLength(this.value),this.isExpression=!1}return Object(i.a)(e,[{key:"getLengthInBits",value:function(){return this.value<0?32:Math.floor(Math.log(this.value)/Math.log(2))+1}},{key:"getOtherBase",value:function(e){switch(e||this.base){case"dec":case"bin":return"hex";case"hex":return"dec";default:throw new Error(e+" kind doesn't have opposite kind")}}},{key:"toString",value:function(t){return e.toBaseString(this.value,t||this.base)}},{key:"toOtherKindString",value:function(){return this.toString(this.getOtherBase())}},{key:"toDecimalString",value:function(){return this.toString("dec")}},{key:"toHexString",value:function(){return this.toString("hex")}},{key:"toBinaryString",value:function(){return this.toString("bin")}},{key:"setValue",value:function(t){this.value=t,this.lengthInBits=e.getBitLength(t)}},{key:"evaluate",value:function(){return this}},{key:"getUnderlyingOperand",value:function(){return this}}],[{key:"getBitLength",value:function(e){return Math.floor(Math.log(e)/Math.log(2))+1}},{key:"getBase",value:function(e){switch(e){case"bin":return 2;case"hex":return 16;case"dec":return 10}}},{key:"create",value:function(t,n){return new e(t,n||"dec")}},{key:"parse",value:function(t){var n=s.parse(t);if(!n)throw new Error(t+" is not a valid number");return new e(n.value,n.base)}},{key:"toBaseString",value:function(e,t){switch(t){case"hex":var n=Math.abs(e).toString(16);return e>=0?"0x"+n:"-0x"+n;case"bin":return(e>>>0).toString(2);case"dec":return e.toString(10);default:throw new Error("Unexpected kind: "+t)}}},{key:"toHexString",value:function(e){return 0===e.indexOf("-")?"-0x"+e.substr(1):"0x"+e}}]),e}()},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",function(){return ExpressionOperand});var D_MyStuff_Pet_BitwiseCmd_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(1),D_MyStuff_Pet_BitwiseCmd_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(2),_NumericOperand__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(7),ExpressionOperand=function(){function ExpressionOperand(e,t,n){Object(D_MyStuff_Pet_BitwiseCmd_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__.a)(this,ExpressionOperand),this.expressionString=void 0,this.operand=void 0,this.sign=void 0,this.isExpression=void 0,this.isShiftExpression=void 0,this.isNotExpression=void 0,this.expressionString=e,this.operand=t,this.sign=n,this.isExpression=!0,this.isShiftExpression=this.sign.indexOf("<")>=0||this.sign.indexOf(">")>=0,this.isNotExpression="~"===this.sign}return Object(D_MyStuff_Pet_BitwiseCmd_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__.a)(ExpressionOperand,[{key:"evaluate",value:function evaluate(operand){if(operand instanceof ExpressionOperand)throw new Error("value shouldnt be expression");var evaluatedOperand=this.operand.evaluate(),str="";if("~"==this.sign)str="~"+evaluatedOperand.value;else{if(null==operand)throw new Error("Other is required for expression: "+this.expressionString);str=operand.value+this.sign+evaluatedOperand.value}return _NumericOperand__WEBPACK_IMPORTED_MODULE_2__.a.create(eval(str),evaluatedOperand.base)}},{key:"getUnderlyingOperand",value:function(){return this.operand.getUnderlyingOperand()}},{key:"toString",value:function(){return this.sign+this.operand.toString()}}]),ExpressionOperand}()},,,,function(e,t,n){e.exports=n(24)},,,,function(e,t,n){},function(e,t,n){},function(e,t,n){},,,,,function(e,t,n){},function(e,t,n){"use strict";n.r(t);var a=n(1),i=n(2),r=n(6),s=n.n(r),l=5,o=function(){function e(t,n){Object(a.a)(this,e),this.version=l,this.emphasizeBytes=void 0,this.debugMode=!1,this.uiTheme=void 0,this.handlers=void 0,this.commandResults=void 0,this.persistedVersion=void 0,this.wasOldVersion=void 0,this.env=void 0,this.commandResults=[],this.handlers=[],this.uiTheme=t.uiTheme||"midnight",this.env=n,this.emphasizeBytes=t.emphasizeBytes||!0,this.persistedVersion=t.version||.1,this.wasOldVersion=null!=t.version&&this.version>this.persistedVersion,this.debugMode="prod"!==n||!0===t.debugMode}return Object(i.a)(e,[{key:"addCommandResult",value:function(e){this.commandResults.unshift(e),s.a.debug("result added",e),this.triggerChanged()}},{key:"clearCommandResults",value:function(){this.commandResults=[],this.triggerChanged()}},{key:"toggleEmphasizeBytes",value:function(){this.emphasizeBytes=!this.emphasizeBytes,this.triggerChanged()}},{key:"onChange",value:function(e){this.handlers.push(e)}},{key:"triggerChanged",value:function(){var e=this;this.handlers.forEach(function(t){return t(e)})}},{key:"setUiTheme",value:function(e){this.uiTheme=e,this.triggerChanged()}},{key:"toggleDebugMode",value:function(){this.debugMode=!this.debugMode,this.triggerChanged()}},{key:"getPersistData",value:function(){return{emphasizeBytes:this.emphasizeBytes,uiTheme:this.uiTheme,version:this.version,debugMode:this.debugMode}}}]),e}(),c={getPersistedData:function(){var e=window.localStorage.getItem("AppState");if(!e)return{};try{return JSON.parse(e)}catch(t){return console.error("Failed to parse AppState json. Json Value: \n"+e,t),{}}},watch:function(e){var t=this;e.onChange(function(){return t.persistData(e)})},persistData:function(e){localStorage.setItem("AppState",JSON.stringify(e.getPersistData()))}},u=function(e){return"object"==typeof e&&!(e instanceof Array)&&e instanceof Object},h=function(e){return"function"==typeof e},d=function(e){return"string"==typeof e},m=new(function(){function e(){Object(a.a)(this,e),this.debugMode=void 0,this.handlers=void 0,this.errorHandler=void 0,this.handlers=[],this.debugMode=!1,this.errorHandler=null}return Object(i.a)(e,[{key:"execute",value:function(e){s.a.debug("Executing command: ".concat(e));var t=e.trim().toLowerCase(),n=this.findHandler(t);if(null!=n)if(this.debugMode)this.invokeHandler(t,n);else try{this.invokeHandler(t,n)}catch(a){this.handleError(t,a)}else s.a.debug("Handled is not found for command: ".concat(e)),this.handleError(t,new Error("Unsupported expression: "+t.trim()))}},{key:"onError",value:function(e){this.errorHandler=e}},{key:"command",value:function(e,t){var n=this.createHandler(e,t);null!=n?h(n.canHandle)?h(n.handle)?this.handlers.push(n):console.warn('handler is missing "handle" function. registration denied.'):console.warn('handler is missing "canHandle" function. registration denied.'):console.warn("unexpected set of arguments: ",JSON.stringify(arguments))}},{key:"createHandler",value:function(e,t){return u(e)?e:d(e)?{canHandle:function(t){return t===e},handle:t}:null}},{key:"findHandler",value:function(e){return this.handlers.filter(function(t){return t.canHandle(e)})[0]}},{key:"invokeHandler",value:function(e,t){var n=t.handle({input:e});null!=n&&s.a.debug(n)}},{key:"handleError",value:function(e,t){this.debugMode&&console.error(e,t),null!=this.errorHandler&&this.errorHandler(e,t)}}]),e}()),p=n(4),f=n(3),g=n(5),v=function(){function e(t){Object(a.a)(this,e),this.input=void 0,this.inputHash=void 0,this.input=t,this.inputHash=this.encodeHash(t)}return Object(i.a)(e,[{key:"encodeHash",value:function(e){return encodeURI(e.trim().replace(/\s/g,","))}}]),e}(),b=function(e){function t(e){return Object(a.a)(this,t),Object(p.a)(this,Object(f.a)(t).call(this,e))}return Object(g.a)(t,e),t}(v),E=function(e){function t(e){return Object(a.a)(this,t),Object(p.a)(this,Object(f.a)(t).call(this,e))}return Object(g.a)(t,e),t}(v),y=function(e){function t(e){var n;return Object(a.a)(this,t),(n=Object(p.a)(this,Object(f.a)(t).call(this,e))).message=void 0,n.message="Sorry, i don''t know what ".concat(e," is :("),n}return Object(g.a)(t,e),t}(v),x=function(e){function t(e,n){var i;return Object(a.a)(this,t),(i=Object(p.a)(this,Object(f.a)(t).call(this,e))).expression=void 0,i.expression=n,i}return Object(g.a)(t,e),t}(v),O=function(e){function t(e,n){var i;return Object(a.a)(this,t),(i=Object(p.a)(this,Object(f.a)(t).call(this,e))).error=void 0,i.error=n,i}return Object(g.a)(t,e),t}(v),w=function(e){function t(e,n){var i;return Object(a.a)(this,t),(i=Object(p.a)(this,Object(f.a)(t).call(this,e))).errorMessage=void 0,i.errorMessage=n,i}return Object(g.a)(t,e),t}(v),B=function(e){function t(e){return Object(a.a)(this,t),Object(p.a)(this,Object(f.a)(t).call(this,e))}return Object(g.a)(t,e),t}(v),k=function(e){function t(e,n){var i;return Object(a.a)(this,t),(i=Object(p.a)(this,Object(f.a)(t).call(this,e))).value=void 0,i.value=n,i}return Object(g.a)(t,e),t}(v),_=n(7),N=n(8),j=function(){function e(t,n){Object(a.a)(this,e),this.numbers=void 0,this.expressionString=void 0,this.maxBitsLength=void 0,this.expressionString=t,this.numbers=n,this.maxBitsLength=n.map(function(e){return e.lengthInBits}).reduce(function(e,t){return e>=t?e:t},0)}return Object(i.a)(e,[{key:"toString",value:function(){return this.numbers.map(function(e){return e.value.toString()}).join(" ")}}]),e}(),S=function e(t,n){Object(a.a)(this,e),this.expressionString=void 0,this.expressionItems=void 0,this.expressionString=t,this.expressionItems=n},C=function(){function e(){Object(a.a)(this,e),this.factories=void 0,this.factories=[]}return Object(i.a)(e,[{key:"canParse",value:function(e){for(var t=e.replace(/^\s+|\s+$/,""),n=this.factories.length-1;n>=0;n--)if(!0===this.factories[n].canCreate(t))return!0;return!1}},{key:"parse",value:function(e){for(var t,n=e.replace(/^\s+|\s+$/,""),a=0,i=this.factories.length;a<i;a++)if(1==(t=this.factories[a]).canCreate(n))return t.create(n);return null}},{key:"parseOperand",value:function(e){return _.a.parse(e)}},{key:"createOperand",value:function(e,t){return _.a.create(e,t)}},{key:"addFactory",value:function(e){this.factories.push(e)}}]),e}(),I=function(){function e(){Object(a.a)(this,e),this.regex=void 0,this.regex=/^(-?(?:\d+|0x[\d,a-f]+|0b[0-1])\s?)+$/}return Object(i.a)(e,[{key:"canCreate",value:function(e){return this.regex.test(e)}},{key:"create",value:function(e){var t=this.regex.exec(e),n=[];return(e=t.input).split(" ").forEach(function(e){e.trim().length>0&&n.push(_.a.parse(e.trim()))}),new j(e,n)}}]),e}(),M=function(){function e(){Object(a.a)(this,e),this.fullRegex=void 0,this.regex=void 0,this.fullRegex=/^((<<|>>|>>>|\||\&|\^)?(~?-?([b,x,a-f,0-9]+)))+$/,this.regex=/(<<|>>|>>>|\||\&|\^)?(~?-?(?:[b,x,a-f,0-9]+))/g}return Object(i.a)(e,[{key:"canCreate",value:function(e){return this.fullRegex.lastIndex=0,this.fullRegex.test(this.normalizeString(e))}},{key:"create",value:function(e){for(var t,n=[],a=this.normalizeString(e);null!=(t=this.regex.exec(a));)n.push(this.parseMatch(t));return new S(a,n)}},{key:"parseMatch",value:function(e){var t=e[0],n=e[1],a=e[2],i=null;return i=0==a.indexOf("~")?new N.a(a,_.a.parse(a.substring(1)),"~"):_.a.parse(a),null==n?i:new N.a(t,i,n)}},{key:"normalizeString",value:function(e){return e.replace(/\s+/g,"")}}]),e}(),R=new C;R.addFactory(new I),R.addFactory(new M);var z=n(10),L=n.n(z),D={formatString:function(e,t){return e.toString(function(e){switch(e){case"bin":return 2;case"hex":return 16;case"dec":return 10}throw new Error("Unsupported kind: "+e)}(t||"bin"))},padLeft:function(e,t,n){var a=Array.prototype.slice.call(e);n=n||"0";if(null==t)return e;for(;t>a.length;)a.unshift(n);return a.join("")}};var F={parse:function(e){var t=this,n=this.getMaches(e),a=n.filter(function(e){return null!=e.matches}),i=n.filter(function(e){return null==e.matches});if(0==a.length)return null;if(i.length>0)return new H("Value(s) ".concat(i.map(function(e){return e.input}).join(",")," was not recognized as valid ip address or ip address with a subnet mask"));var r=n.map(function(e){return t.parseSingle(e.matches,e.input)}),s=r.filter(function(e){return e instanceof H});return s.length>0?s[0]:r},getMaches:function(e){return e.replace(/[\t\s]+/g," ").split(" ").filter(function(e){return e.length>0}).map(function(e){var t=/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})(\/\d+)?$/.exec(e);return null==t||0===t.length?{matches:null,input:e}:{matches:t,input:e}})},parseSingle:function(e,t){var n=function(e){return e<0||e>255},a=parseInt(e[1]),i=parseInt(e[2]),r=parseInt(e[3]),s=parseInt(e[4]);if(n(a)||n(i)||n(r)||n(s))return new H("".concat(t," value doesn't fall within the valid range of the IP address space"));var l=new U(a,i,r,s);if(e[5]){var o=e[5].substr(1),c=parseInt(o);return c>32?new H("Subnet mask value in ".concat(t," is out of range")):new P(l,c)}return l}},H=function e(t){Object(a.a)(this,e),this.errorMessage=void 0,this.errorMessage=t},P=function(){function e(t,n){Object(a.a)(this,e),this.maskBits=void 0,this.ipAddress=void 0,this.ipAddress=t,this.maskBits=n}return Object(i.a)(e,[{key:"toString",value:function(){return"".concat(this.ipAddress.toString(),"/").concat(this.maskBits)}},{key:"createSubnetMaskIp",value:function(){var e=function(e){return 255<<8-e&255};return this.maskBits<=8?new U(e(this.maskBits),0,0,0):this.maskBits<=16?new U(255,e(this.maskBits-8),0,0):this.maskBits<=24?new U(255,255,e(this.maskBits-16),0):new U(255,255,255,e(this.maskBits-24))}}]),e}(),U=function(){function e(t,n,i,r){Object(a.a)(this,e),this.firstByte=void 0,this.secondByte=void 0,this.thirdByte=void 0,this.fourthByte=void 0,this.firstByte=t,this.secondByte=n,this.thirdByte=i,this.fourthByte=r}return Object(i.a)(e,[{key:"toString",value:function(){return"".concat(this.firstByte,".").concat(this.secondByte,".").concat(this.thirdByte,".").concat(this.fourthByte)}},{key:"setOctet",value:function(e,t){switch(e){case 1:this.firstByte=t;break;case 2:this.secondByte=t;break;case 3:this.thirdByte=t;break;case 4:this.fourthByte=t}}}]),e}(),A=function(e){function t(e,n){var i;return Object(a.a)(this,t),(i=Object(p.a)(this,Object(f.a)(t).call(this,e))).ipAddresses=void 0,i.ipAddresses=n,i}return Object(g.a)(t,e),t}(v),T=function(e,t){e.debugMode=t.debugMode,t.onChange(function(){return e.debugMode=t.debugMode}),e.command("help",function(e){return t.addCommandResult(new b(e.input))}),e.command("clear",function(e){return t.clearCommandResults()}),e.command("em",function(e){return t.toggleEmphasizeBytes()}),e.command("dark",function(e){return t.setUiTheme("dark")}),e.command("light",function(e){return t.setUiTheme("light")}),e.command("midnight",function(e){return t.setUiTheme("midnight")}),e.command("about",function(e){return t.addCommandResult(new E(e.input))}),e.command("whatsnew",function(e){return t.addCommandResult(new B(e.input))}),e.command("guid",function(e){return t.addCommandResult(new k(e.input,L()()))}),e.command("-notrack",function(e){}),e.command("-debug",function(e){t.toggleDebugMode(),t.addCommandResult(new k(e.input,"Debug Mode: ".concat(t.debugMode)))}),e.command({canHandle:function(e){return null!=F.parse(e)},handle:function(e){var n=F.parse(e.input);if(null!=n)if(n instanceof H)t.addCommandResult(new w(e.input,n.errorMessage));else{var a=[];n.forEach(function(e){e instanceof P?(a.push(e.ipAddress),a.push(e.createSubnetMaskIp())):e instanceof U&&a.push(e)}),t.addCommandResult(new A(e.input,a))}}}),e.command({canHandle:function(e){return R.canParse(e)},handle:function(e){var n=R.parse(e.input);t.addCommandResult(new x(e.input,n))}}),e.command({canHandle:function(){return!0},handle:function(e){return t.addCommandResult(new y(e.input))}}),e.onError(function(e,n){return t.addCommandResult(new O(e,n))})},K=n(0),V=n.n(K),J=function(e){function t(e){var n;return Object(a.a)(this,t),(n=Object(p.a)(this,Object(f.a)(t).call(this,e))).history=void 0,n.historyIndex=void 0,n.nameInput=void 0,n.nameInput=null,n.history=[],n.historyIndex=-1,n}return Object(g.a)(t,e),Object(i.a)(t,[{key:"componentDidMount",value:function(){null!=this.nameInput&&this.nameInput.focus()}},{key:"render",value:function(){var e=this;return V.a.createElement("input",{id:"in",type:"text",ref:function(t){e.nameInput=t},onKeyUp:function(t){return e.onKeyUp(t)},onKeyDown:function(t){return e.onKeyDown(t)},className:"expressionInput mono",placeholder:"type expression like '1>>2' or 'help' "})}},{key:"onKeyUp",value:function(e){var t=e.target;if(13==e.keyCode&&0!=t.value.trim().length){var n=t.value;this.history.unshift(n),this.historyIndex=-1,t.value="",this.props.onCommandEntered(n)}}},{key:"onKeyDown",value:function(e){if(38==e.keyCode){var t=this.historyIndex+1;return this.history.length>t&&(e.target.value=this.history[t],this.historyIndex=t),void e.preventDefault()}40==e.keyCode&&(this.historyIndex>0&&(e.target.value=this.history[--this.historyIndex]),e.preventDefault())}}]),t}(V.a.Component);var $=function(e){return V.a.createElement("a",{href:"javascript:void(0)",onClick:function(t){return m.execute(e.command||e.text)}},e.text)};n(16);var W=function(){return V.a.createElement("div",{className:"help helpResultTpl"},V.a.createElement("div",{className:"panel-container"},V.a.createElement("div",{className:"left-panel"},V.a.createElement("div",{className:"section"},V.a.createElement("strong",{className:"section-title soft"},"Bitiwse Calculation Commands"),V.a.createElement("ul",null,V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"23 | 34"}))," \u2014 type bitwise expression to see result in binary (only positive integers are supported now)"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"23 34"}))," \u2014 type one or more numbers to see their binary representations"))),V.a.createElement("div",{className:"section"},V.a.createElement("strong",{className:"section-title soft"},"IP Address Commands"),V.a.createElement("ul",null,V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"127.0.0.1"}))," \u2014 enter single or multiple ip addresses (separated by space) to see their binary represenation"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"192.168.0.1/8"}))," \u2014 subnet mask notiations are support as well"))),V.a.createElement("div",{className:"section"},V.a.createElement("strong",{className:"section-title soft"},"Color Theme Commands"),V.a.createElement("ul",null,V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"light"}))," \u2014 set Light theme"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"dark"}))," \u2014 set Dark theme"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"midnight"}))," \u2014 set Midnight theme"))),V.a.createElement("div",{className:"section"},V.a.createElement("strong",{className:"section-title soft"},"Other Commands"),V.a.createElement("ul",null,V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"clear"}))," \u2014 clear output pane"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"help"}))," \u2014 display this help"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"whatsnew"}))," \u2014 display changelog"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"em"}))," \u2014 turn On/Off Emphasize Bytes"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"about"}))," \u2014 about the app"),V.a.createElement("li",null,V.a.createElement("code",null,V.a.createElement($,{text:"guid"}))," \u2014 generate ",V.a.createElement("a",{href:"https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29"},"v4")," GUID")))),V.a.createElement("div",{className:"right-panel"},V.a.createElement("div",{className:"section"},V.a.createElement("strong",{className:"section-title soft"},"Supported Bitwise Operations"),V.a.createElement("br",null),V.a.createElement("small",null,V.a.createElement("a",{href:"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators"},"as implemented in JavaScript engine of your browser")),V.a.createElement("ul",null,V.a.createElement("li",null,V.a.createElement("code",null,"&")," \u2014 bitwise AND"),V.a.createElement("li",null,V.a.createElement("code",null,"|")," \u2014 bitwise inclusive OR"),V.a.createElement("li",null,V.a.createElement("code",null,"^")," \u2014 bitwise exclusive XOR"),V.a.createElement("li",null,V.a.createElement("code",null,"~")," \u2014 bitwise NOT"),V.a.createElement("li",null,V.a.createElement("code",null,"<<")," \u2014 left shift"),V.a.createElement("li",null,V.a.createElement("code",null,">>")," \u2014 sign propagating right shift"),V.a.createElement("li",null,V.a.createElement("code",null,">>>")," \u2014 zero-fill right shift"))),V.a.createElement("div",{className:"section"},V.a.createElement("strong",{className:"section-title soft"},"Tip"),V.a.createElement("p",null,"You can click on bits to flip them in number inputs (e.g. ",V.a.createElement($,{text:"2 4"}),") or IP addresses (e.g. ",V.a.createElement($,{text:"192.168.0.0/8"}),")")))))};var q=function(){return V.a.createElement("div",{className:"aboutTpl","data-result-type":"help"},V.a.createElement("p",null," Created by ",V.a.createElement("a",{href:"http://boryslevytskyi.github.io/"},"Borys Levytskyi"),". Please give it a like if BitwiseCmd has helped you in your work."),V.a.createElement("p",null,"If you have an idea, suggestion or you've spotted a bug here, please send it to ",V.a.createElement("a",{href:"mailto:bitwisecmd@gmail.com?subject=Feedback"},"bitwisecmd@gmail.com")," or tweet on ",V.a.createElement("a",{href:"http://twitter.com/BitwiseCmd"},"@BitwiseCmd"),". Your feedback is greatly appreciated."),V.a.createElement("p",null,V.a.createElement("a",{href:"https://github.com/BorisLevitskiy/BitwiseCmd"},"Project on ",V.a.createElement("strong",null,"GitHub"))))},G=function(e){function t(){return Object(a.a)(this,t),Object(p.a)(this,Object(f.a)(t).apply(this,arguments))}return Object(g.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){return V.a.createElement("span",{className:this.props.className},this.getChildren())}},{key:"onBitClick",value:function(e,t){if(this.props.allowFlipBits&&this.props.onFlipBit){this.props.onFlipBit;var n=this.props.binaryString.split("");n[e]="0"==n[e]?"1":"0";var a=n.join("");this.props.onFlipBit({index:e,binaryString:this.props.binaryString,$event:t,newBinaryString:a})}}},{key:"getChildren",value:function(){var e=this.createBits(this.props.binaryString.split(""));return this.props.emphasizeBytes?this.splitIntoBytes(e):e}},{key:"createBits",value:function(e){var t=this,n=this.props.allowFlipBits||!1?" flipable":"";return e.map(function(e,a){var i="0"==e?"zero".concat(n):"one".concat(n);return V.a.createElement("span",{className:i,key:a,onClick:function(e){return t.onBitClick(a,e)}},e)})}},{key:"splitIntoBytes",value:function(e){for(var t=[],n=0;e.length>0;)t.push(V.a.createElement("span",{key:n++,className:"byte"},e.splice(0,8)));return t}}]),t}(V.a.Component),X=function(){function e(t){var n=t.emphasizeBytes,i=void 0!==n&&n,r=t.allowFlipBits,s=void 0!==r&&r;Object(a.a)(this,e),this.emphasizeBytes=void 0,this.items=void 0,this.maxNumberOfBits=void 0,this.allowFlipBits=void 0,this.emphasizeBytes=i,this.items=[],this.maxNumberOfBits=0,this.allowFlipBits=!0===s}return Object(i.a)(e,[{key:"addOperandRow",value:function(e){this.maxNumberOfBits=Math.max(e.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"",css:"",expressionItem:e,allowFlipBits:this.allowFlipBits,label:""})}},{key:"addExpressionOperandRow",value:function(e){var t=e.isNotExpression?e.evaluate():e.getUnderlyingOperand();this.maxNumberOfBits=Math.max(t.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:e.sign,css:"",label:this.getLabel(t),expressionItem:e.operand,allowFlipBits:this.allowFlipBits})}},{key:"addShiftExpressionResultRow",value:function(e,t){this.maxNumberOfBits=Math.max(t.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:e.sign+e.operand.toString(),css:"expression-result",expressionItem:t,allowFlipBits:!1,label:""})}},{key:"addExpressionResultRow",value:function(e){this.maxNumberOfBits=Math.max(e.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"=",css:"expression-result",expressionItem:e,allowFlipBits:!1,label:""})}},{key:"getLabel",value:function(e){return"bin"==e.base?e.toString("dec"):e.toString()}}],[{key:"buildListOfNumbers",value:function(t,n){var a=new e(n);return t.numbers.forEach(function(e){return a.addOperandRow(e)}),a.maxNumberOfBits=e.getNumberOfBits(a.maxNumberOfBits,a.emphasizeBytes),a}},{key:"buildMultiple",value:function(t,n){t.expressionItems[0];for(var a,i=0,r=t.expressionItems.length,s=new e(n),l=null;i<r;i++)if((a=t.expressionItems[i])instanceof _.a)s.addOperandRow(a),l=a;else{var o=a;if(o.isNotExpression){s.addExpressionOperandRow(o);var c=o.evaluate();s.addExpressionResultRow(c),l=c}else o.isShiftExpression?(l=o.evaluate(l),s.addShiftExpressionResultRow(o,l)):(l=o.evaluate(l),s.addExpressionOperandRow(o),s.addExpressionResultRow(l))}return s.maxNumberOfBits=e.getNumberOfBits(s.maxNumberOfBits,s.emphasizeBytes),s}},{key:"buildNot",value:function(t,n){var a=new e(n);return a.addExpressionOperandRow(t),a.addExpressionResultRow(t.evaluate()),a.maxNumberOfBits=e.getNumberOfBits(a.maxNumberOfBits,a.emphasizeBytes),a}},{key:"createModel",value:function(t,n){if(t instanceof j)return e.buildListOfNumbers(t,{emphasizeBytes:n,allowFlipBits:!0});if(t instanceof S)return e.buildMultiple(t,{emphasizeBytes:n,allowFlipBits:!1});throw new Error("Cannot build BitwiseExpressionViewModel out of expression "+t)}}]),e}();X.getNumberOfBits=function(e,t){return t&&e%8!=0?e<8?8:e-e%8+8:e};var Y=function(e){function t(e){var n;return Object(a.a)(this,t),(n=Object(p.a)(this,Object(f.a)(t).call(this,e))).state={},n}return Object(g.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){var e=this.getRows();return e?V.a.createElement("table",{className:"expression"},V.a.createElement("tbody",null,e)):null}},{key:"getRows",value:function(){var e=this,t=X.createModel(this.props.expression,this.props.emphasizeBytes);return t.items.map(function(n,a){return V.a.createElement(Q,{key:a,sign:n.sign,css:n.css,allowFlipBits:n.allowFlipBits,expressionItem:n.expressionItem,emphasizeBytes:e.props.emphasizeBytes,maxNumberOfBits:t.maxNumberOfBits,onBitFlipped:function(){return e.onBitFlipped()}})})}},{key:"onBitFlipped",value:function(){this.forceUpdate()}}]),t}(V.a.Component),Q=function(e){function t(e){var n;return Object(a.a)(this,t),(n=Object(p.a)(this,Object(f.a)(t).call(this,e))).state={operand:null},n}return Object(g.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.sign,a=t.css,i=t.maxNumberOfBits,r=t.emphasizeBytes,s=t.allowFlipBits;return V.a.createElement("tr",{className:a},V.a.createElement("td",{className:"sign"},n),V.a.createElement("td",{className:"label"},this.getLabel()),V.a.createElement("td",{className:"bin"},V.a.createElement(G,{emphasizeBytes:r,binaryString:D.padLeft(this.getBinaryString(),i,"0"),allowFlipBits:s,onFlipBit:function(t){return e.flipBit(t)}})),V.a.createElement("td",{className:"other"},this.getOther()))}},{key:"getBinaryString",value:function(){return this.props.expressionItem.evaluate().toBinaryString()}},{key:"getLabel",value:function(){if(this.props.expressionItem.isExpression){var e=this.props.expressionItem;return e.sign+this.getLabelString(e.getUnderlyingOperand())}return this.getLabelString(this.props.expressionItem.getUnderlyingOperand())}},{key:"getOther",value:function(){return this.props.expressionItem.isExpression?this.props.expressionItem.evaluate().toString():this.props.expressionItem.evaluate().toOtherKindString()}},{key:"getLabelString",value:function(e){return e.toString("bin"==e.base?"dec":e.base)}},{key:"flipBit",value:function(e){var t=this.props.expressionItem.getUnderlyingOperand(),n=e.index,a=e.binaryString.split("");a[n]="0"==a[n]?"1":"0";var i=a.join(""),r=parseInt(i,2);t.setValue(r),this.props.onBitFlipped()}}]),t}(V.a.Component);n(17);var Z=function(){return V.a.createElement("div",{className:"changelog"},V.a.createElement("h3",null,"Changelog"),V.a.createElement("div",{className:"item item-new"},V.a.createElement("p",null,V.a.createElement("span",{className:"soft date"},"Jun 14th, 2021")," ",V.a.createElement("br",null),"Added support of ip addresses and subnet masks notatioans. Try them out:"),V.a.createElement("ul",null,V.a.createElement("li",null,"Single IP address ",V.a.createElement($,{text:"127.0.0.1"})),V.a.createElement("li",null,"Multiple IP addresses and subnet mask notations ",V.a.createElement($,{text:"127.0.0.1 192.168.0.0/24"})))),V.a.createElement("div",{className:"item"},V.a.createElement("p",null,V.a.createElement("span",{className:"soft date"},"Jun 6th, 2017")," ",V.a.createElement("br",null),"Added ",V.a.createElement("code",null,V.a.createElement($,{text:"guid"}))," command. Use it for generating v4 GUIDs ")),V.a.createElement("div",{className:"item"},V.a.createElement("p",null,V.a.createElement("span",{className:"soft date"},"May 27th, 2017")," ",V.a.createElement("br",null),"Added support of binary number notation (e.g. ",V.a.createElement("code",null,V.a.createElement($,{text:"0b10101"})),"). ")),V.a.createElement("div",{className:"item"},V.a.createElement("p",null,V.a.createElement("span",{className:"soft"},"May 20th, 2017")," ",V.a.createElement("br",null),"New ",V.a.createElement($,{text:"Midnight"})," theme added. ")),V.a.createElement("div",{className:"item"},V.a.createElement("p",null,V.a.createElement("span",{className:"soft"},"May 16th, 2017")," ",V.a.createElement("br",null),"Complete rewrite using React. Old implementation is available at ",V.a.createElement("a",{href:"http://bitwisecmd.com/old"},"http://bitwisecmd.com/old"),". Please let me know if you have problems with this release by ",V.a.createElement("a",{href:"https://github.com/BorysLevytskyi/BitwiseCmd/issues"},"creating issue")," in Github Repo.")))};n(18);var ee=function(e){function t(){return Object(a.a)(this,t),Object(p.a)(this,Object(f.a)(t).apply(this,arguments))}return Object(g.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){return 1===this.props.ipAddresses.length?this.renderSingleIp(this.props.ipAddresses[0]):this.renderMultipleIps()}},{key:"renderMultipleIps",value:function(){var e=this;return V.a.createElement("table",{className:"expression"},V.a.createElement("tbody",null,this.props.ipAddresses.map(function(t,n){return V.a.createElement("tr",{key:n},V.a.createElement("td",{className:"label"},V.a.createElement("strong",null,t.toString())),V.a.createElement("td",{className:"bin"},e.bin(t.firstByte,1,t),V.a.createElement("span",{className:"soft"},"."),e.bin(t.secondByte,2,t),V.a.createElement("span",{className:"soft"},"."),e.bin(t.thirdByte,3,t),V.a.createElement("span",{className:"soft"},"."),e.bin(t.fourthByte,4,t)))})))}},{key:"renderSingleIp",value:function(e){return V.a.createElement("table",{className:"expression"},V.a.createElement("thead",null,V.a.createElement("tr",null,V.a.createElement("th",{className:"first-decimal"},e.firstByte),V.a.createElement("th",{className:"second-decimal"},e.secondByte),V.a.createElement("th",{className:"third-decimal"},e.thirdByte),V.a.createElement("th",{className:"fourth-decimal"},e.fourthByte))),V.a.createElement("tbody",null,V.a.createElement("tr",null,V.a.createElement("td",{className:"first-bin"},this.bin(e.firstByte,1,e)),V.a.createElement("td",{className:"second-bin"},this.bin(e.secondByte,2,e)),V.a.createElement("td",{className:"third-bin"},this.bin(e.thirdByte,3,e)),V.a.createElement("td",{className:"fourth-bin"},this.bin(e.fourthByte,4,e)))))}},{key:"bin",value:function(e,t,n){var a,i=this;return V.a.createElement(G,{binaryString:(a=e,D.padLeft(D.formatString(a,"bin"),8,"0")),key:t,emphasizeBytes:!1,allowFlipBits:!0,className:"octet-".concat(t),onFlipBit:function(e){return i.onFlippedBit(e.newBinaryString,t,n)}})}},{key:"onFlippedBit",value:function(e,t,n){n.setOctet(t,parseInt(e,2)),this.forceUpdate()}}]),t}(V.a.Component),te=function(e){function t(){return Object(a.a)(this,t),Object(p.a)(this,Object(f.a)(t).apply(this,arguments))}return Object(g.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){return V.a.createElement("div",{className:"result"},V.a.createElement("div",{className:"input mono"},V.a.createElement("span",{className:"cur"},">"),this.props.content.input,V.a.createElement("a",{className:"hashLink",title:"Link for this expression",href:window.location.pathname+"#"+this.props.inputHash},"#")),V.a.createElement("div",{className:"content"},this.findResultComponent(this.props.content)))}},{key:"findResultComponent",value:function(e){if(e instanceof b)return V.a.createElement(W,null);if(e instanceof E)return V.a.createElement(q,null);if(e instanceof x)return V.a.createElement(Y,{expression:e.expression,emphasizeBytes:this.props.appState.emphasizeBytes});if(e instanceof B)return V.a.createElement(Z,null);if(e instanceof k)return V.a.createElement("p",null,e.value);if(e instanceof O)return V.a.createElement("div",{className:"result"},V.a.createElement("div",{className:"error"},"(X_X) Ooops.. Something ain' right: ",V.a.createElement("strong",null,e.error.message)));if(e instanceof w)return V.a.createElement("div",{className:"result"},V.a.createElement("div",{className:"error"},e.errorMessage));if(e instanceof A){var t=e;return V.a.createElement(ee,{ipAddresses:t.ipAddresses})}return V.a.createElement("div",{className:"result"},V.a.createElement("div",{className:"error"},"\xaf\\_(\u30c4)_/\xaf Sorry, i don\u2032t know what ",V.a.createElement("strong",null,this.props.content.input)," is"))}}]),t}(V.a.Component);var ne=function(e){var t=[],n=e.appState;return"prod"!=e.appState.env&&t.push(n.env),e.appState.debugMode&&t.push("debug"),"false"===localStorage.getItem("TrackAnalytics")&&t.push("notrack"),0==t.length?null:V.a.createElement("div",null,t.map(function(e){return V.a.createElement("span",null,e,"\xa0")}))},ae=function(e){function t(){return Object(a.a)(this,t),Object(p.a)(this,Object(f.a)(t).apply(this,arguments))}return Object(g.a)(t,e),Object(i.a)(t,[{key:"componentWillMount",value:function(){var e=this;this.refresh(),this.props.appState.onChange(function(){return e.refresh()})}},{key:"refresh",value:function(){this.setState(this.props.appState)}},{key:"getIndicator",value:function(e){return e?"on":"off"}},{key:"getResultViews",value:function(){var e=this;return s.a.debug("getting result views"),this.state.commandResults.map(function(t,n){return V.a.createElement(te,{key:n,content:t,input:t.input,inputHash:t.inputHash,appState:e.props.appState})})}},{key:"toggleEmphasizeBytes",value:function(){this.props.appState.toggleEmphasizeBytes()}},{key:"render",value:function(){var e=this;return V.a.createElement("div",{className:"app-root ".concat(this.state.uiTheme)},V.a.createElement(ne,{appState:this.props.appState}),V.a.createElement("div",{className:"header"},V.a.createElement("h1",null,"Bitwise",V.a.createElement("span",{className:"header-cmd"},"Cmd")),V.a.createElement("ul",{className:"top-links"},V.a.createElement("li",null,V.a.createElement("a",{href:"https://github.com/BorisLevitskiy/BitwiseCmd"},V.a.createElement("i",{className:"icon github"},"\xa0"),V.a.createElement("span",{className:"link-text"},"Project on GitHub"))),V.a.createElement("li",null,V.a.createElement("a",{href:"https://twitter.com/BitwiseCmd"},V.a.createElement("i",{className:"icon twitter"},"\xa0"),V.a.createElement("span",{className:"link-text"},"Twitter"))),V.a.createElement("li",null,V.a.createElement("a",{href:"mailto:bitwisecmd@gmail.com?subject=Feedback"},V.a.createElement("i",{className:"icon feedback"},"\xa0"),V.a.createElement("span",{className:"link-text"},"Send Feedback"))))),V.a.createElement("div",{className:"expressionInput-container"},V.a.createElement(J,{onCommandEntered:function(e){return m.execute(e)}}),V.a.createElement("span",{className:"configPnl"},V.a.createElement("span",{id:"emphasizeBytes","data-cmd":"em",className:"indicator "+this.getIndicator(this.state.emphasizeBytes),title:"Toggle Emphasize Bytes",onClick:function(t){return e.toggleEmphasizeBytes()}},"[em]"))),V.a.createElement("div",{id:"output"},this.getResultViews()))}}]),t}(V.a.Component),ie={encodeHash:function(e){return encodeURI(e.trim().replace(/\s/g,","))},decodeHash:function(e){return decodeURI(e).replace(/^\#/,"").replace(/,/g," ")},getArgs:function(e){var t=this.decodeHash(e),n=[];return function(e){var t=[];e.indexOf("||")?e.split("||").forEach(function(e){e.length>0&&t.push(e)}):t.push(e);return t}(t).forEach(function(e){n.push(e)}),n}};var re,se=n(11),le=n.n(se),oe=(n(23),"bitwisecmd.com"===window.location.host?"prod":"stage");"prod"!=(re=oe)?(s.a.setLevel("debug"),s.a.debug("Log level is set to debug. Env: ".concat(re))):s.a.setLevel("warn");var ce=function(e){var t=c.getPersistedData(),n=new o(t,e);return c.watch(n),s.a.debug("appState initialized",n),n}(oe);T(m,ce),function(){var e=ie.getArgs(window.location.hash),t=["help","127.0.0.1 192.168.0.0/8","1|2&6","4 0b1000000 0x80"];ce.wasOldVersion&&(t=["whatsnew"]);e.length>0&&(t=e);t.forEach(m.execute.bind(m))}();var ue=V.a.createElement(ae,{appState:ce});le.a.render(ue,document.getElementById("root")),s.a.debug("started")}],[[12,1,2]]]);
|
|
//# sourceMappingURL=main.6d005cad.chunk.js.map
|