UNPKG

gravit-api

Version:

JS API implementation for GravitLauncher

2 lines 3.81 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.GravitApi=t():e.GravitApi=t()}(window,(function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=1)}([function(e,t){var o;o=function(){return this}();try{o=o||new Function("return this")()}catch(e){"object"==typeof window&&(o=window)}e.exports=o},function(e,t,o){const n=o(2),r=o(3);e.exports=class{constructor(){this.requestMap=new Map}connect(e){return new Promise((t,o)=>{this.socket=new n(e),this.socket.onopen=()=>{this.onOpen(),t(this)},this.socket.onerror=e=>{this.onError(),o(e)},this.socket.onclose=this.onClose,this.socket.onmessage=this.onMessage,this.socket.GravitApi=this})}close(){this.socket.close()}send(e,t={}){return new Promise((o,n)=>{"string"==typeof e&&""!==e||n({type:"error",error:"Invalid request type"}),t.type=e,t.requestUUID=this.getUUIDv4(),this.requestMap.set(t.requestUUID,e=>{["error","exception"].includes(e.type)?n(e):o(e)}),this.socket.send(JSON.stringify(t))})}getUUIDv4(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^r(new Uint8Array(1))[0]&15>>e/4).toString(16))}onOpen(){console.log("Connection established")}onClose(e){if(e.wasClean)return console.log("Connection closed");1006===e.code?console.error("Connection break"):(console.error("Unknown error"),console.dir(e))}onMessage(e){const t=JSON.parse(e.data),o=this.GravitApi.requestMap;t.requestUUID&&o.has(t.requestUUID)?(o.get(t.requestUUID)(t),o.delete(t.requestUUID)):"error"===t.type?console.error(t.error):(console.error("Unknown message"),console.dir(e))}onError(){console.error("Connection error")}}},function(e,t,o){(function(t){var o=null;"undefined"!=typeof WebSocket?o=WebSocket:"undefined"!=typeof MozWebSocket?o=MozWebSocket:void 0!==t?o=t.WebSocket||t.MozWebSocket:"undefined"!=typeof window?o=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(o=self.WebSocket||self.MozWebSocket),e.exports=o}).call(this,o(0))},function(e,t,o){var n=o(4),r=o(5);e.exports=function(e){if(n.crypto&&n.crypto.getRandomValues)return n.crypto.getRandomValues(e);if("object"==typeof n.msCrypto&&"function"==typeof n.msCrypto.getRandomValues)return n.msCrypto.getRandomValues(e);if(r.randomBytes){if(!(e instanceof Uint8Array))throw new TypeError("expected Uint8Array");if(e.length>65536){var t=new Error;throw t.code=22,t.message="Failed to execute 'getRandomValues' on 'Crypto': The ArrayBufferView's byte length ("+e.length+") exceeds the number of bytes of entropy available via this API (65536).",t.name="QuotaExceededError",t}var o=r.randomBytes(e.length);return e.set(o),e}throw new Error("No secure random number generator available.")}},function(e,t,o){(function(t){var o;o="undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{},e.exports=o}).call(this,o(0))},function(e,t){}])})); //# sourceMappingURL=gravit-api.min.js.map