* feat: support close in bridge mode
* feat: WailsShutdown callback
Now handles proper shutdown through:
* runtime.Window.Close()
* Killing the main window
* Ctrl-C
!function(n){vare={};functiont(r){if(e[r])returne[r].exports;varo=e[r]={i:r,l:!1,exports:{}};returnn[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,r){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:r})},t.r=function(n){"undefined"!=typeofSymbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)returnn;if(4&e&&"object"==typeofn&&n&&n.__esModule)returnn;varr=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeofn)for(varoinn)t.d(r,o,function(e){returnn[e]}.bind(null,o));returnr},t.n=function(n){vare=n&&n.__esModule?function(){returnn.default}:function(){returnn};returnt.d(e,"a",e),e},t.o=function(n,e){returnObject.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){"use strict";t.r(e);varr={};t.r(r),t.d(r,"Debug",function(){returnc}),t.d(r,"Info",function(){returnu}),t.d(r,"Warning",function(){returnl}),t.d(r,"Error",function(){returnf}),t.d(r,"Fatal",function(){returnd});varo={};functioni(n,e,t){varr={type:n,callbackID:t,payload:e};!function(n){window.wailsbridge?window.wailsbridge.websocket.send(n):window.external.invoke(n)}(JSON.stringify(r))}functiona(n,e){i("log",{level:n,message:e})}functionc(n){a("debug",n)}functionu(n){a("info",n)}functionl(n){a("warning",n)}functionf(n){a("error",n)}functiond(n){a("fatal",n)}t.r(o),t.d(o,"OpenURL",function(){returny}),t.d(o,"OpenFile",function(){returng});vars,p={};functionw(n,e,t){returnnull!=t&&null!=t||(t=0),newPromise(function(r,o){vara;do{a=n+"-"+s()}while(p[a]);if(t>0)varc=setTimeout(function(){o(Error("Call to "+n+" timed out. Request ID: "+a))},t);p[a]={timeoutHandle:c,reject:o,resolve:r};try{i("call",{bindingName:n,data:JSON.stringify(e)},a)}catch(n){console.error(n)}})}functionv(n,e){returnw(".wails."+n,e)}functiony(n){returnv("Browser.OpenURL",n)}functiong(n){returnv("Browser.OpenFile",n)}s=window.crypto?function(){varn=newUint32Array(1);returnwindow.crypto.getRandomValues(n)[0]}:function(){return9007199254740991*Math.random()};varb=functionn(e,t){!function(n,e){if(!(ninstanceofe))thrownewTypeError("Cannot call a class as a function")}(this,n),t=t||-1,this.Callback=function(n){returne.apply(null,n),-1!==t&&0===(t-=1)}},m={};functionh(n,e,t){m[n]=m[n]||[];varr=newb(e,t);m[n].push(r)}functionO(n){i("event",{name:n,data:JSON.stringify([].slice.apply(arguments).slice(1))})}varS={};functionk(n){try{returnnewFunction("var "+n),!0}catch(n){return!1}}functionj(){return(j=Object.assign||function(n){for(vare=1;e<arguments.length;e++){vart=arguments[e];for(varrint)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}returnn}).apply(this,arguments)}window.backend={},t.d(e,"Init",function(){returnN}),window.wails=window.wails||{},window.backend={};varE={NewBinding:function(n){vare=[].concat(n.split(".").splice(1)),t=window.backend;if(e.length>1)for(varr=0;r<e.length-1;r+=1){varo=e[r];if(!k(o))returnnewError("".concat(o," is not a valid javascript identifier."));t[o]||(t[o]={}),t=t[o]}vari=e.pop();if(!k(i))returnnewError("".concat(i," is not a valid javascript identifier."));t[i]=function(){vare=0;functiont(){vart=[].slice.call(arguments);returnw(n,t,e)}returnt.setTimeout=function(n){e=n},t.getTimeout=function(){returne},t}()},Callback:function(n){vare;n=decodeURIComponent(n.replace(/\s+/g,"").replace(/[0-9a-f]{2}/g,"%$&"));try{e=JSON.parse(n)}catch(e){vart="Invalid JSON passed to callback: ".concat(e.message,". Message: ").concat(n);throwc(t),newError(t)}varr=e.callbackid,o=p[r];if(!o){vari="Callback '".concat(r,"' not registed!!!");throwconsole.error(i),newError(i)}clearTimeout(o.timeoutHandle),deletep[r],e.error?o.reject(e.error):o.resolve(e.data)},Notify:function(n,e){if(m[n]){for(vart=m[n].slice(),r=0;r<m[n].length;r+=1){varo=m[n][r],i=[];if(e)try{i=JSON.parse(e)}catch(e){f("Invalid JSON data sent to notify. Event name = "+n)}o.Callback(i)&&t.splice(r,1)}m[n]=t}},AddScript:function(n,e){vart=document.createElement("script");t.text=n,document.body.appendChild(t),e&&O(e)},InjectCSS:function(n){vare=document.createElement("style");e.setAttribute("type","text/css"),e.styleSheet?e.styleSheet.cssText=n:e.appendChild(document.createTextNode(n)),(document.head||document.getElementsByTagName("head")[0]).appendChild(e)},Init:N},C={Log:r,Browser:o,Events:{On:function(n,e){h(n,e)},OnMultiple:h,Emit:O,Heartbeat:function(n,e,t){varr=null;S[n]=function(){clearInterval(r),t()},r=setInterval(function(){O(n)},e)},Acknowledge:function(n){if(!S[n])thrownewf("Cannot acknowledge unknown heartbeat '".concat(n,"'"));S[n]()}},_:E};functionN(n){n()}j(window.wails,C),O("wails:loaded")}]);
!function(n){vart={};functione(r){if(t[r])returnt[r].exports;varo=t[r]={i:r,l:!1,exports:{}};returnn[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:r})},e.r=function(n){"undefined"!=typeofSymbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)returnn;if(4&t&&"object"==typeofn&&n&&n.__esModule)returnn;varr=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeofn)for(varoinn)e.d(r,o,function(t){returnn[t]}.bind(null,o));returnr},e.n=function(n){vart=n&&n.__esModule?function(){returnn.default}:function(){returnn};returne.d(t,"a",t),t},e.o=function(n,t){returnObject.prototype.hasOwnProperty.call(n,t)},e.p="",e(e.s=0)}([function(n,t,e){"use strict";e.r(t);varr={};e.r(r),e.d(r,"Debug",function(){returnc}),e.d(r,"Info",function(){returnu}),e.d(r,"Warning",function(){returnl}),e.d(r,"Error",function(){returnf}),e.d(r,"Fatal",function(){returnd});varo={};functioni(n,t,e){varr={type:n,callbackID:e,payload:t};!function(n){window.external.invoke(n)}(JSON.stringify(r))}functiona(n,t){i("log",{level:n,message:t})}functionc(n){a("debug",n)}functionu(n){a("info",n)}functionl(n){a("warning",n)}functionf(n){a("error",n)}functiond(n){a("fatal",n)}e.r(o),e.d(o,"OpenURL",function(){returny}),e.d(o,"OpenFile",function(){returng});vars,p={};functionv(n,t,e){returnnull!=e&&null!=e||(e=0),newPromise(function(r,o){vara;do{a=n+"-"+s()}while(p[a]);if(e>0)varc=setTimeout(function(){o(Error("Call to "+n+" timed out. Request ID: "+a))},e);p[a]={timeoutHandle:c,reject:o,resolve:r};try{i("call",{bindingName:n,data:JSON.stringify(t)},a)}catch(n){console.error(n)}})}functionw(n,t){returnv(".wails."+n,t)}functiony(n){returnw("Browser.OpenURL",n)}functiong(n){returnw("Browser.OpenFile",n)}s=window.crypto?function(){varn=newUint32Array(1);returnwindow.crypto.getRandomValues(n)[0]}:function(){return9007199254740991*Math.random()};varm=functionn(t,e){!function(n,t){if(!(ninstanceoft))thrownewTypeError("Cannot call a class as a function")}(this,n),e=e||-1,this.Callback=function(n){returnt.apply(null,n),-1!==e&&0===(e-=1)}},b={};functionh(n,t,e){b[n]=b[n]||[];varr=newm(t,e);b[n].push(r)}functionO(n){i("event",{name:n,data:JSON.stringify([].slice.apply(arguments).slice(1))})}varS={};functionj(n){try{returnnewFunction("var "+n),!0}catch(n){return!1}}functionk(){return(k=Object.assign||function(n){for(vart=1;t<arguments.length;t++){vare=arguments[t];for(varrine)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])}returnn}).apply(this,arguments)}window.backend={},e.d(t,"Init",function(){returnN}),window.wails=window.wails||{},window.backend={};varE={NewBinding:function(n){vart=[].concat(n.split(".").splice(1)),e=window.backend;if(t.length>1)for(varr=0;r<t.length-1;r+=1){varo=t[r];if(!j(o))returnnewError("".concat(o," is not a valid javascript identifier."));e[o]||(e[o]={}),e=e[o]}vari=t.pop();if(!j(i))returnnewError("".concat(i," is not a valid javascript identifier."));e[i]=function(){vart=0;functione(){vare=[].slice.call(arguments);returnv(n,e,t)}returne.setTimeout=function(n){t=n},e.getTimeout=function(){returnt},e}()},Callback:function(n){vart;n=decodeURIComponent(n.replace(/\s+/g,"").replace(/[0-9a-f]{2}/g,"%$&"));try{t=JSON.parse(n)}catch(t){vare="Invalid JSON passed to callback: ".concat(t.message,". Message: ").concat(n);throwc(e),newError(e)}varr=t.callbackid,o=p[r];if(!o){vari="Callback '".concat(r,"' not registed!!!");throwconsole.error(i),newError(i)}clearTimeout(o.timeoutHandle),deletep[r],t.error?o.reject(t.error):o.resolve(t.data)},Notify:function(n,t){if(b[n]){for(vare=b[n].slice(),r=0;r<b[n].length;r+=1){varo=b[n][r],i=[];if(t)try{i=JSON.parse(t)}catch(t){f("Invalid JSON data sent to notify. Event name = "+n)}o.Callback(i)&&e.splice(r,1)}b[n]=e}},AddScript:function(n,t){vare=document.createElement("script");e.text=n,document.body.appendChild(e),t&&O(t)},InjectCSS:function(n){vart=document.createElement("style");t.setAttribute("type","text/css"),t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n)),(document.head||document.getElementsByTagName("head")[0]).appendChild(t)},Init:N},C={Log:r,Browser:o,Events:{On:function(n,t){h(n,t)},OnMultiple:h,Emit:O,Heartbeat:function(n,t,e){varr=null;S[n]=function(){clearInterval(r),e()},r=setInterval(function(){O(n)},t)},Acknowledge:function(n){if(!S[n])thrownewf("Cannot acknowledge unknown heartbeat '".concat(n,"'"));S[n]()}},_:E};functionN(n){n()}k(window.wails,C),O("wails:loaded")}]);
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.