asai-nodejs-host 0.2.35 → 0.2.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +1 -1
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1 +1 @@
1
- (()=>{var __webpack_modules__={1354:(e,t,r)=>{"use strict";const n=r(6412);const s=r(1335);const o=r(4376);const i=r(893);const a=r(7389);const c=r(3332);const l=r(6681);const u=r(129);l.createWebSocketStream=n;l.extension=s;l.PerMessageDeflate=o;l.Receiver=i;l.Sender=a;l.Server=u;l.subprotocol=c;l.WebSocket=l;l.WebSocketServer=u;e.exports=l},5803:(e,t,r)=>{"use strict";const{EMPTY_BUFFER:n}=r(1791);const s=Buffer[Symbol.species];function concat(e,t){if(e.length===0)return n;if(e.length===1)return e[0];const r=Buffer.allocUnsafe(t);let o=0;for(let t=0;t<e.length;t++){const n=e[t];r.set(n,o);o+=n.length}if(o<t){return new s(r.buffer,r.byteOffset,o)}return r}function _mask(e,t,r,n,s){for(let o=0;o<s;o++){r[n+o]=e[o]^t[o&3]}}function _unmask(e,t){for(let r=0;r<e.length;r++){e[r]^=t[r&3]}}function toArrayBuffer(e){if(e.length===e.buffer.byteLength){return e.buffer}return e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}function toBuffer(e){toBuffer.readOnly=true;if(Buffer.isBuffer(e))return e;let t;if(e instanceof ArrayBuffer){t=new s(e)}else if(ArrayBuffer.isView(e)){t=new s(e.buffer,e.byteOffset,e.byteLength)}else{t=Buffer.from(e);toBuffer.readOnly=false}return t}e.exports={concat:concat,mask:_mask,toArrayBuffer:toArrayBuffer,toBuffer:toBuffer,unmask:_unmask};if(!process.env.WS_NO_BUFFER_UTIL){try{const t=r(8327);e.exports.mask=function(e,r,n,s,o){if(o<48)_mask(e,r,n,s,o);else t.mask(e,r,n,s,o)};e.exports.unmask=function(e,r){if(e.length<32)_unmask(e,r);else t.unmask(e,r)}}catch(e){}}},1791:e=>{"use strict";const t=["nodebuffer","arraybuffer","fragments"];const r=typeof Blob!=="undefined";if(r)t.push("blob");e.exports={BINARY_TYPES:t,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:r,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}},4634:(e,t,r)=>{"use strict";const{kForOnEventAttribute:n,kListener:s}=r(1791);const o=Symbol("kCode");const i=Symbol("kData");const a=Symbol("kError");const c=Symbol("kMessage");const l=Symbol("kReason");const u=Symbol("kTarget");const f=Symbol("kType");const d=Symbol("kWasClean");class Event{constructor(e){this[u]=null;this[f]=e}get target(){return this[u]}get type(){return this[f]}}Object.defineProperty(Event.prototype,"target",{enumerable:true});Object.defineProperty(Event.prototype,"type",{enumerable:true});class CloseEvent extends Event{constructor(e,t={}){super(e);this[o]=t.code===undefined?0:t.code;this[l]=t.reason===undefined?"":t.reason;this[d]=t.wasClean===undefined?false:t.wasClean}get code(){return this[o]}get reason(){return this[l]}get wasClean(){return this[d]}}Object.defineProperty(CloseEvent.prototype,"code",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"reason",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"wasClean",{enumerable:true});class ErrorEvent extends Event{constructor(e,t={}){super(e);this[a]=t.error===undefined?null:t.error;this[c]=t.message===undefined?"":t.message}get error(){return this[a]}get message(){return this[c]}}Object.defineProperty(ErrorEvent.prototype,"error",{enumerable:true});Object.defineProperty(ErrorEvent.prototype,"message",{enumerable:true});class MessageEvent extends Event{constructor(e,t={}){super(e);this[i]=t.data===undefined?null:t.data}get data(){return this[i]}}Object.defineProperty(MessageEvent.prototype,"data",{enumerable:true});const h={addEventListener(e,t,r={}){for(const o of this.listeners(e)){if(!r[n]&&o[s]===t&&!o[n]){return}}let o;if(e==="message"){o=function onMessage(e,r){const n=new MessageEvent("message",{data:r?e:e.toString()});n[u]=this;callListener(t,this,n)}}else if(e==="close"){o=function onClose(e,r){const n=new CloseEvent("close",{code:e,reason:r.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});n[u]=this;callListener(t,this,n)}}else if(e==="error"){o=function onError(e){const r=new ErrorEvent("error",{error:e,message:e.message});r[u]=this;callListener(t,this,r)}}else if(e==="open"){o=function onOpen(){const e=new Event("open");e[u]=this;callListener(t,this,e)}}else{return}o[n]=!!r[n];o[s]=t;if(r.once){this.once(e,o)}else{this.on(e,o)}},removeEventListener(e,t){for(const r of this.listeners(e)){if(r[s]===t&&!r[n]){this.removeListener(e,r);break}}}};e.exports={CloseEvent:CloseEvent,ErrorEvent:ErrorEvent,Event:Event,EventTarget:h,MessageEvent:MessageEvent};function callListener(e,t,r){if(typeof e==="object"&&e.handleEvent){e.handleEvent.call(e,r)}else{e.call(t,r)}}},1335:(e,t,r)=>{"use strict";const{tokenChars:n}=r(6615);function push(e,t,r){if(e[t]===undefined)e[t]=[r];else e[t].push(r)}function parse(e){const t=Object.create(null);let r=Object.create(null);let s=false;let o=false;let i=false;let a;let c;let l=-1;let u=-1;let f=-1;let d=0;for(;d<e.length;d++){u=e.charCodeAt(d);if(a===undefined){if(f===-1&&n[u]===1){if(l===-1)l=d}else if(d!==0&&(u===32||u===9)){if(f===-1&&l!==-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;const n=e.slice(l,f);if(u===44){push(t,n,r);r=Object.create(null)}else{a=n}l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else if(c===undefined){if(f===-1&&n[u]===1){if(l===-1)l=d}else if(u===32||u===9){if(f===-1&&l!==-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;push(r,e.slice(l,f),true);if(u===44){push(t,a,r);r=Object.create(null);a=undefined}l=f=-1}else if(u===61&&l!==-1&&f===-1){c=e.slice(l,d);l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else{if(o){if(n[u]!==1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(l===-1)l=d;else if(!s)s=true;o=false}else if(i){if(n[u]===1){if(l===-1)l=d}else if(u===34&&l!==-1){i=false;f=d}else if(u===92){o=true}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else if(u===34&&e.charCodeAt(d-1)===61){i=true}else if(f===-1&&n[u]===1){if(l===-1)l=d}else if(l!==-1&&(u===32||u===9)){if(f===-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;let n=e.slice(l,f);if(s){n=n.replace(/\\/g,"");s=false}push(r,c,n);if(u===44){push(t,a,r);r=Object.create(null);a=undefined}c=undefined;l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}}if(l===-1||i||u===32||u===9){throw new SyntaxError("Unexpected end of input")}if(f===-1)f=d;const h=e.slice(l,f);if(a===undefined){push(t,h,r)}else{if(c===undefined){push(r,h,true)}else if(s){push(r,c,h.replace(/\\/g,""))}else{push(r,c,h)}push(t,a,r)}return t}function format(e){return Object.keys(e).map((t=>{let r=e[t];if(!Array.isArray(r))r=[r];return r.map((e=>[t].concat(Object.keys(e).map((t=>{let r=e[t];if(!Array.isArray(r))r=[r];return r.map((e=>e===true?t:`${t}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")}e.exports={format:format,parse:parse}},958:e=>{"use strict";const t=Symbol("kDone");const r=Symbol("kRun");class Limiter{constructor(e){this[t]=()=>{this.pending--;this[r]()};this.concurrency=e||Infinity;this.jobs=[];this.pending=0}add(e){this.jobs.push(e);this[r]()}[r](){if(this.pending===this.concurrency)return;if(this.jobs.length){const e=this.jobs.shift();this.pending++;e(this[t])}}}e.exports=Limiter},4376:(e,t,r)=>{"use strict";const n=r(3106);const s=r(5803);const o=r(958);const{kStatusCode:i}=r(1791);const a=Buffer[Symbol.species];const c=Buffer.from([0,0,255,255]);const l=Symbol("permessage-deflate");const u=Symbol("total-length");const f=Symbol("callback");const d=Symbol("buffers");const h=Symbol("error");let v;class PerMessageDeflate{constructor(e){this._options=e||{};this._threshold=this._options.threshold!==undefined?this._options.threshold:1024;this._maxPayload=this._options.maxPayload|0;this._isServer=!!this._options.isServer;this._deflate=null;this._inflate=null;this.params=null;if(!v){const e=this._options.concurrencyLimit!==undefined?this._options.concurrencyLimit:10;v=new o(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};if(this._options.serverNoContextTakeover){e.server_no_context_takeover=true}if(this._options.clientNoContextTakeover){e.client_no_context_takeover=true}if(this._options.serverMaxWindowBits){e.server_max_window_bits=this._options.serverMaxWindowBits}if(this._options.clientMaxWindowBits){e.client_max_window_bits=this._options.clientMaxWindowBits}else if(this._options.clientMaxWindowBits==null){e.client_max_window_bits=true}return e}accept(e){e=this.normalizeParams(e);this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e);return this.params}cleanup(){if(this._inflate){this._inflate.close();this._inflate=null}if(this._deflate){const e=this._deflate[f];this._deflate.close();this._deflate=null;if(e){e(new Error("The deflate stream was closed while data was being processed"))}}}acceptAsServer(e){const t=this._options;const r=e.find((e=>{if(t.serverNoContextTakeover===false&&e.server_no_context_takeover||e.server_max_window_bits&&(t.serverMaxWindowBits===false||typeof t.serverMaxWindowBits==="number"&&t.serverMaxWindowBits>e.server_max_window_bits)||typeof t.clientMaxWindowBits==="number"&&!e.client_max_window_bits){return false}return true}));if(!r){throw new Error("None of the extension offers can be accepted")}if(t.serverNoContextTakeover){r.server_no_context_takeover=true}if(t.clientNoContextTakeover){r.client_no_context_takeover=true}if(typeof t.serverMaxWindowBits==="number"){r.server_max_window_bits=t.serverMaxWindowBits}if(typeof t.clientMaxWindowBits==="number"){r.client_max_window_bits=t.clientMaxWindowBits}else if(r.client_max_window_bits===true||t.clientMaxWindowBits===false){delete r.client_max_window_bits}return r}acceptAsClient(e){const t=e[0];if(this._options.clientNoContextTakeover===false&&t.client_no_context_takeover){throw new Error('Unexpected parameter "client_no_context_takeover"')}if(!t.client_max_window_bits){if(typeof this._options.clientMaxWindowBits==="number"){t.client_max_window_bits=this._options.clientMaxWindowBits}}else if(this._options.clientMaxWindowBits===false||typeof this._options.clientMaxWindowBits==="number"&&t.client_max_window_bits>this._options.clientMaxWindowBits){throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}return t}normalizeParams(e){e.forEach((e=>{Object.keys(e).forEach((t=>{let r=e[t];if(r.length>1){throw new Error(`Parameter "${t}" must have only a single value`)}r=r[0];if(t==="client_max_window_bits"){if(r!==true){const e=+r;if(!Number.isInteger(e)||e<8||e>15){throw new TypeError(`Invalid value for parameter "${t}": ${r}`)}r=e}else if(!this._isServer){throw new TypeError(`Invalid value for parameter "${t}": ${r}`)}}else if(t==="server_max_window_bits"){const e=+r;if(!Number.isInteger(e)||e<8||e>15){throw new TypeError(`Invalid value for parameter "${t}": ${r}`)}r=e}else if(t==="client_no_context_takeover"||t==="server_no_context_takeover"){if(r!==true){throw new TypeError(`Invalid value for parameter "${t}": ${r}`)}}else{throw new Error(`Unknown parameter "${t}"`)}e[t]=r}))}));return e}decompress(e,t,r){v.add((n=>{this._decompress(e,t,((e,t)=>{n();r(e,t)}))}))}compress(e,t,r){v.add((n=>{this._compress(e,t,((e,t)=>{n();r(e,t)}))}))}_decompress(e,t,r){const o=this._isServer?"client":"server";if(!this._inflate){const e=`${o}_max_window_bits`;const t=typeof this.params[e]!=="number"?n.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=n.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t});this._inflate[l]=this;this._inflate[u]=0;this._inflate[d]=[];this._inflate.on("error",inflateOnError);this._inflate.on("data",inflateOnData)}this._inflate[f]=r;this._inflate.write(e);if(t)this._inflate.write(c);this._inflate.flush((()=>{const e=this._inflate[h];if(e){this._inflate.close();this._inflate=null;r(e);return}const n=s.concat(this._inflate[d],this._inflate[u]);if(this._inflate._readableState.endEmitted){this._inflate.close();this._inflate=null}else{this._inflate[u]=0;this._inflate[d]=[];if(t&&this.params[`${o}_no_context_takeover`]){this._inflate.reset()}}r(null,n)}))}_compress(e,t,r){const o=this._isServer?"server":"client";if(!this._deflate){const e=`${o}_max_window_bits`;const t=typeof this.params[e]!=="number"?n.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=n.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t});this._deflate[u]=0;this._deflate[d]=[];this._deflate.on("data",deflateOnData)}this._deflate[f]=r;this._deflate.write(e);this._deflate.flush(n.Z_SYNC_FLUSH,(()=>{if(!this._deflate){return}let e=s.concat(this._deflate[d],this._deflate[u]);if(t){e=new a(e.buffer,e.byteOffset,e.length-4)}this._deflate[f]=null;this._deflate[u]=0;this._deflate[d]=[];if(t&&this.params[`${o}_no_context_takeover`]){this._deflate.reset()}r(null,e)}))}}e.exports=PerMessageDeflate;function deflateOnData(e){this[d].push(e);this[u]+=e.length}function inflateOnData(e){this[u]+=e.length;if(this[l]._maxPayload<1||this[u]<=this[l]._maxPayload){this[d].push(e);return}this[h]=new RangeError("Max payload size exceeded");this[h].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH";this[h][i]=1009;this.removeListener("data",inflateOnData);this.reset()}function inflateOnError(e){this[l]._inflate=null;if(this[h]){this[f](this[h]);return}e[i]=1007;this[f](e)}},893:(e,t,r)=>{"use strict";const{Writable:n}=r(2203);const s=r(4376);const{BINARY_TYPES:o,EMPTY_BUFFER:i,kStatusCode:a,kWebSocket:c}=r(1791);const{concat:l,toArrayBuffer:u,unmask:f}=r(5803);const{isValidStatusCode:d,isValidUTF8:h}=r(6615);const v=Buffer[Symbol.species];const p=0;const g=1;const m=2;const y=3;const _=4;const b=5;const S=6;class Receiver extends n{constructor(e={}){super();this._allowSynchronousEvents=e.allowSynchronousEvents!==undefined?e.allowSynchronousEvents:true;this._binaryType=e.binaryType||o[0];this._extensions=e.extensions||{};this._isServer=!!e.isServer;this._maxPayload=e.maxPayload|0;this._skipUTF8Validation=!!e.skipUTF8Validation;this[c]=undefined;this._bufferedBytes=0;this._buffers=[];this._compressed=false;this._payloadLength=0;this._mask=undefined;this._fragmented=0;this._masked=false;this._fin=false;this._opcode=0;this._totalPayloadLength=0;this._messageLength=0;this._fragments=[];this._errored=false;this._loop=false;this._state=p}_write(e,t,r){if(this._opcode===8&&this._state==p)return r();this._bufferedBytes+=e.length;this._buffers.push(e);this.startLoop(r)}consume(e){this._bufferedBytes-=e;if(e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){const t=this._buffers[0];this._buffers[0]=new v(t.buffer,t.byteOffset+e,t.length-e);return new v(t.buffer,t.byteOffset,e)}const t=Buffer.allocUnsafe(e);do{const r=this._buffers[0];const n=t.length-e;if(e>=r.length){t.set(this._buffers.shift(),n)}else{t.set(new Uint8Array(r.buffer,r.byteOffset,e),n);this._buffers[0]=new v(r.buffer,r.byteOffset+e,r.length-e)}e-=r.length}while(e>0);return t}startLoop(e){this._loop=true;do{switch(this._state){case p:this.getInfo(e);break;case g:this.getPayloadLength16(e);break;case m:this.getPayloadLength64(e);break;case y:this.getMask();break;case _:this.getData(e);break;case b:case S:this._loop=false;return}}while(this._loop);if(!this._errored)e()}getInfo(e){if(this._bufferedBytes<2){this._loop=false;return}const t=this.consume(2);if((t[0]&48)!==0){const t=this.createError(RangeError,"RSV2 and RSV3 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(t);return}const r=(t[0]&64)===64;if(r&&!this._extensions[s.extensionName]){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}this._fin=(t[0]&128)===128;this._opcode=t[0]&15;this._payloadLength=t[1]&127;if(this._opcode===0){if(r){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(!this._fragmented){const t=this.createError(RangeError,"invalid opcode 0",true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){const t=this.createError(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin){const t=this.createError(RangeError,"FIN must be set",true,1002,"WS_ERR_EXPECTED_FIN");e(t);return}if(r){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){const t=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,true,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(t);return}}else{const t=this.createError(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}if(!this._fin&&!this._fragmented)this._fragmented=this._opcode;this._masked=(t[1]&128)===128;if(this._isServer){if(!this._masked){const t=this.createError(RangeError,"MASK must be set",true,1002,"WS_ERR_EXPECTED_MASK");e(t);return}}else if(this._masked){const t=this.createError(RangeError,"MASK must be clear",true,1002,"WS_ERR_UNEXPECTED_MASK");e(t);return}if(this._payloadLength===126)this._state=g;else if(this._payloadLength===127)this._state=m;else this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=false;return}this._payloadLength=this.consume(2).readUInt16BE(0);this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=false;return}const t=this.consume(8);const r=t.readUInt32BE(0);if(r>Math.pow(2,53-32)-1){const t=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",false,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(t);return}this._payloadLength=r*Math.pow(2,32)+t.readUInt32BE(4);this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8){this._totalPayloadLength+=this._payloadLength;if(this._totalPayloadLength>this._maxPayload&&this._maxPayload>0){const t=this.createError(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(t);return}}if(this._masked)this._state=y;else this._state=_}getMask(){if(this._bufferedBytes<4){this._loop=false;return}this._mask=this.consume(4);this._state=_}getData(e){let t=i;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=false;return}t=this.consume(this._payloadLength);if(this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0){f(t,this._mask)}}if(this._opcode>7){this.controlMessage(t,e);return}if(this._compressed){this._state=b;this.decompress(t,e);return}if(t.length){this._messageLength=this._totalPayloadLength;this._fragments.push(t)}this.dataMessage(e)}decompress(e,t){const r=this._extensions[s.extensionName];r.decompress(e,this._fin,((e,r)=>{if(e)return t(e);if(r.length){this._messageLength+=r.length;if(this._messageLength>this._maxPayload&&this._maxPayload>0){const e=this.createError(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(e);return}this._fragments.push(r)}this.dataMessage(t);if(this._state===p)this.startLoop(t)}))}dataMessage(e){if(!this._fin){this._state=p;return}const t=this._messageLength;const r=this._fragments;this._totalPayloadLength=0;this._messageLength=0;this._fragmented=0;this._fragments=[];if(this._opcode===2){let n;if(this._binaryType==="nodebuffer"){n=l(r,t)}else if(this._binaryType==="arraybuffer"){n=u(l(r,t))}else if(this._binaryType==="blob"){n=new Blob(r)}else{n=r}if(this._allowSynchronousEvents){this.emit("message",n,true);this._state=p}else{this._state=S;setImmediate((()=>{this.emit("message",n,true);this._state=p;this.startLoop(e)}))}}else{const n=l(r,t);if(!this._skipUTF8Validation&&!h(n)){const t=this.createError(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8");e(t);return}if(this._state===b||this._allowSynchronousEvents){this.emit("message",n,false);this._state=p}else{this._state=S;setImmediate((()=>{this.emit("message",n,false);this._state=p;this.startLoop(e)}))}}}controlMessage(e,t){if(this._opcode===8){if(e.length===0){this._loop=false;this.emit("conclude",1005,i);this.end()}else{const r=e.readUInt16BE(0);if(!d(r)){const e=this.createError(RangeError,`invalid status code ${r}`,true,1002,"WS_ERR_INVALID_CLOSE_CODE");t(e);return}const n=new v(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!h(n)){const e=this.createError(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8");t(e);return}this._loop=false;this.emit("conclude",r,n);this.end()}this._state=p;return}if(this._allowSynchronousEvents){this.emit(this._opcode===9?"ping":"pong",e);this._state=p}else{this._state=S;setImmediate((()=>{this.emit(this._opcode===9?"ping":"pong",e);this._state=p;this.startLoop(t)}))}}createError(e,t,r,n,s){this._loop=false;this._errored=true;const o=new e(r?`Invalid WebSocket frame: ${t}`:t);Error.captureStackTrace(o,this.createError);o.code=s;o[a]=n;return o}}e.exports=Receiver},7389:(e,t,r)=>{"use strict";const{Duplex:n}=r(2203);const{randomFillSync:s}=r(6982);const o=r(4376);const{EMPTY_BUFFER:i,kWebSocket:a,NOOP:c}=r(1791);const{isBlob:l,isValidStatusCode:u}=r(6615);const{mask:f,toBuffer:d}=r(5803);const h=Symbol("kByteLength");const v=Buffer.alloc(4);const p=8*1024;let g;let m=p;const y=0;const _=1;const b=2;class Sender{constructor(e,t,r){this._extensions=t||{};if(r){this._generateMask=r;this._maskBuffer=Buffer.alloc(4)}this._socket=e;this._firstFragment=true;this._compress=false;this._bufferedBytes=0;this._queue=[];this._state=y;this.onerror=c;this[a]=undefined}static frame(e,t){let r;let n=false;let o=2;let i=false;if(t.mask){r=t.maskBuffer||v;if(t.generateMask){t.generateMask(r)}else{if(m===p){if(g===undefined){g=Buffer.alloc(p)}s(g,0,p);m=0}r[0]=g[m++];r[1]=g[m++];r[2]=g[m++];r[3]=g[m++]}i=(r[0]|r[1]|r[2]|r[3])===0;o=6}let a;if(typeof e==="string"){if((!t.mask||i)&&t[h]!==undefined){a=t[h]}else{e=Buffer.from(e);a=e.length}}else{a=e.length;n=t.mask&&t.readOnly&&!i}let c=a;if(a>=65536){o+=8;c=127}else if(a>125){o+=2;c=126}const l=Buffer.allocUnsafe(n?a+o:o);l[0]=t.fin?t.opcode|128:t.opcode;if(t.rsv1)l[0]|=64;l[1]=c;if(c===126){l.writeUInt16BE(a,2)}else if(c===127){l[2]=l[3]=0;l.writeUIntBE(a,4,6)}if(!t.mask)return[l,e];l[1]|=128;l[o-4]=r[0];l[o-3]=r[1];l[o-2]=r[2];l[o-1]=r[3];if(i)return[l,e];if(n){f(e,r,l,o,a);return[l]}f(e,r,e,0,a);return[l,e]}close(e,t,r,n){let s;if(e===undefined){s=i}else if(typeof e!=="number"||!u(e)){throw new TypeError("First argument must be a valid error code number")}else if(t===undefined||!t.length){s=Buffer.allocUnsafe(2);s.writeUInt16BE(e,0)}else{const r=Buffer.byteLength(t);if(r>123){throw new RangeError("The message must not be greater than 123 bytes")}s=Buffer.allocUnsafe(2+r);s.writeUInt16BE(e,0);if(typeof t==="string"){s.write(t,2)}else{s.set(t,2)}}const o={[h]:s.length,fin:true,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:false,rsv1:false};if(this._state!==y){this.enqueue([this.dispatch,s,false,o,n])}else{this.sendFrame(Sender.frame(s,o),n)}}ping(e,t,r){let n;let s;if(typeof e==="string"){n=Buffer.byteLength(e);s=false}else if(l(e)){n=e.size;s=false}else{e=d(e);n=e.length;s=d.readOnly}if(n>125){throw new RangeError("The data size must not be greater than 125 bytes")}const o={[h]:n,fin:true,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:false};if(l(e)){if(this._state!==y){this.enqueue([this.getBlobData,e,false,o,r])}else{this.getBlobData(e,false,o,r)}}else if(this._state!==y){this.enqueue([this.dispatch,e,false,o,r])}else{this.sendFrame(Sender.frame(e,o),r)}}pong(e,t,r){let n;let s;if(typeof e==="string"){n=Buffer.byteLength(e);s=false}else if(l(e)){n=e.size;s=false}else{e=d(e);n=e.length;s=d.readOnly}if(n>125){throw new RangeError("The data size must not be greater than 125 bytes")}const o={[h]:n,fin:true,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:false};if(l(e)){if(this._state!==y){this.enqueue([this.getBlobData,e,false,o,r])}else{this.getBlobData(e,false,o,r)}}else if(this._state!==y){this.enqueue([this.dispatch,e,false,o,r])}else{this.sendFrame(Sender.frame(e,o),r)}}send(e,t,r){const n=this._extensions[o.extensionName];let s=t.binary?2:1;let i=t.compress;let a;let c;if(typeof e==="string"){a=Buffer.byteLength(e);c=false}else if(l(e)){a=e.size;c=false}else{e=d(e);a=e.length;c=d.readOnly}if(this._firstFragment){this._firstFragment=false;if(i&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]){i=a>=n._threshold}this._compress=i}else{i=false;s=0}if(t.fin)this._firstFragment=true;const u={[h]:a,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:i};if(l(e)){if(this._state!==y){this.enqueue([this.getBlobData,e,this._compress,u,r])}else{this.getBlobData(e,this._compress,u,r)}}else if(this._state!==y){this.enqueue([this.dispatch,e,this._compress,u,r])}else{this.dispatch(e,this._compress,u,r)}}getBlobData(e,t,r,n){this._bufferedBytes+=r[h];this._state=b;e.arrayBuffer().then((e=>{if(this._socket.destroyed){const e=new Error("The socket was closed while the blob was being read");process.nextTick(callCallbacks,this,e,n);return}this._bufferedBytes-=r[h];const s=d(e);if(!t){this._state=y;this.sendFrame(Sender.frame(s,r),n);this.dequeue()}else{this.dispatch(s,t,r,n)}})).catch((e=>{process.nextTick(onError,this,e,n)}))}dispatch(e,t,r,n){if(!t){this.sendFrame(Sender.frame(e,r),n);return}const s=this._extensions[o.extensionName];this._bufferedBytes+=r[h];this._state=_;s.compress(e,r.fin,((e,t)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");callCallbacks(this,e,n);return}this._bufferedBytes-=r[h];this._state=y;r.readOnly=false;this.sendFrame(Sender.frame(t,r),n);this.dequeue()}))}dequeue(){while(this._state===y&&this._queue.length){const e=this._queue.shift();this._bufferedBytes-=e[3][h];Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][h];this._queue.push(e)}sendFrame(e,t){if(e.length===2){this._socket.cork();this._socket.write(e[0]);this._socket.write(e[1],t);this._socket.uncork()}else{this._socket.write(e[0],t)}}}e.exports=Sender;function callCallbacks(e,t,r){if(typeof r==="function")r(t);for(let r=0;r<e._queue.length;r++){const n=e._queue[r];const s=n[n.length-1];if(typeof s==="function")s(t)}}function onError(e,t,r){callCallbacks(e,t,r);e.onerror(t)}},6412:(e,t,r)=>{"use strict";const n=r(6681);const{Duplex:s}=r(2203);function emitClose(e){e.emit("close")}function duplexOnEnd(){if(!this.destroyed&&this._writableState.finished){this.destroy()}}function duplexOnError(e){this.removeListener("error",duplexOnError);this.destroy();if(this.listenerCount("error")===0){this.emit("error",e)}}function createWebSocketStream(e,t){let r=true;const n=new s({...t,autoDestroy:false,emitClose:false,objectMode:false,writableObjectMode:false});e.on("message",(function message(t,r){const s=!r&&n._readableState.objectMode?t.toString():t;if(!n.push(s))e.pause()}));e.once("error",(function error(e){if(n.destroyed)return;r=false;n.destroy(e)}));e.once("close",(function close(){if(n.destroyed)return;n.push(null)}));n._destroy=function(t,s){if(e.readyState===e.CLOSED){s(t);process.nextTick(emitClose,n);return}let o=false;e.once("error",(function error(e){o=true;s(e)}));e.once("close",(function close(){if(!o)s(t);process.nextTick(emitClose,n)}));if(r)e.terminate()};n._final=function(t){if(e.readyState===e.CONNECTING){e.once("open",(function open(){n._final(t)}));return}if(e._socket===null)return;if(e._socket._writableState.finished){t();if(n._readableState.endEmitted)n.destroy()}else{e._socket.once("finish",(function finish(){t()}));e.close()}};n._read=function(){if(e.isPaused)e.resume()};n._write=function(t,r,s){if(e.readyState===e.CONNECTING){e.once("open",(function open(){n._write(t,r,s)}));return}e.send(t,s)};n.on("end",duplexOnEnd);n.on("error",duplexOnError);return n}e.exports=createWebSocketStream},3332:(e,t,r)=>{"use strict";const{tokenChars:n}=r(6615);function parse(e){const t=new Set;let r=-1;let s=-1;let o=0;for(o;o<e.length;o++){const i=e.charCodeAt(o);if(s===-1&&n[i]===1){if(r===-1)r=o}else if(o!==0&&(i===32||i===9)){if(s===-1&&r!==-1)s=o}else if(i===44){if(r===-1){throw new SyntaxError(`Unexpected character at index ${o}`)}if(s===-1)s=o;const n=e.slice(r,s);if(t.has(n)){throw new SyntaxError(`The "${n}" subprotocol is duplicated`)}t.add(n);r=s=-1}else{throw new SyntaxError(`Unexpected character at index ${o}`)}}if(r===-1||s!==-1){throw new SyntaxError("Unexpected end of input")}const i=e.slice(r,o);if(t.has(i)){throw new SyntaxError(`The "${i}" subprotocol is duplicated`)}t.add(i);return t}e.exports={parse:parse}},6615:(e,t,r)=>{"use strict";const{isUtf8:n}=r(181);const{hasBlob:s}=r(1791);const o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function isValidStatusCode(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function _isValidUTF8(e){const t=e.length;let r=0;while(r<t){if((e[r]&128)===0){r++}else if((e[r]&224)===192){if(r+1===t||(e[r+1]&192)!==128||(e[r]&254)===192){return false}r+=2}else if((e[r]&240)===224){if(r+2>=t||(e[r+1]&192)!==128||(e[r+2]&192)!==128||e[r]===224&&(e[r+1]&224)===128||e[r]===237&&(e[r+1]&224)===160){return false}r+=3}else if((e[r]&248)===240){if(r+3>=t||(e[r+1]&192)!==128||(e[r+2]&192)!==128||(e[r+3]&192)!==128||e[r]===240&&(e[r+1]&240)===128||e[r]===244&&e[r+1]>143||e[r]>244){return false}r+=4}else{return false}}return true}function isBlob(e){return s&&typeof e==="object"&&typeof e.arrayBuffer==="function"&&typeof e.type==="string"&&typeof e.stream==="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}e.exports={isBlob:isBlob,isValidStatusCode:isValidStatusCode,isValidUTF8:_isValidUTF8,tokenChars:o};if(n){e.exports.isValidUTF8=function(e){return e.length<24?_isValidUTF8(e):n(e)}}else if(!process.env.WS_NO_UTF_8_VALIDATE){try{const t=r(2414);e.exports.isValidUTF8=function(e){return e.length<32?_isValidUTF8(e):t(e)}}catch(e){}}},129:(e,t,r)=>{"use strict";const n=r(4434);const s=r(8611);const{Duplex:o}=r(2203);const{createHash:i}=r(6982);const a=r(1335);const c=r(4376);const l=r(3332);const u=r(6681);const{CLOSE_TIMEOUT:f,GUID:d,kWebSocket:h}=r(1791);const v=/^[+/0-9A-Za-z]{22}==$/;const p=0;const g=1;const m=2;class WebSocketServer extends n{constructor(e,t){super();e={allowSynchronousEvents:true,autoPong:true,maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:false,handleProtocols:null,clientTracking:true,closeTimeout:f,verifyClient:null,noServer:false,backlog:null,server:null,host:null,path:null,port:null,WebSocket:u,...e};if(e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer){throw new TypeError('One and only one of the "port", "server", or "noServer" options '+"must be specified")}if(e.port!=null){this._server=s.createServer(((e,t)=>{const r=s.STATUS_CODES[426];t.writeHead(426,{"Content-Length":r.length,"Content-Type":"text/plain"});t.end(r)}));this._server.listen(e.port,e.host,e.backlog,t)}else if(e.server){this._server=e.server}if(this._server){const e=this.emit.bind(this,"connection");this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,r,n)=>{this.handleUpgrade(t,r,n,e)}})}if(e.perMessageDeflate===true)e.perMessageDeflate={};if(e.clientTracking){this.clients=new Set;this._shouldEmitClose=false}this.options=e;this._state=p}address(){if(this.options.noServer){throw new Error('The server is operating in "noServer" mode')}if(!this._server)return null;return this._server.address()}close(e){if(this._state===m){if(e){this.once("close",(()=>{e(new Error("The server is not running"))}))}process.nextTick(emitClose,this);return}if(e)this.once("close",e);if(this._state===g)return;this._state=g;if(this.options.noServer||this.options.server){if(this._server){this._removeListeners();this._removeListeners=this._server=null}if(this.clients){if(!this.clients.size){process.nextTick(emitClose,this)}else{this._shouldEmitClose=true}}else{process.nextTick(emitClose,this)}}else{const e=this._server;this._removeListeners();this._removeListeners=this._server=null;e.close((()=>{emitClose(this)}))}}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?");const r=t!==-1?e.url.slice(0,t):e.url;if(r!==this.options.path)return false}return true}handleUpgrade(e,t,r,n){t.on("error",socketOnError);const s=e.headers["sec-websocket-key"];const o=e.headers.upgrade;const i=+e.headers["sec-websocket-version"];if(e.method!=="GET"){const r="Invalid HTTP method";abortHandshakeOrEmitwsClientError(this,e,t,405,r);return}if(o===undefined||o.toLowerCase()!=="websocket"){const r="Invalid Upgrade header";abortHandshakeOrEmitwsClientError(this,e,t,400,r);return}if(s===undefined||!v.test(s)){const r="Missing or invalid Sec-WebSocket-Key header";abortHandshakeOrEmitwsClientError(this,e,t,400,r);return}if(i!==13&&i!==8){const r="Missing or invalid Sec-WebSocket-Version header";abortHandshakeOrEmitwsClientError(this,e,t,400,r,{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){abortHandshake(t,400);return}const u=e.headers["sec-websocket-protocol"];let f=new Set;if(u!==undefined){try{f=l.parse(u)}catch(r){const n="Invalid Sec-WebSocket-Protocol header";abortHandshakeOrEmitwsClientError(this,e,t,400,n);return}}const d=e.headers["sec-websocket-extensions"];const h={};if(this.options.perMessageDeflate&&d!==undefined){const r=new c({...this.options.perMessageDeflate,isServer:true,maxPayload:this.options.maxPayload});try{const e=a.parse(d);if(e[c.extensionName]){r.accept(e[c.extensionName]);h[c.extensionName]=r}}catch(r){const n="Invalid or unacceptable Sec-WebSocket-Extensions header";abortHandshakeOrEmitwsClientError(this,e,t,400,n);return}}if(this.options.verifyClient){const o={origin:e.headers[`${i===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(o,((o,i,a,c)=>{if(!o){return abortHandshake(t,i||401,a,c)}this.completeUpgrade(h,s,f,e,t,r,n)}));return}if(!this.options.verifyClient(o))return abortHandshake(t,401)}this.completeUpgrade(h,s,f,e,t,r,n)}completeUpgrade(e,t,r,n,s,o,l){if(!s.readable||!s.writable)return s.destroy();if(s[h]){throw new Error("server.handleUpgrade() was called more than once with the same "+"socket, possibly due to a misconfiguration")}if(this._state>p)return abortHandshake(s,503);const u=i("sha1").update(t+d).digest("base64");const f=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${u}`];const v=new this.options.WebSocket(null,undefined,this.options);if(r.size){const e=this.options.handleProtocols?this.options.handleProtocols(r,n):r.values().next().value;if(e){f.push(`Sec-WebSocket-Protocol: ${e}`);v._protocol=e}}if(e[c.extensionName]){const t=e[c.extensionName].params;const r=a.format({[c.extensionName]:[t]});f.push(`Sec-WebSocket-Extensions: ${r}`);v._extensions=e}this.emit("headers",f,n);s.write(f.concat("\r\n").join("\r\n"));s.removeListener("error",socketOnError);v.setSocket(s,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation});if(this.clients){this.clients.add(v);v.on("close",(()=>{this.clients.delete(v);if(this._shouldEmitClose&&!this.clients.size){process.nextTick(emitClose,this)}}))}l(v,n)}}e.exports=WebSocketServer;function addListeners(e,t){for(const r of Object.keys(t))e.on(r,t[r]);return function removeListeners(){for(const r of Object.keys(t)){e.removeListener(r,t[r])}}}function emitClose(e){e._state=m;e.emit("close")}function socketOnError(){this.destroy()}function abortHandshake(e,t,r,n){r=r||s.STATUS_CODES[t];n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...n};e.once("finish",e.destroy);e.end(`HTTP/1.1 ${t} ${s.STATUS_CODES[t]}\r\n`+Object.keys(n).map((e=>`${e}: ${n[e]}`)).join("\r\n")+"\r\n\r\n"+r)}function abortHandshakeOrEmitwsClientError(e,t,r,n,s,o){if(e.listenerCount("wsClientError")){const n=new Error(s);Error.captureStackTrace(n,abortHandshakeOrEmitwsClientError);e.emit("wsClientError",n,r,t)}else{abortHandshake(r,n,s,o)}}},6681:(e,t,r)=>{"use strict";const n=r(4434);const s=r(5692);const o=r(8611);const i=r(9278);const a=r(4756);const{randomBytes:c,createHash:l}=r(6982);const{Duplex:u,Readable:f}=r(2203);const{URL:d}=r(7016);const h=r(4376);const v=r(893);const p=r(7389);const{isBlob:g}=r(6615);const{BINARY_TYPES:m,CLOSE_TIMEOUT:y,EMPTY_BUFFER:_,GUID:b,kForOnEventAttribute:S,kListener:w,kStatusCode:k,kWebSocket:E,NOOP:O}=r(1791);const{EventTarget:{addEventListener:T,removeEventListener:x}}=r(4634);const{format:C,parse:P}=r(1335);const{toBuffer:W}=r(5803);const H=Symbol("kAborted");const A=[8,13];const R=["CONNECTING","OPEN","CLOSING","CLOSED"];const I=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class WebSocket extends n{constructor(e,t,r){super();this._binaryType=m[0];this._closeCode=1006;this._closeFrameReceived=false;this._closeFrameSent=false;this._closeMessage=_;this._closeTimer=null;this._errorEmitted=false;this._extensions={};this._paused=false;this._protocol="";this._readyState=WebSocket.CONNECTING;this._receiver=null;this._sender=null;this._socket=null;if(e!==null){this._bufferedAmount=0;this._isServer=false;this._redirects=0;if(t===undefined){t=[]}else if(!Array.isArray(t)){if(typeof t==="object"&&t!==null){r=t;t=[]}else{t=[t]}}initAsClient(this,e,t,r)}else{this._autoPong=r.autoPong;this._closeTimeout=r.closeTimeout;this._isServer=true}}get binaryType(){return this._binaryType}set binaryType(e){if(!m.includes(e))return;this._binaryType=e;if(this._receiver)this._receiver._binaryType=e}get bufferedAmount(){if(!this._socket)return this._bufferedAmount;return this._socket._writableState.length+this._sender._bufferedBytes}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,r){const n=new v({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation});const s=new p(e,this._extensions,r.generateMask);this._receiver=n;this._sender=s;this._socket=e;n[E]=this;s[E]=this;e[E]=this;n.on("conclude",receiverOnConclude);n.on("drain",receiverOnDrain);n.on("error",receiverOnError);n.on("message",receiverOnMessage);n.on("ping",receiverOnPing);n.on("pong",receiverOnPong);s.onerror=senderOnError;if(e.setTimeout)e.setTimeout(0);if(e.setNoDelay)e.setNoDelay();if(t.length>0)e.unshift(t);e.on("close",socketOnClose);e.on("data",socketOnData);e.on("end",socketOnEnd);e.on("error",socketOnError);this._readyState=WebSocket.OPEN;this.emit("open")}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage);return}if(this._extensions[h.extensionName]){this._extensions[h.extensionName].cleanup()}this._receiver.removeAllListeners();this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";abortHandshake(this,this._req,e);return}if(this.readyState===WebSocket.CLOSING){if(this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)){this._socket.end()}return}this._readyState=WebSocket.CLOSING;this._sender.close(e,t,!this._isServer,(e=>{if(e)return;this._closeFrameSent=true;if(this._closeFrameReceived||this._receiver._writableState.errorEmitted){this._socket.end()}}));setCloseTimer(this)}pause(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED){return}this._paused=true;this._socket.pause()}ping(e,t,r){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof e==="function"){r=e;e=t=undefined}else if(typeof t==="function"){r=t;t=undefined}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,r);return}if(t===undefined)t=!this._isServer;this._sender.ping(e||_,t,r)}pong(e,t,r){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof e==="function"){r=e;e=t=undefined}else if(typeof t==="function"){r=t;t=undefined}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,r);return}if(t===undefined)t=!this._isServer;this._sender.pong(e||_,t,r)}resume(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED){return}this._paused=false;if(!this._receiver._writableState.needDrain)this._socket.resume()}send(e,t,r){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof t==="function"){r=t;t={}}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,r);return}const n={binary:typeof e!=="string",mask:!this._isServer,compress:true,fin:true,...t};if(!this._extensions[h.extensionName]){n.compress=false}this._sender.send(e||_,n,r)}terminate(){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";abortHandshake(this,this._req,e);return}if(this._socket){this._readyState=WebSocket.CLOSING;this._socket.destroy()}}}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:true,value:R.indexOf("CONNECTING")});Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:true,value:R.indexOf("CONNECTING")});Object.defineProperty(WebSocket,"OPEN",{enumerable:true,value:R.indexOf("OPEN")});Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:true,value:R.indexOf("OPEN")});Object.defineProperty(WebSocket,"CLOSING",{enumerable:true,value:R.indexOf("CLOSING")});Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:true,value:R.indexOf("CLOSING")});Object.defineProperty(WebSocket,"CLOSED",{enumerable:true,value:R.indexOf("CLOSED")});Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:true,value:R.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((e=>{Object.defineProperty(WebSocket.prototype,e,{enumerable:true})}));["open","error","close","message"].forEach((e=>{Object.defineProperty(WebSocket.prototype,`on${e}`,{enumerable:true,get(){for(const t of this.listeners(e)){if(t[S])return t[w]}return null},set(t){for(const t of this.listeners(e)){if(t[S]){this.removeListener(e,t);break}}if(typeof t!=="function")return;this.addEventListener(e,t,{[S]:true})}})}));WebSocket.prototype.addEventListener=T;WebSocket.prototype.removeEventListener=x;e.exports=WebSocket;function initAsClient(e,t,r,n){const i={allowSynchronousEvents:true,autoPong:true,closeTimeout:y,protocolVersion:A[1],maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:true,followRedirects:false,maxRedirects:10,...n,socketPath:undefined,hostname:undefined,protocol:undefined,timeout:undefined,method:"GET",host:undefined,path:undefined,port:undefined};e._autoPong=i.autoPong;e._closeTimeout=i.closeTimeout;if(!A.includes(i.protocolVersion)){throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} `+`(supported versions: ${A.join(", ")})`)}let a;if(t instanceof d){a=t}else{try{a=new d(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}}if(a.protocol==="http:"){a.protocol="ws:"}else if(a.protocol==="https:"){a.protocol="wss:"}e._url=a.href;const u=a.protocol==="wss:";const f=a.protocol==="ws+unix:";let v;if(a.protocol!=="ws:"&&!u&&!f){v='The URL\'s protocol must be one of "ws:", "wss:", '+'"http:", "https:", or "ws+unix:"'}else if(f&&!a.pathname){v="The URL's pathname is empty"}else if(a.hash){v="The URL contains a fragment identifier"}if(v){const t=new SyntaxError(v);if(e._redirects===0){throw t}else{emitErrorAndClose(e,t);return}}const p=u?443:80;const g=c(16).toString("base64");const m=u?s.request:o.request;const _=new Set;let S;i.createConnection=i.createConnection||(u?tlsConnect:netConnect);i.defaultPort=i.defaultPort||p;i.port=a.port||p;i.host=a.hostname.startsWith("[")?a.hostname.slice(1,-1):a.hostname;i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":g,Connection:"Upgrade",Upgrade:"websocket"};i.path=a.pathname+a.search;i.timeout=i.handshakeTimeout;if(i.perMessageDeflate){S=new h({...i.perMessageDeflate,isServer:false,maxPayload:i.maxPayload});i.headers["Sec-WebSocket-Extensions"]=C({[h.extensionName]:S.offer()})}if(r.length){for(const e of r){if(typeof e!=="string"||!I.test(e)||_.has(e)){throw new SyntaxError("An invalid or duplicated subprotocol was specified")}_.add(e)}i.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(i.origin){if(i.protocolVersion<13){i.headers["Sec-WebSocket-Origin"]=i.origin}else{i.headers.Origin=i.origin}}if(a.username||a.password){i.auth=`${a.username}:${a.password}`}if(f){const e=i.path.split(":");i.socketPath=e[0];i.path=e[1]}let w;if(i.followRedirects){if(e._redirects===0){e._originalIpc=f;e._originalSecure=u;e._originalHostOrSocketPath=f?i.socketPath:a.host;const t=n&&n.headers;n={...n,headers:{}};if(t){for(const[e,r]of Object.entries(t)){n.headers[e.toLowerCase()]=r}}}else if(e.listenerCount("redirect")===0){const t=f?e._originalIpc?i.socketPath===e._originalHostOrSocketPath:false:e._originalIpc?false:a.host===e._originalHostOrSocketPath;if(!t||e._originalSecure&&!u){delete i.headers.authorization;delete i.headers.cookie;if(!t)delete i.headers.host;i.auth=undefined}}if(i.auth&&!n.headers.authorization){n.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")}w=e._req=m(i);if(e._redirects){e.emit("redirect",e.url,w)}}else{w=e._req=m(i)}if(i.timeout){w.on("timeout",(()=>{abortHandshake(e,w,"Opening handshake has timed out")}))}w.on("error",(t=>{if(w===null||w[H])return;w=e._req=null;emitErrorAndClose(e,t)}));w.on("response",(s=>{const o=s.headers.location;const a=s.statusCode;if(o&&i.followRedirects&&a>=300&&a<400){if(++e._redirects>i.maxRedirects){abortHandshake(e,w,"Maximum redirects exceeded");return}w.abort();let s;try{s=new d(o,t)}catch(t){const r=new SyntaxError(`Invalid URL: ${o}`);emitErrorAndClose(e,r);return}initAsClient(e,s,r,n)}else if(!e.emit("unexpected-response",w,s)){abortHandshake(e,w,`Unexpected server response: ${s.statusCode}`)}}));w.on("upgrade",((t,r,n)=>{e.emit("upgrade",t);if(e.readyState!==WebSocket.CONNECTING)return;w=e._req=null;const s=t.headers.upgrade;if(s===undefined||s.toLowerCase()!=="websocket"){abortHandshake(e,r,"Invalid Upgrade header");return}const o=l("sha1").update(g+b).digest("base64");if(t.headers["sec-websocket-accept"]!==o){abortHandshake(e,r,"Invalid Sec-WebSocket-Accept header");return}const a=t.headers["sec-websocket-protocol"];let c;if(a!==undefined){if(!_.size){c="Server sent a subprotocol but none was requested"}else if(!_.has(a)){c="Server sent an invalid subprotocol"}}else if(_.size){c="Server sent no subprotocol"}if(c){abortHandshake(e,r,c);return}if(a)e._protocol=a;const u=t.headers["sec-websocket-extensions"];if(u!==undefined){if(!S){const t="Server sent a Sec-WebSocket-Extensions header but no extension "+"was requested";abortHandshake(e,r,t);return}let t;try{t=P(u)}catch(t){const n="Invalid Sec-WebSocket-Extensions header";abortHandshake(e,r,n);return}const n=Object.keys(t);if(n.length!==1||n[0]!==h.extensionName){const t="Server indicated an extension that was not requested";abortHandshake(e,r,t);return}try{S.accept(t[h.extensionName])}catch(t){const n="Invalid Sec-WebSocket-Extensions header";abortHandshake(e,r,n);return}e._extensions[h.extensionName]=S}e.setSocket(r,n,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}));if(i.finishRequest){i.finishRequest(w,e)}else{w.end()}}function emitErrorAndClose(e,t){e._readyState=WebSocket.CLOSING;e._errorEmitted=true;e.emit("error",t);e.emitClose()}function netConnect(e){e.path=e.socketPath;return i.connect(e)}function tlsConnect(e){e.path=undefined;if(!e.servername&&e.servername!==""){e.servername=i.isIP(e.host)?"":e.host}return a.connect(e)}function abortHandshake(e,t,r){e._readyState=WebSocket.CLOSING;const n=new Error(r);Error.captureStackTrace(n,abortHandshake);if(t.setHeader){t[H]=true;t.abort();if(t.socket&&!t.socket.destroyed){t.socket.destroy()}process.nextTick(emitErrorAndClose,e,n)}else{t.destroy(n);t.once("error",e.emit.bind(e,"error"));t.once("close",e.emitClose.bind(e))}}function sendAfterClose(e,t,r){if(t){const r=g(t)?t.size:W(t).length;if(e._socket)e._sender._bufferedBytes+=r;else e._bufferedAmount+=r}if(r){const t=new Error(`WebSocket is not open: readyState ${e.readyState} `+`(${R[e.readyState]})`);process.nextTick(r,t)}}function receiverOnConclude(e,t){const r=this[E];r._closeFrameReceived=true;r._closeMessage=t;r._closeCode=e;if(r._socket[E]===undefined)return;r._socket.removeListener("data",socketOnData);process.nextTick(resume,r._socket);if(e===1005)r.close();else r.close(e,t)}function receiverOnDrain(){const e=this[E];if(!e.isPaused)e._socket.resume()}function receiverOnError(e){const t=this[E];if(t._socket[E]!==undefined){t._socket.removeListener("data",socketOnData);process.nextTick(resume,t._socket);t.close(e[k])}if(!t._errorEmitted){t._errorEmitted=true;t.emit("error",e)}}function receiverOnFinish(){this[E].emitClose()}function receiverOnMessage(e,t){this[E].emit("message",e,t)}function receiverOnPing(e){const t=this[E];if(t._autoPong)t.pong(e,!this._isServer,O);t.emit("ping",e)}function receiverOnPong(e){this[E].emit("pong",e)}function resume(e){e.resume()}function senderOnError(e){const t=this[E];if(t.readyState===WebSocket.CLOSED)return;if(t.readyState===WebSocket.OPEN){t._readyState=WebSocket.CLOSING;setCloseTimer(t)}this._socket.end();if(!t._errorEmitted){t._errorEmitted=true;t.emit("error",e)}}function setCloseTimer(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function socketOnClose(){const e=this[E];this.removeListener("close",socketOnClose);this.removeListener("data",socketOnData);this.removeListener("end",socketOnEnd);e._readyState=WebSocket.CLOSING;if(!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){const t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end();this[E]=undefined;clearTimeout(e._closeTimer);if(e._receiver._writableState.finished||e._receiver._writableState.errorEmitted){e.emitClose()}else{e._receiver.on("error",receiverOnFinish);e._receiver.on("finish",receiverOnFinish)}}function socketOnData(e){if(!this[E]._receiver.write(e)){this.pause()}}function socketOnEnd(){const e=this[E];e._readyState=WebSocket.CLOSING;e._receiver.end();this.end()}function socketOnError(){const e=this[E];this.removeListener("error",socketOnError);this.on("error",O);if(e){e._readyState=WebSocket.CLOSING;this.destroy()}}},3135:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var n=r(2247);var s=r(141);var o=r(8938);var i=r(6258);t["default"]={ServerApi:n.default,ServerWs:s.default,ServerSys:o.default,WsClient:i.default}},2247:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=function(e,t){var r;if(t===void 0){t={}}(r=t===null||t===void 0?void 0:t.fn)===null||r===void 0?void 0:r.call(t,e);function getHeader(e,t){return e.headers[t.toLowerCase()]||""}var n=null;var s=-1;function findApiHandler(e,t){var r=e.hostserverapis;if(!(r===null||r===void 0?void 0:r.length))return undefined;if(!n||s!==r.length){n=r.map((function(e){return{key:e,path:"/api/".concat(e)}}));s=r.length}for(var o=0;o<n.length;o++){var i=n[o];if(t===i.path||t.startsWith(i.path)){return i.key}}return undefined}function sendError(e,t,r){e.writeHead(t,{"Content-Type":"application/json; charset=utf-8"});e.end(JSON.stringify({error:r}))}function apiWork(t,r,n){var s,o,i,a,c,l,u,f;var d;if(!e.hostconfig.oncors){d="*"}else{d=getHeader(t,"Origin");if(!d){var h=getHeader(t,"Referer").split("/");d=h[0]+"//"+h[2]}}var v=getHeader(t,"Host");var p=e.getHost(n);if(d&&(d==="*"||!((s=p===null||p===void 0?void 0:p.cors)===null||s===void 0?void 0:s.length)||((o=p===null||p===void 0?void 0:p.cors)===null||o===void 0?void 0:o.includes(d))||d.includes(v))){r.setHeader("Access-Control-Allow-Origin",d);r.setHeader("Access-Control-Allow-Methods","GET, POST, OPTIONS");r.setHeader("Access-Control-Allow-Headers","Content-Type,userinfo,authorization,x-file-name");if(t.method==="OPTIONS"){r.statusCode=204;return r.end()}var g="";var m=false;var y=void 0,_=void 0,b=void 0;y=new URL(t.url,"http://".concat(getHeader(t,"Host")));_=y.pathname;if(e.$lib.aesfns&&y.search.startsWith("?aes=")){m=true;y.search=e.$lib.aesfns.reqAES({data:JSON.parse(decodeURIComponent(y.search.substring(5)))})}if(y.search.startsWith("?pm=")){b={pm:decodeURIComponent(y.search.substring(4))};if(t.url.indexOf("binary")===-1){if((t===null||t===void 0?void 0:t.Userinfo)&&(t===null||t===void 0?void 0:t.Userinfo[2])&&(b===null||b===void 0?void 0:b.pm)){g=t.Userinfo[2];b=e.$lib.AsCode.asdecode(b===null||b===void 0?void 0:b.pm,g);b=Object.fromEntries(new URLSearchParams("?"+b).entries())}}}else{b=Object.fromEntries(new URLSearchParams(y.search).entries())}var S=findApiHandler(e,_);if(!S){return sendError(r,404,"Not Found")}var w=(a=(i=e.hostserverapi)[S])===null||a===void 0?void 0:a.call(i,e,b);if(!w){return sendError(r,501,"Not Implemented")}r.setHeader("Content-Type","application/json; charset=utf-8");e.$log("API",t.method,y.pathname,b);var k;var E;if(t.url.indexOf("binary")===-1){E="";k=b;if(t.method==="POST"){var O=[];var T=((c=e.hostconfig)===null||c===void 0?void 0:c.maxbody)||100*1024*1024;var x=0;var C=false;t.on("data",(function(e){if(C)return;x+=e.length;if(x>T){C=true;sendError(r,413,"Payload Too Large");t.destroy();return}O.push(e)}));t.on("end",(function(){var s,o,i;if(C)return;E=Buffer.concat(O).toString();m=e.$lib.aesfns&&((s=E===null||E===void 0?void 0:E.startsWith)===null||s===void 0?void 0:s.call(E,'{"aes":'));if(m){var a=JSON.parse(E);E=e.$lib.aesfns.reqAES({data:a});if((a===null||a===void 0?void 0:a.aes)===2){try{E=JSON.parse(E)}catch(e){}}}if((t===null||t===void 0?void 0:t.Userinfo)&&(t===null||t===void 0?void 0:t.Userinfo[2])){g=t.Userinfo[2];E=e.$lib.AsCode.asdecode(E,g)}if((w===null||w===void 0?void 0:w.post)&&typeof(w===null||w===void 0?void 0:w.post)==="function"){var c={qrdata:k,data:E,pm:g};if(m||((o=e.$lib.aesfns)===null||o===void 0?void 0:o.allaes)){c.resAES=(i=e.$lib.aesfns)===null||i===void 0?void 0:i.resAES}w.post(t,r,n,c)}else{r.end(E)}}))}else if(t.method==="GET"){if((w===null||w===void 0?void 0:w.get)&&typeof(w===null||w===void 0?void 0:w.get)==="function"){var P={qrdata:k,data:k,pm:g};if(m||((l=e.$lib.aesfns)===null||l===void 0?void 0:l.allaes)){P.resAES=(u=e.$lib.aesfns)===null||u===void 0?void 0:u.resAES}w.get(t,r,n,P)}else{r.end(JSON.stringify(k))}}}else{if((f=Object.keys(b))===null||f===void 0?void 0:f.length){k=b}if(t.method==="POST"){e.$lib.AsNodeTool.upBinary(t).then((function(e){if((w===null||w===void 0?void 0:w.post)&&typeof(w===null||w===void 0?void 0:w.post)==="function"){w.post(t,r,n,{qrdata:k,data:e})}else{r.end(e)}})).catch((function(e){return sendError(r,400,"Invalid content type")}))}}}else{e.$log("API",t.method,t.url)}}return{apiWork:apiWork}}},8938:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=function(e,t){var r;if(t===void 0){t={}}(r=t===null||t===void 0?void 0:t.fn)===null||r===void 0?void 0:r.call(t,e);var n=null;var s=-1;function findSystemHandler(t){var r=e.hostserversyss;if(!(r===null||r===void 0?void 0:r.length))return undefined;if(!n||s!==r.length){n=r.map((function(e){return{key:e,route:"/".concat(e)}}));s=r.length}var o=t.url||"";for(var i=0;i<n.length;i++){var a=n[i];if(o.startsWith(a.route)&&e.hostserversys[a.key]){return a.key}}return undefined}var sendError=function(e,t,r){e.writeHead(t,{"Content-Type":"application/json; charset=utf-8"});e.end(JSON.stringify({error:r}))};function sysWork(t,r,n){var s,o;var i=findSystemHandler(t);if(!i){return sendError(r,404,"Not Found")}var a=(o=(s=e.hostserversys)[i])===null||o===void 0?void 0:o.call(s,e);if(!a){return sendError(r,500,"Handler Initialization Failed")}if((a===null||a===void 0?void 0:a.show)&&typeof(a===null||a===void 0?void 0:a.show)==="function"){a.show(t,r,n)}else{r.end("postdata")}if(!a){r.writeHead(404,{"Content-Type":"application/json; charset=utf-8"});r.end(t.url)}else{}}return{sysWork:sysWork}}},141:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var n=r(3817);t["default"]=function(e,t){var r;if(t===void 0){t={}}(r=t===null||t===void 0?void 0:t.fn)===null||r===void 0?void 0:r.call(t,e);var s=new Map;var o=(0,n.ensureWsRouteIndex)(e);function getWsHandler(t){var r,n;if(!s.has(t)){s.set(t,(n=(r=e.hostserverws)[t])===null||n===void 0?void 0:n.call(r,e))}return s.get(t)}function parseMessage(e){if(Buffer.isBuffer(e)){e=e.toString()}if(e==="ping"){}else if(typeof e==="string"){try{e=JSON.parse(e)}catch(e){}}return _getMessage(e)}function wsWork(t,r,n,s){var i,a,c,l,u,f;try{var d=parseMessage(t);var h=void 0;if(d==="ping"){(i=r.send)===null||i===void 0?void 0:i.call(r,"pong");return}else{var v=typeof d==="object"&&d!==null;h=v?o.matchTy(d===null||d===void 0?void 0:d.ty):o.matchString(d);if(!h&&((a=e.hostserverwss)===null||a===void 0?void 0:a.length)){h=e.hostserverwss.find((function(e){var t;if(v){return(t=d===null||d===void 0?void 0:d.ty)===null||t===void 0?void 0:t.startsWith(e)}return typeof d==="string"&&d.startsWith(e)}))}if(!h){(c=e.asaimock)===null||c===void 0?void 0:c.wsWorkMock({msg:t,ws:r,hostdir:n,req:s,reqdataisobj:v,reqdata:d});return}}(u=(l=getWsHandler(h))===null||l===void 0?void 0:l.work)===null||u===void 0?void 0:u.call(l,d,r,n,s)}catch(t){(f=e.$log||console.error)===null||f===void 0?void 0:f("WS","handler error",t instanceof Error?t.message:t)}}function _getMessage(t){var r,n,s;if(((r=t===null||t===void 0?void 0:t.db)===null||r===void 0?void 0:r.aes)&&((s=(n=e.$lib)===null||n===void 0?void 0:n.aesfns)===null||s===void 0?void 0:s.reqAES)){t.db=e.$lib.aesfns.reqAES({data:t.db})}return t}function commandwork(e){if(!e.command){e.command={commandconfig:{clientws:{}}}}return{commandwork:function(){var t=e.$log||console.log;t("WS","Command work initialized")}}}return{wsWork:wsWork,commandwork:commandwork}}},6258:function(e,t){"use strict";var r=this&&this.__assign||function(){r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return r.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t["default"]=function(e,t){if(!(e===null||e===void 0?void 0:e.clientws)){e.clientws={}}if(!e.clientws[t]){e.clientws[t]={tasks:new Map}}function getKeyByData(e){return(e===null||e===void 0?void 0:e.id)||(e===null||e===void 0?void 0:e.ty)}function clientwsInit(){return new Promise((function(r,n){e.clientws[t].socket=new e.asaiWs(e.command.commandconfig.clientws[t]);e.clientws[t].socket.onmessage=function(e){clientwsOnmessage(e.data)};e.clientws[t].socket.on("error",(function(r){var s,o;e.clientws[t].open=0;((o=(s=e.hostconfig.logger)===null||s===void 0?void 0:s.lv)===null||o===void 0?void 0:o.view)&&console.error(666.2203,"".concat(t,"=").concat(e.command.commandconfig.clientws[t]," is error."),r);n()}));e.clientws[t].socket.on("close",(function(){var r,s;e.clientws[t].open=0;((s=(r=e.hostconfig.logger)===null||r===void 0?void 0:r.lv)===null||s===void 0?void 0:s.view)&&console.error(666.2205,"".concat(t,"=").concat(e.command.commandconfig.clientws[t]," is close."));n()}));e.clientws[t].socket.onopen=function(){var n,s;((s=(n=e.hostconfig.logger)===null||n===void 0?void 0:n.lv)===null||s===void 0?void 0:s.view)&&console.log(666.2201,"".concat(t,"=").concat(e.command.commandconfig.clientws[t]," is open."));e.clientws[t].open=1;r()}}))}function clientwsSend(r){if(e.clientws[t].open){e.clientws[t].socket.send(r)}}function clientwsOnmessage(r){if(e.clientws[t].open){try{var n=JSON.parse(r);var s=getKeyByData(n);var o=e.clientws[t].tasks.get(s);if(o){o===null||o===void 0?void 0:o.callback(n);if(n.ty&&!n.id){}else{e.clientws[t].tasks.delete(s)}}}catch(e){}}}function clientwsApi(n){return new Promise((function(s,o){if(e.clientws[t].open){try{var i={};i.timestamp=Date.now();if(!n.id){n.id=e.$lib.As.Uuid("nd")}e.clientws[t].tasks.set(getKeyByData(n),r(r({callback:function(e){s(e)}},n),i));clientwsSend(JSON.stringify(n))}catch(e){o(e)}}}))}function clientwsWatch(n,s){if(e.clientws[t].open){try{e.clientws[t].tasks.set(getKeyByData(n),r({callback:function(e){s(e)}},n));clientwsSend(JSON.stringify(n))}catch(e){}}}function clientwsWatchOff(r){if((r===null||r===void 0?void 0:r.ty)==="clear"){e.clientws[t].tasks=new Map}else{var n=getKeyByData(r);var s=e.clientws[t].tasks.get(n);if(s){e.clientws[t].tasks.delete(n)}}}return{clientwsInit:clientwsInit,clientwsSend:clientwsSend,clientwsApi:clientwsApi,clientwsWatch:clientwsWatch,clientwsWatchOff:clientwsWatchOff}}},3216:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.normalizeHostConfig=normalizeHostConfig;t.getTransportBlock=getTransportBlock;t.getTransportDefault=getTransportDefault;t.hasTransportDefault=hasTransportDefault;t.getDefaultConnId=getDefaultConnId;t.shouldAutoConnect=shouldAutoConnect;t.resolveReconnectOptions=resolveReconnectOptions;var r={"1tcp":"tcp","1grpc":"grpc","1rs485":"rs485",serial485:"rs485"};var n={tcp:"testtcp",grpc:"testgrpc",rs485:"testrs485"};var s={tcp:{enabled:true,maxRetries:60,initialDelay:1e3,maxDelay:3e4,factor:2},grpc:{enabled:true,maxRetries:60,initialDelay:1e3,maxDelay:3e4,factor:2},rs485:{enabled:true,maxRetries:60,initialDelay:3e3,maxDelay:3e4,factor:2}};function normalizeHostConfig(e){if(!e||typeof e!=="object")return{};if(e.syscom&&typeof e.syscom==="object"){for(var t=0,s=Object.keys(n);t<s.length;t++){var o=s[t];if(e.syscom[o]){e[o]=e.syscom[o]}}}for(var i=0,a=Object.entries(r);i<a.length;i++){var c=a[i],l=c[0],u=c[1];if(e[l]&&!e[u]){e[u]=e[l]}}return e}function getTransportBlock(e,t){var r=e===null||e===void 0?void 0:e[t];return r&&typeof r==="object"?r:null}function getTransportDefault(e,t){var r;var n=(r=getTransportBlock(e,t))===null||r===void 0?void 0:r.default;return n&&typeof n==="object"?n:null}function hasTransportDefault(e,t){return!!getTransportDefault(e,t)}function getDefaultConnId(e,t){var r=getTransportDefault(e,t);var s=r===null||r===void 0?void 0:r.id;return typeof s==="string"&&s.length>0?s:n[t]}function shouldAutoConnect(e){if(!e)return false;return e.autoConnect!==false}function resolveReconnectOptions(e,t,r){var n,o,i,a,c,l,u,f,d,h;var v=s[t];var p=e===null||e===void 0?void 0:e.reconnect;var g=(n=r===null||r===void 0?void 0:r.tm)===null||n===void 0?void 0:n.maxtry;return{enabled:(p===null||p===void 0?void 0:p.enabled)!==false&&v.enabled!==false,maxRetries:(a=(i=(o=p===null||p===void 0?void 0:p.maxRetries)!==null&&o!==void 0?o:g)!==null&&i!==void 0?i:v.maxRetries)!==null&&a!==void 0?a:60,initialDelay:(l=(c=p===null||p===void 0?void 0:p.initialDelay)!==null&&c!==void 0?c:v.initialDelay)!==null&&l!==void 0?l:1e3,maxDelay:(f=(u=p===null||p===void 0?void 0:p.maxDelay)!==null&&u!==void 0?u:v.maxDelay)!==null&&f!==void 0?f:3e4,factor:(h=(d=p===null||p===void 0?void 0:p.factor)!==null&&d!==void 0?d:v.factor)!==null&&h!==void 0?h:2}}},6332:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.normalizeHostConfig=void 0;t.validateHostConfig=validateHostConfig;var n=r(3216);Object.defineProperty(t,"normalizeHostConfig",{enumerable:true,get:function(){return n.normalizeHostConfig}});function validateHostConfig(e){var t,r,s;var o=[];if(!e||typeof e!=="object"){return["hostconfig 必须为非空对象"]}if(!e.password||typeof e.password!=="string"){o.push("password 必须为非空字符串")}if(!e.hosts||typeof e.hosts!=="object"){o.push("hosts 必须为对象")}else{if(!e.hosts.default){o.push("hosts.default 缺失")}for(var i=0,a=Object.entries(e.hosts);i<a.length;i++){var c=a[i],l=c[0],u=c[1];if(l==="default")continue;var f=u;if(f.port!=null&&(typeof f.port!=="number"||f.port<=0||f.port>65535)){o.push("hosts.".concat(l,".port 无效: ").concat(f.port))}if(f.hostdirs!=null&&!Array.isArray(f.hostdirs)){o.push("hosts.".concat(l,".hostdirs 必须为数组"))}}}if(((t=e.logger)===null||t===void 0?void 0:t.sample)&&typeof e.logger.sample!=="object"){o.push('logger.sample 必须为对象(如 { "REQ_OTHER": 0.1 })')}if(((r=e.logger)===null||r===void 0?void 0:r.skip)!=null&&!Array.isArray(e.logger.skip)){o.push('logger.skip 必须为字符串数组(如 ["/sys/info/metrics"])')}if(e.syscom&&typeof e.syscom!=="object"){o.push("syscom 必须为对象")}for(var d=0,h=["tcp","grpc","rs485"];d<h.length;d++){var v=h[d];if(!(0,n.hasTransportDefault)(e,v))continue;var p=(0,n.getTransportDefault)(e,v);var g=((s=e.syscom)===null||s===void 0?void 0:s[v])?"syscom.".concat(v):v;if(v==="tcp"&&(!p.host||p.port==null)){o.push("".concat(g,".default 需要 host 与 port"))}if(v==="grpc"&&(!p.host||p.port==null)){o.push("".concat(g,".default 需要 host 与 port"))}if(v==="rs485"&&!p.path){o.push("".concat(g,".default 需要 path"))}var m=p.reconnect;if(m!=null&&typeof m!=="object"){o.push("".concat(g,".default.reconnect 必须为对象"))}else if(m){if(m.maxRetries!=null&&(typeof m.maxRetries!=="number"||m.maxRetries<0)){o.push("".concat(g,".default.reconnect.maxRetries 无效"))}if(m.initialDelay!=null&&typeof m.initialDelay!=="number"){o.push("".concat(g,".default.reconnect.initialDelay 无效"))}if(m.maxDelay!=null&&typeof m.maxDelay!=="number"){o.push("".concat(g,".default.reconnect.maxDelay 无效"))}}}if(e.proxyhosts&&typeof e.proxyhosts==="object"){for(var y=0,_=Object.entries(e.proxyhosts);y<_.length;y++){var b=_[y],S=b[0],w=b[1];var k=w;if(k.url&&k.proxyport!=null&&typeof k.proxyport!=="number"){o.push("proxyhosts.".concat(S,".proxyport 无效"))}}}return o}},2910:function(e,t,r){"use strict";var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.validateHostdir=validateHostdir;t.getHostCFG=getHostCFG;t.getProxyHostCFG=getProxyHostCFG;var s=r(7427);var o=new Map;var i=new Map;function validateHostdir(e){if(typeof e!=="string"||e.length===0||e.length>100||e==="default"||e==="asai"){return false}return/^[a-zA-Z0-9_-]+$/.test(e)}function loadHostCFG(e,t){var r=o.get(e);if(!r){var s=t.hostconfig.hosts.default||{};var i=t.hostconfig.hosts[e]||{};r=n(n({},s),i);o.set(e,r)}return r}function getHostCFG(e,t){return n({},loadHostCFG(e,t))}function loadProxyHostCFG(e,t){var r,o;var a=i.get(e);if(!a){var c=((r=t.hostconfig.proxyhosts)===null||r===void 0?void 0:r.default)||{};var l=((o=t.hostconfig.proxyhosts)===null||o===void 0?void 0:o[e])||{};a=n(n({},c),l);if(!a.url&&a.port){a.url=(a.httptype||"http://")+(0,s.getHostIP)(a.ip,t)+":"+a.port}i.set(e,a)}return a}function getProxyHostCFG(e,t){return n({},loadProxyHostCFG(e,t))}},2309:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.initAsaiHost=t.getProxyHostCFG=t.getHostCFG=t.validateHostdir=t.getHostIP=t.getIp=t.getNowTime=void 0;var n=r(6588);Object.defineProperty(t,"getNowTime",{enumerable:true,get:function(){return n.getNowTime}});var s=r(7427);Object.defineProperty(t,"getIp",{enumerable:true,get:function(){return s.getIp}});Object.defineProperty(t,"getHostIP",{enumerable:true,get:function(){return s.getHostIP}});var o=r(2910);Object.defineProperty(t,"validateHostdir",{enumerable:true,get:function(){return o.validateHostdir}});Object.defineProperty(t,"getHostCFG",{enumerable:true,get:function(){return o.getHostCFG}});Object.defineProperty(t,"getProxyHostCFG",{enumerable:true,get:function(){return o.getProxyHostCFG}});var i=r(699);Object.defineProperty(t,"initAsaiHost",{enumerable:true,get:function(){return i.initAsaiHost}})},699:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.initAsaiHost=initAsaiHost;var n=r(7427);var s=r(2910);var o=r(1725);var i=r(6902);var a=r(3817);function initAsaiHost(e,t){var r,c,l,u,f;if(!((r=e.hostconfig)===null||r===void 0?void 0:r.ip)){e.hostconfig.ip=(0,n.getIp)()}e.setAppend=function(t,r){return(0,i.setAppend)(e,t,r)};e.getHost=function(t){return(0,s.getHostCFG)(t,e)};e.getHostIP=function(t){return(0,n.getHostIP)(t,e)};e.gracefulShutdown=function(){return(0,o.gracefulShutdown)(e)};(0,a.attachRegistry)(e);(0,o.initProcess)(e);(0,i.initLog)(e);e.hostconfig.asaiport=[];e.hostconfig.guardtm=null;if(((l=(c=e.hostconfig)===null||c===void 0?void 0:c.aes)===null||l===void 0?void 0:l.lv)&&!((u=e.$lib)===null||u===void 0?void 0:u.aesfns)&&typeof((f=e.$lib)===null||f===void 0?void 0:f.AsAES)==="function"){var d=e.$lib.AsAES(e),h=d.reqAES,v=d.resAES;e.$lib.aesfns={allaes:e.hostconfig.aes.lv>1,reqAES:h,resAES:v}}}},7427:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getIp=getIp;t.getHostIP=getHostIP;var n=r(857);function getIp(){try{var e=n.networkInterfaces();for(var t=0,r=Object.keys(e);t<r.length;t++){var s=r[t];var o=e[s];if(!o)continue;for(var i=0,a=o;i<a.length;i++){var c=a[i];if(c.family==="IPv4"&&c.address!=="127.0.0.1"&&!c.internal){return c.address}}}}catch(e){console.error("Get IP address error:",e)}return"127.0.0.1"}function getHostIP(e,t){var r,n;if(e&&typeof e==="string")return e;if(((r=t===null||t===void 0?void 0:t.hostconfig)===null||r===void 0?void 0:r.ip)==="asai")return"localhost";return((n=t===null||t===void 0?void 0:t.hostconfig)===null||n===void 0?void 0:n.ip)||"127.0.0.1"}},6588:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getNowTime=getNowTime;function getNowTime(e,t){if(e===void 0){e=0}if(t===void 0){t=null}try{t=t||new Date;var r=t.getFullYear();var n=String(t.getMonth()+1).padStart(2,"0");var s=String(t.getDate()).padStart(2,"0");var o=String(t.getHours()).padStart(2,"0");var i=String(t.getMinutes()).padStart(2,"0");var a=String(t.getSeconds()).padStart(2,"0");var c=String(t.getMilliseconds()).padStart(3,"0");switch(e){case 1:return"".concat(o,":").concat(i,":").concat(a);case 2:return"".concat(r,"-").concat(n,"-").concat(s);case 3:return"".concat(o,":").concat(i,":").concat(a,".").concat(c);case 4:return"".concat(r,"-").concat(n,"-").concat(s," ").concat(o,":").concat(i,":").concat(a,".").concat(c);case 5:return"".concat(o,"-").concat(i,"-").concat(a,"-").concat(c);default:return"".concat(r,"-").concat(n,"-").concat(s," ").concat(o,":").concat(i,":").concat(a)}}catch(e){console.error("Date formatting error:",e);return"unknown-time"}}},2370:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getHostAllowedRoots=t.resolvePathUnderRoots=t.secureCompare=t.wireTransportConnectionLogs=t.createTransportDataHandler=t.ensureDefaultConnection=t.initTransportBridge=t.syncWsRouteKeys=t.syncApiRouteKeys=t.initHostserverWs=t.initHostserverApi=t.registerWs=t.registerApi=t.validateHostConfig=t.shouldAutoConnect=t.resolveReconnectOptions=t.getDefaultConnId=t.hasTransportDefault=t.getTransportDefault=t.getTransportBlock=t.normalizeHostConfig=void 0;var n=r(3216);Object.defineProperty(t,"normalizeHostConfig",{enumerable:true,get:function(){return n.normalizeHostConfig}});Object.defineProperty(t,"getTransportBlock",{enumerable:true,get:function(){return n.getTransportBlock}});Object.defineProperty(t,"getTransportDefault",{enumerable:true,get:function(){return n.getTransportDefault}});Object.defineProperty(t,"hasTransportDefault",{enumerable:true,get:function(){return n.hasTransportDefault}});Object.defineProperty(t,"getDefaultConnId",{enumerable:true,get:function(){return n.getDefaultConnId}});Object.defineProperty(t,"resolveReconnectOptions",{enumerable:true,get:function(){return n.resolveReconnectOptions}});Object.defineProperty(t,"shouldAutoConnect",{enumerable:true,get:function(){return n.shouldAutoConnect}});var s=r(6332);Object.defineProperty(t,"validateHostConfig",{enumerable:true,get:function(){return s.validateHostConfig}});var o=r(3817);Object.defineProperty(t,"registerApi",{enumerable:true,get:function(){return o.registerApi}});Object.defineProperty(t,"registerWs",{enumerable:true,get:function(){return o.registerWs}});Object.defineProperty(t,"initHostserverApi",{enumerable:true,get:function(){return o.initHostserverApi}});Object.defineProperty(t,"initHostserverWs",{enumerable:true,get:function(){return o.initHostserverWs}});Object.defineProperty(t,"syncApiRouteKeys",{enumerable:true,get:function(){return o.syncApiRouteKeys}});Object.defineProperty(t,"syncWsRouteKeys",{enumerable:true,get:function(){return o.syncWsRouteKeys}});var i=r(4239);Object.defineProperty(t,"initTransportBridge",{enumerable:true,get:function(){return i.initTransportBridge}});Object.defineProperty(t,"ensureDefaultConnection",{enumerable:true,get:function(){return i.ensureDefaultConnection}});Object.defineProperty(t,"createTransportDataHandler",{enumerable:true,get:function(){return i.createTransportDataHandler}});Object.defineProperty(t,"wireTransportConnectionLogs",{enumerable:true,get:function(){return i.wireTransportConnectionLogs}});var a=r(4161);Object.defineProperty(t,"secureCompare",{enumerable:true,get:function(){return a.secureCompare}});var c=r(9527);Object.defineProperty(t,"resolvePathUnderRoots",{enumerable:true,get:function(){return c.resolvePathUnderRoots}});Object.defineProperty(t,"getHostAllowedRoots",{enumerable:true,get:function(){return c.getHostAllowedRoots}})},1212:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.setupHttpConnectionMonitor=setupHttpConnectionMonitor;function setupHttpConnectionMonitor(e,t,r,n){var s=n.maxhttp||100;var o=setInterval((function(){var r;var n=((r=e.connectionshttp[t])===null||r===void 0?void 0:r.size)||0;if(n>s*.8){e.$log("HTTP","HTTP Connection HIGH (".concat(n,"/").concat(s,")"))}if(n>s*.95){e.$log("HTTP","HTTP Connection CRITICAL! Forcing cleanup");if(e.connectionshttp[t]){e.connectionshttp[t].forEach((function(e){if(e._idleTime&&Date.now()-e._idleTime>3e5){e.destroy()}}))}}}),3e5);if(!e.tasksws[t])e.tasksws[t]={};e.tasksws[t].httpMonitor=o;r.on("connection",(function(r){if(!e.connectionshttp[t]){e.connectionshttp[t]=new Set}var n=e.connectionshttp[t].size;if(n>=s){try{e.$log("HTTP","HTTP Connection MAX rejected (".concat(n,"/").concat(s,")"));r.destroy()}catch(t){e.$log("HTTP","Close connection error:",t)}return}e.connectionshttp[t].add(r);r.on("close",(function(){e.connectionshttp[t].delete(r)}));r.setTimeout(3e5)}))}},3484:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.formatHttpError=formatHttpError;t.shouldLogRequest=shouldLogRequest;t.normalizeRequestPath=normalizeRequestPath;t.createSkipChecker=createSkipChecker;t.logHttp=logHttp;function formatHttpError(e){return e instanceof Error?"".concat(e.name,": ").concat(e.message):String(e)}function shouldLogRequest(e){return e!=="OPTIONS"}function normalizeRequestPath(e){if(!e)return"";var t=e.indexOf("?");var r=e.indexOf("#");var n=e.length;if(t>=0)n=Math.min(n,t);if(r>=0)n=Math.min(n,r);return e.slice(0,n)}function createSkipChecker(e){var t,r;var n=(r=(t=e.hostconfig)===null||t===void 0?void 0:t.logger)===null||r===void 0?void 0:r.skip;if(!Array.isArray(n)||n.length===0)return function(){return false};var s=new Set;var o=[];for(var i=0,a=n;i<a.length;i++){var c=a[i];if(typeof c!=="string"||!c)continue;if(c.endsWith("*"))o.push(c.slice(0,-1));else s.add(c)}if(s.size===0&&o.length===0)return function(){return false};return function(e){var t=normalizeRequestPath(e);if(!t)return false;if(s.has(t))return true;for(var r=0;r<o.length;r++){if(t.startsWith(o[r]))return true}return false}}function logHttp(e,t,r,n,s){if(!shouldLogRequest(r)||s(n))return;e.$log(t,r,n)}},1082:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.applySecurityHeaders=applySecurityHeaders;t.getHttpUserinfo=getHttpUserinfo;t.checkHttpHeader=checkHttpHeader;var n=r(3724);function applySecurityHeaders(e,t){if(t===void 0){t=false}e.setHeader("X-Content-Type-Options","nosniff");e.setHeader("X-Frame-Options","SAMEORIGIN");e.setHeader("Referrer-Policy","strict-origin-when-cross-origin");e.setHeader("Permissions-Policy","geolocation=(), microphone=(), camera=()");if(t){e.setHeader("Strict-Transport-Security","max-age=31536000; includeSubDomains")}}function getHttpUserinfo(e,t){var r,s;try{var o=(s=(r=e.headers)===null||r===void 0?void 0:r["userinfo"])===null||s===void 0?void 0:s.split("##");return(0,n.deUserInfoWithAsai)(o,t)}catch(e){return""}}function checkHttpHeader(e,t){e.Userinfo=getHttpUserinfo(e,t);return true}},67:function(e,t,r){"use strict";var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.checkHttpHeader=t.getHttpUserinfo=void 0;t.getHTTPServer=getHTTPServer;t.startHTTPServer=startHTTPServer;t.asaiGuard=asaiGuard;var s=r(8611);var o=r(5692);var i=r(2309);var a=r(6401);var c=r(5105);var l=r(7779);var u=r(1082);var f=r(3484);var d=r(5686);var h=r(1212);var v=r(1082);Object.defineProperty(t,"getHttpUserinfo",{enumerable:true,get:function(){return v.getHttpUserinfo}});Object.defineProperty(t,"checkHttpHeader",{enumerable:true,get:function(){return v.checkHttpHeader}});function getHTTPServer(e,t,r){if(e===void 0){e=""}try{if(e.startsWith("https")){return{AsCreateServer:function(e){return o.createServer((t===null||t===void 0?void 0:t.httpscert)||r.hostconfig.httpscert,e)},Agent:o.Agent,request:o.request}}else{return{AsCreateServer:s.createServer,Agent:s.Agent,request:s.request}}}catch(e){r.$log("HTTP","Http server error:",e instanceof Error?"".concat(e.name,": ").concat(e.message,"\n").concat(e.stack):JSON.stringify(e));return{AsCreateServer:s.createServer,Agent:s.Agent,request:s.request}}}function startHTTPServer(e,t){var r=(0,i.getHostCFG)(t,e);if(!r||r.close)return;try{if(!e.servershttp[t]){if(r.mimetypes){r.mimetypes=n(n({},e.hostconfig.mimetypes||{}),r.mimetypes)}var s=getHTTPServer(r.httptype,r,e);var o=(0,d.buildStaticSearchDirs)(r);var v=e.hostconfig.index||"index.html";var p=new l.StaticPathCache(2e3,3e4);var g=(0,f.createSkipChecker)(e);var m=(r.httptype||"").startsWith("https");var y=(0,c.getWorkHandler)("sysWork");var _=(0,c.getWorkHandler)("apiWork");var b=(0,c.getWorkHandler)("jsonpWork");var S=o.length>0?(0,d.createStaticHandler)({hostcfg:r,hostdir:t,dirPath:o,indexFile:v,$asai:e,staticPathCache:p}):null;var w=s.AsCreateServer((function(r,n){var s,o,i;try{if(!(0,u.checkHttpHeader)(r,e)){(0,f.logHttp)(e,"HTTP",r.method,r.url,g);n.writeHead(502,{"Content-Type":"text/plain; charset=utf-8"});n.end("502");return}(0,u.applySecurityHeaders)(n,m);if(((s=r.url)===null||s===void 0?void 0:s.startsWith("/sys"))&&y){(0,f.logHttp)(e,"SYS",r.method,r.url,g);y(r,n,t)}else if(((o=r.url)===null||o===void 0?void 0:o.startsWith("/api"))&&_){(0,f.logHttp)(e,"API",r.method,r.url,g);_(r,n,t)}else if(((i=r.url)===null||i===void 0?void 0:i.startsWith("/jsonp"))&&b){(0,f.logHttp)(e,"JSONP",r.method,r.url,g);b(r,n,t)}else if(S){(0,f.logHttp)(e,"REQ_OTHER",r.method,r.url,g);S(r,n,r.url)}else{e.$log("HTTP",r.method,r.url);n.writeHead(404,{"Content-Type":"text/plain; charset=utf-8"});n.end("404")}}catch(t){e.$log("HTTP","HTTP request error:",(0,f.formatHttpError)(t));if(!n.headersSent){n.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});n.end("Internal server error")}else if(!n.writableEnded){n.end()}}}));e.servershttp[t]=w;if(r.ws){(0,a.createWSHost)(e,t)}w.on("error",(function(t){e.hostconfig.asaiport.push(r.port);asaiGuard(e);if(t.code==="EADDRINUSE"){e.$log("HTTP","Port ".concat(r.port," is already start!"))}else{e.$log("HTTP","Server error:",t instanceof Error?"".concat(t.name,": ").concat(t.message,"\n").concat(t.stack):t)}}));if(e.hostconfig.ip==="asai"||!r.ip&&!e.hostconfig.ip){w.listen(r.port,(function(){console.log("[".concat(t,"] Start At ").concat((0,i.getNowTime)(),"."));if(r.ws){console.log("WS Server ".concat(r.wstype||"ws://","localhost:").concat(r.port,""))}console.log("HTTP Server ".concat(r.httptype,"localhost:").concat(r.port,""));console.log("================================================")}))}else{var k=(0,i.getHostIP)(r.ip,e);w.listen(r.port,k,(function(){console.log("[".concat(t,"] Start At ").concat((0,i.getNowTime)(),"."));if(r.ws){console.log("WS Server ".concat(r.wstype||"ws://").concat(k,":").concat(r.port,""))}console.log("HTTP Server ".concat(r.httptype).concat(k,":").concat(r.port,""));console.log("================================================")}))}if(r.ckhttp){(0,h.setupHttpConnectionMonitor)(e,t,w,r)}}}catch(t){e.$log("HTTP","Http server error:",t instanceof Error?"".concat(t.name,": ").concat(t.message,"\n").concat(t.stack):JSON.stringify(t))}return e.servershttp[t]}function asaiGuard(e){var t;if(e.hostconfig.asaiport.includes(e.hostconfig.hosts.asai.port)){process.exit(1)}else{if(e.hostconfig.guardtm){clearTimeout(e.hostconfig.guardtm);e.hostconfig.guardtm=null}e.hostconfig.guardtm=setTimeout((function(){startHTTPServer(e,"asai");if(e.hostconfig.guardtm){clearTimeout(e.hostconfig.guardtm);e.hostconfig.guardtm=null}}),((t=e.hostconfig.tm)===null||t===void 0?void 0:t.d)||2e3)}}},7779:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.StaticPathCache=void 0;var n=r(9896);var s=function(){function StaticPathCache(e,t){if(e===void 0){e=2e3}if(t===void 0){t=3e4}this.maxSize=e;this.notFoundTtlMs=t;this.cache=new Map}StaticPathCache.prototype.touch=function(e,t){if(this.cache.has(e))this.cache.delete(e);this.cache.set(e,t);while(this.cache.size>this.maxSize){var r=this.cache.keys().next().value;if(!r)break;this.cache.delete(r)}};StaticPathCache.prototype.get=function(e){var t=this.cache.get(e);if(!t)return null;if(t.is404&&Date.now()-t.cachedAt>this.notFoundTtlMs){this.cache.delete(e);return null}this.cache.delete(e);this.cache.set(e,t);return t};StaticPathCache.prototype.setHit=function(e,t,r){this.touch(e,{filePath:t,mtimeMs:r,cachedAt:Date.now()})};StaticPathCache.prototype.setMiss=function(e){this.touch(e,{filePath:"",mtimeMs:0,is404:true,cachedAt:Date.now()})};StaticPathCache.prototype.verify=function(e){if(e.is404||!e.filePath)return null;try{var t=n.statSync(e.filePath);if(!t.isFile()||t.mtimeMs!==e.mtimeMs)return null;return t}catch(e){return null}};return StaticPathCache}();t.StaticPathCache=s},5686:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.parseUrlPath=parseUrlPath;t.buildStaticSearchDirs=buildStaticSearchDirs;t.serveStaticFile=serveStaticFile;t.createStaticHandler=createStaticHandler;var n=r(9896);var s=r(6928);var o=r(3484);var i=r(9527);var a=8*1024*1024;function parseUrlPath(e){try{if(!e)return"/";var t=e.startsWith("http")?e:encodeURI(e);return new URL(t,"http://localhost").pathname}catch(t){return e}}function buildStaticSearchDirs(e){var t;var r=[];var o=new Set;var pushDir=function(e){if(!e||o.has(e))return;o.add(e);try{if(n.statSync(s.resolve("./"+e)).isDirectory())r.push(e)}catch(e){}};for(var i=0,a=e.hostdirs||[];i<a.length;i++){var c=a[i];pushDir(c)}if((t=e.weburls)===null||t===void 0?void 0:t.webdir)pushDir(e.weburls.webdir);return r}function buildStaticRoots(e,t){var r;var n=e.map((function(e){return s.resolve("./"+e)}));if(((r=t.hostconfig.pkg)===null||r===void 0?void 0:r.type)===1){var o=s.dirname(process.execPath);for(var i=0,a=e;i<a.length;i++){var c=a[i];n.push(s.join(o,c))}}return n}function sendStaticBuffer(e,t,r,n,s,i){var a='"'.concat(r.length,"-").concat(s,'"');if(e.headers["if-none-match"]===a){t.writeHead(304);t.end();return}try{t.writeHead(200,{"Content-Type":n,"Content-Length":r.length,"Cache-Control":"public, max-age=3600",ETag:a,"Last-Modified":new Date(s).toUTCString()});t.end(r)}catch(e){i.$log("HTTP","Static file response error:",(0,o.formatHttpError)(e));if(!t.headersSent){t.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});t.end("Internal Server Error")}}}function serveStaticFile(e,t,r,s,i,c){if(i.size<=a){n.readFile(r,(function(r,n){if(r){c.$log("HTTP","Static file read error:",(0,o.formatHttpError)(r));if(!t.headersSent){t.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});t.end("Internal Server Error")}return}sendStaticBuffer(e,t,n,s,i.mtimeMs,c)}));return}var l=n.createReadStream(r);var u='"'.concat(i.size,"-").concat(i.mtimeMs,'"');if(e.headers["if-none-match"]===u){l.destroy();t.writeHead(304);t.end();return}l.on("error",(function(e){c.$log("STREAM","Stream error:",(0,o.formatHttpError)(e));if(!t.headersSent){t.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});t.end("Internal Server Error")}else if(!t.writableEnded)t.destroy()}));e.on("aborted",(function(){if(!l.destroyed)l.destroy()}));try{t.writeHead(200,{"Content-Type":s,"Cache-Control":"public, max-age=3600",ETag:u,"Last-Modified":i.mtime.toUTCString()});l.pipe(t)}catch(e){c.$log("HTTP","Static file response error:",(0,o.formatHttpError)(e));if(!l.destroyed)l.destroy();if(!t.headersSent){t.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});t.end("Internal Server Error")}}}function createStaticHandler(e){var t,r,o,a,c;var l=e.hostcfg,u=e.hostdir,f=e.dirPath,d=e.indexFile,h=e.$asai,v=e.staticPathCache;var p=buildStaticRoots(f,h);var g=!!(((t=l.weburls)===null||t===void 0?void 0:t.rewrite)&&((r=l.weburls)===null||r===void 0?void 0:r.webdir)&&((a=(o=l.weburls)===null||o===void 0?void 0:o.keys)===null||a===void 0?void 0:a.length));var m=g?((c=l.weburls)===null||c===void 0?void 0:c.keys)||[]:[];var checkWebUrls=function(e){if(!g||!e)return false;for(var t=0;t<m.length;t++){if(e.startsWith(m[t]))return true}return false};var showHostDirs=function(e,t,r,o,a){var c;if(a===void 0){a=0}var m=parseUrlPath(o);var y=m.endsWith("/")?m+d:m;var _="".concat(u,":").concat(r.join("|"),":").concat(y);var b=r===f?p:buildStaticRoots(r,h);var findValidFile=function(e){var t=v.get(_);if(t===null||t===void 0?void 0:t.is404)return null;if(t&&!t.is404){var r=v.verify(t);if(r)return{filePath:t.filePath,stat:r}}var s=e.startsWith("/")?e.slice(1):e;try{var o=(0,i.resolvePathUnderRoots)(s,b);var a=n.statSync(o);if(a.isFile()){v.setHit(_,o,a.mtimeMs);return{filePath:o,stat:a}}}catch(e){}v.setMiss(_);return null};var S=findValidFile(y);if(!S){if(a>0||!g){t.writeHead(404,{"Content-Type":"text/plain; charset=utf-8"});t.end("File not found!");return}showHostDirs(e,t,[l.weburls.webdir],"/"+d,a+1);return}var w=((c=l.mimetypes)===null||c===void 0?void 0:c[s.extname(S.filePath)])||"application/octet-stream";serveStaticFile(e,t,S.filePath,w,S.stat,h)};return function(e,t,r){t.setHeader("Cross-Origin-Resource-Policy","cross-origin");t.setHeader("Cross-Origin-Opener-Policy","cross-origin");if(checkWebUrls(r)){showHostDirs(e,t,[l.weburls.webdir],"/"+d)}else{showHostDirs(e,t,f,r)}}}},5105:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getWorkHandler=getWorkHandler;t["default"]=default_1;var n=r(1354);var s=r(2309);var o=r(67);var i=r(343);var a=new Map;function getWorkHandler(e){return a.get(e)}function default_1(e,t){var r=t.sysWork,c=t.apiWork,l=t.wsWork,u=t.jsonpWork;a.set("sysWork",r);a.set("apiWork",c);a.set("wsWork",l);a.set("jsonpWork",u);function StartAsaiHost(){var r,n;(0,s.initAsaiHost)(e,t);console.log("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");if((r=e.hostconfig)===null||r===void 0?void 0:r.hosts){e.startHTTPServer=function(t){return(0,o.startHTTPServer)(e,t)};Object.keys(e.hostconfig.hosts).forEach((function(t){if((0,s.validateHostdir)(t)){(0,o.startHTTPServer)(e,t)}}));if(e.hostconfig.hosts.asai){(0,o.startHTTPServer)(e,"asai")}}if((n=e.hostconfig)===null||n===void 0?void 0:n.proxyhosts){Object.keys(e.hostconfig.proxyhosts).forEach((function(t){if((0,s.validateHostdir)(t)){(0,i.startProxyServer)(e,t)}}))}}return{StartAsaiHost:StartAsaiHost,asaiWs:n}}},6902:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};var s=this&&this.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,s,o,i=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return i.next=verb(0),i["throw"]=verb(1),i["return"]=verb(2),typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function verb(e){return function(t){return step([e,t])}}function step(a){if(n)throw new TypeError("Generator is already executing.");while(i&&(i=0,a[0]&&(r=0)),r)try{if(n=1,s&&(o=a[0]&2?s["return"]:a[0]?s["throw"]||((o=s["return"])&&o.call(s),0):s.next)&&!(o=o.call(s,a[1])).done)return o;if(s=0,o)a=[a[0]&2,o.value];switch(a[0]){case 0:case 1:o=a;break;case 4:r.label++;return{value:a[1],done:false};case 5:r.label++;s=a[1];a=[0];continue;case 7:a=r.ops.pop();r.trys.pop();continue;default:if(!(o=r.trys,o=o.length>0&&o[o.length-1])&&(a[0]===6||a[0]===2)){r=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]<o[3])){r.label=a[1];break}if(a[0]===6&&r.label<o[1]){r.label=o[1];o=a;break}if(o&&r.label<o[2]){r.label=o[2];r.ops.push(a);break}if(o[2])r.ops.pop();r.trys.pop();continue}a=t.call(e,r)}catch(e){a=[6,e];s=0}finally{n=o=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};Object.defineProperty(t,"__esModule",{value:true});t.setAppend=setAppend;t.setLog=setLog;t.initLog=initLog;var o=r(6588);var i=new Map;function flushAllLogBuffers(){i.forEach((function(e){e.forceFlush()}))}var a=function(){function LogBuffer(e,t){this.$asai=e;this.filePath=t;this.buffer=[];this.timer=null;this.flushInterval=100;this.maxBufferSize=100;if(!LogBuffer.globalFlushRegistered){LogBuffer.globalFlushRegistered=true;process.once("beforeExit",(function(){return flushAllLogBuffers()}))}}LogBuffer.prototype.add=function(e){var t=this;this.buffer.push(e);if(this.buffer.length>=this.maxBufferSize){this.flush()}else if(!this.timer){this.timer=setTimeout((function(){return t.flush()}),this.flushInterval)}};LogBuffer.prototype.forceFlush=function(){this.flush()};LogBuffer.prototype.flush=function(){if(this.timer){clearTimeout(this.timer);this.timer=null}if(this.buffer.length===0)return;var e=this.buffer.join("");this.buffer=[];void this.writeBatch(e)};LogBuffer.prototype.writeBatch=function(e){return n(this,void 0,void 0,(function(){var t,r,n,i,a,c;var l,u;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);return[4,this.$asai.asaifs.ensureFile(this.filePath)];case 1:s.sent();return[4,this.$asai.asaifs.stat(this.filePath)];case 2:t=s.sent();r=((u=(l=this.$asai.hostconfig.logger)===null||l===void 0?void 0:l.path)===null||u===void 0?void 0:u.maxsize)||1048576;if(!(t.size>=r))return[3,4];n=this.filePath.lastIndexOf(".");i=this.filePath.substring(0,n);a=this.filePath.substring(n);return[4,this.$asai.asaifs.rename(this.filePath,"".concat(i,"-").concat((0,o.getNowTime)(5)).concat(a))];case 3:s.sent();s.label=4;case 4:return[4,this.$asai.asaifs.append(this.filePath,e)];case 5:s.sent();return[3,7];case 6:c=s.sent();console.error("Log write error:",c);return[3,7];case 7:return[2]}}))}))};LogBuffer.prototype.destroy=function(){if(this.timer){clearTimeout(this.timer);this.timer=null}this.flush()};LogBuffer.globalFlushRegistered=false;return LogBuffer}();function saveLog(e,t,r){return new Promise((function(n,s){try{var o="".concat(e.id||"default","_").concat(t);var c=i.get(o);if(!c){c=new a(e,t);i.set(o,c)}c.add(r);n()}catch(e){console.error(e);s(e)}}))}function newLoggerFile(e,t,r){var n,s;return"#Software: ".concat((n=e.hostconfig.website)===null||n===void 0?void 0:n.title,";\n#Version: ").concat((s=e.hostconfig.website)===null||s===void 0?void 0:s.ver,";\n#Date: ").concat((0,o.getNowTime)(4,t),";\n#Fields: [time]; type; message;\n").concat(r)}var c=new Map;var l=5e3;function setAppend(e,t,r){return n(this,void 0,void 0,(function(){var n,i,a,u,f,d,h,v,p;var g,m;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,7,,8]);n=((m=(g=e.hostconfig.logger)===null||g===void 0?void 0:g.path)===null||m===void 0?void 0:m.maxsize)||1048576;i=c.get(t);a=Date.now();if(!(!i||!i.ensured||a-i.lastStatMs>=l))return[3,3];return[4,e.asaifs.ensureFile(t)];case 1:s.sent();return[4,e.asaifs.stat(t)];case 2:u=s.sent();i={ensured:true,size:u.size,lastStatMs:a};c.set(t,i);s.label=3;case 3:if(!(i.size>=n))return[3,5];f=new Date;d=t.lastIndexOf(".");h=t.substring(0,d);v=t.substring(d);return[4,e.asaifs.rename(t,"".concat(h,"-").concat((0,o.getNowTime)(5,f)).concat(v))];case 4:s.sent();i.ensured=false;i.size=0;s.label=5;case 5:i.size+=Buffer.byteLength(r);return[4,saveLog(e,t,r)];case 6:s.sent();return[3,8];case 7:p=s.sent();console.error(p);c.delete(t);return[3,8];case 8:return[2]}}))}))}function setLog(e,t,r){return new Promise((function(n,s){try{setAppend(e,t,r).then(n).catch(s)}catch(e){console.error(e);s(e)}}))}function initLog(e){var t,r;function clog(){var t,r;var n=[];for(var s=0;s<arguments.length;s++){n[s]=arguments[s]}if((r=(t=e.hostconfig.logger)===null||t===void 0?void 0:t.lv)===null||r===void 0?void 0:r.view){console.log.apply(console,n)}}function formatArg(e){if(e instanceof Error)return e.message||String(e);if(typeof e==="object"){try{return JSON.stringify(e)}catch(t){return String(e)}}return String(e)}function shouldSample(t){var r;var n=(r=e.hostconfig.logger)===null||r===void 0?void 0:r.sample;if(!n||typeof n!=="object")return true;var s=t.find((function(e){return typeof e==="string"}));if(!s||n[s]==null)return true;var o=Number(n[s]);if(Number.isNaN(o)||o>=1)return true;if(o<=0)return false;return Math.random()<o}function enqueueServerLog(t,r){var n="".concat(e.hostconfig.logger.path.server,"log-").concat((0,o.getNowTime)(2,r),".txt");void saveLog(e,n,t).catch((function(e){return console.error("Log enqueue error:",e)}))}function xlog(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}clog.apply(void 0,e)}function llog(){var t,r,n,s,i,a;var c=[];for(var l=0;l<arguments.length;l++){c[l]=arguments[l]}if(!shouldSample(c))return;var u=new Date;var f=c[0];if(f===1){if((r=(t=e.hostconfig.logger)===null||t===void 0?void 0:t.path)===null||r===void 0?void 0:r.client){var d=c.slice(1).map(formatArg).join("\n");var h="[".concat((0,o.getNowTime)(3,u),"]\n").concat(d,"\n");clog(h);var v="".concat(e.hostconfig.logger.path.client,"log-").concat((0,o.getNowTime)(2,u),".txt");void saveLog(e,v,h).catch((function(e){return console.error("Log enqueue error:",e)}))}return}c.unshift("[".concat((0,o.getNowTime)(3,u),"]"));var p=c.map(formatArg).join("; ").replace(/[\n\r]/g," ")+"\n";if(typeof f==="number"&&f>666){if((s=(n=e.hostconfig.logger)===null||n===void 0?void 0:n.path)===null||s===void 0?void 0:s.server){enqueueServerLog(p,u)}}else if((a=(i=e.hostconfig.logger)===null||i===void 0?void 0:i.path)===null||a===void 0?void 0:a.server){clog(p);enqueueServerLog(p,u)}}if(e&&typeof e==="object"&&((r=(t=e.hostconfig.logger)===null||t===void 0?void 0:t.lv)===null||r===void 0?void 0:r.record)){e.$log=llog}else{e.$log=xlog}}},1725:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.initProcess=initProcess;t.gracefulShutdown=gracefulShutdown;function initProcess(e,t){var r,n,s,o;var i=((n=(r=e===null||e===void 0?void 0:e.hostconfig)===null||r===void 0?void 0:r.tm)===null||n===void 0?void 0:n.maxtry)||10;var a=((o=(s=e===null||e===void 0?void 0:e.hostconfig)===null||s===void 0?void 0:s.tm)===null||o===void 0?void 0:o.restartwindow)||6e4;var c=[];if(process.on&&typeof process.on==="function"&&"uncaughtExceptionMonitor"in process){process.on("uncaughtExceptionMonitor",(function(t){try{e.$log("FATAL","Monitor caught: ".concat((t===null||t===void 0?void 0:t.message)||t))}catch(e){}}))}process.on("unhandledRejection",(function(t,r){var n;var s=(new Error).stack;var o="";if(r&&typeof r==="object"){o=((n=r.constructor)===null||n===void 0?void 0:n.name)||"Promise";var i=(s===null||s===void 0?void 0:s.split("\n"))||[];var a=i.slice(3,6).join(" | ");o+=" Created at: ".concat(a)}var c="";if(t instanceof Error){c="\n".concat(t.name,": ").concat(t.message);if(t.stack)c+="\n【Stack】".concat(t.stack)}else if(typeof t==="object"&&t!==null){try{c=JSON.stringify(t,null,2).substring(0,500)}catch(e){c=String(t)}}else{c=String(t)}var l="Unhandled Promise Rejection:\n【Reason】 ".concat(c,"\n【Promise】").concat(o);e.$log("UNHANDLED_REJECTION",l)}));process.on("uncaughtException",(function(r){var n="Uncaught Exception: ".concat(JSON.stringify(r));try{e.$log("UNCAUGHT_EXCEPTIONS",n)}catch(e){}var s=Date.now();c.push(s);while(c.length>0&&c[0]<s-a){c.shift()}if(c.length>i){try{e.$log("NO_RESTART","Process crashed too frequently, gracefully shutdown and wait for daemon restart.")}catch(e){}try{e.$log("SHUTDOWN","Error:",(r===null||r===void 0?void 0:r.message)||r)}catch(e){}gracefulShutdown(e);return}if(t&&typeof t==="function"){try{t(r)}catch(e){console.error("Error in process error callback:",e)}}}));process.on("SIGTERM",(function(){try{e.$log("SIGTERM","SIGTERM,CLOSING...")}catch(e){}gracefulShutdown(e)}));process.on("SIGINT",(function(){try{e.$log("SIGINT","SIGINT,CLOSING...")}catch(e){}gracefulShutdown(e)}))}function gracefulShutdown(e){var t=6e4;var r;var n=Date.now();r=setTimeout((function(){e.$log("SHUTDOWN","Timeout! Exiting after ".concat(Date.now()-n,"ms"));process.exit(1)}),t);try{Object.values(e.servershttp||{}).forEach((function(t){if(t&&typeof t.close==="function"){t.close((function(t){if(t)e.$log("HTTP","HTTP server close error:",t)}))}}));Object.values(e.serversws||{}).forEach((function(t){if(t&&typeof t.close==="function"){t.close((function(t){if(t)e.$log("WS","WS server close error:",t)}))}}));if(e.hostconfig.guardtm){clearTimeout(e.hostconfig.guardtm);e.hostconfig.guardtm=null}Object.keys(e.tasksws||{}).forEach((function(t){if(e.tasksws[t].httpMonitor){clearInterval(e.tasksws[t].httpMonitor);delete e.tasksws[t].httpMonitor}}));setTimeout((function(){clearTimeout(r);e.$log("SHUTDOWN","Web Server Closed (".concat(Date.now()-n,"ms)"));process.exit(0)}),3e3)}catch(t){e.$log("SHUTDOWN","Graceful shutdown error:",t);clearTimeout(r);process.exit(1)}}},3817:function(e,t,r){"use strict";var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.ensureWsRouteIndex=ensureWsRouteIndex;t.syncApiRouteKeys=syncApiRouteKeys;t.syncWsRouteKeys=syncWsRouteKeys;t.registerApi=registerApi;t.registerWs=registerWs;t.initHostserverApi=initHostserverApi;t.initHostserverWs=initHostserverWs;t.attachRegistry=attachRegistry;var s=r(6856);function ensureWsRouteIndex(e){if(!e.wsRouteIndex){e.wsRouteIndex=new s.WsRouteIndex}return e.wsRouteIndex}function syncApiRouteKeys(e){e.hostserverapis=Object.keys(e.hostserverapi||{})}function syncWsRouteKeys(e){var t=Object.keys(e.hostserverws||{}).filter(s.isWsRouteKey);e.hostserverwss=t;ensureWsRouteIndex(e).rebuild(t)}function registerApi(e,t,r){if(!e.$lib)e.$lib={};if(!e.$lib.api)e.$lib.api={};e.$lib.api[t]=r;if(e.hostserverapi){e.hostserverapi[t]=r;syncApiRouteKeys(e)}}function registerWs(e,t,r){if(!e.$lib)e.$lib={};if(!e.$lib.ws)e.$lib.ws={};e.$lib.ws[t]=r;if(e.hostserverws){e.hostserverws[t]=r;syncWsRouteKeys(e)}}function initHostserverApi(e,t){var r;if(t===void 0){t={}}e.hostserverapi=n(n({},((r=e.$lib)===null||r===void 0?void 0:r.api)||{}),t);syncApiRouteKeys(e)}function initHostserverWs(e,t){var r,s;if(t===void 0){t={}}var o=((r=e.$lib)===null||r===void 0?void 0:r.ServerWs)?e.$lib.ServerWs(e):{};e.hostserverws=n(n(n({},o||{}),((s=e.$lib)===null||s===void 0?void 0:s.ws)||{}),t);syncWsRouteKeys(e);return o}function attachRegistry(e){e.registerApi=function(t,r){return registerApi(e,t,r)};e.registerWs=function(t,r){return registerWs(e,t,r)}}},9527:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolvePathUnderRoots=resolvePathUnderRoots;t.getHostAllowedRoots=getHostAllowedRoots;var n=r(9896);var s=r(6928);function resolvePathUnderRoots(e,t){if(!e||typeof e!=="string"){throw new Error("Invalid path")}if(e.includes("\0")){throw new Error("Invalid path")}var r=e.replace(/\\/g,"/").trim();if(/^[a-zA-Z]:/.test(r)||r.startsWith("//")){throw new Error("Absolute paths are not allowed")}var n=s.normalize(r.replace(/^\/+/,""));for(var o=0,i=t;o<i.length;o++){var a=i[o];if(!a)continue;var c=s.resolve(a);var l=s.resolve(c,n);var u=s.relative(c,l);if(u===""||!u.startsWith("..")&&!s.isAbsolute(u)){return l}}throw new Error("Path not allowed")}function getHostAllowedRoots(e){var t;var r=new Set;var push=function(e){if(typeof e!=="string"||!e.trim())return;try{var t=s.resolve("./"+e.replace(/\\/g,"/"));if(n.existsSync(t))r.add(t)}catch(e){}};for(var o=0,i=(e===null||e===void 0?void 0:e.hostdirs)||[];o<i.length;o++){var a=i[o];push(a)}push("webdata");push("websys");if((t=e===null||e===void 0?void 0:e.weburls)===null||t===void 0?void 0:t.webdir)push(e.weburls.webdir);var c=[];r.forEach((function(e){return c.push(e)}));return c}},4161:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.secureCompare=secureCompare;var n=r(6982);function secureCompare(e,t){if(typeof e!=="string"||typeof t!=="string")return false;var r=Buffer.from(e);var s=Buffer.from(t);if(r.length!==s.length)return false;return(0,n.timingSafeEqual)(r,s)}},4239:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.initTransportBridge=initTransportBridge;t.ensureDefaultConnection=ensureDefaultConnection;t.createTransportDataHandler=createTransportDataHandler;t.wireTransportConnectionLogs=wireTransportConnectionLogs;var n=r(3817);var s=r(3216);var o={tcp:"asaihosttcpPending",grpc:"asaihostgrpcPending",rs485:"asaihost485Pending"};function initTransportBridge(e){var t=e.$asai,r=e.manager;t[e.managerKey]=r;if(!t[e.serversKey]){t[e.serversKey]={}}var i=(0,s.getTransportDefault)(t.hostconfig,e.transport);var a=(0,s.getDefaultConnId)(t.hostconfig,e.transport);if(i){var c=e.buildDefaultConfig(i);t[o[e.transport]]={connId:a,config:c};if((0,s.shouldAutoConnect)(i)&&!t[e.serversKey][a]){t[e.serversKey][a]=r.connect(c)}}(0,n.registerApi)(t,e.apiRoute,e.apiHandler);(0,n.registerWs)(t,e.wsRoute,e.wsHandler);return r}function ensureDefaultConnection(e,t){var r=e[o[t]];if(!r)return null;var n=t==="tcp"?"asaihosttcp":t==="grpc"?"asaihostgrpc":"asaihost485";var s=t==="tcp"?"asaihosttcpserver":t==="grpc"?"asaihostgrpcserver":"asaihost485server";var i=e[n];if(!i||!r.connId)return null;if(!e[s])e[s]={};if(!e[s][r.connId]){e[s][r.connId]=i.connect(r.config)}return r.connId}function createTransportDataHandler(e,t){return function(r){var n,s,o,i,a,c,l;if(typeof r.data==="string"){try{r.data=JSON.parse(r.data)}catch(e){}}if((n=r.data)===null||n===void 0?void 0:n.id){t.watch(r.id,r.data);return}try{var u=(i=(o=(s=e===null||e===void 0?void 0:e.command)===null||s===void 0?void 0:s.commandconfig)===null||o===void 0?void 0:o.config)===null||i===void 0?void 0:i.commandclient;(l=(c=(a=e.serversws)===null||a===void 0?void 0:a[u])===null||c===void 0?void 0:c.broadws)===null||l===void 0?void 0:l.call(c,r.data)}catch(e){}}}function wireTransportConnectionLogs(e,t,r){e.on(t.CONNECTED,(function(e){console.log("".concat(r," 连接上线"),e.id,e.label||"")}));e.on(t.DISCONNECTED,(function(e){console.log("".concat(r," 连接离线"),e.id,e.label||"")}));if(t.ERROR){e.on(t.ERROR,(function(){}))}}},343:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.startProxyServer=startProxyServer;var n=r(2309);var s=r(67);var o=new Set(["transfer-encoding","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailers","upgrade"]);function startProxyServer(e,t){var r,i,a,c,l,u,f;var d=(0,n.getProxyHostCFG)(t,e);if(!d.url)return;try{var h=(0,s.getHTTPServer)(d.proxyhttptype,d,e);var v=(0,s.getHTTPServer)(d.url,d,e);var p=new URL(d.url);var g=p.protocol==="https:";var m=g?443:80;var y=new v.Agent({keepAlive:(r=d.keepAlive)!==null&&r!==void 0?r:true,timeout:(i=d.timeout)!==null&&i!==void 0?i:6e4,keepAliveMsecs:(a=d.keepAliveMsecs)!==null&&a!==void 0?a:3e4,maxSockets:(c=d.maxSockets)!==null&&c!==void 0?c:1e3,maxFreeSockets:(l=d.maxFreeSockets)!==null&&l!==void 0?l:100,rejectUnauthorized:(u=d.rejectUnauthorized)!==null&&u!==void 0?u:false,secureProtocol:(f=d.secureProtocol)!==null&&f!==void 0?f:"TLS_method"});var _=h.AsCreateServer((function(t,r){var n;if(d.redirect){r.writeHead(301,{Location:d.url+t.url,"Strict-Transport-Security":"max-age=31536000"});r.end();return}var i=new URL(t.url||"/",p);var a={};for(var c=0,l=Object.keys(t.headers);c<l.length;c++){var u=l[c];if(!o.has(u.toLowerCase())){a[u]=t.headers[u]}}var f={agent:y,method:t.method,hostname:i.hostname,port:i.port||m,path:i.pathname+i.search,headers:a};if(g){f.servername=i.hostname}var h=(n=d.passUserInfo)!==null&&n!==void 0?n:false;var _=v.request(f,(function(n){Object.keys(n.headers).forEach((function(e){if(!o.has(e.toLowerCase())){r.setHeader(e,n.headers[e])}}));r.statusCode=n.statusCode;if(h){var i=(0,s.getHttpUserinfo)(t,e);if(i)r.setHeader("Userinfo",Array.isArray(i)?i.join("##"):i)}n.pipe(r,{end:true})}));t.pipe(_,{end:true});t.on("error",(function(t){e.$log("PROXY","Client request error:",t);_.destroy()}));_.on("error",(function(t){e.$log("PROXY","Forward request error:",t);e.$log("PROXY","Target: ".concat(i.href,", HTTPS: ").concat(g));if(!r.headersSent){r.writeHead(502,{"Content-Type":"text/plain; charset=utf-8"})}r.end("Bad Gateway: "+t.message)}));_.setTimeout(12e4,(function(){e.$log("PROXY","Forward request timeout");_.destroy();if(!r.headersSent){r.writeHead(504,{"Content-Type":"text/plain; charset=utf-8"})}r.end("Gateway Timeout")}))}));_.on("error",(function(t){if(t.code==="EADDRINUSE"){e.$log("PROXY","Port ".concat(d.proxyport," is already start!"))}else{e.$log("PROXY","Proxy server error:",t)}}));var b=(0,n.getHostIP)(d.proxyip,e);var listenCallback=function(){console.log("[".concat(t,"] Start At ").concat((0,n.getNowTime)(),"."));console.log("Proxy Server ".concat(d.proxyhttptype).concat(b||"localhost",":").concat(d.proxyport,""));console.log("Target Server ".concat(d.url,""));console.log("================================================")};if(b){_.listen(d.proxyport,b,listenCallback)}else{_.listen(d.proxyport,listenCallback)}}catch(t){e.$log("PROXY","Proxy server error:",JSON.stringify(t))}}},2899:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.wsMock=t.deUserInfoWithAsai=void 0;var n=r(3724);Object.defineProperty(t,"deUserInfoWithAsai",{enumerable:true,get:function(){return n.deUserInfoWithAsai}});var s=r(7664);Object.defineProperty(t,"wsMock",{enumerable:true,get:function(){return s.wsMock}})},3724:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.deUserInfoWithAsai=deUserInfoWithAsai;function deUserInfoWithAsai(e,t){if(!Array.isArray(e)||e.length<3){return e}if(e[2]){try{e[2]=t.$lib.AsCode.asdecode(e[2],t.hostconfig.asaisn);e[0]=t.$lib.AsCode.asdecode(e[0],e[2]);e[1]=t.$lib.AsCode.asdecode(e[1],e[2])}catch(e){t.$log("USER","User info decode error:",e)}}return e}},7664:function(e,t){"use strict";var r=this&&this.__assign||function(){r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return r.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.wsMock=wsMock;function wsMock(e){function getKeyByData(e,t){return"_wstask_"+(t||"")+"_"+((e===null||e===void 0?void 0:e.id)||(e===null||e===void 0?void 0:e.ty)+"."+(e===null||e===void 0?void 0:e.ac))}function getMockDb(t){var n;var s=t.reqdata,o=t.mockdata;var i=(o===null||o===void 0?void 0:o.fn)?(n=e.asaimock.fn)===null||n===void 0?void 0:n[o.fn]:null;if(i)return i({workopt:t,$asai:e,mockName:o.fn});return r(r({},s),o||{})}function wsWorkApi(t){var r,n;(n=(r=e.serversws[t.hostdir])===null||r===void 0?void 0:r.sendws)===null||n===void 0?void 0:n.call(r,t.reqdataisobj?getMockDb(t):t.reqdata,0,t.ws)}function wsWorkListen(t,n){var s,o,i;if((s=t.reqdata)===null||s===void 0?void 0:s.off){if(e.tasksws[t.hostdir][n]){clearInterval(e.tasksws[t.hostdir][n]);e.tasksws[t.hostdir][n]=null}return}if(e.tasksws[t.hostdir][n])return;var a=getMockDb(t);e.tasksws[t.hostdir][n]=setInterval((function(){var s=r(r({},getMockDb(t)),{tm:Date.now()});e.serversws[t.hostdir].sendws(s,s.pb||2,t.ws);if(!e.tasksws[t.hostdir][n]){clearInterval(e.tasksws[t.hostdir][n])}}),(a===null||a===void 0?void 0:a.tc)||2e3);(i=(o=t.ws)===null||o===void 0?void 0:o.once)===null||i===void 0?void 0:i.call(o,"close",(function(){var r;if((r=e.tasksws[t.hostdir])===null||r===void 0?void 0:r[n]){clearInterval(e.tasksws[t.hostdir][n]);delete e.tasksws[t.hostdir][n]}}))}function wsWorkMock(t){var r,n,s,o,i;t.mockdata=t.reqdataisobj&&((s=(n=(r=e.asaimock)===null||r===void 0?void 0:r.db)===null||n===void 0?void 0:n[t.hostdir])===null||s===void 0?void 0:s[(o=t.reqdata)===null||o===void 0?void 0:o.ty])||{};if((i=t.mockdata)===null||i===void 0?void 0:i.wc){wsWorkListen(t,getKeyByData(t.reqdata,t.hostdir))}else{wsWorkApi(t)}}return{getKeyByData:getKeyByData,wsWorkApi:wsWorkApi,wsWorkMock:wsWorkMock,wsWorkListen:wsWorkListen,getMockDb:getMockDb}}},6472:function(e,t,r){"use strict";var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.getWsUserinfo=getWsUserinfo;t.isOkWs=isOkWs;t.loginWs=loginWs;var s=r(1354);var o=r(3724);function getWsUserinfo(e,t){var r;try{var n=(r=e.headers)===null||r===void 0?void 0:r["sec-websocket-protocol"];if(!n)return null;return(0,o.deUserInfoWithAsai)(n.split("##"),t)}catch(e){return null}}function checkWsIsOn(e,t){var r,n,s;if(!t)return;try{t.send(JSON.stringify({ty:"publish/web",db:"pong"}));var o=setTimeout((function(){var e,r;(e=t.terminate)===null||e===void 0?void 0:e.call(t);(r=t.close)===null||r===void 0?void 0:r.call(t)}),((n=(r=e===null||e===void 0?void 0:e.hostconfig)===null||r===void 0?void 0:r.tm)===null||n===void 0?void 0:n.d)||3e3);(s=t.once)===null||s===void 0?void 0:s.call(t,"message",(function(){if(o){clearTimeout(o);o=null}}))}catch(e){}}function isOkWs(e,t,r,s,o){var i,a,c;var l=r.Userinfo||[],u=l[0],f=l[2];if(!u){r.close();return false}if(u!=="asai"&&((i=e.connectionsws[t])===null||i===void 0?void 0:i[u])){var d=e.connectionsws[t][u];var h={ty:"publish/web",db:{exit:1,type:"err",lang:"logged",langpm:"".concat(u),con:"".concat(u," logged in!")}};checkWsIsOn(e,d);var v=JSON.stringify(((a=d===null||d===void 0?void 0:d.Userinfo)===null||a===void 0?void 0:a[2])===f?n(n({},h),{db:n(n({},h.db),{lang:"loggedsametk"})}):h);r.send(v);if(((c=d===null||d===void 0?void 0:d.Userinfo)===null||c===void 0?void 0:c[2])===f)d.send(v,(function(){return d.close()}));return false}if(u!=="asai"){var p=e.connectionsws[t]||{};var g=Object.values(p).find((function(e){var t;return((t=e.Userinfo)===null||t===void 0?void 0:t[2])===f}));var m=o.maxonline||100;if(g){var h={ty:"publish/web",db:{exit:1,type:"err",lang:"loggedsametk",langpm:"".concat(u,"(").concat(g.Userinfo[0],")"),con:"".concat(u,"(").concat(g.Userinfo[0],") logged in!")}};var v=JSON.stringify(h);r.send(v);g.send(v,(function(){return g.close()}));return false}if(Object.keys(p).length>=m){r.send(JSON.stringify({ty:"publish/web",db:{exit:1,type:"err",lang:"maxlogged",langpm:"".concat(m),con:"max ".concat(m," users online!")}}),(function(){return r.close()}));return false}}return true}function loginWs(e,t,r,n,o,i,a){var c=(r.Userinfo||[])[0];if(o.ckws&&c){if(!r.tasksws)r.tasksws={};e.connectionsws[t][c]=r}r.on("message",(function(s){if(a)e.$log("WS","message",s.toString());i===null||i===void 0?void 0:i(s,r,t,n)}));r.on("close",(function(){var n;if(o.ckws){if(r.tasksws){Object.values(r.tasksws).forEach((function(e){return e&&clearInterval(e)}));r.tasksws=undefined}if(c&&((n=e.connectionsws[t])===null||n===void 0?void 0:n[c]))delete e.connectionsws[t][c]}if(r.readyState!==s.WebSocket.CLOSED&&r.readyState!==s.WebSocket.CLOSING)r.close()}))}},71:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.clearWsServerTasks=clearWsServerTasks;t.resWsMsg=resWsMsg;t.attachWssHelpers=attachWssHelpers;var n=r(1354);function clearWsServerTasks(e,t){var r=e.tasksws[t];if(r&&typeof r==="object"){Object.values(r).forEach((function(e){if(e)clearInterval(e)}));e.tasksws[t]={}}}function resWsMsg(e,t){var r,n,s;if(e==="ping"||e==="pong")return e;if(typeof e!=="object"||e===null)return e;if(((e===null||e===void 0?void 0:e.aes)||((r=t.$lib.aesfns)===null||r===void 0?void 0:r.allaes))&&(e===null||e===void 0?void 0:e.db)&&((s=(n=t.$lib)===null||n===void 0?void 0:n.aesfns)===null||s===void 0?void 0:s.resAES)){e.db=t.$lib.aesfns.resAES(e.db)}return JSON.stringify(e)}function attachWssHelpers(e,t){e.sendws=function(r,s,o){var i=resWsMsg(r,t);if(s){e.clients.forEach((function(e){if((s===2||e!==o)&&e.readyState===n.WebSocket.OPEN){e.send(i)}}))}else{o.send(i)}};e.broadws=function(r){var s=resWsMsg(r,t);e.clients.forEach((function(e){if((e===null||e===void 0?void 0:e.readyState)===n.WebSocket.OPEN)e.send(s)}))}}},6856:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.WsRouteIndex=void 0;t.createWsRouteIndex=createWsRouteIndex;t.isWsRouteKey=isWsRouteKey;var r=new Set(["wsWork","commandwork"]);var n=function(){function WsRouteIndex(){this.routes=[]}WsRouteIndex.prototype.rebuild=function(e){this.routes=e.filter((function(e){return e&&!r.has(e)})).sort((function(e,t){return t.length-e.length}))};WsRouteIndex.prototype.matchTy=function(e){if(!e||typeof e!=="string")return undefined;for(var t=0,r=this.routes;t<r.length;t++){var n=r[t];if(e.startsWith(n))return n}return undefined};WsRouteIndex.prototype.matchString=function(e){if(typeof e!=="string")return undefined;for(var t=0,r=this.routes;t<r.length;t++){var n=r[t];if(e.startsWith(n))return n}return undefined};return WsRouteIndex}();t.WsRouteIndex=n;function createWsRouteIndex(e){if(e===void 0){e=[]}var t=new n;t.rebuild(e);return t}function isWsRouteKey(e){return!!e&&!r.has(e)}},6401:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getWsUserinfo=t.clearWsServerTasks=void 0;t.createWSHost=createWSHost;var n=r(1354);var s=r(2309);var o=r(5105);var i=r(6472);var a=r(71);var c=r(71);Object.defineProperty(t,"clearWsServerTasks",{enumerable:true,get:function(){return c.clearWsServerTasks}});var l=r(6472);Object.defineProperty(t,"getWsUserinfo",{enumerable:true,get:function(){return l.getWsUserinfo}});function createWSHost(e,t){var r,c;var l=(0,s.getHostCFG)(t,e);var u=(0,o.getWorkHandler)("wsWork");var f=!!((c=(r=e.hostconfig.logger)===null||r===void 0?void 0:r.lv)===null||c===void 0?void 0:c.view);try{if(e.serversws[t])return;if(l.ckws&&!e.connectionsws[t]){e.connectionsws[t]={}}if(!e.tasksws[t])e.tasksws[t]={};var d=new n.WebSocketServer({server:e.servershttp[t],perMessageDeflate:false});(0,a.attachWssHelpers)(d,e);d.on("error",(function(r){var n;(0,a.clearWsServerTasks)(e,t);e.$log("WS","WS Server error!",r);(n=d.close)===null||n===void 0?void 0:n.call(d,(function(){e.$log("WS","WS Server closed");delete e.serversws[t]}))}));d.on("close",(function(r,n){try{e.$log("WS","WebSocket closed, server ".concat(t,", code: ").concat(r,", reason: ").concat(n===null||n===void 0?void 0:n.toString()));(0,a.clearWsServerTasks)(e,t)}catch(t){e.$log("WS","WS close handler error:",t)}}));d.on("connection",(function(r,n){var s=l.maxws||100;var o=e.connectionsws[t]||{};var a=l.ckws?Object.keys(o).length:0;if(a>=s){e.$log("WS","WS Connection MAX rejected (".concat(a,"/").concat(s,")"));var c=JSON.stringify({ty:"publish/web",db:{exit:1,type:"err",lang:"maxws",langpm:"".concat(s),con:"max ".concat(s," clients online!")}});r.send(c,(function(){return r.close(1013,"Server busy")}));return}n.Userinfo=(0,i.getWsUserinfo)(n,e)||[];r.Userinfo=n.Userinfo;var d=!l.ckws||(0,i.isOkWs)(e,t,r,n,l);if(d){(0,i.loginWs)(e,t,r,n,l,u,f)}else{r.close()}}));e.serversws[t]=d}catch(t){e.$log("WS","ws server:",JSON.stringify(t))}}},8327:module=>{module.exports=eval("require")("bufferutil")},2414:module=>{module.exports=eval("require")("utf-8-validate")},181:e=>{"use strict";e.exports=require("buffer")},6982:e=>{"use strict";e.exports=require("crypto")},4434:e=>{"use strict";e.exports=require("events")},9896:e=>{"use strict";e.exports=require("fs")},8611:e=>{"use strict";e.exports=require("http")},5692:e=>{"use strict";e.exports=require("https")},9278:e=>{"use strict";e.exports=require("net")},857:e=>{"use strict";e.exports=require("os")},6928:e=>{"use strict";e.exports=require("path")},2203:e=>{"use strict";e.exports=require("stream")},4756:e=>{"use strict";e.exports=require("tls")},7016:e=>{"use strict";e.exports=require("url")},3106:e=>{"use strict";e.exports=require("zlib")}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var n=true;try{__webpack_modules__[e].call(r.exports,r,r.exports,__nccwpck_require__);n=false}finally{if(n)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__={};(()=>{"use strict";var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:true});e.initAsaiHost=void 0;var t=__nccwpck_require__(5105);var r=__nccwpck_require__(2899);var n=__nccwpck_require__(3135);function hostDefault(e){if(e&&typeof e==="object"&&"default"in e){var t=e.default;if(t!==undefined)return t}return e}var s=hostDefault(t.default);var o=__nccwpck_require__(3216);var i=__nccwpck_require__(6332);var a=__nccwpck_require__(2370);var c={fn:function(e,t){return s(e,t)},AsaiCommon:n.default,AsaiUtils:r,normalizeHostConfig:o.normalizeHostConfig,validateHostConfig:i.validateHostConfig,getTransportBlock:o.getTransportBlock,getTransportDefault:o.getTransportDefault,hasTransportDefault:o.hasTransportDefault,getDefaultConnId:o.getDefaultConnId,resolveReconnectOptions:o.resolveReconnectOptions,shouldAutoConnect:o.shouldAutoConnect,registerApi:a.registerApi,registerWs:a.registerWs,initHostserverApi:a.initHostserverApi,initHostserverWs:a.initHostserverWs,syncApiRouteKeys:a.syncApiRouteKeys,syncWsRouteKeys:a.syncWsRouteKeys,initTransportBridge:a.initTransportBridge,ensureDefaultConnection:a.ensureDefaultConnection,createTransportDataHandler:a.createTransportDataHandler,wireTransportConnectionLogs:a.wireTransportConnectionLogs,secureCompare:a.secureCompare,resolvePathUnderRoots:a.resolvePathUnderRoots,getHostAllowedRoots:a.getHostAllowedRoots};e.initAsaiHost=c;e["default"]=c})();module.exports=__webpack_exports__})();
1
+ (()=>{var __webpack_modules__={1354:(e,t,r)=>{"use strict";const n=r(6412);const s=r(1335);const o=r(4376);const i=r(893);const a=r(7389);const c=r(3332);const l=r(6681);const u=r(129);l.createWebSocketStream=n;l.extension=s;l.PerMessageDeflate=o;l.Receiver=i;l.Sender=a;l.Server=u;l.subprotocol=c;l.WebSocket=l;l.WebSocketServer=u;e.exports=l},5803:(e,t,r)=>{"use strict";const{EMPTY_BUFFER:n}=r(1791);const s=Buffer[Symbol.species];function concat(e,t){if(e.length===0)return n;if(e.length===1)return e[0];const r=Buffer.allocUnsafe(t);let o=0;for(let t=0;t<e.length;t++){const n=e[t];r.set(n,o);o+=n.length}if(o<t){return new s(r.buffer,r.byteOffset,o)}return r}function _mask(e,t,r,n,s){for(let o=0;o<s;o++){r[n+o]=e[o]^t[o&3]}}function _unmask(e,t){for(let r=0;r<e.length;r++){e[r]^=t[r&3]}}function toArrayBuffer(e){if(e.length===e.buffer.byteLength){return e.buffer}return e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}function toBuffer(e){toBuffer.readOnly=true;if(Buffer.isBuffer(e))return e;let t;if(e instanceof ArrayBuffer){t=new s(e)}else if(ArrayBuffer.isView(e)){t=new s(e.buffer,e.byteOffset,e.byteLength)}else{t=Buffer.from(e);toBuffer.readOnly=false}return t}e.exports={concat:concat,mask:_mask,toArrayBuffer:toArrayBuffer,toBuffer:toBuffer,unmask:_unmask};if(!process.env.WS_NO_BUFFER_UTIL){try{const t=r(8327);e.exports.mask=function(e,r,n,s,o){if(o<48)_mask(e,r,n,s,o);else t.mask(e,r,n,s,o)};e.exports.unmask=function(e,r){if(e.length<32)_unmask(e,r);else t.unmask(e,r)}}catch(e){}}},1791:e=>{"use strict";const t=["nodebuffer","arraybuffer","fragments"];const r=typeof Blob!=="undefined";if(r)t.push("blob");e.exports={BINARY_TYPES:t,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:r,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}},4634:(e,t,r)=>{"use strict";const{kForOnEventAttribute:n,kListener:s}=r(1791);const o=Symbol("kCode");const i=Symbol("kData");const a=Symbol("kError");const c=Symbol("kMessage");const l=Symbol("kReason");const u=Symbol("kTarget");const f=Symbol("kType");const d=Symbol("kWasClean");class Event{constructor(e){this[u]=null;this[f]=e}get target(){return this[u]}get type(){return this[f]}}Object.defineProperty(Event.prototype,"target",{enumerable:true});Object.defineProperty(Event.prototype,"type",{enumerable:true});class CloseEvent extends Event{constructor(e,t={}){super(e);this[o]=t.code===undefined?0:t.code;this[l]=t.reason===undefined?"":t.reason;this[d]=t.wasClean===undefined?false:t.wasClean}get code(){return this[o]}get reason(){return this[l]}get wasClean(){return this[d]}}Object.defineProperty(CloseEvent.prototype,"code",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"reason",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"wasClean",{enumerable:true});class ErrorEvent extends Event{constructor(e,t={}){super(e);this[a]=t.error===undefined?null:t.error;this[c]=t.message===undefined?"":t.message}get error(){return this[a]}get message(){return this[c]}}Object.defineProperty(ErrorEvent.prototype,"error",{enumerable:true});Object.defineProperty(ErrorEvent.prototype,"message",{enumerable:true});class MessageEvent extends Event{constructor(e,t={}){super(e);this[i]=t.data===undefined?null:t.data}get data(){return this[i]}}Object.defineProperty(MessageEvent.prototype,"data",{enumerable:true});const h={addEventListener(e,t,r={}){for(const o of this.listeners(e)){if(!r[n]&&o[s]===t&&!o[n]){return}}let o;if(e==="message"){o=function onMessage(e,r){const n=new MessageEvent("message",{data:r?e:e.toString()});n[u]=this;callListener(t,this,n)}}else if(e==="close"){o=function onClose(e,r){const n=new CloseEvent("close",{code:e,reason:r.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});n[u]=this;callListener(t,this,n)}}else if(e==="error"){o=function onError(e){const r=new ErrorEvent("error",{error:e,message:e.message});r[u]=this;callListener(t,this,r)}}else if(e==="open"){o=function onOpen(){const e=new Event("open");e[u]=this;callListener(t,this,e)}}else{return}o[n]=!!r[n];o[s]=t;if(r.once){this.once(e,o)}else{this.on(e,o)}},removeEventListener(e,t){for(const r of this.listeners(e)){if(r[s]===t&&!r[n]){this.removeListener(e,r);break}}}};e.exports={CloseEvent:CloseEvent,ErrorEvent:ErrorEvent,Event:Event,EventTarget:h,MessageEvent:MessageEvent};function callListener(e,t,r){if(typeof e==="object"&&e.handleEvent){e.handleEvent.call(e,r)}else{e.call(t,r)}}},1335:(e,t,r)=>{"use strict";const{tokenChars:n}=r(6615);function push(e,t,r){if(e[t]===undefined)e[t]=[r];else e[t].push(r)}function parse(e){const t=Object.create(null);let r=Object.create(null);let s=false;let o=false;let i=false;let a;let c;let l=-1;let u=-1;let f=-1;let d=0;for(;d<e.length;d++){u=e.charCodeAt(d);if(a===undefined){if(f===-1&&n[u]===1){if(l===-1)l=d}else if(d!==0&&(u===32||u===9)){if(f===-1&&l!==-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;const n=e.slice(l,f);if(u===44){push(t,n,r);r=Object.create(null)}else{a=n}l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else if(c===undefined){if(f===-1&&n[u]===1){if(l===-1)l=d}else if(u===32||u===9){if(f===-1&&l!==-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;push(r,e.slice(l,f),true);if(u===44){push(t,a,r);r=Object.create(null);a=undefined}l=f=-1}else if(u===61&&l!==-1&&f===-1){c=e.slice(l,d);l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else{if(o){if(n[u]!==1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(l===-1)l=d;else if(!s)s=true;o=false}else if(i){if(n[u]===1){if(l===-1)l=d}else if(u===34&&l!==-1){i=false;f=d}else if(u===92){o=true}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else if(u===34&&e.charCodeAt(d-1)===61){i=true}else if(f===-1&&n[u]===1){if(l===-1)l=d}else if(l!==-1&&(u===32||u===9)){if(f===-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;let n=e.slice(l,f);if(s){n=n.replace(/\\/g,"");s=false}push(r,c,n);if(u===44){push(t,a,r);r=Object.create(null);a=undefined}c=undefined;l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}}if(l===-1||i||u===32||u===9){throw new SyntaxError("Unexpected end of input")}if(f===-1)f=d;const h=e.slice(l,f);if(a===undefined){push(t,h,r)}else{if(c===undefined){push(r,h,true)}else if(s){push(r,c,h.replace(/\\/g,""))}else{push(r,c,h)}push(t,a,r)}return t}function format(e){return Object.keys(e).map((t=>{let r=e[t];if(!Array.isArray(r))r=[r];return r.map((e=>[t].concat(Object.keys(e).map((t=>{let r=e[t];if(!Array.isArray(r))r=[r];return r.map((e=>e===true?t:`${t}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")}e.exports={format:format,parse:parse}},958:e=>{"use strict";const t=Symbol("kDone");const r=Symbol("kRun");class Limiter{constructor(e){this[t]=()=>{this.pending--;this[r]()};this.concurrency=e||Infinity;this.jobs=[];this.pending=0}add(e){this.jobs.push(e);this[r]()}[r](){if(this.pending===this.concurrency)return;if(this.jobs.length){const e=this.jobs.shift();this.pending++;e(this[t])}}}e.exports=Limiter},4376:(e,t,r)=>{"use strict";const n=r(3106);const s=r(5803);const o=r(958);const{kStatusCode:i}=r(1791);const a=Buffer[Symbol.species];const c=Buffer.from([0,0,255,255]);const l=Symbol("permessage-deflate");const u=Symbol("total-length");const f=Symbol("callback");const d=Symbol("buffers");const h=Symbol("error");let v;class PerMessageDeflate{constructor(e){this._options=e||{};this._threshold=this._options.threshold!==undefined?this._options.threshold:1024;this._maxPayload=this._options.maxPayload|0;this._isServer=!!this._options.isServer;this._deflate=null;this._inflate=null;this.params=null;if(!v){const e=this._options.concurrencyLimit!==undefined?this._options.concurrencyLimit:10;v=new o(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};if(this._options.serverNoContextTakeover){e.server_no_context_takeover=true}if(this._options.clientNoContextTakeover){e.client_no_context_takeover=true}if(this._options.serverMaxWindowBits){e.server_max_window_bits=this._options.serverMaxWindowBits}if(this._options.clientMaxWindowBits){e.client_max_window_bits=this._options.clientMaxWindowBits}else if(this._options.clientMaxWindowBits==null){e.client_max_window_bits=true}return e}accept(e){e=this.normalizeParams(e);this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e);return this.params}cleanup(){if(this._inflate){this._inflate.close();this._inflate=null}if(this._deflate){const e=this._deflate[f];this._deflate.close();this._deflate=null;if(e){e(new Error("The deflate stream was closed while data was being processed"))}}}acceptAsServer(e){const t=this._options;const r=e.find((e=>{if(t.serverNoContextTakeover===false&&e.server_no_context_takeover||e.server_max_window_bits&&(t.serverMaxWindowBits===false||typeof t.serverMaxWindowBits==="number"&&t.serverMaxWindowBits>e.server_max_window_bits)||typeof t.clientMaxWindowBits==="number"&&!e.client_max_window_bits){return false}return true}));if(!r){throw new Error("None of the extension offers can be accepted")}if(t.serverNoContextTakeover){r.server_no_context_takeover=true}if(t.clientNoContextTakeover){r.client_no_context_takeover=true}if(typeof t.serverMaxWindowBits==="number"){r.server_max_window_bits=t.serverMaxWindowBits}if(typeof t.clientMaxWindowBits==="number"){r.client_max_window_bits=t.clientMaxWindowBits}else if(r.client_max_window_bits===true||t.clientMaxWindowBits===false){delete r.client_max_window_bits}return r}acceptAsClient(e){const t=e[0];if(this._options.clientNoContextTakeover===false&&t.client_no_context_takeover){throw new Error('Unexpected parameter "client_no_context_takeover"')}if(!t.client_max_window_bits){if(typeof this._options.clientMaxWindowBits==="number"){t.client_max_window_bits=this._options.clientMaxWindowBits}}else if(this._options.clientMaxWindowBits===false||typeof this._options.clientMaxWindowBits==="number"&&t.client_max_window_bits>this._options.clientMaxWindowBits){throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}return t}normalizeParams(e){e.forEach((e=>{Object.keys(e).forEach((t=>{let r=e[t];if(r.length>1){throw new Error(`Parameter "${t}" must have only a single value`)}r=r[0];if(t==="client_max_window_bits"){if(r!==true){const e=+r;if(!Number.isInteger(e)||e<8||e>15){throw new TypeError(`Invalid value for parameter "${t}": ${r}`)}r=e}else if(!this._isServer){throw new TypeError(`Invalid value for parameter "${t}": ${r}`)}}else if(t==="server_max_window_bits"){const e=+r;if(!Number.isInteger(e)||e<8||e>15){throw new TypeError(`Invalid value for parameter "${t}": ${r}`)}r=e}else if(t==="client_no_context_takeover"||t==="server_no_context_takeover"){if(r!==true){throw new TypeError(`Invalid value for parameter "${t}": ${r}`)}}else{throw new Error(`Unknown parameter "${t}"`)}e[t]=r}))}));return e}decompress(e,t,r){v.add((n=>{this._decompress(e,t,((e,t)=>{n();r(e,t)}))}))}compress(e,t,r){v.add((n=>{this._compress(e,t,((e,t)=>{n();r(e,t)}))}))}_decompress(e,t,r){const o=this._isServer?"client":"server";if(!this._inflate){const e=`${o}_max_window_bits`;const t=typeof this.params[e]!=="number"?n.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=n.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t});this._inflate[l]=this;this._inflate[u]=0;this._inflate[d]=[];this._inflate.on("error",inflateOnError);this._inflate.on("data",inflateOnData)}this._inflate[f]=r;this._inflate.write(e);if(t)this._inflate.write(c);this._inflate.flush((()=>{const e=this._inflate[h];if(e){this._inflate.close();this._inflate=null;r(e);return}const n=s.concat(this._inflate[d],this._inflate[u]);if(this._inflate._readableState.endEmitted){this._inflate.close();this._inflate=null}else{this._inflate[u]=0;this._inflate[d]=[];if(t&&this.params[`${o}_no_context_takeover`]){this._inflate.reset()}}r(null,n)}))}_compress(e,t,r){const o=this._isServer?"server":"client";if(!this._deflate){const e=`${o}_max_window_bits`;const t=typeof this.params[e]!=="number"?n.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=n.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t});this._deflate[u]=0;this._deflate[d]=[];this._deflate.on("data",deflateOnData)}this._deflate[f]=r;this._deflate.write(e);this._deflate.flush(n.Z_SYNC_FLUSH,(()=>{if(!this._deflate){return}let e=s.concat(this._deflate[d],this._deflate[u]);if(t){e=new a(e.buffer,e.byteOffset,e.length-4)}this._deflate[f]=null;this._deflate[u]=0;this._deflate[d]=[];if(t&&this.params[`${o}_no_context_takeover`]){this._deflate.reset()}r(null,e)}))}}e.exports=PerMessageDeflate;function deflateOnData(e){this[d].push(e);this[u]+=e.length}function inflateOnData(e){this[u]+=e.length;if(this[l]._maxPayload<1||this[u]<=this[l]._maxPayload){this[d].push(e);return}this[h]=new RangeError("Max payload size exceeded");this[h].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH";this[h][i]=1009;this.removeListener("data",inflateOnData);this.reset()}function inflateOnError(e){this[l]._inflate=null;if(this[h]){this[f](this[h]);return}e[i]=1007;this[f](e)}},893:(e,t,r)=>{"use strict";const{Writable:n}=r(2203);const s=r(4376);const{BINARY_TYPES:o,EMPTY_BUFFER:i,kStatusCode:a,kWebSocket:c}=r(1791);const{concat:l,toArrayBuffer:u,unmask:f}=r(5803);const{isValidStatusCode:d,isValidUTF8:h}=r(6615);const v=Buffer[Symbol.species];const p=0;const g=1;const m=2;const y=3;const _=4;const b=5;const S=6;class Receiver extends n{constructor(e={}){super();this._allowSynchronousEvents=e.allowSynchronousEvents!==undefined?e.allowSynchronousEvents:true;this._binaryType=e.binaryType||o[0];this._extensions=e.extensions||{};this._isServer=!!e.isServer;this._maxPayload=e.maxPayload|0;this._skipUTF8Validation=!!e.skipUTF8Validation;this[c]=undefined;this._bufferedBytes=0;this._buffers=[];this._compressed=false;this._payloadLength=0;this._mask=undefined;this._fragmented=0;this._masked=false;this._fin=false;this._opcode=0;this._totalPayloadLength=0;this._messageLength=0;this._fragments=[];this._errored=false;this._loop=false;this._state=p}_write(e,t,r){if(this._opcode===8&&this._state==p)return r();this._bufferedBytes+=e.length;this._buffers.push(e);this.startLoop(r)}consume(e){this._bufferedBytes-=e;if(e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){const t=this._buffers[0];this._buffers[0]=new v(t.buffer,t.byteOffset+e,t.length-e);return new v(t.buffer,t.byteOffset,e)}const t=Buffer.allocUnsafe(e);do{const r=this._buffers[0];const n=t.length-e;if(e>=r.length){t.set(this._buffers.shift(),n)}else{t.set(new Uint8Array(r.buffer,r.byteOffset,e),n);this._buffers[0]=new v(r.buffer,r.byteOffset+e,r.length-e)}e-=r.length}while(e>0);return t}startLoop(e){this._loop=true;do{switch(this._state){case p:this.getInfo(e);break;case g:this.getPayloadLength16(e);break;case m:this.getPayloadLength64(e);break;case y:this.getMask();break;case _:this.getData(e);break;case b:case S:this._loop=false;return}}while(this._loop);if(!this._errored)e()}getInfo(e){if(this._bufferedBytes<2){this._loop=false;return}const t=this.consume(2);if((t[0]&48)!==0){const t=this.createError(RangeError,"RSV2 and RSV3 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(t);return}const r=(t[0]&64)===64;if(r&&!this._extensions[s.extensionName]){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}this._fin=(t[0]&128)===128;this._opcode=t[0]&15;this._payloadLength=t[1]&127;if(this._opcode===0){if(r){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(!this._fragmented){const t=this.createError(RangeError,"invalid opcode 0",true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){const t=this.createError(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin){const t=this.createError(RangeError,"FIN must be set",true,1002,"WS_ERR_EXPECTED_FIN");e(t);return}if(r){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){const t=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,true,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(t);return}}else{const t=this.createError(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}if(!this._fin&&!this._fragmented)this._fragmented=this._opcode;this._masked=(t[1]&128)===128;if(this._isServer){if(!this._masked){const t=this.createError(RangeError,"MASK must be set",true,1002,"WS_ERR_EXPECTED_MASK");e(t);return}}else if(this._masked){const t=this.createError(RangeError,"MASK must be clear",true,1002,"WS_ERR_UNEXPECTED_MASK");e(t);return}if(this._payloadLength===126)this._state=g;else if(this._payloadLength===127)this._state=m;else this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=false;return}this._payloadLength=this.consume(2).readUInt16BE(0);this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=false;return}const t=this.consume(8);const r=t.readUInt32BE(0);if(r>Math.pow(2,53-32)-1){const t=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",false,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(t);return}this._payloadLength=r*Math.pow(2,32)+t.readUInt32BE(4);this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8){this._totalPayloadLength+=this._payloadLength;if(this._totalPayloadLength>this._maxPayload&&this._maxPayload>0){const t=this.createError(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(t);return}}if(this._masked)this._state=y;else this._state=_}getMask(){if(this._bufferedBytes<4){this._loop=false;return}this._mask=this.consume(4);this._state=_}getData(e){let t=i;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=false;return}t=this.consume(this._payloadLength);if(this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0){f(t,this._mask)}}if(this._opcode>7){this.controlMessage(t,e);return}if(this._compressed){this._state=b;this.decompress(t,e);return}if(t.length){this._messageLength=this._totalPayloadLength;this._fragments.push(t)}this.dataMessage(e)}decompress(e,t){const r=this._extensions[s.extensionName];r.decompress(e,this._fin,((e,r)=>{if(e)return t(e);if(r.length){this._messageLength+=r.length;if(this._messageLength>this._maxPayload&&this._maxPayload>0){const e=this.createError(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(e);return}this._fragments.push(r)}this.dataMessage(t);if(this._state===p)this.startLoop(t)}))}dataMessage(e){if(!this._fin){this._state=p;return}const t=this._messageLength;const r=this._fragments;this._totalPayloadLength=0;this._messageLength=0;this._fragmented=0;this._fragments=[];if(this._opcode===2){let n;if(this._binaryType==="nodebuffer"){n=l(r,t)}else if(this._binaryType==="arraybuffer"){n=u(l(r,t))}else if(this._binaryType==="blob"){n=new Blob(r)}else{n=r}if(this._allowSynchronousEvents){this.emit("message",n,true);this._state=p}else{this._state=S;setImmediate((()=>{this.emit("message",n,true);this._state=p;this.startLoop(e)}))}}else{const n=l(r,t);if(!this._skipUTF8Validation&&!h(n)){const t=this.createError(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8");e(t);return}if(this._state===b||this._allowSynchronousEvents){this.emit("message",n,false);this._state=p}else{this._state=S;setImmediate((()=>{this.emit("message",n,false);this._state=p;this.startLoop(e)}))}}}controlMessage(e,t){if(this._opcode===8){if(e.length===0){this._loop=false;this.emit("conclude",1005,i);this.end()}else{const r=e.readUInt16BE(0);if(!d(r)){const e=this.createError(RangeError,`invalid status code ${r}`,true,1002,"WS_ERR_INVALID_CLOSE_CODE");t(e);return}const n=new v(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!h(n)){const e=this.createError(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8");t(e);return}this._loop=false;this.emit("conclude",r,n);this.end()}this._state=p;return}if(this._allowSynchronousEvents){this.emit(this._opcode===9?"ping":"pong",e);this._state=p}else{this._state=S;setImmediate((()=>{this.emit(this._opcode===9?"ping":"pong",e);this._state=p;this.startLoop(t)}))}}createError(e,t,r,n,s){this._loop=false;this._errored=true;const o=new e(r?`Invalid WebSocket frame: ${t}`:t);Error.captureStackTrace(o,this.createError);o.code=s;o[a]=n;return o}}e.exports=Receiver},7389:(e,t,r)=>{"use strict";const{Duplex:n}=r(2203);const{randomFillSync:s}=r(6982);const o=r(4376);const{EMPTY_BUFFER:i,kWebSocket:a,NOOP:c}=r(1791);const{isBlob:l,isValidStatusCode:u}=r(6615);const{mask:f,toBuffer:d}=r(5803);const h=Symbol("kByteLength");const v=Buffer.alloc(4);const p=8*1024;let g;let m=p;const y=0;const _=1;const b=2;class Sender{constructor(e,t,r){this._extensions=t||{};if(r){this._generateMask=r;this._maskBuffer=Buffer.alloc(4)}this._socket=e;this._firstFragment=true;this._compress=false;this._bufferedBytes=0;this._queue=[];this._state=y;this.onerror=c;this[a]=undefined}static frame(e,t){let r;let n=false;let o=2;let i=false;if(t.mask){r=t.maskBuffer||v;if(t.generateMask){t.generateMask(r)}else{if(m===p){if(g===undefined){g=Buffer.alloc(p)}s(g,0,p);m=0}r[0]=g[m++];r[1]=g[m++];r[2]=g[m++];r[3]=g[m++]}i=(r[0]|r[1]|r[2]|r[3])===0;o=6}let a;if(typeof e==="string"){if((!t.mask||i)&&t[h]!==undefined){a=t[h]}else{e=Buffer.from(e);a=e.length}}else{a=e.length;n=t.mask&&t.readOnly&&!i}let c=a;if(a>=65536){o+=8;c=127}else if(a>125){o+=2;c=126}const l=Buffer.allocUnsafe(n?a+o:o);l[0]=t.fin?t.opcode|128:t.opcode;if(t.rsv1)l[0]|=64;l[1]=c;if(c===126){l.writeUInt16BE(a,2)}else if(c===127){l[2]=l[3]=0;l.writeUIntBE(a,4,6)}if(!t.mask)return[l,e];l[1]|=128;l[o-4]=r[0];l[o-3]=r[1];l[o-2]=r[2];l[o-1]=r[3];if(i)return[l,e];if(n){f(e,r,l,o,a);return[l]}f(e,r,e,0,a);return[l,e]}close(e,t,r,n){let s;if(e===undefined){s=i}else if(typeof e!=="number"||!u(e)){throw new TypeError("First argument must be a valid error code number")}else if(t===undefined||!t.length){s=Buffer.allocUnsafe(2);s.writeUInt16BE(e,0)}else{const r=Buffer.byteLength(t);if(r>123){throw new RangeError("The message must not be greater than 123 bytes")}s=Buffer.allocUnsafe(2+r);s.writeUInt16BE(e,0);if(typeof t==="string"){s.write(t,2)}else{s.set(t,2)}}const o={[h]:s.length,fin:true,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:false,rsv1:false};if(this._state!==y){this.enqueue([this.dispatch,s,false,o,n])}else{this.sendFrame(Sender.frame(s,o),n)}}ping(e,t,r){let n;let s;if(typeof e==="string"){n=Buffer.byteLength(e);s=false}else if(l(e)){n=e.size;s=false}else{e=d(e);n=e.length;s=d.readOnly}if(n>125){throw new RangeError("The data size must not be greater than 125 bytes")}const o={[h]:n,fin:true,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:false};if(l(e)){if(this._state!==y){this.enqueue([this.getBlobData,e,false,o,r])}else{this.getBlobData(e,false,o,r)}}else if(this._state!==y){this.enqueue([this.dispatch,e,false,o,r])}else{this.sendFrame(Sender.frame(e,o),r)}}pong(e,t,r){let n;let s;if(typeof e==="string"){n=Buffer.byteLength(e);s=false}else if(l(e)){n=e.size;s=false}else{e=d(e);n=e.length;s=d.readOnly}if(n>125){throw new RangeError("The data size must not be greater than 125 bytes")}const o={[h]:n,fin:true,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:false};if(l(e)){if(this._state!==y){this.enqueue([this.getBlobData,e,false,o,r])}else{this.getBlobData(e,false,o,r)}}else if(this._state!==y){this.enqueue([this.dispatch,e,false,o,r])}else{this.sendFrame(Sender.frame(e,o),r)}}send(e,t,r){const n=this._extensions[o.extensionName];let s=t.binary?2:1;let i=t.compress;let a;let c;if(typeof e==="string"){a=Buffer.byteLength(e);c=false}else if(l(e)){a=e.size;c=false}else{e=d(e);a=e.length;c=d.readOnly}if(this._firstFragment){this._firstFragment=false;if(i&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]){i=a>=n._threshold}this._compress=i}else{i=false;s=0}if(t.fin)this._firstFragment=true;const u={[h]:a,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:i};if(l(e)){if(this._state!==y){this.enqueue([this.getBlobData,e,this._compress,u,r])}else{this.getBlobData(e,this._compress,u,r)}}else if(this._state!==y){this.enqueue([this.dispatch,e,this._compress,u,r])}else{this.dispatch(e,this._compress,u,r)}}getBlobData(e,t,r,n){this._bufferedBytes+=r[h];this._state=b;e.arrayBuffer().then((e=>{if(this._socket.destroyed){const e=new Error("The socket was closed while the blob was being read");process.nextTick(callCallbacks,this,e,n);return}this._bufferedBytes-=r[h];const s=d(e);if(!t){this._state=y;this.sendFrame(Sender.frame(s,r),n);this.dequeue()}else{this.dispatch(s,t,r,n)}})).catch((e=>{process.nextTick(onError,this,e,n)}))}dispatch(e,t,r,n){if(!t){this.sendFrame(Sender.frame(e,r),n);return}const s=this._extensions[o.extensionName];this._bufferedBytes+=r[h];this._state=_;s.compress(e,r.fin,((e,t)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");callCallbacks(this,e,n);return}this._bufferedBytes-=r[h];this._state=y;r.readOnly=false;this.sendFrame(Sender.frame(t,r),n);this.dequeue()}))}dequeue(){while(this._state===y&&this._queue.length){const e=this._queue.shift();this._bufferedBytes-=e[3][h];Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][h];this._queue.push(e)}sendFrame(e,t){if(e.length===2){this._socket.cork();this._socket.write(e[0]);this._socket.write(e[1],t);this._socket.uncork()}else{this._socket.write(e[0],t)}}}e.exports=Sender;function callCallbacks(e,t,r){if(typeof r==="function")r(t);for(let r=0;r<e._queue.length;r++){const n=e._queue[r];const s=n[n.length-1];if(typeof s==="function")s(t)}}function onError(e,t,r){callCallbacks(e,t,r);e.onerror(t)}},6412:(e,t,r)=>{"use strict";const n=r(6681);const{Duplex:s}=r(2203);function emitClose(e){e.emit("close")}function duplexOnEnd(){if(!this.destroyed&&this._writableState.finished){this.destroy()}}function duplexOnError(e){this.removeListener("error",duplexOnError);this.destroy();if(this.listenerCount("error")===0){this.emit("error",e)}}function createWebSocketStream(e,t){let r=true;const n=new s({...t,autoDestroy:false,emitClose:false,objectMode:false,writableObjectMode:false});e.on("message",(function message(t,r){const s=!r&&n._readableState.objectMode?t.toString():t;if(!n.push(s))e.pause()}));e.once("error",(function error(e){if(n.destroyed)return;r=false;n.destroy(e)}));e.once("close",(function close(){if(n.destroyed)return;n.push(null)}));n._destroy=function(t,s){if(e.readyState===e.CLOSED){s(t);process.nextTick(emitClose,n);return}let o=false;e.once("error",(function error(e){o=true;s(e)}));e.once("close",(function close(){if(!o)s(t);process.nextTick(emitClose,n)}));if(r)e.terminate()};n._final=function(t){if(e.readyState===e.CONNECTING){e.once("open",(function open(){n._final(t)}));return}if(e._socket===null)return;if(e._socket._writableState.finished){t();if(n._readableState.endEmitted)n.destroy()}else{e._socket.once("finish",(function finish(){t()}));e.close()}};n._read=function(){if(e.isPaused)e.resume()};n._write=function(t,r,s){if(e.readyState===e.CONNECTING){e.once("open",(function open(){n._write(t,r,s)}));return}e.send(t,s)};n.on("end",duplexOnEnd);n.on("error",duplexOnError);return n}e.exports=createWebSocketStream},3332:(e,t,r)=>{"use strict";const{tokenChars:n}=r(6615);function parse(e){const t=new Set;let r=-1;let s=-1;let o=0;for(o;o<e.length;o++){const i=e.charCodeAt(o);if(s===-1&&n[i]===1){if(r===-1)r=o}else if(o!==0&&(i===32||i===9)){if(s===-1&&r!==-1)s=o}else if(i===44){if(r===-1){throw new SyntaxError(`Unexpected character at index ${o}`)}if(s===-1)s=o;const n=e.slice(r,s);if(t.has(n)){throw new SyntaxError(`The "${n}" subprotocol is duplicated`)}t.add(n);r=s=-1}else{throw new SyntaxError(`Unexpected character at index ${o}`)}}if(r===-1||s!==-1){throw new SyntaxError("Unexpected end of input")}const i=e.slice(r,o);if(t.has(i)){throw new SyntaxError(`The "${i}" subprotocol is duplicated`)}t.add(i);return t}e.exports={parse:parse}},6615:(e,t,r)=>{"use strict";const{isUtf8:n}=r(181);const{hasBlob:s}=r(1791);const o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function isValidStatusCode(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function _isValidUTF8(e){const t=e.length;let r=0;while(r<t){if((e[r]&128)===0){r++}else if((e[r]&224)===192){if(r+1===t||(e[r+1]&192)!==128||(e[r]&254)===192){return false}r+=2}else if((e[r]&240)===224){if(r+2>=t||(e[r+1]&192)!==128||(e[r+2]&192)!==128||e[r]===224&&(e[r+1]&224)===128||e[r]===237&&(e[r+1]&224)===160){return false}r+=3}else if((e[r]&248)===240){if(r+3>=t||(e[r+1]&192)!==128||(e[r+2]&192)!==128||(e[r+3]&192)!==128||e[r]===240&&(e[r+1]&240)===128||e[r]===244&&e[r+1]>143||e[r]>244){return false}r+=4}else{return false}}return true}function isBlob(e){return s&&typeof e==="object"&&typeof e.arrayBuffer==="function"&&typeof e.type==="string"&&typeof e.stream==="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}e.exports={isBlob:isBlob,isValidStatusCode:isValidStatusCode,isValidUTF8:_isValidUTF8,tokenChars:o};if(n){e.exports.isValidUTF8=function(e){return e.length<24?_isValidUTF8(e):n(e)}}else if(!process.env.WS_NO_UTF_8_VALIDATE){try{const t=r(2414);e.exports.isValidUTF8=function(e){return e.length<32?_isValidUTF8(e):t(e)}}catch(e){}}},129:(e,t,r)=>{"use strict";const n=r(4434);const s=r(8611);const{Duplex:o}=r(2203);const{createHash:i}=r(6982);const a=r(1335);const c=r(4376);const l=r(3332);const u=r(6681);const{CLOSE_TIMEOUT:f,GUID:d,kWebSocket:h}=r(1791);const v=/^[+/0-9A-Za-z]{22}==$/;const p=0;const g=1;const m=2;class WebSocketServer extends n{constructor(e,t){super();e={allowSynchronousEvents:true,autoPong:true,maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:false,handleProtocols:null,clientTracking:true,closeTimeout:f,verifyClient:null,noServer:false,backlog:null,server:null,host:null,path:null,port:null,WebSocket:u,...e};if(e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer){throw new TypeError('One and only one of the "port", "server", or "noServer" options '+"must be specified")}if(e.port!=null){this._server=s.createServer(((e,t)=>{const r=s.STATUS_CODES[426];t.writeHead(426,{"Content-Length":r.length,"Content-Type":"text/plain"});t.end(r)}));this._server.listen(e.port,e.host,e.backlog,t)}else if(e.server){this._server=e.server}if(this._server){const e=this.emit.bind(this,"connection");this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,r,n)=>{this.handleUpgrade(t,r,n,e)}})}if(e.perMessageDeflate===true)e.perMessageDeflate={};if(e.clientTracking){this.clients=new Set;this._shouldEmitClose=false}this.options=e;this._state=p}address(){if(this.options.noServer){throw new Error('The server is operating in "noServer" mode')}if(!this._server)return null;return this._server.address()}close(e){if(this._state===m){if(e){this.once("close",(()=>{e(new Error("The server is not running"))}))}process.nextTick(emitClose,this);return}if(e)this.once("close",e);if(this._state===g)return;this._state=g;if(this.options.noServer||this.options.server){if(this._server){this._removeListeners();this._removeListeners=this._server=null}if(this.clients){if(!this.clients.size){process.nextTick(emitClose,this)}else{this._shouldEmitClose=true}}else{process.nextTick(emitClose,this)}}else{const e=this._server;this._removeListeners();this._removeListeners=this._server=null;e.close((()=>{emitClose(this)}))}}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?");const r=t!==-1?e.url.slice(0,t):e.url;if(r!==this.options.path)return false}return true}handleUpgrade(e,t,r,n){t.on("error",socketOnError);const s=e.headers["sec-websocket-key"];const o=e.headers.upgrade;const i=+e.headers["sec-websocket-version"];if(e.method!=="GET"){const r="Invalid HTTP method";abortHandshakeOrEmitwsClientError(this,e,t,405,r);return}if(o===undefined||o.toLowerCase()!=="websocket"){const r="Invalid Upgrade header";abortHandshakeOrEmitwsClientError(this,e,t,400,r);return}if(s===undefined||!v.test(s)){const r="Missing or invalid Sec-WebSocket-Key header";abortHandshakeOrEmitwsClientError(this,e,t,400,r);return}if(i!==13&&i!==8){const r="Missing or invalid Sec-WebSocket-Version header";abortHandshakeOrEmitwsClientError(this,e,t,400,r,{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){abortHandshake(t,400);return}const u=e.headers["sec-websocket-protocol"];let f=new Set;if(u!==undefined){try{f=l.parse(u)}catch(r){const n="Invalid Sec-WebSocket-Protocol header";abortHandshakeOrEmitwsClientError(this,e,t,400,n);return}}const d=e.headers["sec-websocket-extensions"];const h={};if(this.options.perMessageDeflate&&d!==undefined){const r=new c({...this.options.perMessageDeflate,isServer:true,maxPayload:this.options.maxPayload});try{const e=a.parse(d);if(e[c.extensionName]){r.accept(e[c.extensionName]);h[c.extensionName]=r}}catch(r){const n="Invalid or unacceptable Sec-WebSocket-Extensions header";abortHandshakeOrEmitwsClientError(this,e,t,400,n);return}}if(this.options.verifyClient){const o={origin:e.headers[`${i===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(o,((o,i,a,c)=>{if(!o){return abortHandshake(t,i||401,a,c)}this.completeUpgrade(h,s,f,e,t,r,n)}));return}if(!this.options.verifyClient(o))return abortHandshake(t,401)}this.completeUpgrade(h,s,f,e,t,r,n)}completeUpgrade(e,t,r,n,s,o,l){if(!s.readable||!s.writable)return s.destroy();if(s[h]){throw new Error("server.handleUpgrade() was called more than once with the same "+"socket, possibly due to a misconfiguration")}if(this._state>p)return abortHandshake(s,503);const u=i("sha1").update(t+d).digest("base64");const f=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${u}`];const v=new this.options.WebSocket(null,undefined,this.options);if(r.size){const e=this.options.handleProtocols?this.options.handleProtocols(r,n):r.values().next().value;if(e){f.push(`Sec-WebSocket-Protocol: ${e}`);v._protocol=e}}if(e[c.extensionName]){const t=e[c.extensionName].params;const r=a.format({[c.extensionName]:[t]});f.push(`Sec-WebSocket-Extensions: ${r}`);v._extensions=e}this.emit("headers",f,n);s.write(f.concat("\r\n").join("\r\n"));s.removeListener("error",socketOnError);v.setSocket(s,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation});if(this.clients){this.clients.add(v);v.on("close",(()=>{this.clients.delete(v);if(this._shouldEmitClose&&!this.clients.size){process.nextTick(emitClose,this)}}))}l(v,n)}}e.exports=WebSocketServer;function addListeners(e,t){for(const r of Object.keys(t))e.on(r,t[r]);return function removeListeners(){for(const r of Object.keys(t)){e.removeListener(r,t[r])}}}function emitClose(e){e._state=m;e.emit("close")}function socketOnError(){this.destroy()}function abortHandshake(e,t,r,n){r=r||s.STATUS_CODES[t];n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...n};e.once("finish",e.destroy);e.end(`HTTP/1.1 ${t} ${s.STATUS_CODES[t]}\r\n`+Object.keys(n).map((e=>`${e}: ${n[e]}`)).join("\r\n")+"\r\n\r\n"+r)}function abortHandshakeOrEmitwsClientError(e,t,r,n,s,o){if(e.listenerCount("wsClientError")){const n=new Error(s);Error.captureStackTrace(n,abortHandshakeOrEmitwsClientError);e.emit("wsClientError",n,r,t)}else{abortHandshake(r,n,s,o)}}},6681:(e,t,r)=>{"use strict";const n=r(4434);const s=r(5692);const o=r(8611);const i=r(9278);const a=r(4756);const{randomBytes:c,createHash:l}=r(6982);const{Duplex:u,Readable:f}=r(2203);const{URL:d}=r(7016);const h=r(4376);const v=r(893);const p=r(7389);const{isBlob:g}=r(6615);const{BINARY_TYPES:m,CLOSE_TIMEOUT:y,EMPTY_BUFFER:_,GUID:b,kForOnEventAttribute:S,kListener:w,kStatusCode:k,kWebSocket:E,NOOP:O}=r(1791);const{EventTarget:{addEventListener:x,removeEventListener:T}}=r(4634);const{format:C,parse:P}=r(1335);const{toBuffer:W}=r(5803);const H=Symbol("kAborted");const A=[8,13];const R=["CONNECTING","OPEN","CLOSING","CLOSED"];const I=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class WebSocket extends n{constructor(e,t,r){super();this._binaryType=m[0];this._closeCode=1006;this._closeFrameReceived=false;this._closeFrameSent=false;this._closeMessage=_;this._closeTimer=null;this._errorEmitted=false;this._extensions={};this._paused=false;this._protocol="";this._readyState=WebSocket.CONNECTING;this._receiver=null;this._sender=null;this._socket=null;if(e!==null){this._bufferedAmount=0;this._isServer=false;this._redirects=0;if(t===undefined){t=[]}else if(!Array.isArray(t)){if(typeof t==="object"&&t!==null){r=t;t=[]}else{t=[t]}}initAsClient(this,e,t,r)}else{this._autoPong=r.autoPong;this._closeTimeout=r.closeTimeout;this._isServer=true}}get binaryType(){return this._binaryType}set binaryType(e){if(!m.includes(e))return;this._binaryType=e;if(this._receiver)this._receiver._binaryType=e}get bufferedAmount(){if(!this._socket)return this._bufferedAmount;return this._socket._writableState.length+this._sender._bufferedBytes}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,r){const n=new v({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation});const s=new p(e,this._extensions,r.generateMask);this._receiver=n;this._sender=s;this._socket=e;n[E]=this;s[E]=this;e[E]=this;n.on("conclude",receiverOnConclude);n.on("drain",receiverOnDrain);n.on("error",receiverOnError);n.on("message",receiverOnMessage);n.on("ping",receiverOnPing);n.on("pong",receiverOnPong);s.onerror=senderOnError;if(e.setTimeout)e.setTimeout(0);if(e.setNoDelay)e.setNoDelay();if(t.length>0)e.unshift(t);e.on("close",socketOnClose);e.on("data",socketOnData);e.on("end",socketOnEnd);e.on("error",socketOnError);this._readyState=WebSocket.OPEN;this.emit("open")}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage);return}if(this._extensions[h.extensionName]){this._extensions[h.extensionName].cleanup()}this._receiver.removeAllListeners();this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";abortHandshake(this,this._req,e);return}if(this.readyState===WebSocket.CLOSING){if(this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)){this._socket.end()}return}this._readyState=WebSocket.CLOSING;this._sender.close(e,t,!this._isServer,(e=>{if(e)return;this._closeFrameSent=true;if(this._closeFrameReceived||this._receiver._writableState.errorEmitted){this._socket.end()}}));setCloseTimer(this)}pause(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED){return}this._paused=true;this._socket.pause()}ping(e,t,r){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof e==="function"){r=e;e=t=undefined}else if(typeof t==="function"){r=t;t=undefined}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,r);return}if(t===undefined)t=!this._isServer;this._sender.ping(e||_,t,r)}pong(e,t,r){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof e==="function"){r=e;e=t=undefined}else if(typeof t==="function"){r=t;t=undefined}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,r);return}if(t===undefined)t=!this._isServer;this._sender.pong(e||_,t,r)}resume(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED){return}this._paused=false;if(!this._receiver._writableState.needDrain)this._socket.resume()}send(e,t,r){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof t==="function"){r=t;t={}}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,r);return}const n={binary:typeof e!=="string",mask:!this._isServer,compress:true,fin:true,...t};if(!this._extensions[h.extensionName]){n.compress=false}this._sender.send(e||_,n,r)}terminate(){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";abortHandshake(this,this._req,e);return}if(this._socket){this._readyState=WebSocket.CLOSING;this._socket.destroy()}}}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:true,value:R.indexOf("CONNECTING")});Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:true,value:R.indexOf("CONNECTING")});Object.defineProperty(WebSocket,"OPEN",{enumerable:true,value:R.indexOf("OPEN")});Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:true,value:R.indexOf("OPEN")});Object.defineProperty(WebSocket,"CLOSING",{enumerable:true,value:R.indexOf("CLOSING")});Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:true,value:R.indexOf("CLOSING")});Object.defineProperty(WebSocket,"CLOSED",{enumerable:true,value:R.indexOf("CLOSED")});Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:true,value:R.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((e=>{Object.defineProperty(WebSocket.prototype,e,{enumerable:true})}));["open","error","close","message"].forEach((e=>{Object.defineProperty(WebSocket.prototype,`on${e}`,{enumerable:true,get(){for(const t of this.listeners(e)){if(t[S])return t[w]}return null},set(t){for(const t of this.listeners(e)){if(t[S]){this.removeListener(e,t);break}}if(typeof t!=="function")return;this.addEventListener(e,t,{[S]:true})}})}));WebSocket.prototype.addEventListener=x;WebSocket.prototype.removeEventListener=T;e.exports=WebSocket;function initAsClient(e,t,r,n){const i={allowSynchronousEvents:true,autoPong:true,closeTimeout:y,protocolVersion:A[1],maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:true,followRedirects:false,maxRedirects:10,...n,socketPath:undefined,hostname:undefined,protocol:undefined,timeout:undefined,method:"GET",host:undefined,path:undefined,port:undefined};e._autoPong=i.autoPong;e._closeTimeout=i.closeTimeout;if(!A.includes(i.protocolVersion)){throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} `+`(supported versions: ${A.join(", ")})`)}let a;if(t instanceof d){a=t}else{try{a=new d(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}}if(a.protocol==="http:"){a.protocol="ws:"}else if(a.protocol==="https:"){a.protocol="wss:"}e._url=a.href;const u=a.protocol==="wss:";const f=a.protocol==="ws+unix:";let v;if(a.protocol!=="ws:"&&!u&&!f){v='The URL\'s protocol must be one of "ws:", "wss:", '+'"http:", "https:", or "ws+unix:"'}else if(f&&!a.pathname){v="The URL's pathname is empty"}else if(a.hash){v="The URL contains a fragment identifier"}if(v){const t=new SyntaxError(v);if(e._redirects===0){throw t}else{emitErrorAndClose(e,t);return}}const p=u?443:80;const g=c(16).toString("base64");const m=u?s.request:o.request;const _=new Set;let S;i.createConnection=i.createConnection||(u?tlsConnect:netConnect);i.defaultPort=i.defaultPort||p;i.port=a.port||p;i.host=a.hostname.startsWith("[")?a.hostname.slice(1,-1):a.hostname;i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":g,Connection:"Upgrade",Upgrade:"websocket"};i.path=a.pathname+a.search;i.timeout=i.handshakeTimeout;if(i.perMessageDeflate){S=new h({...i.perMessageDeflate,isServer:false,maxPayload:i.maxPayload});i.headers["Sec-WebSocket-Extensions"]=C({[h.extensionName]:S.offer()})}if(r.length){for(const e of r){if(typeof e!=="string"||!I.test(e)||_.has(e)){throw new SyntaxError("An invalid or duplicated subprotocol was specified")}_.add(e)}i.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(i.origin){if(i.protocolVersion<13){i.headers["Sec-WebSocket-Origin"]=i.origin}else{i.headers.Origin=i.origin}}if(a.username||a.password){i.auth=`${a.username}:${a.password}`}if(f){const e=i.path.split(":");i.socketPath=e[0];i.path=e[1]}let w;if(i.followRedirects){if(e._redirects===0){e._originalIpc=f;e._originalSecure=u;e._originalHostOrSocketPath=f?i.socketPath:a.host;const t=n&&n.headers;n={...n,headers:{}};if(t){for(const[e,r]of Object.entries(t)){n.headers[e.toLowerCase()]=r}}}else if(e.listenerCount("redirect")===0){const t=f?e._originalIpc?i.socketPath===e._originalHostOrSocketPath:false:e._originalIpc?false:a.host===e._originalHostOrSocketPath;if(!t||e._originalSecure&&!u){delete i.headers.authorization;delete i.headers.cookie;if(!t)delete i.headers.host;i.auth=undefined}}if(i.auth&&!n.headers.authorization){n.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")}w=e._req=m(i);if(e._redirects){e.emit("redirect",e.url,w)}}else{w=e._req=m(i)}if(i.timeout){w.on("timeout",(()=>{abortHandshake(e,w,"Opening handshake has timed out")}))}w.on("error",(t=>{if(w===null||w[H])return;w=e._req=null;emitErrorAndClose(e,t)}));w.on("response",(s=>{const o=s.headers.location;const a=s.statusCode;if(o&&i.followRedirects&&a>=300&&a<400){if(++e._redirects>i.maxRedirects){abortHandshake(e,w,"Maximum redirects exceeded");return}w.abort();let s;try{s=new d(o,t)}catch(t){const r=new SyntaxError(`Invalid URL: ${o}`);emitErrorAndClose(e,r);return}initAsClient(e,s,r,n)}else if(!e.emit("unexpected-response",w,s)){abortHandshake(e,w,`Unexpected server response: ${s.statusCode}`)}}));w.on("upgrade",((t,r,n)=>{e.emit("upgrade",t);if(e.readyState!==WebSocket.CONNECTING)return;w=e._req=null;const s=t.headers.upgrade;if(s===undefined||s.toLowerCase()!=="websocket"){abortHandshake(e,r,"Invalid Upgrade header");return}const o=l("sha1").update(g+b).digest("base64");if(t.headers["sec-websocket-accept"]!==o){abortHandshake(e,r,"Invalid Sec-WebSocket-Accept header");return}const a=t.headers["sec-websocket-protocol"];let c;if(a!==undefined){if(!_.size){c="Server sent a subprotocol but none was requested"}else if(!_.has(a)){c="Server sent an invalid subprotocol"}}else if(_.size){c="Server sent no subprotocol"}if(c){abortHandshake(e,r,c);return}if(a)e._protocol=a;const u=t.headers["sec-websocket-extensions"];if(u!==undefined){if(!S){const t="Server sent a Sec-WebSocket-Extensions header but no extension "+"was requested";abortHandshake(e,r,t);return}let t;try{t=P(u)}catch(t){const n="Invalid Sec-WebSocket-Extensions header";abortHandshake(e,r,n);return}const n=Object.keys(t);if(n.length!==1||n[0]!==h.extensionName){const t="Server indicated an extension that was not requested";abortHandshake(e,r,t);return}try{S.accept(t[h.extensionName])}catch(t){const n="Invalid Sec-WebSocket-Extensions header";abortHandshake(e,r,n);return}e._extensions[h.extensionName]=S}e.setSocket(r,n,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}));if(i.finishRequest){i.finishRequest(w,e)}else{w.end()}}function emitErrorAndClose(e,t){e._readyState=WebSocket.CLOSING;e._errorEmitted=true;e.emit("error",t);e.emitClose()}function netConnect(e){e.path=e.socketPath;return i.connect(e)}function tlsConnect(e){e.path=undefined;if(!e.servername&&e.servername!==""){e.servername=i.isIP(e.host)?"":e.host}return a.connect(e)}function abortHandshake(e,t,r){e._readyState=WebSocket.CLOSING;const n=new Error(r);Error.captureStackTrace(n,abortHandshake);if(t.setHeader){t[H]=true;t.abort();if(t.socket&&!t.socket.destroyed){t.socket.destroy()}process.nextTick(emitErrorAndClose,e,n)}else{t.destroy(n);t.once("error",e.emit.bind(e,"error"));t.once("close",e.emitClose.bind(e))}}function sendAfterClose(e,t,r){if(t){const r=g(t)?t.size:W(t).length;if(e._socket)e._sender._bufferedBytes+=r;else e._bufferedAmount+=r}if(r){const t=new Error(`WebSocket is not open: readyState ${e.readyState} `+`(${R[e.readyState]})`);process.nextTick(r,t)}}function receiverOnConclude(e,t){const r=this[E];r._closeFrameReceived=true;r._closeMessage=t;r._closeCode=e;if(r._socket[E]===undefined)return;r._socket.removeListener("data",socketOnData);process.nextTick(resume,r._socket);if(e===1005)r.close();else r.close(e,t)}function receiverOnDrain(){const e=this[E];if(!e.isPaused)e._socket.resume()}function receiverOnError(e){const t=this[E];if(t._socket[E]!==undefined){t._socket.removeListener("data",socketOnData);process.nextTick(resume,t._socket);t.close(e[k])}if(!t._errorEmitted){t._errorEmitted=true;t.emit("error",e)}}function receiverOnFinish(){this[E].emitClose()}function receiverOnMessage(e,t){this[E].emit("message",e,t)}function receiverOnPing(e){const t=this[E];if(t._autoPong)t.pong(e,!this._isServer,O);t.emit("ping",e)}function receiverOnPong(e){this[E].emit("pong",e)}function resume(e){e.resume()}function senderOnError(e){const t=this[E];if(t.readyState===WebSocket.CLOSED)return;if(t.readyState===WebSocket.OPEN){t._readyState=WebSocket.CLOSING;setCloseTimer(t)}this._socket.end();if(!t._errorEmitted){t._errorEmitted=true;t.emit("error",e)}}function setCloseTimer(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function socketOnClose(){const e=this[E];this.removeListener("close",socketOnClose);this.removeListener("data",socketOnData);this.removeListener("end",socketOnEnd);e._readyState=WebSocket.CLOSING;if(!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){const t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end();this[E]=undefined;clearTimeout(e._closeTimer);if(e._receiver._writableState.finished||e._receiver._writableState.errorEmitted){e.emitClose()}else{e._receiver.on("error",receiverOnFinish);e._receiver.on("finish",receiverOnFinish)}}function socketOnData(e){if(!this[E]._receiver.write(e)){this.pause()}}function socketOnEnd(){const e=this[E];e._readyState=WebSocket.CLOSING;e._receiver.end();this.end()}function socketOnError(){const e=this[E];this.removeListener("error",socketOnError);this.on("error",O);if(e){e._readyState=WebSocket.CLOSING;this.destroy()}}},3135:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var n=r(2247);var s=r(141);var o=r(8938);var i=r(6258);t["default"]={ServerApi:n.default,ServerWs:s.default,ServerSys:o.default,WsClient:i.default}},2247:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=function(e,t){var r;if(t===void 0){t={}}(r=t===null||t===void 0?void 0:t.fn)===null||r===void 0?void 0:r.call(t,e);function getHeader(e,t){return e.headers[t.toLowerCase()]||""}var n=null;var s=-1;function findApiHandler(e,t){var r=e.hostserverapis;if(!(r===null||r===void 0?void 0:r.length))return undefined;if(!n||s!==r.length){n=r.map((function(e){return{key:e,path:"/api/".concat(e)}}));s=r.length}if(!n)return undefined;for(var o=0;o<n.length;o++){var i=n[o];if(t===i.path||t.startsWith(i.path)){return i.key}}return undefined}function sendError(e,t,r){e.writeHead(t,{"Content-Type":"application/json; charset=utf-8"});e.end(JSON.stringify({error:r}))}function apiWork(t,r,n){var s,o,i,a,c,l,u,f;var d;if(!e.hostconfig.oncors){d="*"}else{d=getHeader(t,"Origin");if(!d){var h=getHeader(t,"Referer").split("/");d=h[0]+"//"+h[2]}}var v=getHeader(t,"Host");var p=e.getHost(n);if(d&&(d==="*"||!((s=p===null||p===void 0?void 0:p.cors)===null||s===void 0?void 0:s.length)||((o=p===null||p===void 0?void 0:p.cors)===null||o===void 0?void 0:o.includes(d))||d.includes(v))){r.setHeader("Access-Control-Allow-Origin",d);r.setHeader("Access-Control-Allow-Methods","GET, POST, OPTIONS");r.setHeader("Access-Control-Allow-Headers","Content-Type,userinfo,authorization,x-file-name");if(t.method==="OPTIONS"){r.statusCode=204;return r.end()}var g="";var m=false;var y=void 0,_=void 0,b=void 0;y=new URL(t.url,"http://".concat(getHeader(t,"Host")));_=y.pathname;if(e.$lib.aesfns&&y.search.startsWith("?aes=")){m=true;y.search=e.$lib.aesfns.reqAES({data:JSON.parse(decodeURIComponent(y.search.substring(5)))})}if(y.search.startsWith("?pm=")){b={pm:decodeURIComponent(y.search.substring(4))};if(t.url.indexOf("binary")===-1){if((t===null||t===void 0?void 0:t.Userinfo)&&(t===null||t===void 0?void 0:t.Userinfo[2])&&(b===null||b===void 0?void 0:b.pm)){g=t.Userinfo[2];b=e.$lib.AsCode.asdecode(b===null||b===void 0?void 0:b.pm,g);b=Object.fromEntries(new URLSearchParams("?"+b).entries())}}}else{b=Object.fromEntries(new URLSearchParams(y.search).entries())}var S=findApiHandler(e,_);if(!S){return sendError(r,404,"Not Found")}var w=(a=(i=e.hostserverapi)[S])===null||a===void 0?void 0:a.call(i,e,b);if(!w){return sendError(r,501,"Not Implemented")}r.setHeader("Content-Type","application/json; charset=utf-8");e.$log("API",t.method,y.pathname,b);var k;var E;if(t.url.indexOf("binary")===-1){E="";k=b;if(t.method==="POST"){var O=[];var x=((c=e.hostconfig)===null||c===void 0?void 0:c.maxbody)||100*1024*1024;var T=0;var C=false;t.on("data",(function(e){if(C)return;T+=e.length;if(T>x){C=true;sendError(r,413,"Payload Too Large");t.destroy();return}O.push(e)}));t.on("end",(function(){var s,o,i;if(C)return;E=Buffer.concat(O).toString();m=e.$lib.aesfns&&((s=E===null||E===void 0?void 0:E.startsWith)===null||s===void 0?void 0:s.call(E,'{"aes":'));if(m){var a=JSON.parse(E);E=e.$lib.aesfns.reqAES({data:a});if((a===null||a===void 0?void 0:a.aes)===2){try{E=JSON.parse(E)}catch(e){}}}if((t===null||t===void 0?void 0:t.Userinfo)&&(t===null||t===void 0?void 0:t.Userinfo[2])){g=t.Userinfo[2];E=e.$lib.AsCode.asdecode(E,g)}if((w===null||w===void 0?void 0:w.post)&&typeof(w===null||w===void 0?void 0:w.post)==="function"){var c={qrdata:k,data:E,pm:g};if(m||((o=e.$lib.aesfns)===null||o===void 0?void 0:o.allaes)){c.resAES=(i=e.$lib.aesfns)===null||i===void 0?void 0:i.resAES}w.post(t,r,n,c)}else{r.end(E)}}))}else if(t.method==="GET"){if((w===null||w===void 0?void 0:w.get)&&typeof(w===null||w===void 0?void 0:w.get)==="function"){var P={qrdata:k,data:k,pm:g};if(m||((l=e.$lib.aesfns)===null||l===void 0?void 0:l.allaes)){P.resAES=(u=e.$lib.aesfns)===null||u===void 0?void 0:u.resAES}w.get(t,r,n,P)}else{r.end(JSON.stringify(k))}}}else{if((f=Object.keys(b))===null||f===void 0?void 0:f.length){k=b}if(t.method==="POST"){e.$lib.AsNodeTool.upBinary(t).then((function(e){if((w===null||w===void 0?void 0:w.post)&&typeof(w===null||w===void 0?void 0:w.post)==="function"){w.post(t,r,n,{qrdata:k,data:e})}else{r.end(e)}})).catch((function(e){return sendError(r,400,"Invalid content type")}))}}}else{e.$log("API",t.method,t.url)}}return{apiWork:apiWork}}},8938:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=function(e,t){var r;if(t===void 0){t={}}(r=t===null||t===void 0?void 0:t.fn)===null||r===void 0?void 0:r.call(t,e);var n=null;var s=-1;function findSystemHandler(t){var r=e.hostserversyss;if(!(r===null||r===void 0?void 0:r.length))return undefined;if(!n||s!==r.length){n=r.map((function(e){return{key:e,route:"/".concat(e)}}));s=r.length}if(!n)return undefined;var o=t.url||"";for(var i=0;i<n.length;i++){var a=n[i];if(o.startsWith(a.route)&&e.hostserversys[a.key]){return a.key}}return undefined}var sendError=function(e,t,r){e.writeHead(t,{"Content-Type":"application/json; charset=utf-8"});e.end(JSON.stringify({error:r}))};function sysWork(t,r,n){var s,o;var i=findSystemHandler(t);if(!i){return sendError(r,404,"Not Found")}var a=(o=(s=e.hostserversys)[i])===null||o===void 0?void 0:o.call(s,e);if(!a){return sendError(r,500,"Handler Initialization Failed")}if((a===null||a===void 0?void 0:a.show)&&typeof(a===null||a===void 0?void 0:a.show)==="function"){a.show(t,r,n)}else{r.end("postdata")}if(!a){r.writeHead(404,{"Content-Type":"application/json; charset=utf-8"});r.end(t.url)}else{}}return{sysWork:sysWork}}},141:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var n=r(3817);t["default"]=function(e,t){var r;if(t===void 0){t={}}(r=t===null||t===void 0?void 0:t.fn)===null||r===void 0?void 0:r.call(t,e);var s=new Map;var o=(0,n.ensureWsRouteIndex)(e);function getWsHandler(t){var r,n;if(!s.has(t)){s.set(t,(n=(r=e.hostserverws)[t])===null||n===void 0?void 0:n.call(r,e))}return s.get(t)}function parseMessage(e){if(Buffer.isBuffer(e)){e=e.toString()}if(e==="ping"){}else if(typeof e==="string"){try{e=JSON.parse(e)}catch(e){}}return _getMessage(e)}function wsWork(t,r,n,s){var i,a,c,l,u,f;try{var d=parseMessage(t);var h=void 0;if(d==="ping"){(i=r.send)===null||i===void 0?void 0:i.call(r,"pong");return}else{var v=typeof d==="object"&&d!==null;h=v?o.matchTy(d===null||d===void 0?void 0:d.ty):o.matchString(d);if(!h&&((a=e.hostserverwss)===null||a===void 0?void 0:a.length)){h=e.hostserverwss.find((function(e){var t;if(v){return(t=d===null||d===void 0?void 0:d.ty)===null||t===void 0?void 0:t.startsWith(e)}return typeof d==="string"&&d.startsWith(e)}))}if(!h){(c=e.asaimock)===null||c===void 0?void 0:c.wsWorkMock({msg:t,ws:r,hostdir:n,req:s,reqdataisobj:v,reqdata:d});return}}if(!h)return;(u=(l=getWsHandler(h))===null||l===void 0?void 0:l.work)===null||u===void 0?void 0:u.call(l,d,r,n,s)}catch(t){(f=e.$log||console.error)===null||f===void 0?void 0:f("WS","handler error",t instanceof Error?t.message:t)}}function _getMessage(t){var r,n,s;if(((r=t===null||t===void 0?void 0:t.db)===null||r===void 0?void 0:r.aes)&&((s=(n=e.$lib)===null||n===void 0?void 0:n.aesfns)===null||s===void 0?void 0:s.reqAES)){t.db=e.$lib.aesfns.reqAES({data:t.db})}return t}function commandwork(e){if(!e.command){e.command={commandconfig:{clientws:{}}}}return{commandwork:function(){var t=e.$log||console.log;t("WS","Command work initialized")}}}return{wsWork:wsWork,commandwork:commandwork}}},6258:function(e,t){"use strict";var r=this&&this.__assign||function(){r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return r.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t["default"]=function(e,t){if(!(e===null||e===void 0?void 0:e.clientws)){e.clientws={}}if(!e.clientws[t]){e.clientws[t]={tasks:new Map}}function getKeyByData(e){return(e===null||e===void 0?void 0:e.id)||(e===null||e===void 0?void 0:e.ty)}function clientwsInit(){return new Promise((function(r,n){e.clientws[t].socket=new e.asaiWs(e.command.commandconfig.clientws[t]);e.clientws[t].socket.onmessage=function(e){clientwsOnmessage(e.data)};e.clientws[t].socket.on("error",(function(r){var s,o;e.clientws[t].open=0;((o=(s=e.hostconfig.logger)===null||s===void 0?void 0:s.lv)===null||o===void 0?void 0:o.view)&&console.error(666.2203,"".concat(t,"=").concat(e.command.commandconfig.clientws[t]," is error."),r);n()}));e.clientws[t].socket.on("close",(function(){var r,s;e.clientws[t].open=0;((s=(r=e.hostconfig.logger)===null||r===void 0?void 0:r.lv)===null||s===void 0?void 0:s.view)&&console.error(666.2205,"".concat(t,"=").concat(e.command.commandconfig.clientws[t]," is close."));n()}));e.clientws[t].socket.onopen=function(){var n,s;((s=(n=e.hostconfig.logger)===null||n===void 0?void 0:n.lv)===null||s===void 0?void 0:s.view)&&console.log(666.2201,"".concat(t,"=").concat(e.command.commandconfig.clientws[t]," is open."));e.clientws[t].open=1;r()}}))}function clientwsSend(r){if(e.clientws[t].open){e.clientws[t].socket.send(r)}}function clientwsOnmessage(r){if(e.clientws[t].open){try{var n=JSON.parse(r);var s=getKeyByData(n);var o=e.clientws[t].tasks.get(s);if(o){o===null||o===void 0?void 0:o.callback(n);if(n.ty&&!n.id){}else{e.clientws[t].tasks.delete(s)}}}catch(e){}}}function clientwsApi(n){return new Promise((function(s,o){if(e.clientws[t].open){try{var i={};i.timestamp=Date.now();if(!n.id){n.id=e.$lib.As.Uuid("nd")}e.clientws[t].tasks.set(getKeyByData(n),r(r({callback:function(e){s(e)}},n),i));clientwsSend(JSON.stringify(n))}catch(e){o(e)}}}))}function clientwsWatch(n,s){if(e.clientws[t].open){try{e.clientws[t].tasks.set(getKeyByData(n),r({callback:function(e){s(e)}},n));clientwsSend(JSON.stringify(n))}catch(e){}}}function clientwsWatchOff(r){if((r===null||r===void 0?void 0:r.ty)==="clear"){e.clientws[t].tasks=new Map}else{var n=getKeyByData(r);var s=e.clientws[t].tasks.get(n);if(s){e.clientws[t].tasks.delete(n)}}}return{clientwsInit:clientwsInit,clientwsSend:clientwsSend,clientwsApi:clientwsApi,clientwsWatch:clientwsWatch,clientwsWatchOff:clientwsWatchOff}}},3216:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.normalizeHostConfig=normalizeHostConfig;t.getTransportBlock=getTransportBlock;t.getTransportDefault=getTransportDefault;t.hasTransportDefault=hasTransportDefault;t.getDefaultConnId=getDefaultConnId;t.shouldAutoConnect=shouldAutoConnect;t.resolveReconnectOptions=resolveReconnectOptions;var r={"1tcp":"tcp","1grpc":"grpc","1rs485":"rs485",serial485:"rs485"};var n={tcp:"testtcp",grpc:"testgrpc",rs485:"testrs485"};var s={tcp:{enabled:true,maxRetries:60,initialDelay:1e3,maxDelay:3e4,factor:2},grpc:{enabled:true,maxRetries:60,initialDelay:1e3,maxDelay:3e4,factor:2},rs485:{enabled:true,maxRetries:60,initialDelay:3e3,maxDelay:3e4,factor:2}};function normalizeHostConfig(e){if(!e||typeof e!=="object")return{};if(e.syscom&&typeof e.syscom==="object"){for(var t=0,s=Object.keys(n);t<s.length;t++){var o=s[t];if(e.syscom[o]){e[o]=e.syscom[o]}}}for(var i=0,a=Object.entries(r);i<a.length;i++){var c=a[i],l=c[0],u=c[1];if(e[l]&&!e[u]){e[u]=e[l]}}return e}function getTransportBlock(e,t){var r=e===null||e===void 0?void 0:e[t];return r&&typeof r==="object"?r:null}function getTransportDefault(e,t){var r;var n=(r=getTransportBlock(e,t))===null||r===void 0?void 0:r.default;return n&&typeof n==="object"?n:null}function hasTransportDefault(e,t){return!!getTransportDefault(e,t)}function getDefaultConnId(e,t){var r=getTransportDefault(e,t);var s=r===null||r===void 0?void 0:r.id;return typeof s==="string"&&s.length>0?s:n[t]}function shouldAutoConnect(e){if(!e)return false;return e.autoConnect!==false}function resolveReconnectOptions(e,t,r){var n,o,i,a,c,l,u,f,d,h;var v=s[t];var p=e===null||e===void 0?void 0:e.reconnect;var g=(n=r===null||r===void 0?void 0:r.tm)===null||n===void 0?void 0:n.maxtry;return{enabled:(p===null||p===void 0?void 0:p.enabled)!==false&&v.enabled!==false,maxRetries:(a=(i=(o=p===null||p===void 0?void 0:p.maxRetries)!==null&&o!==void 0?o:g)!==null&&i!==void 0?i:v.maxRetries)!==null&&a!==void 0?a:60,initialDelay:(l=(c=p===null||p===void 0?void 0:p.initialDelay)!==null&&c!==void 0?c:v.initialDelay)!==null&&l!==void 0?l:1e3,maxDelay:(f=(u=p===null||p===void 0?void 0:p.maxDelay)!==null&&u!==void 0?u:v.maxDelay)!==null&&f!==void 0?f:3e4,factor:(h=(d=p===null||p===void 0?void 0:p.factor)!==null&&d!==void 0?d:v.factor)!==null&&h!==void 0?h:2}}},6332:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.normalizeHostConfig=void 0;t.validateHostConfig=validateHostConfig;var n=r(3216);Object.defineProperty(t,"normalizeHostConfig",{enumerable:true,get:function(){return n.normalizeHostConfig}});function validateHostConfig(e){var t,r,s;var o=[];if(!e||typeof e!=="object"){return["hostconfig 必须为非空对象"]}if(!e.password||typeof e.password!=="string"){o.push("password 必须为非空字符串")}if(!e.hosts||typeof e.hosts!=="object"){o.push("hosts 必须为对象")}else{if(!e.hosts.default){o.push("hosts.default 缺失")}for(var i=0,a=Object.entries(e.hosts);i<a.length;i++){var c=a[i],l=c[0],u=c[1];if(l==="default")continue;var f=u;if(f.port!=null&&(typeof f.port!=="number"||f.port<=0||f.port>65535)){o.push("hosts.".concat(l,".port 无效: ").concat(f.port))}if(f.hostdirs!=null&&!Array.isArray(f.hostdirs)){o.push("hosts.".concat(l,".hostdirs 必须为数组"))}}}if(((t=e.logger)===null||t===void 0?void 0:t.sample)&&typeof e.logger.sample!=="object"){o.push('logger.sample 必须为对象(如 { "REQ_OTHER": 0.1 })')}if(((r=e.logger)===null||r===void 0?void 0:r.skip)!=null&&!Array.isArray(e.logger.skip)){o.push('logger.skip 必须为字符串数组(如 ["/sys/info/metrics"])')}if(e.syscom&&typeof e.syscom!=="object"){o.push("syscom 必须为对象")}for(var d=0,h=["tcp","grpc","rs485"];d<h.length;d++){var v=h[d];if(!(0,n.hasTransportDefault)(e,v))continue;var p=(0,n.getTransportDefault)(e,v);var g=((s=e.syscom)===null||s===void 0?void 0:s[v])?"syscom.".concat(v):v;if(v==="tcp"&&(!p.host||p.port==null)){o.push("".concat(g,".default 需要 host 与 port"))}if(v==="grpc"&&(!p.host||p.port==null)){o.push("".concat(g,".default 需要 host 与 port"))}if(v==="rs485"&&!p.path){o.push("".concat(g,".default 需要 path"))}var m=p.reconnect;if(m!=null&&typeof m!=="object"){o.push("".concat(g,".default.reconnect 必须为对象"))}else if(m){if(m.maxRetries!=null&&(typeof m.maxRetries!=="number"||m.maxRetries<0)){o.push("".concat(g,".default.reconnect.maxRetries 无效"))}if(m.initialDelay!=null&&typeof m.initialDelay!=="number"){o.push("".concat(g,".default.reconnect.initialDelay 无效"))}if(m.maxDelay!=null&&typeof m.maxDelay!=="number"){o.push("".concat(g,".default.reconnect.maxDelay 无效"))}}}if(e.proxyhosts&&typeof e.proxyhosts==="object"){for(var y=0,_=Object.entries(e.proxyhosts);y<_.length;y++){var b=_[y],S=b[0],w=b[1];var k=w;if(k.url&&k.proxyport!=null&&typeof k.proxyport!=="number"){o.push("proxyhosts.".concat(S,".proxyport 无效"))}}}return o}},2910:function(e,t,r){"use strict";var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.validateHostdir=validateHostdir;t.getHostCFG=getHostCFG;t.getProxyHostCFG=getProxyHostCFG;var s=r(7427);var o=new Map;var i=new Map;function validateHostdir(e){if(typeof e!=="string"||e.length===0||e.length>100||e==="default"||e==="asai"){return false}return/^[a-zA-Z0-9_-]+$/.test(e)}function loadHostCFG(e,t){var r=o.get(e);if(!r){var s=t.hostconfig.hosts.default||{};var i=t.hostconfig.hosts[e]||{};r=n(n({},s),i);o.set(e,r)}return r}function getHostCFG(e,t){return n({},loadHostCFG(e,t))}function loadProxyHostCFG(e,t){var r,o;var a=i.get(e);if(!a){var c=((r=t.hostconfig.proxyhosts)===null||r===void 0?void 0:r.default)||{};var l=((o=t.hostconfig.proxyhosts)===null||o===void 0?void 0:o[e])||{};a=n(n({},c),l);if(!a.url&&a.port){a.url=(a.httptype||"http://")+(0,s.getHostIP)(a.ip,t)+":"+a.port}i.set(e,a)}return a}function getProxyHostCFG(e,t){return n({},loadProxyHostCFG(e,t))}},2309:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.initAsaiHost=t.getProxyHostCFG=t.getHostCFG=t.validateHostdir=t.getHostIP=t.getIp=t.getNowTime=void 0;var n=r(6588);Object.defineProperty(t,"getNowTime",{enumerable:true,get:function(){return n.getNowTime}});var s=r(7427);Object.defineProperty(t,"getIp",{enumerable:true,get:function(){return s.getIp}});Object.defineProperty(t,"getHostIP",{enumerable:true,get:function(){return s.getHostIP}});var o=r(2910);Object.defineProperty(t,"validateHostdir",{enumerable:true,get:function(){return o.validateHostdir}});Object.defineProperty(t,"getHostCFG",{enumerable:true,get:function(){return o.getHostCFG}});Object.defineProperty(t,"getProxyHostCFG",{enumerable:true,get:function(){return o.getProxyHostCFG}});var i=r(699);Object.defineProperty(t,"initAsaiHost",{enumerable:true,get:function(){return i.initAsaiHost}})},699:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.initAsaiHost=initAsaiHost;var n=r(7427);var s=r(2910);var o=r(1725);var i=r(6902);var a=r(3817);function initAsaiHost(e,t){var r,c,l,u,f;if(!((r=e.hostconfig)===null||r===void 0?void 0:r.ip)){e.hostconfig.ip=(0,n.getIp)()}e.setAppend=function(t,r){return(0,i.setAppend)(e,t,r)};e.getHost=function(t){return(0,s.getHostCFG)(t,e)};e.getHostIP=function(t){return(0,n.getHostIP)(t,e)};e.gracefulShutdown=function(){return(0,o.gracefulShutdown)(e)};(0,a.attachRegistry)(e);(0,o.initProcess)(e);(0,i.initLog)(e);e.hostconfig.asaiport=[];e.hostconfig.guardtm=null;if(((l=(c=e.hostconfig)===null||c===void 0?void 0:c.aes)===null||l===void 0?void 0:l.lv)&&!((u=e.$lib)===null||u===void 0?void 0:u.aesfns)&&typeof((f=e.$lib)===null||f===void 0?void 0:f.AsAES)==="function"){var d=e.$lib.AsAES(e),h=d.reqAES,v=d.resAES;e.$lib.aesfns={allaes:e.hostconfig.aes.lv>1,reqAES:h,resAES:v}}}},7427:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getIp=getIp;t.getHostIP=getHostIP;var n=r(857);function getIp(){try{var e=n.networkInterfaces();for(var t=0,r=Object.keys(e);t<r.length;t++){var s=r[t];var o=e[s];if(!o)continue;for(var i=0,a=o;i<a.length;i++){var c=a[i];if(c.family==="IPv4"&&c.address!=="127.0.0.1"&&!c.internal){return c.address}}}}catch(e){console.error("Get IP address error:",e)}return"127.0.0.1"}function getHostIP(e,t){var r,n;if(e&&typeof e==="string")return e;if(((r=t===null||t===void 0?void 0:t.hostconfig)===null||r===void 0?void 0:r.ip)==="asai")return"localhost";return((n=t===null||t===void 0?void 0:t.hostconfig)===null||n===void 0?void 0:n.ip)||"127.0.0.1"}},6588:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getNowTime=getNowTime;function getNowTime(e,t){if(e===void 0){e=0}if(t===void 0){t=null}try{t=t||new Date;var r=t.getFullYear();var n=String(t.getMonth()+1).padStart(2,"0");var s=String(t.getDate()).padStart(2,"0");var o=String(t.getHours()).padStart(2,"0");var i=String(t.getMinutes()).padStart(2,"0");var a=String(t.getSeconds()).padStart(2,"0");var c=String(t.getMilliseconds()).padStart(3,"0");switch(e){case 1:return"".concat(o,":").concat(i,":").concat(a);case 2:return"".concat(r,"-").concat(n,"-").concat(s);case 3:return"".concat(o,":").concat(i,":").concat(a,".").concat(c);case 4:return"".concat(r,"-").concat(n,"-").concat(s," ").concat(o,":").concat(i,":").concat(a,".").concat(c);case 5:return"".concat(o,"-").concat(i,"-").concat(a,"-").concat(c);default:return"".concat(r,"-").concat(n,"-").concat(s," ").concat(o,":").concat(i,":").concat(a)}}catch(e){console.error("Date formatting error:",e);return"unknown-time"}}},2370:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getHostAllowedRoots=t.resolvePathUnderRoots=t.secureCompare=t.wireTransportConnectionLogs=t.createTransportDataHandler=t.ensureDefaultConnection=t.initTransportBridge=t.syncWsRouteKeys=t.syncApiRouteKeys=t.initHostserverWs=t.initHostserverApi=t.registerWs=t.registerApi=t.validateHostConfig=t.shouldAutoConnect=t.resolveReconnectOptions=t.getDefaultConnId=t.hasTransportDefault=t.getTransportDefault=t.getTransportBlock=t.normalizeHostConfig=void 0;var n=r(3216);Object.defineProperty(t,"normalizeHostConfig",{enumerable:true,get:function(){return n.normalizeHostConfig}});Object.defineProperty(t,"getTransportBlock",{enumerable:true,get:function(){return n.getTransportBlock}});Object.defineProperty(t,"getTransportDefault",{enumerable:true,get:function(){return n.getTransportDefault}});Object.defineProperty(t,"hasTransportDefault",{enumerable:true,get:function(){return n.hasTransportDefault}});Object.defineProperty(t,"getDefaultConnId",{enumerable:true,get:function(){return n.getDefaultConnId}});Object.defineProperty(t,"resolveReconnectOptions",{enumerable:true,get:function(){return n.resolveReconnectOptions}});Object.defineProperty(t,"shouldAutoConnect",{enumerable:true,get:function(){return n.shouldAutoConnect}});var s=r(6332);Object.defineProperty(t,"validateHostConfig",{enumerable:true,get:function(){return s.validateHostConfig}});var o=r(3817);Object.defineProperty(t,"registerApi",{enumerable:true,get:function(){return o.registerApi}});Object.defineProperty(t,"registerWs",{enumerable:true,get:function(){return o.registerWs}});Object.defineProperty(t,"initHostserverApi",{enumerable:true,get:function(){return o.initHostserverApi}});Object.defineProperty(t,"initHostserverWs",{enumerable:true,get:function(){return o.initHostserverWs}});Object.defineProperty(t,"syncApiRouteKeys",{enumerable:true,get:function(){return o.syncApiRouteKeys}});Object.defineProperty(t,"syncWsRouteKeys",{enumerable:true,get:function(){return o.syncWsRouteKeys}});var i=r(4239);Object.defineProperty(t,"initTransportBridge",{enumerable:true,get:function(){return i.initTransportBridge}});Object.defineProperty(t,"ensureDefaultConnection",{enumerable:true,get:function(){return i.ensureDefaultConnection}});Object.defineProperty(t,"createTransportDataHandler",{enumerable:true,get:function(){return i.createTransportDataHandler}});Object.defineProperty(t,"wireTransportConnectionLogs",{enumerable:true,get:function(){return i.wireTransportConnectionLogs}});var a=r(4161);Object.defineProperty(t,"secureCompare",{enumerable:true,get:function(){return a.secureCompare}});var c=r(9527);Object.defineProperty(t,"resolvePathUnderRoots",{enumerable:true,get:function(){return c.resolvePathUnderRoots}});Object.defineProperty(t,"getHostAllowedRoots",{enumerable:true,get:function(){return c.getHostAllowedRoots}})},1212:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.setupHttpConnectionMonitor=setupHttpConnectionMonitor;function setupHttpConnectionMonitor(e,t,r,n){var s=n.maxhttp||100;var o=setInterval((function(){var r;var n=((r=e.connectionshttp[t])===null||r===void 0?void 0:r.size)||0;if(n>s*.8){e.$log("HTTP","HTTP Connection HIGH (".concat(n,"/").concat(s,")"))}if(n>s*.95){e.$log("HTTP","HTTP Connection CRITICAL! Forcing cleanup");if(e.connectionshttp[t]){e.connectionshttp[t].forEach((function(e){if(e._idleTime&&Date.now()-e._idleTime>3e5){e.destroy()}}))}}}),3e5);if(!e.tasksws[t])e.tasksws[t]={};e.tasksws[t].httpMonitor=o;r.on("connection",(function(r){if(!e.connectionshttp[t]){e.connectionshttp[t]=new Set}var n=e.connectionshttp[t].size;if(n>=s){try{e.$log("HTTP","HTTP Connection MAX rejected (".concat(n,"/").concat(s,")"));r.destroy()}catch(t){e.$log("HTTP","Close connection error:",t)}return}e.connectionshttp[t].add(r);r.on("close",(function(){e.connectionshttp[t].delete(r)}));r.setTimeout(3e5)}))}},3484:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.formatHttpError=formatHttpError;t.shouldLogRequest=shouldLogRequest;t.normalizeRequestPath=normalizeRequestPath;t.createSkipChecker=createSkipChecker;t.logHttp=logHttp;function formatHttpError(e){return e instanceof Error?"".concat(e.name,": ").concat(e.message):String(e)}function shouldLogRequest(e){return e!=="OPTIONS"}function normalizeRequestPath(e){if(!e)return"";var t=e.indexOf("?");var r=e.indexOf("#");var n=e.length;if(t>=0)n=Math.min(n,t);if(r>=0)n=Math.min(n,r);return e.slice(0,n)}function createSkipChecker(e){var t,r;var n=(r=(t=e.hostconfig)===null||t===void 0?void 0:t.logger)===null||r===void 0?void 0:r.skip;if(!Array.isArray(n)||n.length===0)return function(){return false};var s=new Set;var o=[];for(var i=0,a=n;i<a.length;i++){var c=a[i];if(typeof c!=="string"||!c)continue;if(c.endsWith("*"))o.push(c.slice(0,-1));else s.add(c)}if(s.size===0&&o.length===0)return function(){return false};return function(e){var t=normalizeRequestPath(e);if(!t)return false;if(s.has(t))return true;for(var r=0;r<o.length;r++){if(t.startsWith(o[r]))return true}return false}}function logHttp(e,t,r,n,s){if(!shouldLogRequest(r)||s(n))return;e.$log(t,r,n)}},1082:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.applySecurityHeaders=applySecurityHeaders;t.getHttpUserinfo=getHttpUserinfo;t.checkHttpHeader=checkHttpHeader;var n=r(3724);function applySecurityHeaders(e,t){if(t===void 0){t=false}e.setHeader("X-Content-Type-Options","nosniff");e.setHeader("X-Frame-Options","SAMEORIGIN");e.setHeader("Referrer-Policy","strict-origin-when-cross-origin");e.setHeader("Permissions-Policy","geolocation=(), microphone=(), camera=()");if(t){e.setHeader("Strict-Transport-Security","max-age=31536000; includeSubDomains")}}function getHttpUserinfo(e,t){var r,s;try{var o=(s=(r=e.headers)===null||r===void 0?void 0:r["userinfo"])===null||s===void 0?void 0:s.split("##");return(0,n.deUserInfoWithAsai)(o,t)}catch(e){return""}}function checkHttpHeader(e,t){e.Userinfo=getHttpUserinfo(e,t);return true}},67:function(e,t,r){"use strict";var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.checkHttpHeader=t.getHttpUserinfo=void 0;t.getHTTPServer=getHTTPServer;t.startHTTPServer=startHTTPServer;t.asaiGuard=asaiGuard;var s=r(8611);var o=r(5692);var i=r(2309);var a=r(6401);var c=r(5105);var l=r(7779);var u=r(1082);var f=r(3484);var d=r(5686);var h=r(1212);var v=r(1082);Object.defineProperty(t,"getHttpUserinfo",{enumerable:true,get:function(){return v.getHttpUserinfo}});Object.defineProperty(t,"checkHttpHeader",{enumerable:true,get:function(){return v.checkHttpHeader}});function getHTTPServer(e,t,r){if(e===void 0){e=""}try{if(e.startsWith("https")){return{AsCreateServer:function(e){return o.createServer((t===null||t===void 0?void 0:t.httpscert)||r.hostconfig.httpscert,e)},Agent:o.Agent,request:o.request}}else{return{AsCreateServer:s.createServer,Agent:s.Agent,request:s.request}}}catch(e){r.$log("HTTP","Http server error:",e instanceof Error?"".concat(e.name,": ").concat(e.message,"\n").concat(e.stack):JSON.stringify(e));return{AsCreateServer:s.createServer,Agent:s.Agent,request:s.request}}}function startHTTPServer(e,t){var r=(0,i.getHostCFG)(t,e);if(!r||r.close)return;try{if(!e.servershttp[t]){if(r.mimetypes!==undefined){r.mimetypes=n(n({},e.hostconfig.mimetypes||{}),r.mimetypes||{})}else{r.mimetypes=n({},e.hostconfig.mimetypes||{})}var s=getHTTPServer(r.httptype,r,e);var o=e.hostconfig.index||"index.html";var v=new l.StaticPathCache(2e3,3e4);var p=(0,f.createSkipChecker)(e);var g=(r.httptype||"").startsWith("https");var m=(0,c.getWorkHandler)("sysWork");var y=(0,c.getWorkHandler)("apiWork");var _=(0,c.getWorkHandler)("jsonpWork");var b=(0,d.createStaticHandler)({hostcfg:r,hostdir:t,indexFile:o,$asai:e,staticPathCache:v});var S=s.AsCreateServer((function(r,n){var s,o,i;try{if(!(0,u.checkHttpHeader)(r,e)){(0,f.logHttp)(e,"HTTP",r.method,r.url,p);n.writeHead(502,{"Content-Type":"text/plain; charset=utf-8"});n.end("502");return}(0,u.applySecurityHeaders)(n,g);if(((s=r.url)===null||s===void 0?void 0:s.startsWith("/sys"))&&m){(0,f.logHttp)(e,"SYS",r.method,r.url,p);m(r,n,t)}else if(((o=r.url)===null||o===void 0?void 0:o.startsWith("/api"))&&y){(0,f.logHttp)(e,"API",r.method,r.url,p);y(r,n,t)}else if(((i=r.url)===null||i===void 0?void 0:i.startsWith("/jsonp"))&&_){(0,f.logHttp)(e,"JSONP",r.method,r.url,p);_(r,n,t)}else if(b){(0,f.logHttp)(e,"REQ_OTHER",r.method,r.url,p);b(r,n,r.url)}else{e.$log("HTTP",r.method,r.url);n.writeHead(404,{"Content-Type":"text/plain; charset=utf-8"});n.end("404")}}catch(t){e.$log("HTTP","HTTP request error:",(0,f.formatHttpError)(t));if(!n.headersSent){n.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});n.end("Internal server error")}else if(!n.writableEnded){n.end()}}}));e.servershttp[t]=S;if(r.ws){(0,a.createWSHost)(e,t)}S.on("error",(function(t){e.hostconfig.asaiport.push(r.port);asaiGuard(e);if(t.code==="EADDRINUSE"){e.$log("HTTP","Port ".concat(r.port," is already start!"))}else{e.$log("HTTP","Server error:",t instanceof Error?"".concat(t.name,": ").concat(t.message,"\n").concat(t.stack):t)}}));if(e.hostconfig.ip==="asai"||!r.ip&&!e.hostconfig.ip){S.listen(r.port,(function(){console.log("[".concat(t,"] Start At ").concat((0,i.getNowTime)(),"."));if(r.ws){console.log("WS Server ".concat(r.wstype||"ws://","localhost:").concat(r.port,""))}console.log("HTTP Server ".concat(r.httptype,"localhost:").concat(r.port,""));console.log("================================================")}))}else{var w=(0,i.getHostIP)(r.ip,e);S.listen(r.port,w,(function(){console.log("[".concat(t,"] Start At ").concat((0,i.getNowTime)(),"."));if(r.ws){console.log("WS Server ".concat(r.wstype||"ws://").concat(w,":").concat(r.port,""))}console.log("HTTP Server ".concat(r.httptype).concat(w,":").concat(r.port,""));console.log("================================================")}))}if(r.ckhttp){(0,h.setupHttpConnectionMonitor)(e,t,S,r)}}}catch(t){e.$log("HTTP","Http server error:",t instanceof Error?"".concat(t.name,": ").concat(t.message,"\n").concat(t.stack):JSON.stringify(t))}return e.servershttp[t]}function asaiGuard(e){var t;if(e.hostconfig.asaiport.includes(e.hostconfig.hosts.asai.port)){process.exit(1)}else{if(e.hostconfig.guardtm){clearTimeout(e.hostconfig.guardtm);e.hostconfig.guardtm=null}e.hostconfig.guardtm=setTimeout((function(){startHTTPServer(e,"asai");if(e.hostconfig.guardtm){clearTimeout(e.hostconfig.guardtm);e.hostconfig.guardtm=null}}),((t=e.hostconfig.tm)===null||t===void 0?void 0:t.d)||2e3)}}},7779:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.StaticPathCache=void 0;var n=r(9896);var s=function(){function StaticPathCache(e,t){if(e===void 0){e=2e3}if(t===void 0){t=3e4}this.maxSize=e;this.notFoundTtlMs=t;this.cache=new Map}StaticPathCache.prototype.touch=function(e,t){if(this.cache.has(e))this.cache.delete(e);this.cache.set(e,t);while(this.cache.size>this.maxSize){var r=this.cache.keys().next().value;if(!r)break;this.cache.delete(r)}};StaticPathCache.prototype.get=function(e){var t=this.cache.get(e);if(!t)return null;if(t.is404&&Date.now()-t.cachedAt>this.notFoundTtlMs){this.cache.delete(e);return null}this.cache.delete(e);this.cache.set(e,t);return t};StaticPathCache.prototype.setHit=function(e,t,r){this.touch(e,{filePath:t,mtimeMs:r,cachedAt:Date.now()})};StaticPathCache.prototype.setMiss=function(e){this.touch(e,{filePath:"",mtimeMs:0,is404:true,cachedAt:Date.now()})};StaticPathCache.prototype.verify=function(e){if(e.is404||!e.filePath)return null;try{var t=n.statSync(e.filePath);if(!t.isFile()||t.mtimeMs!==e.mtimeMs)return null;return t}catch(e){return null}};return StaticPathCache}();t.StaticPathCache=s},5686:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.parseUrlPath=parseUrlPath;t.buildStaticSearchDirs=buildStaticSearchDirs;t.serveStaticFile=serveStaticFile;t.createStaticHandler=createStaticHandler;var n=r(9896);var s=r(6928);var o=r(3484);var i=r(9527);var a=8*1024*1024;function parseUrlPath(e){try{if(!e)return"/";var t=e.startsWith("http")?e:encodeURI(e);return new URL(t,"http://localhost").pathname}catch(t){return e}}var c=["/assets/","/webmodel/","/assets/entry/","/assets/chunk/"];function isStaticAssetPath(e,t){var r=parseUrlPath(e);var n=r.split("/").pop()||"";if(n===t)return false;if(c.some((function(e){return r.startsWith(e)})))return true;return/\.(css|js|mjs|cjs|json|png|jpe?g|gif|svg|ico|woff2?|ttf|map|wasm)(\?|$)/i.test(r)}function getServerRoot(e){return e.serverRoot||process.cwd()}function buildStaticSearchDirs(e,t){var r;var o=t||process.cwd();var i=[];var a=new Set;var pushDir=function(e){if(!e||a.has(e))return;a.add(e);try{if(n.statSync(s.resolve(o,e)).isDirectory())i.push(e)}catch(e){}};for(var c=0,l=e.hostdirs||[];c<l.length;c++){var u=l[c];pushDir(u)}if((r=e.weburls)===null||r===void 0?void 0:r.webdir)pushDir(e.weburls.webdir);return i}function buildStaticRoots(e,t){var r;var n=getServerRoot(t);var o=e.map((function(e){return s.resolve(n,e)}));var i=typeof process.pkg!=="undefined";if(((r=t.hostconfig.pkg)===null||r===void 0?void 0:r.type)===1&&i){var a=s.dirname(process.execPath);for(var c=0,l=e;c<l.length;c++){var u=l[c];o.push(s.join(a,u))}}return o}function sendStaticBuffer(e,t,r,n,s,i){var a='"'.concat(r.length,"-").concat(s,'"');if(e.headers["if-none-match"]===a){t.writeHead(304);t.end();return}try{t.writeHead(200,{"Content-Type":n,"Content-Length":r.length,"Cache-Control":"public, max-age=3600",ETag:a,"Last-Modified":new Date(s).toUTCString()});t.end(r)}catch(e){i.$log("HTTP","Static file response error:",(0,o.formatHttpError)(e));if(!t.headersSent){t.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});t.end("Internal Server Error")}}}function serveStaticFile(e,t,r,s,i,c){if(i.size<=a){n.readFile(r,(function(r,n){if(r){c.$log("HTTP","Static file read error:",(0,o.formatHttpError)(r));if(!t.headersSent){t.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});t.end("Internal Server Error")}return}sendStaticBuffer(e,t,n,s,i.mtimeMs,c)}));return}var l=n.createReadStream(r);var u='"'.concat(i.size,"-").concat(i.mtimeMs,'"');if(e.headers["if-none-match"]===u){l.destroy();t.writeHead(304);t.end();return}l.on("error",(function(e){c.$log("STREAM","Stream error:",(0,o.formatHttpError)(e));if(!t.headersSent){t.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});t.end("Internal Server Error")}else if(!t.writableEnded)t.destroy()}));e.on("aborted",(function(){if(!l.destroyed)l.destroy()}));try{t.writeHead(200,{"Content-Type":s,"Cache-Control":"public, max-age=3600",ETag:u,"Last-Modified":i.mtime.toUTCString()});l.pipe(t)}catch(e){c.$log("HTTP","Static file response error:",(0,o.formatHttpError)(e));if(!l.destroyed)l.destroy();if(!t.headersSent){t.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"});t.end("Internal Server Error")}}}function createStaticHandler(e){var t,r,n,o,a;var c=e.hostcfg,l=e.hostdir,u=e.indexFile,f=e.$asai,d=e.staticPathCache;var h=!!(((t=c.weburls)===null||t===void 0?void 0:t.rewrite)&&((r=c.weburls)===null||r===void 0?void 0:r.webdir)&&((o=(n=c.weburls)===null||n===void 0?void 0:n.keys)===null||o===void 0?void 0:o.length));var v=h?((a=c.weburls)===null||a===void 0?void 0:a.keys)||[]:[];var checkWebUrls=function(e){if(!h||!e)return false;for(var t=0;t<v.length;t++){if(e.startsWith(v[t]))return true}return false};var showHostDirs=function(e,t,r,n,o,a){var v;if(a===void 0){a=0}var p=parseUrlPath(n);var g=p.endsWith("/")?p+u:p;var m="".concat(l,":").concat(r.join("|"),":").concat(g);var y=r.join("|")===o.join("|")?buildStaticRoots(o,f):buildStaticRoots(r,f);var findValidFile=function(e){var t=d.get(m);if(t===null||t===void 0?void 0:t.is404)return null;if(t&&!t.is404){var r=d.verify(t);if(r)return{filePath:t.filePath,stat:r}}var n=e.startsWith("/")?e.slice(1):e;var s=(0,i.findExistingFileUnderRoots)(n,y);if(s){d.setHit(m,s.filePath,s.stat.mtimeMs);return s}d.setMiss(m);return null};var _=findValidFile(g);if(!_){if(a>0||!h||isStaticAssetPath(g,u)){t.writeHead(404,{"Content-Type":"text/plain; charset=utf-8"});t.end("File not found!");return}showHostDirs(e,t,[c.weburls.webdir],"/"+u,o,a+1);return}var b=((v=c.mimetypes)===null||v===void 0?void 0:v[s.extname(_.filePath)])||"application/octet-stream";serveStaticFile(e,t,_.filePath,b,_.stat,f)};return function(e,t,r){t.setHeader("Cross-Origin-Resource-Policy","cross-origin");t.setHeader("Cross-Origin-Opener-Policy","cross-origin");var n=buildStaticSearchDirs(c,getServerRoot(f));if(!n.length){t.writeHead(404,{"Content-Type":"text/plain; charset=utf-8"});t.end("Static root not configured");return}if(checkWebUrls(r)){showHostDirs(e,t,[c.weburls.webdir],"/"+u,n)}else{showHostDirs(e,t,n,r,n)}}}},5105:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getWorkHandler=getWorkHandler;t["default"]=default_1;var n=r(1354);var s=r(2309);var o=r(67);var i=r(343);var a=new Map;function getWorkHandler(e){return a.get(e)}function default_1(e,t){var r=t.sysWork,c=t.apiWork,l=t.wsWork,u=t.jsonpWork;a.set("sysWork",r);a.set("apiWork",c);a.set("wsWork",l);a.set("jsonpWork",u);function StartAsaiHost(){var r,n;(0,s.initAsaiHost)(e,t);console.log("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");if((r=e.hostconfig)===null||r===void 0?void 0:r.hosts){e.startHTTPServer=function(t){return(0,o.startHTTPServer)(e,t)};Object.keys(e.hostconfig.hosts).forEach((function(t){if((0,s.validateHostdir)(t)){(0,o.startHTTPServer)(e,t)}}));if(e.hostconfig.hosts.asai){(0,o.startHTTPServer)(e,"asai")}}if((n=e.hostconfig)===null||n===void 0?void 0:n.proxyhosts){Object.keys(e.hostconfig.proxyhosts).forEach((function(t){if((0,s.validateHostdir)(t)){(0,i.startProxyServer)(e,t)}}))}}return{StartAsaiHost:StartAsaiHost,asaiWs:n}}},6902:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};var s=this&&this.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,s,o,i=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return i.next=verb(0),i["throw"]=verb(1),i["return"]=verb(2),typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function verb(e){return function(t){return step([e,t])}}function step(a){if(n)throw new TypeError("Generator is already executing.");while(i&&(i=0,a[0]&&(r=0)),r)try{if(n=1,s&&(o=a[0]&2?s["return"]:a[0]?s["throw"]||((o=s["return"])&&o.call(s),0):s.next)&&!(o=o.call(s,a[1])).done)return o;if(s=0,o)a=[a[0]&2,o.value];switch(a[0]){case 0:case 1:o=a;break;case 4:r.label++;return{value:a[1],done:false};case 5:r.label++;s=a[1];a=[0];continue;case 7:a=r.ops.pop();r.trys.pop();continue;default:if(!(o=r.trys,o=o.length>0&&o[o.length-1])&&(a[0]===6||a[0]===2)){r=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]<o[3])){r.label=a[1];break}if(a[0]===6&&r.label<o[1]){r.label=o[1];o=a;break}if(o&&r.label<o[2]){r.label=o[2];r.ops.push(a);break}if(o[2])r.ops.pop();r.trys.pop();continue}a=t.call(e,r)}catch(e){a=[6,e];s=0}finally{n=o=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};Object.defineProperty(t,"__esModule",{value:true});t.setAppend=setAppend;t.setLog=setLog;t.initLog=initLog;var o=r(6588);var i=new Map;function flushAllLogBuffers(){i.forEach((function(e){e.forceFlush()}))}var a=function(){function LogBuffer(e,t){this.$asai=e;this.filePath=t;this.buffer=[];this.timer=null;this.flushInterval=100;this.maxBufferSize=100;if(!LogBuffer.globalFlushRegistered){LogBuffer.globalFlushRegistered=true;process.once("beforeExit",(function(){return flushAllLogBuffers()}))}}LogBuffer.prototype.add=function(e){var t=this;this.buffer.push(e);if(this.buffer.length>=this.maxBufferSize){this.flush()}else if(!this.timer){this.timer=setTimeout((function(){return t.flush()}),this.flushInterval)}};LogBuffer.prototype.forceFlush=function(){this.flush()};LogBuffer.prototype.flush=function(){if(this.timer){clearTimeout(this.timer);this.timer=null}if(this.buffer.length===0)return;var e=this.buffer.join("");this.buffer=[];void this.writeBatch(e)};LogBuffer.prototype.writeBatch=function(e){return n(this,void 0,void 0,(function(){var t,r,n,i,a,c;var l,u;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);return[4,this.$asai.asaifs.ensureFile(this.filePath)];case 1:s.sent();return[4,this.$asai.asaifs.stat(this.filePath)];case 2:t=s.sent();r=((u=(l=this.$asai.hostconfig.logger)===null||l===void 0?void 0:l.path)===null||u===void 0?void 0:u.maxsize)||1048576;if(!(t.size>=r))return[3,4];n=this.filePath.lastIndexOf(".");i=this.filePath.substring(0,n);a=this.filePath.substring(n);return[4,this.$asai.asaifs.rename(this.filePath,"".concat(i,"-").concat((0,o.getNowTime)(5)).concat(a))];case 3:s.sent();s.label=4;case 4:return[4,this.$asai.asaifs.append(this.filePath,e)];case 5:s.sent();return[3,7];case 6:c=s.sent();console.error("Log write error:",c);return[3,7];case 7:return[2]}}))}))};LogBuffer.prototype.destroy=function(){if(this.timer){clearTimeout(this.timer);this.timer=null}this.flush()};LogBuffer.globalFlushRegistered=false;return LogBuffer}();function saveLog(e,t,r){return new Promise((function(n,s){try{var o="".concat(e.id||"default","_").concat(t);var c=i.get(o);if(!c){c=new a(e,t);i.set(o,c)}c.add(r);n()}catch(e){console.error(e);s(e)}}))}function newLoggerFile(e,t,r){var n,s;return"#Software: ".concat((n=e.hostconfig.website)===null||n===void 0?void 0:n.title,";\n#Version: ").concat((s=e.hostconfig.website)===null||s===void 0?void 0:s.ver,";\n#Date: ").concat((0,o.getNowTime)(4,t),";\n#Fields: [time]; type; message;\n").concat(r)}var c=new Map;var l=5e3;function setAppend(e,t,r){return n(this,void 0,void 0,(function(){var n,i,a,u,f,d,h,v,p;var g,m;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,7,,8]);n=((m=(g=e.hostconfig.logger)===null||g===void 0?void 0:g.path)===null||m===void 0?void 0:m.maxsize)||1048576;i=c.get(t);a=Date.now();if(!(!i||!i.ensured||a-i.lastStatMs>=l))return[3,3];return[4,e.asaifs.ensureFile(t)];case 1:s.sent();return[4,e.asaifs.stat(t)];case 2:u=s.sent();i={ensured:true,size:u.size,lastStatMs:a};c.set(t,i);s.label=3;case 3:if(!(i.size>=n))return[3,5];f=new Date;d=t.lastIndexOf(".");h=t.substring(0,d);v=t.substring(d);return[4,e.asaifs.rename(t,"".concat(h,"-").concat((0,o.getNowTime)(5,f)).concat(v))];case 4:s.sent();i.ensured=false;i.size=0;s.label=5;case 5:i.size+=Buffer.byteLength(r);return[4,saveLog(e,t,r)];case 6:s.sent();return[3,8];case 7:p=s.sent();console.error(p);c.delete(t);return[3,8];case 8:return[2]}}))}))}function setLog(e,t,r){return new Promise((function(n,s){try{setAppend(e,t,r).then(n).catch(s)}catch(e){console.error(e);s(e)}}))}function initLog(e){var t,r;function clog(){var t,r;var n=[];for(var s=0;s<arguments.length;s++){n[s]=arguments[s]}if((r=(t=e.hostconfig.logger)===null||t===void 0?void 0:t.lv)===null||r===void 0?void 0:r.view){console.log.apply(console,n)}}function formatArg(e){if(e instanceof Error)return e.message||String(e);if(typeof e==="object"){try{return JSON.stringify(e)}catch(t){return String(e)}}return String(e)}function shouldSample(t){var r;var n=(r=e.hostconfig.logger)===null||r===void 0?void 0:r.sample;if(!n||typeof n!=="object")return true;var s=t.find((function(e){return typeof e==="string"}));if(!s||n[s]==null)return true;var o=Number(n[s]);if(Number.isNaN(o)||o>=1)return true;if(o<=0)return false;return Math.random()<o}function enqueueServerLog(t,r){var n="".concat(e.hostconfig.logger.path.server,"log-").concat((0,o.getNowTime)(2,r),".txt");void saveLog(e,n,t).catch((function(e){return console.error("Log enqueue error:",e)}))}function xlog(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}clog.apply(void 0,e)}function llog(){var t,r,n,s,i,a;var c=[];for(var l=0;l<arguments.length;l++){c[l]=arguments[l]}if(!shouldSample(c))return;var u=new Date;var f=c[0];if(f===1){if((r=(t=e.hostconfig.logger)===null||t===void 0?void 0:t.path)===null||r===void 0?void 0:r.client){var d=c.slice(1).map(formatArg).join("\n");var h="[".concat((0,o.getNowTime)(3,u),"]\n").concat(d,"\n");clog(h);var v="".concat(e.hostconfig.logger.path.client,"log-").concat((0,o.getNowTime)(2,u),".txt");void saveLog(e,v,h).catch((function(e){return console.error("Log enqueue error:",e)}))}return}c.unshift("[".concat((0,o.getNowTime)(3,u),"]"));var p=c.map(formatArg).join("; ").replace(/[\n\r]/g," ")+"\n";if(typeof f==="number"&&f>666){if((s=(n=e.hostconfig.logger)===null||n===void 0?void 0:n.path)===null||s===void 0?void 0:s.server){enqueueServerLog(p,u)}}else if((a=(i=e.hostconfig.logger)===null||i===void 0?void 0:i.path)===null||a===void 0?void 0:a.server){clog(p);enqueueServerLog(p,u)}}if(e&&typeof e==="object"&&((r=(t=e.hostconfig.logger)===null||t===void 0?void 0:t.lv)===null||r===void 0?void 0:r.record)){e.$log=llog}else{e.$log=xlog}}},1725:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.initProcess=initProcess;t.gracefulShutdown=gracefulShutdown;function initProcess(e,t){var r,n,s,o;var i=((n=(r=e===null||e===void 0?void 0:e.hostconfig)===null||r===void 0?void 0:r.tm)===null||n===void 0?void 0:n.maxtry)||10;var a=((o=(s=e===null||e===void 0?void 0:e.hostconfig)===null||s===void 0?void 0:s.tm)===null||o===void 0?void 0:o.restartwindow)||6e4;var c=[];if(process.on&&typeof process.on==="function"&&"uncaughtExceptionMonitor"in process){process.on("uncaughtExceptionMonitor",(function(t){try{e.$log("FATAL","Monitor caught: ".concat((t===null||t===void 0?void 0:t.message)||t))}catch(e){}}))}process.on("unhandledRejection",(function(t,r){var n;var s=(new Error).stack;var o="";if(r&&typeof r==="object"){o=((n=r.constructor)===null||n===void 0?void 0:n.name)||"Promise";var i=(s===null||s===void 0?void 0:s.split("\n"))||[];var a=i.slice(3,6).join(" | ");o+=" Created at: ".concat(a)}var c="";if(t instanceof Error){c="\n".concat(t.name,": ").concat(t.message);if(t.stack)c+="\n【Stack】".concat(t.stack)}else if(typeof t==="object"&&t!==null){try{c=JSON.stringify(t,null,2).substring(0,500)}catch(e){c=String(t)}}else{c=String(t)}var l="Unhandled Promise Rejection:\n【Reason】 ".concat(c,"\n【Promise】").concat(o);e.$log("UNHANDLED_REJECTION",l)}));process.on("uncaughtException",(function(r){var n="Uncaught Exception: ".concat(JSON.stringify(r));try{e.$log("UNCAUGHT_EXCEPTIONS",n)}catch(e){}var s=Date.now();c.push(s);while(c.length>0&&c[0]<s-a){c.shift()}if(c.length>i){try{e.$log("NO_RESTART","Process crashed too frequently, gracefully shutdown and wait for daemon restart.")}catch(e){}try{e.$log("SHUTDOWN","Error:",(r===null||r===void 0?void 0:r.message)||r)}catch(e){}gracefulShutdown(e);return}if(t&&typeof t==="function"){try{t(r)}catch(e){console.error("Error in process error callback:",e)}}}));process.on("SIGTERM",(function(){try{e.$log("SIGTERM","SIGTERM,CLOSING...")}catch(e){}gracefulShutdown(e)}));process.on("SIGINT",(function(){try{e.$log("SIGINT","SIGINT,CLOSING...")}catch(e){}gracefulShutdown(e)}))}function gracefulShutdown(e){var t=6e4;var r;var n=Date.now();r=setTimeout((function(){e.$log("SHUTDOWN","Timeout! Exiting after ".concat(Date.now()-n,"ms"));process.exit(1)}),t);try{Object.values(e.servershttp||{}).forEach((function(t){if(t&&typeof t.close==="function"){t.close((function(t){if(t)e.$log("HTTP","HTTP server close error:",t)}))}}));Object.values(e.serversws||{}).forEach((function(t){if(t&&typeof t.close==="function"){t.close((function(t){if(t)e.$log("WS","WS server close error:",t)}))}}));if(e.hostconfig.guardtm){clearTimeout(e.hostconfig.guardtm);e.hostconfig.guardtm=null}Object.keys(e.tasksws||{}).forEach((function(t){if(e.tasksws[t].httpMonitor){clearInterval(e.tasksws[t].httpMonitor);delete e.tasksws[t].httpMonitor}}));setTimeout((function(){clearTimeout(r);e.$log("SHUTDOWN","Web Server Closed (".concat(Date.now()-n,"ms)"));process.exit(0)}),3e3)}catch(t){e.$log("SHUTDOWN","Graceful shutdown error:",t);clearTimeout(r);process.exit(1)}}},3817:function(e,t,r){"use strict";var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.ensureWsRouteIndex=ensureWsRouteIndex;t.syncApiRouteKeys=syncApiRouteKeys;t.syncWsRouteKeys=syncWsRouteKeys;t.registerApi=registerApi;t.registerWs=registerWs;t.initHostserverApi=initHostserverApi;t.initHostserverWs=initHostserverWs;t.attachRegistry=attachRegistry;var s=r(6856);function ensureWsRouteIndex(e){if(!e.wsRouteIndex){e.wsRouteIndex=new s.WsRouteIndex}return e.wsRouteIndex}function syncApiRouteKeys(e){e.hostserverapis=Object.keys(e.hostserverapi||{})}function syncWsRouteKeys(e){var t=Object.keys(e.hostserverws||{}).filter(s.isWsRouteKey);e.hostserverwss=t;ensureWsRouteIndex(e).rebuild(t)}function registerApi(e,t,r){if(!e.$lib)e.$lib={};if(!e.$lib.api)e.$lib.api={};e.$lib.api[t]=r;if(e.hostserverapi){e.hostserverapi[t]=r;syncApiRouteKeys(e)}}function registerWs(e,t,r){if(!e.$lib)e.$lib={};if(!e.$lib.ws)e.$lib.ws={};e.$lib.ws[t]=r;if(e.hostserverws){e.hostserverws[t]=r;syncWsRouteKeys(e)}}function initHostserverApi(e,t){var r;if(t===void 0){t={}}e.hostserverapi=n(n({},((r=e.$lib)===null||r===void 0?void 0:r.api)||{}),t);syncApiRouteKeys(e)}function initHostserverWs(e,t){var r,s;if(t===void 0){t={}}var o=((r=e.$lib)===null||r===void 0?void 0:r.ServerWs)?e.$lib.ServerWs(e):{};e.hostserverws=n(n(n({},o||{}),((s=e.$lib)===null||s===void 0?void 0:s.ws)||{}),t);syncWsRouteKeys(e);return o}function attachRegistry(e){e.registerApi=function(t,r){return registerApi(e,t,r)};e.registerWs=function(t,r){return registerWs(e,t,r)}}},9527:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolvePathUnderRoots=resolvePathUnderRoots;t.findExistingFileUnderRoots=findExistingFileUnderRoots;t.getHostAllowedRoots=getHostAllowedRoots;var n=r(9896);var s=r(6928);function resolvePathUnderRoots(e,t){if(!e||typeof e!=="string"){throw new Error("Invalid path")}if(e.includes("\0")){throw new Error("Invalid path")}var r=e.replace(/\\/g,"/").trim();if(/^[a-zA-Z]:/.test(r)||r.startsWith("//")){throw new Error("Absolute paths are not allowed")}var n=s.normalize(r.replace(/^\/+/,""));for(var o=0,i=t;o<i.length;o++){var a=i[o];if(!a)continue;var c=s.resolve(a);var l=s.resolve(c,n);var u=s.relative(c,l);if(u===""||!u.startsWith("..")&&!s.isAbsolute(u)){return l}}throw new Error("Path not allowed")}function findExistingFileUnderRoots(e,t){if(!e||typeof e!=="string"||e.includes("\0")){return null}var r=e.replace(/\\/g,"/").trim();if(/^[a-zA-Z]:/.test(r)||r.startsWith("//")){return null}var o=s.normalize(r.replace(/^\/+/,""));for(var i=0,a=t;i<a.length;i++){var c=a[i];if(!c)continue;try{var l=s.resolve(c);var u=s.resolve(l,o);var f=s.relative(l,u);if(f.startsWith("..")||s.isAbsolute(f))continue;var d=n.statSync(u);if(d.isFile()){return{filePath:u,stat:d}}}catch(e){}}return null}function getHostAllowedRoots(e){var t;var r=new Set;var push=function(e){if(typeof e!=="string"||!e.trim())return;try{var t=s.resolve("./"+e.replace(/\\/g,"/"));if(n.existsSync(t))r.add(t)}catch(e){}};for(var o=0,i=(e===null||e===void 0?void 0:e.hostdirs)||[];o<i.length;o++){var a=i[o];push(a)}push("webdata");push("websys");if((t=e===null||e===void 0?void 0:e.weburls)===null||t===void 0?void 0:t.webdir)push(e.weburls.webdir);var c=[];r.forEach((function(e){return c.push(e)}));return c}},4161:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.secureCompare=secureCompare;var n=r(6982);function secureCompare(e,t){if(typeof e!=="string"||typeof t!=="string")return false;var r=Buffer.from(e);var s=Buffer.from(t);if(r.length!==s.length)return false;return(0,n.timingSafeEqual)(r,s)}},4239:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.initTransportBridge=initTransportBridge;t.ensureDefaultConnection=ensureDefaultConnection;t.createTransportDataHandler=createTransportDataHandler;t.wireTransportConnectionLogs=wireTransportConnectionLogs;var n=r(3817);var s=r(3216);var o={tcp:"asaihosttcpPending",grpc:"asaihostgrpcPending",rs485:"asaihost485Pending"};function initTransportBridge(e){var t=e.$asai,r=e.manager;t[e.managerKey]=r;if(!t[e.serversKey]){t[e.serversKey]={}}var i=(0,s.getTransportDefault)(t.hostconfig,e.transport);var a=(0,s.getDefaultConnId)(t.hostconfig,e.transport);if(i){var c=e.buildDefaultConfig(i);t[o[e.transport]]={connId:a,config:c};if((0,s.shouldAutoConnect)(i)&&!t[e.serversKey][a]){t[e.serversKey][a]=r.connect(c)}}(0,n.registerApi)(t,e.apiRoute,e.apiHandler);(0,n.registerWs)(t,e.wsRoute,e.wsHandler);return r}function ensureDefaultConnection(e,t){var r=e[o[t]];if(!r)return null;var n=t==="tcp"?"asaihosttcp":t==="grpc"?"asaihostgrpc":"asaihost485";var s=t==="tcp"?"asaihosttcpserver":t==="grpc"?"asaihostgrpcserver":"asaihost485server";var i=e[n];if(!i||!r.connId)return null;if(!e[s])e[s]={};if(!e[s][r.connId]){e[s][r.connId]=i.connect(r.config)}return r.connId}function createTransportDataHandler(e,t){return function(r){var n,s,o,i,a,c,l;if(typeof r.data==="string"){try{r.data=JSON.parse(r.data)}catch(e){}}if((n=r.data)===null||n===void 0?void 0:n.id){t.watch(r.id,r.data);return}try{var u=(i=(o=(s=e===null||e===void 0?void 0:e.command)===null||s===void 0?void 0:s.commandconfig)===null||o===void 0?void 0:o.config)===null||i===void 0?void 0:i.commandclient;(l=(c=(a=e.serversws)===null||a===void 0?void 0:a[u])===null||c===void 0?void 0:c.broadws)===null||l===void 0?void 0:l.call(c,r.data)}catch(e){}}}function wireTransportConnectionLogs(e,t,r){e.on(t.CONNECTED,(function(e){console.log("".concat(r," 连接上线"),e.id,e.label||"")}));e.on(t.DISCONNECTED,(function(e){console.log("".concat(r," 连接离线"),e.id,e.label||"")}));if(t.ERROR){e.on(t.ERROR,(function(){}))}}},343:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.startProxyServer=startProxyServer;var n=r(2309);var s=r(67);var o=new Set(["transfer-encoding","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailers","upgrade"]);function startProxyServer(e,t){var r,i,a,c,l,u,f;var d=(0,n.getProxyHostCFG)(t,e);if(!d.url)return;try{var h=(0,s.getHTTPServer)(d.proxyhttptype,d,e);var v=(0,s.getHTTPServer)(d.url,d,e);var p=new URL(d.url);var g=p.protocol==="https:";var m=g?443:80;var y=new v.Agent({keepAlive:(r=d.keepAlive)!==null&&r!==void 0?r:true,timeout:(i=d.timeout)!==null&&i!==void 0?i:6e4,keepAliveMsecs:(a=d.keepAliveMsecs)!==null&&a!==void 0?a:3e4,maxSockets:(c=d.maxSockets)!==null&&c!==void 0?c:1e3,maxFreeSockets:(l=d.maxFreeSockets)!==null&&l!==void 0?l:100,rejectUnauthorized:(u=d.rejectUnauthorized)!==null&&u!==void 0?u:false,secureProtocol:(f=d.secureProtocol)!==null&&f!==void 0?f:"TLS_method"});var _=h.AsCreateServer((function(t,r){var n;if(d.redirect){r.writeHead(301,{Location:d.url+t.url,"Strict-Transport-Security":"max-age=31536000"});r.end();return}var i=new URL(t.url||"/",p);var a={};for(var c=0,l=Object.keys(t.headers);c<l.length;c++){var u=l[c];if(!o.has(u.toLowerCase())){a[u]=t.headers[u]}}var f={agent:y,method:t.method,hostname:i.hostname,port:i.port||m,path:i.pathname+i.search,headers:a};if(g){f.servername=i.hostname}var h=(n=d.passUserInfo)!==null&&n!==void 0?n:false;var _=v.request(f,(function(n){Object.keys(n.headers).forEach((function(e){if(!o.has(e.toLowerCase())){r.setHeader(e,n.headers[e])}}));r.statusCode=n.statusCode;if(h){var i=(0,s.getHttpUserinfo)(t,e);if(i)r.setHeader("Userinfo",Array.isArray(i)?i.join("##"):i)}n.pipe(r,{end:true})}));t.pipe(_,{end:true});t.on("error",(function(t){e.$log("PROXY","Client request error:",t);_.destroy()}));_.on("error",(function(t){e.$log("PROXY","Forward request error:",t);e.$log("PROXY","Target: ".concat(i.href,", HTTPS: ").concat(g));if(!r.headersSent){r.writeHead(502,{"Content-Type":"text/plain; charset=utf-8"})}r.end("Bad Gateway: "+t.message)}));_.setTimeout(12e4,(function(){e.$log("PROXY","Forward request timeout");_.destroy();if(!r.headersSent){r.writeHead(504,{"Content-Type":"text/plain; charset=utf-8"})}r.end("Gateway Timeout")}))}));_.on("error",(function(t){if(t.code==="EADDRINUSE"){e.$log("PROXY","Port ".concat(d.proxyport," is already start!"))}else{e.$log("PROXY","Proxy server error:",t)}}));var b=(0,n.getHostIP)(d.proxyip,e);var listenCallback=function(){console.log("[".concat(t,"] Start At ").concat((0,n.getNowTime)(),"."));console.log("Proxy Server ".concat(d.proxyhttptype).concat(b||"localhost",":").concat(d.proxyport,""));console.log("Target Server ".concat(d.url,""));console.log("================================================")};if(b){_.listen(d.proxyport,b,listenCallback)}else{_.listen(d.proxyport,listenCallback)}}catch(t){e.$log("PROXY","Proxy server error:",JSON.stringify(t))}}},2899:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.wsMock=t.deUserInfoWithAsai=void 0;var n=r(3724);Object.defineProperty(t,"deUserInfoWithAsai",{enumerable:true,get:function(){return n.deUserInfoWithAsai}});var s=r(7664);Object.defineProperty(t,"wsMock",{enumerable:true,get:function(){return s.wsMock}})},3724:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.deUserInfoWithAsai=deUserInfoWithAsai;function deUserInfoWithAsai(e,t){if(!Array.isArray(e)||e.length<3){return e}if(e[2]){try{e[2]=t.$lib.AsCode.asdecode(e[2],t.hostconfig.asaisn);e[0]=t.$lib.AsCode.asdecode(e[0],e[2]);e[1]=t.$lib.AsCode.asdecode(e[1],e[2])}catch(e){t.$log("USER","User info decode error:",e)}}return e}},7664:function(e,t){"use strict";var r=this&&this.__assign||function(){r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return r.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.wsMock=wsMock;function wsMock(e){function getKeyByData(e,t){return"_wstask_"+(t||"")+"_"+((e===null||e===void 0?void 0:e.id)||(e===null||e===void 0?void 0:e.ty)+"."+(e===null||e===void 0?void 0:e.ac))}function getMockDb(t){var n;var s=t.reqdata,o=t.mockdata;var i=(o===null||o===void 0?void 0:o.fn)?(n=e.asaimock.fn)===null||n===void 0?void 0:n[o.fn]:null;if(i)return i({workopt:t,$asai:e,mockName:o.fn});return r(r({},s),o||{})}function wsWorkApi(t){var r,n;(n=(r=e.serversws[t.hostdir])===null||r===void 0?void 0:r.sendws)===null||n===void 0?void 0:n.call(r,t.reqdataisobj?getMockDb(t):t.reqdata,0,t.ws)}function wsWorkListen(t,n){var s,o,i;if((s=t.reqdata)===null||s===void 0?void 0:s.off){if(e.tasksws[t.hostdir][n]){clearInterval(e.tasksws[t.hostdir][n]);e.tasksws[t.hostdir][n]=null}return}if(e.tasksws[t.hostdir][n])return;var a=getMockDb(t);e.tasksws[t.hostdir][n]=setInterval((function(){var s=r(r({},getMockDb(t)),{tm:Date.now()});e.serversws[t.hostdir].sendws(s,s.pb||2,t.ws);if(!e.tasksws[t.hostdir][n]){clearInterval(e.tasksws[t.hostdir][n])}}),(a===null||a===void 0?void 0:a.tc)||2e3);(i=(o=t.ws)===null||o===void 0?void 0:o.once)===null||i===void 0?void 0:i.call(o,"close",(function(){var r;if((r=e.tasksws[t.hostdir])===null||r===void 0?void 0:r[n]){clearInterval(e.tasksws[t.hostdir][n]);delete e.tasksws[t.hostdir][n]}}))}function wsWorkMock(t){var r,n,s,o,i;t.mockdata=t.reqdataisobj&&((s=(n=(r=e.asaimock)===null||r===void 0?void 0:r.db)===null||n===void 0?void 0:n[t.hostdir])===null||s===void 0?void 0:s[(o=t.reqdata)===null||o===void 0?void 0:o.ty])||{};if((i=t.mockdata)===null||i===void 0?void 0:i.wc){wsWorkListen(t,getKeyByData(t.reqdata,t.hostdir))}else{wsWorkApi(t)}}return{getKeyByData:getKeyByData,wsWorkApi:wsWorkApi,wsWorkMock:wsWorkMock,wsWorkListen:wsWorkListen,getMockDb:getMockDb}}},6472:function(e,t,r){"use strict";var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:true});t.getWsUserinfo=getWsUserinfo;t.isOkWs=isOkWs;t.loginWs=loginWs;var s=r(1354);var o=r(3724);function getWsUserinfo(e,t){var r;try{var n=(r=e.headers)===null||r===void 0?void 0:r["sec-websocket-protocol"];if(!n)return null;return(0,o.deUserInfoWithAsai)(n.split("##"),t)}catch(e){return null}}function checkWsIsOn(e,t){var r,n,s;if(!t)return;try{t.send(JSON.stringify({ty:"publish/web",db:"pong"}));var o=setTimeout((function(){var e,r;(e=t.terminate)===null||e===void 0?void 0:e.call(t);(r=t.close)===null||r===void 0?void 0:r.call(t)}),((n=(r=e===null||e===void 0?void 0:e.hostconfig)===null||r===void 0?void 0:r.tm)===null||n===void 0?void 0:n.d)||3e3);(s=t.once)===null||s===void 0?void 0:s.call(t,"message",(function(){if(o){clearTimeout(o);o=null}}))}catch(e){}}function isOkWs(e,t,r,s,o){var i,a,c;var l=r.Userinfo||[],u=l[0],f=l[2];if(!u){r.close();return false}if(u!=="asai"&&((i=e.connectionsws[t])===null||i===void 0?void 0:i[u])){var d=e.connectionsws[t][u];var h={ty:"publish/web",db:{exit:1,type:"err",lang:"logged",langpm:"".concat(u),con:"".concat(u," logged in!")}};checkWsIsOn(e,d);var v=JSON.stringify(((a=d===null||d===void 0?void 0:d.Userinfo)===null||a===void 0?void 0:a[2])===f?n(n({},h),{db:n(n({},h.db),{lang:"loggedsametk"})}):h);r.send(v);if(((c=d===null||d===void 0?void 0:d.Userinfo)===null||c===void 0?void 0:c[2])===f)d.send(v,(function(){return d.close()}));return false}if(u!=="asai"){var p=e.connectionsws[t]||{};var g=Object.values(p).find((function(e){var t;return((t=e.Userinfo)===null||t===void 0?void 0:t[2])===f}));var m=o.maxonline||100;if(g){var h={ty:"publish/web",db:{exit:1,type:"err",lang:"loggedsametk",langpm:"".concat(u,"(").concat(g.Userinfo[0],")"),con:"".concat(u,"(").concat(g.Userinfo[0],") logged in!")}};var v=JSON.stringify(h);r.send(v);g.send(v,(function(){return g.close()}));return false}if(Object.keys(p).length>=m){r.send(JSON.stringify({ty:"publish/web",db:{exit:1,type:"err",lang:"maxlogged",langpm:"".concat(m),con:"max ".concat(m," users online!")}}),(function(){return r.close()}));return false}}return true}function loginWs(e,t,r,n,o,i,a){var c=(r.Userinfo||[])[0];if(o.ckws&&c){if(!r.tasksws)r.tasksws={};e.connectionsws[t][c]=r}r.on("message",(function(s){if(a)e.$log("WS","message",s.toString());i===null||i===void 0?void 0:i(s,r,t,n)}));r.on("close",(function(){var n;if(o.ckws){if(r.tasksws){Object.values(r.tasksws).forEach((function(e){return e&&clearInterval(e)}));r.tasksws=undefined}if(c&&((n=e.connectionsws[t])===null||n===void 0?void 0:n[c]))delete e.connectionsws[t][c]}if(r.readyState!==s.WebSocket.CLOSED&&r.readyState!==s.WebSocket.CLOSING)r.close()}))}},71:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.clearWsServerTasks=clearWsServerTasks;t.resWsMsg=resWsMsg;t.attachWssHelpers=attachWssHelpers;var n=r(1354);function clearWsServerTasks(e,t){var r=e.tasksws[t];if(r&&typeof r==="object"){Object.values(r).forEach((function(e){if(e)clearInterval(e)}));e.tasksws[t]={}}}function resWsMsg(e,t){var r,n,s;if(e==="ping"||e==="pong")return e;if(typeof e!=="object"||e===null)return e;if(((e===null||e===void 0?void 0:e.aes)||((r=t.$lib.aesfns)===null||r===void 0?void 0:r.allaes))&&(e===null||e===void 0?void 0:e.db)&&((s=(n=t.$lib)===null||n===void 0?void 0:n.aesfns)===null||s===void 0?void 0:s.resAES)){e.db=t.$lib.aesfns.resAES(e.db)}return JSON.stringify(e)}function attachWssHelpers(e,t){e.sendws=function(r,s,o){var i=resWsMsg(r,t);if(s){e.clients.forEach((function(e){if((s===2||e!==o)&&e.readyState===n.WebSocket.OPEN){e.send(i)}}))}else{o.send(i)}};e.broadws=function(r){var s=resWsMsg(r,t);e.clients.forEach((function(e){if((e===null||e===void 0?void 0:e.readyState)===n.WebSocket.OPEN)e.send(s)}))}}},6856:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.WsRouteIndex=void 0;t.createWsRouteIndex=createWsRouteIndex;t.isWsRouteKey=isWsRouteKey;var r=new Set(["wsWork","commandwork"]);var n=function(){function WsRouteIndex(){this.routes=[]}WsRouteIndex.prototype.rebuild=function(e){this.routes=e.filter((function(e){return e&&!r.has(e)})).sort((function(e,t){return t.length-e.length}))};WsRouteIndex.prototype.matchTy=function(e){if(!e||typeof e!=="string")return undefined;for(var t=0,r=this.routes;t<r.length;t++){var n=r[t];if(e.startsWith(n))return n}return undefined};WsRouteIndex.prototype.matchString=function(e){if(typeof e!=="string")return undefined;for(var t=0,r=this.routes;t<r.length;t++){var n=r[t];if(e.startsWith(n))return n}return undefined};return WsRouteIndex}();t.WsRouteIndex=n;function createWsRouteIndex(e){if(e===void 0){e=[]}var t=new n;t.rebuild(e);return t}function isWsRouteKey(e){return!!e&&!r.has(e)}},6401:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getWsUserinfo=t.clearWsServerTasks=void 0;t.createWSHost=createWSHost;var n=r(1354);var s=r(2309);var o=r(5105);var i=r(6472);var a=r(71);var c=r(71);Object.defineProperty(t,"clearWsServerTasks",{enumerable:true,get:function(){return c.clearWsServerTasks}});var l=r(6472);Object.defineProperty(t,"getWsUserinfo",{enumerable:true,get:function(){return l.getWsUserinfo}});function createWSHost(e,t){var r,c;var l=(0,s.getHostCFG)(t,e);var u=(0,o.getWorkHandler)("wsWork");var f=!!((c=(r=e.hostconfig.logger)===null||r===void 0?void 0:r.lv)===null||c===void 0?void 0:c.view);try{if(e.serversws[t])return;if(l.ckws&&!e.connectionsws[t]){e.connectionsws[t]={}}if(!e.tasksws[t])e.tasksws[t]={};var d=new n.WebSocketServer({server:e.servershttp[t],perMessageDeflate:false});(0,a.attachWssHelpers)(d,e);d.on("error",(function(r){var n;(0,a.clearWsServerTasks)(e,t);e.$log("WS","WS Server error!",r);(n=d.close)===null||n===void 0?void 0:n.call(d,(function(){e.$log("WS","WS Server closed");delete e.serversws[t]}))}));d.on("close",(function(r,n){try{e.$log("WS","WebSocket closed, server ".concat(t,", code: ").concat(r,", reason: ").concat(n===null||n===void 0?void 0:n.toString()));(0,a.clearWsServerTasks)(e,t)}catch(t){e.$log("WS","WS close handler error:",t)}}));d.on("connection",(function(r,n){var s=l.maxws||100;var o=e.connectionsws[t]||{};var a=l.ckws?Object.keys(o).length:0;if(a>=s){e.$log("WS","WS Connection MAX rejected (".concat(a,"/").concat(s,")"));var c=JSON.stringify({ty:"publish/web",db:{exit:1,type:"err",lang:"maxws",langpm:"".concat(s),con:"max ".concat(s," clients online!")}});r.send(c,(function(){return r.close(1013,"Server busy")}));return}n.Userinfo=(0,i.getWsUserinfo)(n,e)||[];r.Userinfo=n.Userinfo;var d=!l.ckws||(0,i.isOkWs)(e,t,r,n,l);if(d){(0,i.loginWs)(e,t,r,n,l,u,f)}else{r.close()}}));e.serversws[t]=d}catch(t){e.$log("WS","ws server:",JSON.stringify(t))}}},8327:module=>{module.exports=eval("require")("bufferutil")},2414:module=>{module.exports=eval("require")("utf-8-validate")},181:e=>{"use strict";e.exports=require("buffer")},6982:e=>{"use strict";e.exports=require("crypto")},4434:e=>{"use strict";e.exports=require("events")},9896:e=>{"use strict";e.exports=require("fs")},8611:e=>{"use strict";e.exports=require("http")},5692:e=>{"use strict";e.exports=require("https")},9278:e=>{"use strict";e.exports=require("net")},857:e=>{"use strict";e.exports=require("os")},6928:e=>{"use strict";e.exports=require("path")},2203:e=>{"use strict";e.exports=require("stream")},4756:e=>{"use strict";e.exports=require("tls")},7016:e=>{"use strict";e.exports=require("url")},3106:e=>{"use strict";e.exports=require("zlib")}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var n=true;try{__webpack_modules__[e].call(r.exports,r,r.exports,__nccwpck_require__);n=false}finally{if(n)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__={};(()=>{"use strict";var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:true});e.initAsaiHost=void 0;var t=__nccwpck_require__(5105);var r=__nccwpck_require__(2899);var n=__nccwpck_require__(3135);function hostDefault(e){if(e&&typeof e==="object"&&"default"in e){var t=e.default;if(t!==undefined)return t}return e}var s=hostDefault(t.default);var o=__nccwpck_require__(3216);var i=__nccwpck_require__(6332);var a=__nccwpck_require__(2370);var c={fn:function(e,t){return s(e,t)},AsaiCommon:n.default,AsaiUtils:r,normalizeHostConfig:o.normalizeHostConfig,validateHostConfig:i.validateHostConfig,getTransportBlock:o.getTransportBlock,getTransportDefault:o.getTransportDefault,hasTransportDefault:o.hasTransportDefault,getDefaultConnId:o.getDefaultConnId,resolveReconnectOptions:o.resolveReconnectOptions,shouldAutoConnect:o.shouldAutoConnect,registerApi:a.registerApi,registerWs:a.registerWs,initHostserverApi:a.initHostserverApi,initHostserverWs:a.initHostserverWs,syncApiRouteKeys:a.syncApiRouteKeys,syncWsRouteKeys:a.syncWsRouteKeys,initTransportBridge:a.initTransportBridge,ensureDefaultConnection:a.ensureDefaultConnection,createTransportDataHandler:a.createTransportDataHandler,wireTransportConnectionLogs:a.wireTransportConnectionLogs,secureCompare:a.secureCompare,resolvePathUnderRoots:a.resolvePathUnderRoots,getHostAllowedRoots:a.getHostAllowedRoots};e.initAsaiHost=c;e["default"]=c})();module.exports=__webpack_exports__})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asai-nodejs-host",
3
- "version": "0.2.35",
3
+ "version": "0.2.36",
4
4
  "description": "asai for you",
5
5
  "author": "Asai",
6
6
  "license": "ISC",