mini_program_gizwits_sdk 3.7.34-cozev5 → 3.7.36-cozev5

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.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- module.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(n,s,function(t){return e[t]}.bind(null,s));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=35)}([function(e,t,i){(function(t){var n;e.exports=(n=n||function(e,n){var s;if("undefined"!=typeof window&&window.crypto&&(s=window.crypto),"undefined"!=typeof self&&self.crypto&&(s=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(s=globalThis.crypto),!s&&"undefined"!=typeof window&&window.msCrypto&&(s=window.msCrypto),!s&&void 0!==t&&t.crypto&&(s=t.crypto),!s)try{s=i(40)}catch(e){}var r=function(){if(s){if("function"==typeof s.getRandomValues)try{return s.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof s.randomBytes)try{return s.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function e(){}return function(t){var i;return e.prototype=t,i=new e,e.prototype=null,i}}(),a={},c=a.lib={},u=c.Base={extend:function(e){var t=o(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},l=c.WordArray=u.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,i=e.words,n=this.sigBytes,s=e.sigBytes;if(this.clamp(),n%4)for(var r=0;r<s;r++){var o=i[r>>>2]>>>24-r%4*8&255;t[n+r>>>2]|=o<<24-(n+r)%4*8}else for(var a=0;a<s;a+=4)t[n+a>>>2]=i[a>>>2];return this.sigBytes+=s,this},clamp:function(){var t=this.words,i=this.sigBytes;t[i>>>2]&=4294967295<<32-i%4*8,t.length=e.ceil(i/4)},clone:function(){var e=u.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],i=0;i<e;i+=4)t.push(r());return new l.init(t,e)}}),d=a.enc={},h=d.Hex={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],s=0;s<i;s++){var r=t[s>>>2]>>>24-s%4*8&255;n.push((r>>>4).toString(16)),n.push((15&r).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,i=[],n=0;n<t;n+=2)i[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new l.init(i,t/2)}},f=d.Latin1={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],s=0;s<i;s++){var r=t[s>>>2]>>>24-s%4*8&255;n.push(String.fromCharCode(r))}return n.join("")},parse:function(e){for(var t=e.length,i=[],n=0;n<t;n++)i[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new l.init(i,t)}},p=d.Utf8={stringify:function(e){try{return decodeURIComponent(escape(f.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return f.parse(unescape(encodeURIComponent(e)))}},v=c.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var i,n=this._data,s=n.words,r=n.sigBytes,o=this.blockSize,a=r/(4*o),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,u=e.min(4*c,r);if(c){for(var d=0;d<c;d+=o)this._doProcessBlock(s,d);i=s.splice(0,c),n.sigBytes-=u}return new l.init(i,u)},clone:function(){var e=u.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),g=(c.Hasher=v.extend({cfg:u.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){v.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,i){return new e.init(i).finalize(t)}},_createHmacHelper:function(e){return function(t,i){return new g.HMAC.init(e,i).finalize(t)}}}),a.algo={});return a}(Math),n)}).call(this,i(15))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(e){if(this.msgId=0,this.payloadVer=0,this.cmd=0,this.seq=0,this.frames=1,this.frameLen=0,this.payload=new Uint8Array,this.raw=new Uint8Array,!e)return;let t;if(t=e instanceof ArrayBuffer||Array.isArray(e)?new Uint8Array(e):e,this.raw=t,t.length<4)throw new Error("BLE packet too short");const i=t[0];this.msgId=31&i,this.payloadVer=i>>5&3,this.cmd=t[1];const n=t[2];this.seq=15&n,this.frames=1+(n>>4&15),this.frameLen=t[3],t.length>4?this.payload=t.slice(4):this.payload=new Uint8Array}isSingleFrame(){return 1===this.frames}getHeaderBytes(){return this.raw.slice(0,4)}}},function(e,t,i){var n,s,r,o,a,c,u,l,d,h,f,p,v,g,_,y,m,D,S;e.exports=(n=i(0),i(8),void(n.lib.Cipher||(s=n,r=s.lib,o=r.Base,a=r.WordArray,c=r.BufferedBlockAlgorithm,u=s.enc,u.Utf8,l=u.Base64,d=s.algo.EvpKDF,h=r.Cipher=c.extend({cfg:o.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,i){this.cfg=this.cfg.extend(i),this._xformMode=e,this._key=t,this.reset()},reset:function(){c.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?S:m}return function(t){return{encrypt:function(i,n,s){return e(n).encrypt(t,i,n,s)},decrypt:function(i,n,s){return e(n).decrypt(t,i,n,s)}}}}()}),r.StreamCipher=h.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),f=s.mode={},p=r.BlockCipherMode=o.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),v=f.CBC=function(){var e=p.extend();function t(e,t,i){var n,s=this._iv;s?(n=s,this._iv=void 0):n=this._prevBlock;for(var r=0;r<i;r++)e[t+r]^=n[r]}return e.Encryptor=e.extend({processBlock:function(e,i){var n=this._cipher,s=n.blockSize;t.call(this,e,i,s),n.encryptBlock(e,i),this._prevBlock=e.slice(i,i+s)}}),e.Decryptor=e.extend({processBlock:function(e,i){var n=this._cipher,s=n.blockSize,r=e.slice(i,i+s);n.decryptBlock(e,i),t.call(this,e,i,s),this._prevBlock=r}}),e}(),g=(s.pad={}).Pkcs7={pad:function(e,t){for(var i=4*t,n=i-e.sigBytes%i,s=n<<24|n<<16|n<<8|n,r=[],o=0;o<n;o+=4)r.push(s);var c=a.create(r,n);e.concat(c)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.BlockCipher=h.extend({cfg:h.cfg.extend({mode:v,padding:g}),reset:function(){var e;h.reset.call(this);var t=this.cfg,i=t.iv,n=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=n.createEncryptor:(e=n.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,i&&i.words):(this._mode=e.call(n,this,i&&i.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4}),_=r.CipherParams=o.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=(s.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,i=e.salt;return(i?a.create([1398893684,1701076831]).concat(i).concat(t):t).toString(l)},parse:function(e){var t,i=l.parse(e),n=i.words;return 1398893684==n[0]&&1701076831==n[1]&&(t=a.create(n.slice(2,4)),n.splice(0,4),i.sigBytes-=16),_.create({ciphertext:i,salt:t})}},m=r.SerializableCipher=o.extend({cfg:o.extend({format:y}),encrypt:function(e,t,i,n){n=this.cfg.extend(n);var s=e.createEncryptor(i,n),r=s.finalize(t),o=s.cfg;return _.create({ciphertext:r,key:i,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,i,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(i,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),D=(s.kdf={}).OpenSSL={execute:function(e,t,i,n){n||(n=a.random(8));var s=d.create({keySize:t+i}).compute(e,n),r=a.create(s.words.slice(t),4*i);return s.sigBytes=4*t,_.create({key:s,iv:r,salt:n})}},S=r.PasswordBasedCipher=m.extend({cfg:m.cfg.extend({kdf:D}),encrypt:function(e,t,i,n){var s=(n=this.cfg.extend(n)).kdf.execute(i,e.keySize,e.ivSize);n.iv=s.iv;var r=m.encrypt.call(this,e,t,s.key,n);return r.mixIn(s),r},decrypt:function(e,t,i,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var s=n.kdf.execute(i,e.keySize,e.ivSize,t.salt);return n.iv=s.iv,m.decrypt.call(this,e,t,s.key,n)}}))))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bytesToHexString=t.bytesToInt=t.arrayToUint8=t.formatCode=t.formatCodesFromStr=t.hexStrint2byte=t.string2Bytes=t.fillString=t.arrayToString=t.getProtocolLen=t.checkHeader=t.arrayToASCII=t.ascii2Array=t.completeBlock=void 0;t.checkHeader=e=>{let t=0;return 0===e[0]&&0===e[1]&&0===e[2]&&3===e[3]&&(t=4,4)};t.completeBlock=e=>{const t=n(e,8*Math.ceil(e.length/8)),i=[];for(let e=0;e<t.length;e+=8)i.push(parseInt(t.substring(e,e+8),2));return i};t.getProtocolLen=e=>{let t=0;for(;t<e.length&&"1"===n(e[t].toString(2),8)[0];t++);return t+1},t.arrayToString=function(e){let t="";return e.map(e=>(t+=n(e.toString(16),2),null)),t},t.ascii2Array=function(e){const t=[];for(let i=0;i<e.length;i++)t.push(e.charCodeAt(i));return t},t.arrayToASCII=function(e){let t="";return e.map(e=>(t+=String.fromCharCode(e),null)),t};const n=(e,t,i=!1)=>{const n=t-e.length,s=new Array(n).fill(0).join("");return i?e+=s:e=s+e,e};t.fillString=n;t.bytesToInt=e=>{let t=0;for(let i=0;i<e.length;i++)t=t<<8|e[i];return t};t.bytesToHexString=e=>Array.from(e,e=>("0"+e.toString(16)).slice(-2)).join("");t.string2Bytes=e=>{const t=[];for(let i=0;i<e.length;i++)t.push(e.charCodeAt(i));return t};t.hexStrint2byte=e=>{e.length%2!=0&&(e=`0${e}`);const t=Math.ceil(e.length/2),i=[];for(let n=0;n<t;n++){const t=2*n,s=t+2,r=e.substring(t,s);i.push(parseInt(r,16))}return i};const s=e=>{const t=encodeURI(e);return-1!==t.indexOf("%")&&"%"!==e?t.split("%").filter(e=>""!==e).map(e=>parseInt(e,16)):[t.charCodeAt(0)]};t.formatCode=s;t.formatCodesFromStr=e=>{let t=0,i=[];for(let n=0;n<e.length;n++){const r=s(e[n]);t+=r.length,i=i.concat(r)}return[i,t]};t.arrayToUint8=e=>{const t=new ArrayBuffer(e.length),i=new Uint8Array(t);for(let n=0;n<t.byteLength;n++)i[n]=e[n];return i}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={GIZ_OPENAPI_DEVICE_NOT_BOUND:{errorCode:9017,errorMessage:"not bind"},GIZ_SDK_HTTP_REQUEST_FAILED:{errorCode:8099,errorMessage:"网络请求失败"},GIZ_SDK_DEVICE_NO_RESPONSE:{errorCode:8030,errorMessage:"设备未响应"},GIZ_SDK_SDK_NOT_INITIALIZED:{errorCode:8300,errorMessage:"not init"},CONFIG_TIME_OUT:{errorCode:8023,errorMessage:"Config Timeout"},WECHAT_ERROR:{errorCode:1e4,errorMessage:"wechat error"},GIZ_SDK_ONBOARDING_STOPPED:{errorCode:8318,errorMessage:"配网中断"},GIZ_SDK_DEVICE_CONFIG_IS_RUNNING:{errorCode:8022,errorMessage:"配置正在进行中"},GIZ_OPENAPI_TOKEN_INVALID:{errorCode:9004,errorMessage:"token 失效"},GIZ_SDK_BIND_DEVICE_FAILED:{errorCode:8039,errorMessage:"设备绑定失败"},GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON:{errorCode:8281,errorMessage:"蓝牙未启用"},GIZ_SDK_OTHERWISE:{errorCode:8100,errorMessage:""},GIZ_SDK_DEVICE_NOT_SUBSCRIBED:{errorCode:8029,errorMessage:"设备还未订阅"},GIZ_SDK_PRODUCTKEY_NOT_IN_SPECIFY:{errorCode:8250,errorMessage:"产品类型不在指定范围内"},GIZ_SDK_LOG_LEVEL_INVALID:{errorCode:8009,errorMessage:"产品类型不在指定范围内"},GIZ_SDK_OTA_DEVICE_NOT_SUPPORT:{errorCode:8360,errorMessage:"设备不支持手机OTA升级"},GIZ_SDK_OTA_DEVICE_BUSY_IN_UPGRADE:{errorCode:8354,errorMessage:"设备忙,固件正在升级"},GIZ_SDK_OTA_FIRMWARE_DOWNLOAD_FAILED:{errorCode:8353,errorMessage:"固件下载失败"},GIZ_SDK_OTA_FIRMWARE_TYPE_NOT_MATCH:{errorCode:8361,errorMessage:"蓝牙OTA设备返回的固件类型与当前要升级的固件类型不匹配"},GIZ_SDK_BLE_DEVICE_NOT_FOUND:{errorCode:10001,errorMessage:"蓝牙设备未找到"},GIZ_SDK_BLE_DEVICE_SEND_FAILED:{errorCode:10002,errorMessage:"蓝牙配网包发送失败"}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getGlobalData=t.setGlobalData=void 0;const n={};t.setGlobalData=function(e,t){n[e]=t},t.getGlobalData=function(e){return n[e]}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(4)),r=n(i(39));t.default=new class{constructor(){this.logMap=[{id:"debug"},{id:"info"},{id:"warn"},{id:"error"}],this.console=console,this.debug=(...e)=>{this.console.debug(...e)},this.info=(...e)=>{this.console.info(...e)},this.log=(...e)=>{this.console.log(...e)},this.warn=(...e)=>{this.console.warn(...e)},this.error=(e,t)=>{this.console.error(e,t),(0,r.default)(t)},this.setLogLevel=e=>{const t=this.logMap.findIndex(t=>t.id===e);return-1!==t?(this.console=Object.assign({},console),this.logMap.map((e,i)=>{i<t&&(this.console[e.id]=()=>{})}),{success:!0,err:null}):{success:!1,err:s.default.GIZ_SDK_LOG_LEVEL_INVALID}}}}},function(e,t,i){"use strict";(function(e){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.statisticRequest=t.cozeApiRequest=void 0;const r=s(i(4)),o=i(5),a=s(i(26));t.cozeApiRequest=function(e,t){return n(this,void 0,void 0,(function*(){const i=Object.assign({},t),n=(0,o.getGlobalData)("cloudServiceInfo").cozeAPIInfo,s={"Content-Type":"application/json","X-Gizwits-Application-Id":(0,o.getGlobalData)("appID")},r=(0,o.getGlobalData)("token");r&&(s["X-Gizwits-User-Token"]=r),i.header=Object.assign(Object.assign({},s),t.headers),delete i.headers,console.log(`coze request ${n+e}`,s,e);const c=yield(0,a.default)("https://"+n+e,i);return c.statusCode>=200&&c.statusCode<300?{success:!0,data:c.data}:{success:!1,err:{errorCode:c.data.error_code,errorMessage:c.data.error_message}}}))};t.statisticRequest=function(t,i,s=!0){return n(this,void 0,void 0,(function*(){try{const n=i.body.appInfo.appID,r=Object.assign(Object.assign({},i),{data:i.body}),c={"Content-Type":"application/json","X-Gizwits-Application-Id":n};s&&(c["X-Gizwits-User-token"]=e.token),r.headers=Object.assign(Object.assign({},c),i.headers);const u=`https://${(0,o.getGlobalData)("cloudServiceInfo").openAPIInfo}/`;console.log("===statisticRequest===",u+t,r);const l=yield(0,a.default)(u+t,r);return(null==l?void 0:l.statusCode)>=200&&(null==l?void 0:l.statusCode)<300?{success:!0,data:null==l?void 0:l.data}:{success:!1,err:{errorCode:(null==l?void 0:l.data).error_code,errorMessage:(null==l?void 0:l.data).error_message}}}catch(e){return{success:!1}}}))},t.default=(e,t,i=!0)=>n(void 0,void 0,void 0,(function*(){const n=Object.assign({},t),s={"Content-Type":"application/json","X-Gizwits-Application-Id":(0,o.getGlobalData)("appID")};i&&(s["X-Gizwits-User-token"]=(0,o.getGlobalData)("token")),n.header=Object.assign(Object.assign({},s),t.headers),delete n.headers;const c=(0,o.getGlobalData)("cloudServiceInfo").openAPIInfo,u=yield(0,a.default)("https://"+c+e,n);if(u.statusCode>=200&&u.statusCode<300)return{success:!0,data:u.data};let l={success:!1,err:{errorCode:r.default.GIZ_SDK_HTTP_REQUEST_FAILED.errorCode,errorMessage:""}};try{l={success:!1,err:{errorCode:u.data.error_code,errorMessage:u.data.error_message}}}catch(e){}return l}))}).call(this,i(15))},function(e,t,i){var n,s,r,o,a,c,u,l;e.exports=(l=i(0),i(17),i(18),s=(n=l).lib,r=s.Base,o=s.WordArray,a=n.algo,c=a.MD5,u=a.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:c,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var i,n=this.cfg,s=n.hasher.create(),r=o.create(),a=r.words,c=n.keySize,u=n.iterations;a.length<c;){i&&s.update(i),i=s.update(e).finalize(t),s.reset();for(var l=1;l<u;l++)i=s.finalize(i),s.reset();r.concat(i)}return r.sigBytes=4*c,r}}),n.EvpKDF=function(e,t,i){return u.create(i).compute(e,t)},l.EvpKDF)},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getPayloadAsUtf8String=t.getShortProductKey=t.parseAdvData=t.createUUID32=t.arrayBufferToWordArray=t.convertToUuids=t.convertToServiceUuids=t.encrypt=t.ab2numbers=t.parseBroadcastData=t.hex2ab=t.mergeObject=t.getProductInfoThroughPK=t.getFirstConnectType=t.splitIntoChunks=t.BTDevice2GDevice=t.merageLanLocalDevices=t.merageBleLocalDevices=t.getDeviceId=t.isSameDevice=t.advertisData2PkAndMac=t.numberArray2Uint8Array=t.str2Buf=t.isWXDevicesResult=t.unionBy=t.wrapErrorInfo=t.isError=t.compareWXSDKVersion=t.ab2hex=void 0;const s=i(0),r=i(19),o=n(i(6)),a=i(3);t.ab2hex=function(e){return Array.prototype.map.call(new Uint8Array(e),(function(e){return("00"+e.toString(16)).slice(-2)})).join("")},t.compareWXSDKVersion=function(e,t){const i=e.split("."),n=t.split("."),s=Math.max(e.length,t.length);for(;i.length<s;)i.push("0");for(;n.length<s;)n.push("0");for(let i=0;i<s;i++){const n=parseInt(e[i]),s=parseInt(t[i]);if(n>s)return 1;if(n<s)return-1}return 0};t.isError=e=>null!=e&&"symbol"==typeof e.errorCode;t.wrapErrorInfo=e=>({errorCode:e,errorMessage:e});t.unionBy=(e,t)=>e.reduce((e,i)=>{const n=i[t];return e.some(e=>e[t]===n)||e.push(i),e},[]),t.isWXDevicesResult=function(e){return e.success&&"[object Array]"===Object.prototype.toString.call(e.bleDevices)},t.str2Buf=function(e){var t=e.length,i=new ArrayBuffer(t+2),n=new DataView(i);for(let i=0;i<t;i++)n.setUint8(i,parseInt(e[i],16));return i};t.numberArray2Uint8Array=e=>{const t=new ArrayBuffer(e.length),i=new Uint8Array(t);for(let n=0;n<t.byteLength;n++)i[n]=e[n];return i};t.advertisData2PkAndMac=(e,i,n)=>(0,t.parseAdvData)(u(e),i,n);t.isSameDevice=(e,t)=>e.mac===t.mac&&e.productKey===t.productKey;t.getDeviceId=e=>`${e.mac}${e.productKey}`;t.merageBleLocalDevices=(e,i)=>(e.map(e=>{e.isBleOnline=!1,e.bleWorkStatus=0}),i.map(i=>{const n=e.find(e=>(0,t.isSameDevice)(e,i));n?(n.isBleOnline=!0,n.bleDeviceID=i.bleDeviceID,n.connectType=i.connectType,n.bleWorkStatus=i.bleWorkStatus):e.push(i)}),e);t.merageLanLocalDevices=(e,i)=>(e.map(e=>{e.isLanOnline=!1}),i.map(i=>{const n=e.find(e=>(0,t.isSameDevice)(e,i));n?n.isLanOnline=!0:e.push(i)}),e);t.BTDevice2GDevice=(e,i,n)=>{let s={productKey:"",mac:"",bleWorkStatus:0},r={did:"",productKey:"",mac:"",bleWorkStatus:0,connectType:"NONE",isBleOnline:!0,isLanOnline:!1,isOnline:!1,name:e.localName,localName:e.localName,isBind:!1,bleDeviceID:e.deviceId,ctime:(new Date).getTime()};switch(e.communicationType){case"BLE_BROADCAST":try{o.default.log("parse BLE_BROADCAST");const t=c(u(e.advertisData));s.productKey=t.data.join(""),s.mac=t.mac,r.connectType="BLE_BROADCAST"}catch(e){}break;default:s=(0,t.advertisData2PkAndMac)(e.advertisData,i,n)}return r=Object.assign(Object.assign({},r),s),r};t.splitIntoChunks=(e,t)=>{const i=[];for(let n=0;n<e.length;n+=t)i.push(e.slice(n,n+t));return i};t.getFirstConnectType=(e,t)=>{if(!t)return e.isLanOnline?"LAN":e.isBleOnline?"BLE":"WAN";if("WAN"===t)return"WAN";switch(t){case"BLE":return e.isBleOnline?"BLE":"NONE";case"LAN":return e.isLanOnline?"LAN":"NONE"}return"WAN"};t.getProductInfoThroughPK=(e,t)=>t.find(t=>t.productKey===e);function c(e){if(25!=(e=e.slice(0,25)).length)throw new Error("数据不合法");const t=`${l(e[0])}${l(e[1])}`;if(e[2]!==(255&e.slice(3).reduce((e,t)=>e+t,0)))throw new Error("校验和不合法");const i=l(e[3]),n=e.slice(5,5+e[4]).map(e=>l(e));return{mac:t,cmd:parseInt(i,16),data:n}}function u(e){return Array.prototype.map.call(new Uint8Array(e),(function(e){return e}))}function l(e,t=2){return`${new Array(t).fill(0).join("")}${e.toString(16)}`.slice(-t)}t.mergeObject=(e,t)=>{for(let i in t)null!=t[i]&&""!==t[i]&&(e[i]=t[i]);return e},t.hex2ab=function(e){const t=[];for(let n=0;n<e.length;n+=2){var i=e.slice(n,n+2);t.push(parseInt(i,16))}return new Uint8Array(t)},t.parseBroadcastData=c,t.ab2numbers=u;let d=0;function h(e,t){let i=1,n=t;return e.map(e=>{const t=65535&(e^n);return n=i-t&65535,i<<=1,l(t,4)})}t.encrypt=h;function f(e,t,i){if(i.length>22)throw new Error("最大长度为22");const n=[...i,...new Array(22-i.length).fill(0)],s=255&i.reduce((e,t)=>e+t,0),r=(t>>4<<12)+(s>>4<<8)+((15&t)<<4)+(15&s),a=Array.from({length:11},(e,t)=>(n[2*t]<<8)+n[2*t+1]);return o.default.log("明文",l(e,4),l((t<<8)+s,4),a.map(e=>l(e,4))),[l(e,4),l((t<<8)+s,4),...h(a,r)].map(e=>`${e.slice(2)}${e.slice(0,2)}`)}t.convertToServiceUuids=({len:e=null,data:i=null,index:n=0,mac:s,cmd:r=147})=>{if(i&&i.length>20)throw new Error("data 最大 20");const o=null==e?Math.round(18*Math.random())+1:e,a=null==i?Array.from({length:o},e=>Math.round(255*Math.random())):i,c=[r,o,...a],u=f(s,(()=>{const e=d;return d=d+1&255,e})(),c);return[...new Set(u)].length!==u.length?(0,t.convertToServiceUuids)({len:o,data:a,index:n++,mac:s}):u},t.convertToUuids=f,t.arrayBufferToWordArray=function(e){for(var t=[],i=new Uint8Array(e),n=0;n<i.length;n+=4){var r=i[n]<<24|i[n+1]<<16|i[n+2]<<8|i[n+3];t.push(r)}return s.lib.WordArray.create(t,i.length)},t.createUUID32=function(){let e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){let i=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?i:3&i|8).toString(16)}))};t.parseAdvData=(e,t,i)=>{try{if(e.length<14)return null;e[0],e[1];const n=15&e[2],s=(240&e[2])>>4,r=7&e[3],o=(8&e[3])>>3!=0,c=(16&e[3])>>4!=0,u=(32&e[3])>>5,l=(64&e[3])>>6!=0,d=[e[4],e[5],e[6],e[7]],h=e.slice(8,14).map(e=>e.toString(16).padStart(2,"0")).join("").toLowerCase(),f=(0,a.bytesToHexString)(d);let p=i.findIndex(e=>e.toLowerCase().includes(f)),v="";return p>=0&&(v=t[p]),{productKey:v,mac:h,protocolVersion:n,blueToothType:s,blueToothVersion:r,supportOTA:o,requiresAuthentication:c,bleWorkStatus:l?0:1,authenticationMethod:u}}catch(e){return console.error("Parse advertisement data failed:",e),null}},t.getShortProductKey=function(e){const t=(0,a.ascii2Array)(e);return(0,r.crc32)(t).toString(16).padStart(8,"0")},t.getPayloadAsUtf8String=function(e){let t="";for(let i=0;i<e.length;i++)t+="%"+("0"+e[i].toString(16)).slice(-2);return decodeURIComponent(t)}},function(e,t,i){var n,s,r;e.exports=(r=i(0),s=(n=r).lib.WordArray,n.enc.Base64={stringify:function(e){var t=e.words,i=e.sigBytes,n=this._map;e.clamp();for(var s=[],r=0;r<i;r+=3)for(var o=(t[r>>>2]>>>24-r%4*8&255)<<16|(t[r+1>>>2]>>>24-(r+1)%4*8&255)<<8|t[r+2>>>2]>>>24-(r+2)%4*8&255,a=0;a<4&&r+.75*a<i;a++)s.push(n.charAt(o>>>6*(3-a)&63));var c=n.charAt(64);if(c)for(;s.length%4;)s.push(c);return s.join("")},parse:function(e){var t=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var r=0;r<i.length;r++)n[i.charCodeAt(r)]=r}var o=i.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return function(e,t,i){for(var n=[],r=0,o=0;o<t;o++)if(o%4){var a=i[e.charCodeAt(o-1)]<<o%4*2,c=i[e.charCodeAt(o)]>>>6-o%4*2,u=a|c;n[r>>>2]|=u<<24-r%4*8,r++}return s.create(n,r)}(e,t,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},r.enc.Base64)},function(e,t,i){var n;e.exports=(n=i(0),function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var c=o.MD5=r.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var i=0;i<16;i++){var n=t+i,s=e[n];e[n]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}var r=this._hash.words,o=e[t+0],c=e[t+1],f=e[t+2],p=e[t+3],v=e[t+4],g=e[t+5],_=e[t+6],y=e[t+7],m=e[t+8],D=e[t+9],S=e[t+10],b=e[t+11],w=e[t+12],I=e[t+13],C=e[t+14],E=e[t+15],A=r[0],B=r[1],T=r[2],k=r[3];A=u(A,B,T,k,o,7,a[0]),k=u(k,A,B,T,c,12,a[1]),T=u(T,k,A,B,f,17,a[2]),B=u(B,T,k,A,p,22,a[3]),A=u(A,B,T,k,v,7,a[4]),k=u(k,A,B,T,g,12,a[5]),T=u(T,k,A,B,_,17,a[6]),B=u(B,T,k,A,y,22,a[7]),A=u(A,B,T,k,m,7,a[8]),k=u(k,A,B,T,D,12,a[9]),T=u(T,k,A,B,S,17,a[10]),B=u(B,T,k,A,b,22,a[11]),A=u(A,B,T,k,w,7,a[12]),k=u(k,A,B,T,I,12,a[13]),T=u(T,k,A,B,C,17,a[14]),A=l(A,B=u(B,T,k,A,E,22,a[15]),T,k,c,5,a[16]),k=l(k,A,B,T,_,9,a[17]),T=l(T,k,A,B,b,14,a[18]),B=l(B,T,k,A,o,20,a[19]),A=l(A,B,T,k,g,5,a[20]),k=l(k,A,B,T,S,9,a[21]),T=l(T,k,A,B,E,14,a[22]),B=l(B,T,k,A,v,20,a[23]),A=l(A,B,T,k,D,5,a[24]),k=l(k,A,B,T,C,9,a[25]),T=l(T,k,A,B,p,14,a[26]),B=l(B,T,k,A,m,20,a[27]),A=l(A,B,T,k,I,5,a[28]),k=l(k,A,B,T,f,9,a[29]),T=l(T,k,A,B,y,14,a[30]),A=d(A,B=l(B,T,k,A,w,20,a[31]),T,k,g,4,a[32]),k=d(k,A,B,T,m,11,a[33]),T=d(T,k,A,B,b,16,a[34]),B=d(B,T,k,A,C,23,a[35]),A=d(A,B,T,k,c,4,a[36]),k=d(k,A,B,T,v,11,a[37]),T=d(T,k,A,B,y,16,a[38]),B=d(B,T,k,A,S,23,a[39]),A=d(A,B,T,k,I,4,a[40]),k=d(k,A,B,T,o,11,a[41]),T=d(T,k,A,B,p,16,a[42]),B=d(B,T,k,A,_,23,a[43]),A=d(A,B,T,k,D,4,a[44]),k=d(k,A,B,T,w,11,a[45]),T=d(T,k,A,B,E,16,a[46]),A=h(A,B=d(B,T,k,A,f,23,a[47]),T,k,o,6,a[48]),k=h(k,A,B,T,y,10,a[49]),T=h(T,k,A,B,C,15,a[50]),B=h(B,T,k,A,g,21,a[51]),A=h(A,B,T,k,w,6,a[52]),k=h(k,A,B,T,p,10,a[53]),T=h(T,k,A,B,S,15,a[54]),B=h(B,T,k,A,c,21,a[55]),A=h(A,B,T,k,m,6,a[56]),k=h(k,A,B,T,E,10,a[57]),T=h(T,k,A,B,_,15,a[58]),B=h(B,T,k,A,I,21,a[59]),A=h(A,B,T,k,v,6,a[60]),k=h(k,A,B,T,b,10,a[61]),T=h(T,k,A,B,f,15,a[62]),B=h(B,T,k,A,D,21,a[63]),r[0]=r[0]+A|0,r[1]=r[1]+B|0,r[2]=r[2]+T|0,r[3]=r[3]+k|0},_doFinalize:function(){var t=this._data,i=t.words,n=8*this._nDataBytes,s=8*t.sigBytes;i[s>>>5]|=128<<24-s%32;var r=e.floor(n/4294967296),o=n;i[15+(s+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),i[14+(s+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(i.length+1),this._process();for(var a=this._hash,c=a.words,u=0;u<4;u++){var l=c[u];c[u]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,i,n,s,r,o){var a=e+(t&i|~t&n)+s+o;return(a<<r|a>>>32-r)+t}function l(e,t,i,n,s,r,o){var a=e+(t&n|i&~n)+s+o;return(a<<r|a>>>32-r)+t}function d(e,t,i,n,s,r,o){var a=e+(t^i^n)+s+o;return(a<<r|a>>>32-r)+t}function h(e,t,i,n,s,r,o){var a=e+(i^(t|~n))+s+o;return(a<<r|a>>>32-r)+t}t.MD5=r._createHelper(c),t.HmacMD5=r._createHmacHelper(c)}(Math),n.MD5)},function(e,t,i){var n;e.exports=(n=i(0),i(14),i(41),i(42),i(10),i(43),i(11),i(17),i(27),i(44),i(28),i(45),i(46),i(47),i(18),i(48),i(8),i(2),i(49),i(50),i(51),i(52),i(53),i(54),i(55),i(56),i(57),i(58),i(59),i(60),i(61),i(62),i(63),i(64),n)},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=e=>new Promise(t=>setTimeout(()=>t(),e))},function(e,t,i){var n,s,r,o,a,c;e.exports=(c=i(0),s=(n=c).lib,r=s.Base,o=s.WordArray,(a=n.x64={}).Word=r.extend({init:function(e,t){this.high=e,this.low=t}}),a.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:8*e.length},toX32:function(){for(var e=this.words,t=e.length,i=[],n=0;n<t;n++){var s=e[n];i.push(s.high),i.push(s.low)}return o.create(i,this.sigBytes)},clone:function(){for(var e=r.clone.call(this),t=e.words=this.words.slice(0),i=t.length,n=0;n<i;n++)t[n]=t[n].clone();return e}}),c)},function(e,t){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(e){"object"==typeof window&&(i=window)}e.exports=i},function(e){e.exports=JSON.parse('{"name":"mini_program_gizwits_sdk","version":"3.7.33-cozev5","description":"更新setDeviceOnboardingDeploy","main":"./dist/index.js","scripts":{"test":"node_modules/mocha/bin/_mocha -r ts-node/register tests/**/*.spec.ts -file ./tests/setup-wx.js -timeout 60s","testBle":"node_modules/mocha/bin/_mocha -r ts-node/register tests/utils/randomCode.spec.ts -file ./tests/setup-wx.js -timeout 60s","build":"rm -rf ./dist && webpack","release":"npm run build && release-it","cover":"istanbul cover node_modules/mocha/bin/_mocha -- -r ts-node/register tests/**/*.spec.ts -file ./tests/setup-wx.js -timeout 60s","coveralls":"npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls"},"repository":{"type":"git","url":"git+https://github.com/gizwits/mini_program_gizwits_sdk.git"},"keywords":["gizwits","miniprogram","sdk"],"devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.12.1","@release-it/conventional-changelog":"^2.0.0","@types/chai":"^4.2.11","@types/crypto-js":"^4.0.2","@types/mocha":"^7.0.2","@types/node":"^12.12.14","@types/sinon":"^10.0.6","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^1.1.0-alpha.1","miniprogram-api-typings":"^3.9.0","mocha":"^7.1.1","release-it":"^14.2.2","sinon":"^9.2.4","ts-loader":"^6.2.2","ts-node":"^8.8.1","typescript":"^4.9.5","uglifyjs-webpack-plugin":"^2.2.0","webpack":"^4.42.1","webpack-bundle-analyzer":"^4.5.0","webpack-cli":"^3.3.11"},"author":"gizwits","license":"ISC","bugs":{"url":"https://github.com/gizwits/mini_program_gizwits_sdk/issues"},"homepage":"https://github.com/gizwits/mini_program_gizwits_sdk#readme","dependencies":{"crypto-js":"^4.1.1"}}')},function(e,t,i){var n,s,r,o,a,c,u,l;e.exports=(l=i(0),s=(n=l).lib,r=s.WordArray,o=s.Hasher,a=n.algo,c=[],u=a.SHA1=o.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var i=this._hash.words,n=i[0],s=i[1],r=i[2],o=i[3],a=i[4],u=0;u<80;u++){if(u<16)c[u]=0|e[t+u];else{var l=c[u-3]^c[u-8]^c[u-14]^c[u-16];c[u]=l<<1|l>>>31}var d=(n<<5|n>>>27)+a+c[u];d+=u<20?1518500249+(s&r|~s&o):u<40?1859775393+(s^r^o):u<60?(s&r|s&o|r&o)-1894007588:(s^r^o)-899497514,a=o,o=r,r=s<<30|s>>>2,s=n,n=d}i[0]=i[0]+n|0,i[1]=i[1]+s|0,i[2]=i[2]+r|0,i[3]=i[3]+o|0,i[4]=i[4]+a|0},_doFinalize:function(){var e=this._data,t=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(i/4294967296),t[15+(n+64>>>9<<4)]=i,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}}),n.SHA1=o._createHelper(u),n.HmacSHA1=o._createHmacHelper(u),l.SHA1)},function(e,t,i){var n,s,r,o;e.exports=(n=i(0),r=(s=n).lib.Base,o=s.enc.Utf8,void(s.algo.HMAC=r.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=o.parse(t));var i=e.blockSize,n=4*i;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var s=this._oKey=t.clone(),r=this._iKey=t.clone(),a=s.words,c=r.words,u=0;u<i;u++)a[u]^=1549556828,c[u]^=909522486;s.sigBytes=r.sigBytes=n,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,i=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(i))}})))},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.crc32=t.crc16modbus=void 0;const s=n(i(66));t.crc16modbus=s.default;const r=n(i(73));t.crc32=r.default,t.default={crc16modbus:s.default,crc32:r.default}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(7));const o=new class{constructor(){this.data={},this.key="dataPointConfig",this.init=()=>n(this,void 0,void 0,(function*(){const e=(yield wx.getStorageSync(this.key))||"{}";let t={};try{t=JSON.parse(e)}catch(e){}this.data=t})),this.getConfigFileMap={},this.getConfigFile=e=>{if(!this.data[e]){if(this.getConfigFileMap[e])return this.getConfigFileMap[e];const t=new Promise(t=>n(this,void 0,void 0,(function*(){var i;const n=`/app/datapoint?product_key=${e}`,s=yield(0,r.default)(`${n}`,{method:"GET"});s.success&&(null===(i=s.data)||void 0===i?void 0:i.entities)?(this.data[e]=s.data,t(this.data[e]),wx.setStorageSync(this.key,JSON.stringify(this.data))):t(null),this.getConfigFileMap[e]=null})));return this.getConfigFileMap[e]=t,t}return Promise.resolve(this.data[e])},this.getAttrItem=(e,t)=>n(this,void 0,void 0,(function*(){this.data[e]||(yield this.getConfigFile(e));for(let i in this.data[e].entities[0].attrs){const n=this.data[e].entities[0].attrs[i];if(n.name===t)return n}return null}))}};o.init(),t.default=o},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.formatBinary=t.formatEnum=t.padBoradcastData=t.unpack=t.pack=t.getVariableLength=void 0;const r=s(i(20)),o=i(3),a=e=>-1!==e.indexOf("uint")?"number":e,c=(e,t,i)=>{let n="";switch(e){case"bool":n=`${!0===t[i.name]?1:0}`;break;case"enum":{let e=t[i.name];"number"==typeof e&&(e=i.enum[e]);const s=i.enum.findIndex(t=>e===t),r=-1===s?0:s;n=(0,o.fillString)(r.toString(2),i.position.len);break}case"number":{let e=0;null!=t[i.name]&&(e=Math.round((t[i.name]-i.uint_spec.addition)/i.uint_spec.ratio)),n=(0,o.fillString)(e.toString(2),8*i.position.len);break}case"binary":{let e=t[i.name]||"";e instanceof Array&&(e=(0,o.arrayToString)(e));const s=(0,o.fillString)(e,2*i.position.len,!0);for(let e=0;e<s.length/2;e++){const t=2*e,i=s[t]+s[t+1];n+=(0,o.fillString)(parseInt(i,16).toString(2),8)}break}}const s=i.position.len*("byte"===i.position.unit?8:1)-n.length;if(s>0)for(let e=0;e<s;e++)n=`0${n}`;return`${n}`},u=(e,t,i)=>{switch(e){case"bool":return"1"===t;case"enum":return parseInt(t,2);case"binary":{const e=i.position.len;let n="";for(let e=0;e<t.length/8;e++){const i=8*e,s=t.substring(i,i+8);n+=(0,o.fillString)(parseInt(s,2).toString(16),2)}return(0,o.fillString)(n,2*e,!0)}case"number":return parseInt(t,2)/(1/i.uint_spec.ratio)+i.uint_spec.addition;default:return""}},l=({config:e,data:t,isAdaptiveDatapoint:i})=>{let n=e;const s=[0,0,0,3],r=[0],u=[0,147],l=[0,0,0,0];let h=[1],f="";const p=[];i||(n=n.filter(e=>"status_writable"===e.type)),n.map(e=>{void 0!==t[e.name]?(f=`1${f}`,p.push(e)):f=`0${f}`}),i&&(h=[17],n=p),f=(0,o.fillString)(f,8*Math.ceil(f.length/8));for(let e=0;e<f.length/8;e++)h.push(parseInt(f.substring(8*e,8*(e+1)),2));let v,g="";try{v=n[0]}catch(e){}n.map(e=>{"bool"===e.data_type||"enum"===e.data_type?(v.type!==e.type&&(h=h.concat((0,o.completeBlock)(g)),g=""),g=((e,i)=>{const n=a(e.data_type);return i=c(n,t,e)+i})(e,g)):(g.length>0&&(h=h.concat((0,o.completeBlock)(g)),g=""),h=((e,i)=>{const n=a(e.data_type),s=c(n,t,e);return i=i.concat((0,o.completeBlock)(s)),console.log("handleOther",s,i),i})(e,h)),v=e}),g.length>0&&(h=h.concat((0,o.completeBlock)(g)),g="");const _=r.concat(u).concat(l).concat(h),y=d(_);return s.push(...y),{data:s.concat(_),raw:{header:[0,0,0,3],flag:r,len:y,headerCmd:u,sn:l,cmd:h}}};function d(e){const t=e.length.toString(2),i=[];for(let e=t.length;e>0;e-=7){const n=e-7,s=e;let r=t.substring(n,s);r=`${n>0?"1":"0"}${r}`,i.push(parseInt(r,2))}return i}function h(e,t){return e===t||"ALL"===e}function f({attrs:e,activeAttrs:t,flagString:i,cmdData:n,accumulate:s}){let r=0,o={},a=0;return["status_writable","status_readonly","alert","fault"].map(c=>{const u=e.filter(e=>h(c,e.type)).length,{cmd:l,cmdDataLength:d}=p({type:c,attrs:e.slice(a,a+u),activeAttrs:t,flagString:i.substring(a,a+u),cmdData:n.slice(r,n.length),accumulate:s});return r+=d,o=Object.assign(Object.assign({},o),l),a+=u,null}),o}function p({type:e,attrs:t,activeAttrs:i,cmdData:n,flagString:s,accumulate:r}){let c=0,l=0,d=0;return i.map(t=>{if(h(e,t.type)){const e=t.position.len*("bit"===t.position.unit?1:8);"bool"===t.data_type||"enum"===t.data_type?l+=e:d+=e}return null}),c=Math.ceil(d/8)+Math.ceil(l/8),{cmdDataLength:c,cmd:function({attrs:e,flagString:t,boolEnumLength:i,cmdData:n,accumulate:s}){const r={};let c=0;for(let l=0;l<t.length;l++)if(e[l]&&"1"===t[l]){const{data_type:t,position:{len:s}}=e[l];let d="";if("bool"===t||"enum"===t){let e="";n.slice(0,i).map(t=>(e+=(0,o.fillString)(t.toString(2),8),null));const t=e.length-c;d=e.substring(t-s,t),c+=s}else{const e=i,t=i+s;n.slice(e,t).map(e=>(d+=(0,o.fillString)(e.toString(2),8),null)),i+=s}const h=a(t);r[e[l].name]=u(h,d,e[l])}else if(s){const t=e[l]||{position:{len:0}};"byte"===t.position.unit?i+=t.position.len:c+=t.position.len}return r}({attrs:t,flagString:s,boolEnumLength:Math.ceil(l/8),cmdData:n,accumulate:r})}}t.getVariableLength=d;t.unpack=(e,t)=>n(void 0,void 0,void 0,(function*(){const i=yield r.default.getConfigFile(t);if(i){const n=function({config:e=[],data:t}){let i,n,s="";const r={header:(0,o.arrayToString)(t.slice(0,4)),flag:"",len:"",cmd:"",sn:"",action:"",payload:""},a=e;let c=(0,o.checkHeader)(t);if(!1===c)return;const u=t.slice(c,t.length),l=(0,o.getProtocolLen)(u);if(c+=l,r.len=(0,o.arrayToString)(u.slice(0,l)),c+=1,r.flag=(0,o.arrayToString)(t.slice(c-1,c)),c+=2,r.cmd=(0,o.arrayToString)(t.slice(c-2,c)),r.sn="",("0093"===r.cmd||"0094"===r.cmd)&&(c+=4,r.sn=(0,o.arrayToString)(t.slice(c-4,c)),"01"===r.flag)){c+=2,c+=parseInt((0,o.arrayToString)(t.slice(c-2,c)),16)}c+=1,r.action=(0,o.arrayToString)(t.slice(c-1,c)),i=parseInt(r.action,16),r.payload=(0,o.arrayToString)(t.slice(c,t.length));const d=t.slice(c,t.length);let h=a;1===i&&(h=a.filter(e=>"status_writable"===e.type));const v=JSON.parse(JSON.stringify(h)),g=Math.ceil(h.length/8);let _=d.slice(0,g),y=d.slice(g,d.length);3!==i&&4!==i||(_=new Array(g).fill(255),y=d);let m="";_.map(e=>(m+=(0,o.fillString)(e.toString(2),8),null)),i>=17&&i<=20&&(h=h.filter((e,t)=>{const i=m.length-1-t;return"1"===m[i]})),"0090"===r.cmd||"0093"===r.cmd?(s="App 透传数据到 Dev",n="APP2DEV"):"0091"===r.cmd||"0094"===r.cmd?(s="Dev 收到控制命令后应答到 App",n="DEV2APP"):(s="非法数据",n="UNKNOW");let D={};switch(i){case 1:s="App 下发数据到 Dev",D=f({attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y,accumulate:!0});break;case 2:return s="App 下发查询指令到 Dev",{kvData:null,rawData:r,message:s,messageType:n};case 3:s="Dev 回复查询指令到 App",D=f({attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y,accumulate:!0});break;case 4:s="Dev 上报状态到 App",D=f({attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y,accumulate:!0});break;case 5:return s="App 透传数据到 Dev",{kvData:null,rawData:r,message:s,messageType:n};case 6:return s="Dev 透传数据到 App",{kvData:null,rawData:r,message:s,messageType:n};case 7:return s="App 下发控制子设备",{kvData:null,rawData:r,message:s,messageType:n};case 8:return s="App 读取子设备数据",{kvData:null,rawData:r,message:s,messageType:n};case 9:return s="Dev 中控回复ACK",{kvData:null,rawData:r,message:s,messageType:n};case 10:return s="子设备上报状态到 App",{kvData:null,rawData:r,message:s,messageType:n};case 11:return s="App 下发添加子设备指令",{kvData:null,rawData:r,message:s,messageType:n};case 12:return s="App 下发删除子设备",{kvData:null,rawData:r,message:s,messageType:n};case 13:return s="App 获取中控子设备列表",{kvData:null,rawData:r,message:s,messageType:n};case 14:return s="中控响应字设备查询到 App",{kvData:null,rawData:r,message:s,messageType:n};case 15:return s="子设备列表变更通知到 App",{kvData:null,rawData:r,message:s,messageType:n};case 16:return s="Dev 子设备上下线状态变更通知",{kvData:null,rawData:r,message:s,messageType:n};case 17:s="App 下发变长数据到 Dev",D=p({type:"ALL",attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y}).cmd;break;case 18:return s="App 下发变长查询到 Dev",{kvData:null,rawData:r,message:s,messageType:n};case 19:s="Dev 变长回复查询指令到 App",D=p({type:"ALL",attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y}).cmd;break;case 20:s="Dev 变长上报状态到 App",D=p({type:"ALL",attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y}).cmd;break;case 114:return s="App 向网关发送数据",{kvData:null,rawData:r,message:s,messageType:n};case 115:return s="Dev 网关上报数据到 App",{kvData:null,rawData:r,message:s,messageType:n};case 116:return s="App 通知网关删除子设备",{kvData:null,rawData:r,message:s,messageType:n};default:return{kvData:null,rawData:r,message:s,messageType:n}}return 0===a.length?{kvData:null,rawData:r,message:s,messageType:n}:{kvData:D,rawData:r,message:s,messageType:n}}({config:(yield i).entities[0].attrs,data:e});return n.kvData&&(n.kvData=yield v(null==n?void 0:n.kvData,t,"object")),n}return null}));t.pack=(e,t)=>n(void 0,void 0,void 0,(function*(){const i=yield r.default.getConfigFile(t);if(i){const t="var_len"===i.protocolType;return l({data:e,config:(yield i).entities[0].attrs,isAdaptiveDatapoint:t})}return null}));t.padBoradcastData=e=>{const t=[0].concat([0,147]).concat([0,0,0,0]).concat(e),i=d(t);return(0,o.arrayToString)([0,0,0,3].concat(i).concat(t))};t.formatEnum=(e,t,i)=>n(void 0,void 0,void 0,(function*(){for(let n in e){const s=yield r.default.getAttrItem(t,n);if(s&&"enum"===s.data_type){if("int"===i&&"string"==typeof e[n]){const t=s.enum.findIndex(t=>t===e[n]);e[n]=t||0}"string"===i&&"number"==typeof e[n]&&(e[n]=s.enum[e[n]])}}return e}));const v=(e,t,i)=>n(void 0,void 0,void 0,(function*(){for(let n in e){const s=yield r.default.getAttrItem(t,n);s&&"binary"===s.data_type&&("object"===i&&"string"==typeof e[n]&&(e[n]=(0,o.hexStrint2byte)(e[n])),"string"===i&&"object"==typeof e[n]&&(e[n]=(0,o.arrayToString)(e[n])))}return e}));t.formatBinary=v},function(e,t,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t},o=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getDevicesStatus=t.updateDevicesStatus=t.editBindInfo=t.safeRegister=t.checkDeviceRegister=t.unbindDevice=t.bindMac=t.getBindingList=void 0;const c=i(12),u=r(i(7)),l=a(i(89)),d=i(90),h=i(5);class f{constructor(){this.pad=(e,t)=>{},this.unpad=e=>{const t=e.sigBytes;let i=0,n=1;const s=e.toString(c.enc.Utf8);for(;i+16<=t;)i+=16;for(let e=0;e<7;e++){const t=i-2*e;if(s.substring(t,t-2)!=s.substring(t-2,t-4)){i-=2*n;break}n++}e.sigBytes=i}}}t.getBindingList=()=>o(void 0,void 0,void 0,(function*(){const e=(0,h.getGlobalData)("uid"),t=yield(0,u.cozeApiRequest)(`/v3/users/${e}/devices`,{method:"GET"});if(t.success){return{success:!0,data:t.data.data.map(e=>Object.assign(Object.assign({},e),{productKey:e.product_key,mac:e.mac,did:e.id,host:"",localName:"",port_s:0,port:0,ws_port:0,wss_port:0,passcode:"",isBleOnline:!1,isLanOnline:!1,connectType:"NONE",name:e.name,isBind:!0,isOnline:e.is_online}))}}return{success:!1,err:t.err}})),t.bindMac=function({mac:e,productKey:t,productSecret:i,alias:n,beOwner:s}){return o(this,void 0,void 0,(function*(){const r={mac:e,product_key:t,dev_alias:n,set_owner:s},{Signature:o,timestamp:a}=(0,d.psKeySign)(i);return yield(0,u.default)("/app/bind_mac",{method:"POST",data:r,headers:{"X-Gizwits-Signature":o,"X-Gizwits-Timestamp":a}})}))},t.unbindDevice=function(e){return o(this,void 0,void 0,(function*(){const t=(0,h.getGlobalData)("uid");return yield(0,u.cozeApiRequest)(`/v3/users/${t}/devices/${e}`,{method:"DELETE"})}))},t.checkDeviceRegister=function({SSID:e,password:t,productKeys:i}){return o(this,void 0,void 0,(function*(){const n=(0,l.default)({SSID:e,password:t,pks:i});let s="";return n.map(e=>{s+=`${e},`}),s=s.substring(0,s.length-1),yield(0,u.default)(`/app/device_register?random_codes=${s}`,{method:"get"})}))},t.safeRegister=function({productKey:e,productSecret:t,mac:i,passcode:n,gwDid:s,isReset:r}){return o(this,void 0,void 0,(function*(){let o=`is_reset=${r?1:0}&mac=${i}&passcode=${n}`;s&&(o+=`&gw_did=${s}`);const a=c.enc.Hex.parse(t),l=c.enc.Hex.parse(""),d=c.enc.Utf8.parse(o),h=c.AES.encrypt(d,a,{iv:l,mode:c.mode.ECB,padding:c.pad.Pkcs7}).ciphertext.toString().toUpperCase(),f=yield(0,u.default)(`/dev/${e}/device`,{method:"POST",data:{data:h},headers:{"content-type":"application/x-www-form-urlencoded"}},!1);if(f.success){const e=p({productSecret:t,iv:l,data:f.data}),n=[];return e.find(e=>e.mac===i)||n.push({mac:i}),{success:!0,data:{successDevices:e,failedDevices:n}}}return{success:!1,err:f.err}}))};const p=({productSecret:e,data:t,iv:i})=>{const n=c.enc.Hex.parse(e),s=c.enc.Hex.parse(t);const r=c.AES.decrypt(c.enc.Base64.stringify(s),n,{iv:i,mode:c.mode.ECB,padding:new f}).toString(c.enc.Utf8),o=[];return r.split(",").map(e=>{const t=e.split("&"),i=t[0].replace("mac=",""),n=t[1].replace("did=","");o.push({mac:i,did:n})}),o};t.editBindInfo=function({name:e,remark:t,did:i}){return o(this,void 0,void 0,(function*(){const n={};return e&&(n.dev_alias=e),t&&(n.remark=t),yield(0,u.default)(`/app/bindings/${i}`,{method:"PUT",data:n},!0)}))},t.updateDevicesStatus=function(e){return o(this,void 0,void 0,(function*(){return yield(0,u.cozeApiRequest)("/v2/devices/status",{method:"POST",data:e})}))},t.getDevicesStatus=function(e){return o(this,void 0,void 0,(function*(){return(0,u.cozeApiRequest)(`/v3/devices/${e}/status`,{method:"GET"})}))}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(13)),o=s(i(4)),a=i(22),c=s(i(6)),u=s(i(24)),l=i(5);t.default=class{constructor(e,t,i,s,d){this.ssid="",this.bssid="",this.password="",this.specialProductKeys=[],this.disableSearchDevice=!1,this.specialProductKeySecrets=[],this.timeoutHandler=null,this.setDeviceOnboardingDeployRej=()=>{},this.cleanTimeout=()=>{this.disableSearchDevice=!0,this.timeoutHandler&&clearTimeout(this.timeoutHandler),this.timeoutHandler=null},this.stopDeviceOnboardingDeploy=()=>{this.setDeviceOnboardingDeployRej&&(u.default.cancel(),this.setDeviceOnboardingDeployRej({success:!1,err:o.default.GIZ_SDK_ONBOARDING_STOPPED})),this.cleanTimeout()},this.appendExtendData=e=>{const t=-(new Date).getTimezoneOffset()/60;let i=Math.floor(t),n=0,s="",r=t-i;return s=i>=0&&i<=9?String.fromCharCode("0".charCodeAt(0)+i):i>9?String.fromCharCode(i-10+"A".charCodeAt(0)):String.fromCharCode(-i-1+"a".charCodeAt(0)),r<0&&(r=-r),n=r>=0&&r<.25?0:r>=.25&&r<.5?1:r>=.5&&r<.75?2:3,e+""+(0,l.getGlobalData)("uid")},this.hasTimeoutHandler=e=>!!this.timeoutHandler&&(e&&e({success:!1,err:o.default.GIZ_SDK_DEVICE_CONFIG_IS_RUNNING}),!0),this.handleTimeout=()=>{if(this.setDeviceOnboardingDeployRej){const e={errorCode:o.default.CONFIG_TIME_OUT,errorMessage:"time out"};this.setDeviceOnboardingDeployRej({success:!1,err:{errorCode:o.default.CONFIG_TIME_OUT,errorMessage:"time out"}}),u.default.appendEvent({name:"WIFI_CONFIG_FAIL",message:JSON.stringify({error:e})})}this.timeoutHandler=null},this.searchDevice=({mac:e,productKey:t})=>new Promise((t,i)=>{u.default.appendEvent({name:"START_SEARCH_RANDOM_CODE",message:""}),c.default.debug("GIZ_SDK: 开始大循环搜索设备");const s=()=>n(this,void 0,void 0,(function*(){var i;if(this.hasTimeoutHandler())try{const n=yield(0,a.getBindingList)(),o=n.data.find(t=>t.mac===e&&t.isOnline);o?(null===(i=this.eventCallBack)||void 0===i||i.call(this,{event:"GIZ_CONFIG_SUCCESS"}),u.default.appendEvent({name:"START_SEARCH_RANDOM_CODE_SUCCESS",message:JSON.stringify(n)}),c.default.debug("GIZ_SDK: 大循环搜索到设备",n),t({success:!0,data:[o]})):(yield(0,r.default)(1e3),!this.disableSearchDevice&&s())}catch(e){yield(0,r.default)(3e3),!this.disableSearchDevice&&s()}}));s()}),this.initDeviceOnboardingDeploy=(e,t)=>{this.setDeviceOnboardingDeployRej=e,this.disableSearchDevice=!1},this.startTimeoutTimer=e=>{this.timeoutHandler=setTimeout(this.handleTimeout,1e3*e)},this.bindDevices=e=>(c.default.log("GIZ_SDK: start bind device"),u.default.appendEvent({name:"START_BIND_DEVICE",message:""}),new Promise((t,i)=>n(this,void 0,void 0,(function*(){const n=e.map(e=>{const t=this.specialProductKeys.findIndex(t=>e.productKey===t);if(-1===t)return;const i=this.specialProductKeySecrets[t];return(0,a.bindMac)({mac:e.mac,productKey:e.productKey,productSecret:i})});try{const s=yield Promise.all(n),r=e.filter((e,t)=>{const i=s[t];return i&&i.success});if(r.length>0)c.default.log("GIZ_SDK: bind device success",r),u.default.appendEvent({name:"BIND_DEVICE_SUCCESS",message:JSON.stringify(r)}),t({success:!0,data:r});else{c.default.log("GIZ_SDK: bind device error",s);const t={success:!1,data:e,err:o.default.GIZ_SDK_BIND_DEVICE_FAILED};u.default.appendEvent({name:"BIND_DEVICE_FAIL",message:JSON.stringify(t)}),i(t)}}catch(e){i(e)}})))),this.ssid=e,this.bssid=t,this.password=i,this.specialProductKeys=s,this.specialProductKeySecrets=d}}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const s=i(16),r=i(5),o=i(9),a=i(7);t.default=new class{constructor(){this.isSuccess=!1,this.productKey="",this.logs=[],this.init=e=>{this.clean(),this.productKey=e.productKey,this.ssid=e.ssid,this.mode=e.mode,this.isBind=e.isBind,this.timeout=e.timeout},this.getEnv=()=>{try{wx.getSystemInfoAsync({success:e=>{const t={wxSdkVersion:e.SDKVersion,gizwitsSdkVersion:s.version,appID:(0,r.getGlobalData)("appID"),bluetoothEnabled:e.bluetoothEnabled,locationEnabled:e.locationEnabled,wifiEnabled:e.wifiEnabled},i={brand:e.brand,model:e.model,pixelRatio:e.pixelRatio,systemVersion:e.system,platform:e.platform};this.mobileInfo=i,this.appInfo=t}})}catch(e){console.error(e)}},this.updateProductKey=e=>{this.productKey=e},this.appendEvent=e=>{try{this.logs.push(Object.assign(Object.assign({},e),{timestamp:Math.floor((new Date).getTime()/1e3)})),"WIFI_CONFIG_SUCCESS"===e.name&&(this.isSuccess=!0),"WIFI_CONFIG_SUCCESS"!==e.name&&"WIFI_CONFIG_FAIL"!==e.name||this.report()}catch(e){console.error(e)}},this.report=()=>n(this,void 0,void 0,(function*(){try{if(!this.productKey)return;if(0===this.logs.length)return;if(this.logs[0]&&"START_WIFI_CONFIG"!==this.logs[0].name)return;const e=new Date,t=(0,o.createUUID32)(),i=this.mobileInfo,n=this.appInfo,s={ssid:this.ssid,mode:this.mode,timeout:this.timeout,isBind:this.isBind},c={origin:"MINI-WX",mobileInfo:i,userInfo:{uid:(0,r.getGlobalData)("uid")},appInfo:n,eventID:t,eventType:"ConfigNetWorkDetail",monitorTarget:s,eventDetail:{success:this.isSuccess,processDetails:this.logs},time:e,timeStamp:Math.floor(e.getTime()/1e3)};if(console.debug("report data",c),this.productKey){const e=yield(0,a.statisticRequest)(`v2/products/${this.productKey}/devices/dist-net`,{method:"POST",body:c});e.success?console.debug("===已成功上报结束配网事件==="):console.error("===上报结束配网事件失败===",e)}this.clean()}catch(e){console.error(e)}})),this.cancel=()=>n(this,void 0,void 0,(function*(){return this.isSuccess=!1,this.appendEvent({name:"WIFI_CONFIG_CANCEL",message:""}),yield this.report()})),this.clean=()=>{this.logs=[],this.isSuccess=!1},this.getEnv()}}},function(e,t,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t},o=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getOtaStatus=t.confirmDeviceOtaTask=t.pushDeviceOtaTask=t.getDeviceOtaTask=t.getAiDeviceVersion=t.checkUpdate=void 0;const c=i(5),u=r(i(7)),l=a(i(4));t.checkUpdate=function({did:e,type:t,hardVersion:i,softVersion:n}){return o(this,void 0,void 0,(function*(){const s="MCU"==t?"2":"1";return(0,u.default)(`/app/ota/v4.1/update_and_check/${e}`,{data:{type:s,hard_version:i,soft_version:n,https:"1"},method:"POST"},!0)}))},t.getAiDeviceVersion=function(e){var t,i,n,s,r,a,l,d;return o(this,void 0,void 0,(function*(){const{id:o}=e,h=(0,c.getGlobalData)("uid"),f=yield(0,u.cozeApiRequest)(`/v3/users/${h}/devices/${o}`,{method:"GET",body:{}});return f.success?{success:!0,data:{soft_version:null===(s=null===(n=null===(i=null===(t=f.data)||void 0===t?void 0:t.data)||void 0===i?void 0:i.firmware)||void 0===n?void 0:n.comm)||void 0===s?void 0:s.sw_version,hard_version:null===(d=null===(l=null===(a=null===(r=f.data)||void 0===r?void 0:r.data)||void 0===a?void 0:a.firmware)||void 0===l?void 0:l.comm)||void 0===d?void 0:d.hw_version}}:{success:!1,data:{}}}))},t.getDeviceOtaTask=function(e){return o(this,void 0,void 0,(function*(){const t=`/v3/users/${(0,c.getGlobalData)("uid")}/devices/${e}/ota-tasks`;return(0,u.cozeApiRequest)(t,{method:"GET"})}))},t.pushDeviceOtaTask=function(e,t){return o(this,void 0,void 0,(function*(){const i=`/v3/users/${(0,c.getGlobalData)("uid")}/devices/${e}/ota-tasks/${t}`;return(0,u.cozeApiRequest)(i,{method:"PATCH"})}))},t.confirmDeviceOtaTask=function(e,t){return o(this,void 0,void 0,(function*(){const i=`/v3/users/${(0,c.getGlobalData)("uid")}/devices/${e}/ota-tasks/${t}`;return(0,u.cozeApiRequest)(i,{method:"PUT"})}))};t.getOtaStatus=e=>o(void 0,void 0,void 0,(function*(){var t,i,n;try{const s=yield(0,u.cozeApiRequest)(`/v2/devices/${e}/firmwares/ota-status`,{method:"GET"});if(s.success&&(null===(n=null===(i=null===(t=s.data)||void 0===t?void 0:t.data)||void 0===i?void 0:i.progresses)||void 0===n?void 0:n.length)>0){const e=s.data.data.progresses[0];if(Date.now()-1e3*e.create_time<=6e4)return{success:!0,data:e.percentage}}return{success:!0,data:null}}catch(e){return{success:!1,err:l.default.GIZ_SDK_OTHERWISE}}}))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return new Promise((i,n)=>{wx.request(Object.assign(Object.assign({url:e,timeout:3e3},t),{success:e=>{i(e)},fail:e=>{n(e)}}))})}},function(e,t,i){var n;e.exports=(n=i(0),function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=[],c=[];!function(){function t(t){for(var i=e.sqrt(t),n=2;n<=i;n++)if(!(t%n))return!1;return!0}function i(e){return 4294967296*(e-(0|e))|0}for(var n=2,s=0;s<64;)t(n)&&(s<8&&(a[s]=i(e.pow(n,.5))),c[s]=i(e.pow(n,1/3)),s++),n++}();var u=[],l=o.SHA256=r.extend({_doReset:function(){this._hash=new s.init(a.slice(0))},_doProcessBlock:function(e,t){for(var i=this._hash.words,n=i[0],s=i[1],r=i[2],o=i[3],a=i[4],l=i[5],d=i[6],h=i[7],f=0;f<64;f++){if(f<16)u[f]=0|e[t+f];else{var p=u[f-15],v=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=u[f-2],_=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;u[f]=v+u[f-7]+_+u[f-16]}var y=n&s^n&r^s&r,m=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),D=h+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&l^~a&d)+c[f]+u[f];h=d,d=l,l=a,a=o+D|0,o=r,r=s,s=n,n=D+(m+y)|0}i[0]=i[0]+n|0,i[1]=i[1]+s|0,i[2]=i[2]+r|0,i[3]=i[3]+o|0,i[4]=i[4]+a|0,i[5]=i[5]+l|0,i[6]=i[6]+d|0,i[7]=i[7]+h|0},_doFinalize:function(){var t=this._data,i=t.words,n=8*this._nDataBytes,s=8*t.sigBytes;return i[s>>>5]|=128<<24-s%32,i[14+(s+64>>>9<<4)]=e.floor(n/4294967296),i[15+(s+64>>>9<<4)]=n,t.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(l),t.HmacSHA256=r._createHmacHelper(l)}(Math),n.SHA256)},function(e,t,i){var n;e.exports=(n=i(0),i(14),function(){var e=n,t=e.lib.Hasher,i=e.x64,s=i.Word,r=i.WordArray,o=e.algo;function a(){return s.create.apply(s,arguments)}var c=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],u=[];!function(){for(var e=0;e<80;e++)u[e]=a()}();var l=o.SHA512=t.extend({_doReset:function(){this._hash=new r.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var i=this._hash.words,n=i[0],s=i[1],r=i[2],o=i[3],a=i[4],l=i[5],d=i[6],h=i[7],f=n.high,p=n.low,v=s.high,g=s.low,_=r.high,y=r.low,m=o.high,D=o.low,S=a.high,b=a.low,w=l.high,I=l.low,C=d.high,E=d.low,A=h.high,B=h.low,T=f,k=p,O=v,x=g,L=_,P=y,M=m,N=D,R=S,U=b,H=w,G=I,K=C,F=E,j=A,z=B,W=0;W<80;W++){var Z,V,$=u[W];if(W<16)V=$.high=0|e[t+2*W],Z=$.low=0|e[t+2*W+1];else{var Y=u[W-15],q=Y.high,J=Y.low,X=(q>>>1|J<<31)^(q>>>8|J<<24)^q>>>7,Q=(J>>>1|q<<31)^(J>>>8|q<<24)^(J>>>7|q<<25),ee=u[W-2],te=ee.high,ie=ee.low,ne=(te>>>19|ie<<13)^(te<<3|ie>>>29)^te>>>6,se=(ie>>>19|te<<13)^(ie<<3|te>>>29)^(ie>>>6|te<<26),re=u[W-7],oe=re.high,ae=re.low,ce=u[W-16],ue=ce.high,le=ce.low;V=(V=(V=X+oe+((Z=Q+ae)>>>0<Q>>>0?1:0))+ne+((Z+=se)>>>0<se>>>0?1:0))+ue+((Z+=le)>>>0<le>>>0?1:0),$.high=V,$.low=Z}var de,he=R&H^~R&K,fe=U&G^~U&F,pe=T&O^T&L^O&L,ve=k&x^k&P^x&P,ge=(T>>>28|k<<4)^(T<<30|k>>>2)^(T<<25|k>>>7),_e=(k>>>28|T<<4)^(k<<30|T>>>2)^(k<<25|T>>>7),ye=(R>>>14|U<<18)^(R>>>18|U<<14)^(R<<23|U>>>9),me=(U>>>14|R<<18)^(U>>>18|R<<14)^(U<<23|R>>>9),De=c[W],Se=De.high,be=De.low,we=j+ye+((de=z+me)>>>0<z>>>0?1:0),Ie=_e+ve;j=K,z=F,K=H,F=G,H=R,G=U,R=M+(we=(we=(we=we+he+((de+=fe)>>>0<fe>>>0?1:0))+Se+((de+=be)>>>0<be>>>0?1:0))+V+((de+=Z)>>>0<Z>>>0?1:0))+((U=N+de|0)>>>0<N>>>0?1:0)|0,M=L,N=P,L=O,P=x,O=T,x=k,T=we+(ge+pe+(Ie>>>0<_e>>>0?1:0))+((k=de+Ie|0)>>>0<de>>>0?1:0)|0}p=n.low=p+k,n.high=f+T+(p>>>0<k>>>0?1:0),g=s.low=g+x,s.high=v+O+(g>>>0<x>>>0?1:0),y=r.low=y+P,r.high=_+L+(y>>>0<P>>>0?1:0),D=o.low=D+N,o.high=m+M+(D>>>0<N>>>0?1:0),b=a.low=b+U,a.high=S+R+(b>>>0<U>>>0?1:0),I=l.low=I+G,l.high=w+H+(I>>>0<G>>>0?1:0),E=d.low=E+F,d.high=C+K+(E>>>0<F>>>0?1:0),B=h.low=B+z,h.high=A+j+(B>>>0<z>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(i/4294967296),t[31+(n+128>>>10<<5)]=i,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(l),e.HmacSHA512=t._createHmacHelper(l)}(),n.SHA512)},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.passcode=""}}r.pack=()=>[0,0,0,3,3,0,0,6],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(68));t.default=function(e,t){const i=(e,i)=>t((0,s.default)(e),i)>>>0;return i.signed=(e,i)=>t((0,s.default)(e),i),i.unsigned=i,i.model=e,i}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(){this.listenerMap={},this.addEventListener=(e,t)=>n(this,void 0,void 0,(function*(){return this.listenerMap[e]||(this.listenerMap[e]=[]),-1===this.listenerMap[e].indexOf(t)&&this.listenerMap[e].push(t),{success:!0}})),this.removeEventListener=(e,t)=>{if(this.listenerMap[e]){const i=this.listenerMap[e].indexOf(t);if(-1!==i)return this.listenerMap[e].splice(i,1),{success:!0}}return{success:!1}}}}},function(e,t,i){"use strict";var n=this&&this.__decorate||function(e,t,i,n){var s,r=arguments.length,o=r<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(o=(r<3?s(o):r>3?s(t,i,o):s(t,i))||o);return r>3&&o&&Object.defineProperty(t,i,o),o},s=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},r=this&&this.__rest||function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BleHandle=void 0;const a=o(i(6)),c=o(i(29)),u=o(i(77)),l=o(i(78)),d=o(i(1)),h=i(3),f=i(79),p=o(i(13)),v=i(12),g=i(19),_=i(9),y=i(33),m=o(i(31)),D=i(25),S=o(i(4)),b=o(i(80)),w=o(i(81)),I=o(i(82)),C=o(i(83)),E=o(i(84)),A=o(i(85)),B=o(i(86)),T=o(i(87));function k(e){return function(t,i,n){const{value:s}=n;n.value=function(...t){return s.apply(this,t).then(i=>{var{_failureType_:n}=i,s=r(i,["_failureType_"]);return(0,f.reportEvent)({device:t[0],eventID:this.__event_id__,eventType:e,success:s.success}),Object.assign(Object.assign({},s),{_failureType_:e})})}}}class O extends m.default{set offlineThreshold(e){this._offlineThreshold=e}get offlineThreshold(){return this._offlineThreshold||1e4}constructor({pks:e=[],shortPks:t=[],bleHandleParams:i={serviceUUIDSuffix:"abd0",characteristicUUIDSuffix:"abd5"},offlineThreshold:n}){super(),this.connectedList=[],this.connectingDevId=null,this.pks=[],this.shortPks=[],this.listenDevOfflineTimer=null,this.methodQueue=Promise.resolve(),this.boradcastDataCache={},this.validBoradcastCmd=[152,154,25,148],this.baseServices=["D0AB","ABD0"],this.tmpBleData="",this.tmpDataNum=0,this.disableScanFlag=!1,this.peripheralServer=null,this.isActive=!0,this.isInitSuccess=!1,this.isRunInit=!1,this._offlineThreshold=null,this.scanList=[],this.bleFrameCache=new Map,this.onBluetoothAdapterStateChange=e=>{a.default.debug("onBluetoothAdapterStateChange",e,this.isRunInit,this.isInitSuccess),e.available?this.isRunInit&&!1===this.isInitSuccess&&this.init():(this.scanList=[],this.notifyDevices())},this.onAppShow=()=>{this.isActive=!0,this.scanList.map(e=>{e.ctime=Date.now()})},this.onAppHide=()=>{this.isActive=!1},this.listenDevOffline=()=>{this.listenDevOfflineTimer=setInterval(()=>{if(!this.isActive)return;const e=(new Date).getTime(),t=this.scanList.filter(t=>{const i=this.connectedList.find(e=>t.bleDeviceID==e.deviceId),n=this.connectingDevId===t.bleDeviceID;return!(!i&&!n)||("BLE_BROADCAST"===t.connectType?e-t.ctime<2*this.offlineThreshold:e-t.ctime<this.offlineThreshold)});t.length!==this.scanList.length&&(this.scanList=t,this.notifyDevices())},500)},this.openBluetoothAdapter=(e="central")=>new Promise((t,i)=>{wx.openBluetoothAdapter({mode:e,success:()=>{t({success:!0}),wx.onBLECharacteristicValueChange(this.handleOnBLECharacteristicValueChange)},fail:e=>{a.default.error("openBluetoothAdapter fail",new Error(JSON.stringify(e))),this.notifyError({errMsg:e.errMsg,errCode:-1}),i({success:!1,err:e})}})}),this.handleOnBLECharacteristicValueChange=e=>s(this,void 0,void 0,(function*(){if(!e.value)return;let t;try{t=new d.default(new Uint8Array(e.value))}catch(e){return void console.warn("BLE协议解析失败",e)}console.log("handleOnBLECharacteristicValueChange",t);const i=`${e.deviceId}_${t.msgId}_${t.cmd}`;if(!this.bleFrameCache.has(i)){const e=setTimeout(()=>{this.bleFrameCache.delete(i)},5e3);this.bleFrameCache.set(i,{frames:new Array(t.frames),total:t.frames,received:0,timer:e})}const n=this.bleFrameCache.get(i);if(n.frames[t.seq]||(n.frames[t.seq]=t.payload,n.received++),n.received===n.total){console.log("cachecache",n);const t=n.frames.reduce((e,t)=>{if(t){const i=new Uint8Array(e.length+t.length);return i.set(e,0),i.set(t,e.length),i}return e},new Uint8Array),s=new Uint8Array(e.value.slice(0,4)),r=new Uint8Array([...s,...t]),o=new d.default(r);this.notiDeviceDataToSdk(e,o),clearTimeout(n.timer),this.bleFrameCache.delete(i)}})),this.notiDeviceDataToSdk=(e,t)=>{this.listenerMap.GizBleDeviceData&&this.listenerMap.GizBleDeviceData.map(i=>{i(e,t)})},this.notifyError=e=>{this.listenerMap.GizBleError&&this.listenerMap.GizBleError.map(t=>{t(e)})},this.notifyDevices=()=>{this.listenerMap.GizBleDeviceList&&this.listenerMap.GizBleDeviceList.map(e=>{e(this.scanList)})},this.listenConnection=()=>{wx.onBLEConnectionStateChange(e=>{if(!1===e.connected){const t=this.connectedList.findIndex(t=>t.deviceId===e.deviceId);-1!==t&&(this.connectedList.splice(t,1),this.notifyDevices())}})},this.init=()=>s(this,void 0,void 0,(function*(){this.isRunInit=!0;const{platform:e}=wx.getSystemInfoSync();yield this.openBluetoothAdapter(),"ios"===e&&(yield this.openBluetoothAdapter("peripheral"));let t=!0;try{this.peripheralServer&&(this.peripheralServer.close(),this.peripheralServer=null),this.peripheralServer=(yield wx.createBLEPeripheralServer()).server,a.default.info("GIZ_SDK: 广播初始化成功",this.peripheralServer)}catch(e){a.default.error("GIZ_SDK: 广播初始化失败",new Error(JSON.stringify(e))),t=!1}const i=yield this.getBluetoothAdapterState();return this.isInitSuccess=!0,wx.onBluetoothDeviceFound(e=>{this.handleBluetoothDeviceFound(e)}),i})),this.checkPermission=()=>s(this,void 0,void 0,(function*(){if((yield wx.getSetting()).authSetting["scope.bluetooth"])return yield this.init();for(let e=1;e<=2;e++)try{return yield wx.authorize({scope:"scope.bluetooth"}),yield this.init()}catch(t){if(a.default.log(`授权失败,第 ${e}/2 次尝试`,t),!(e<2))return a.default.log("授权重试失败",t),this.openBluetoothAdapter(),this.notifyError({errMsg:t.errMsg,errCode:-1}),{success:!1};yield(0,p.default)(300)}})),this.getBluetoothAdapterState=()=>s(this,void 0,void 0,(function*(){a.default.log("getBluetoothAdapterState",yield wx.getBluetoothAdapterState());const e=yield wx.getBluetoothAdapterState(),{errMsg:t,available:i}=e,n=r(e,["errMsg","available"]);return{data:Object.assign({},n),err:(0,_.wrapErrorInfo)(t),success:i}})),this.getDeviceStatus=(e,t,i,n)=>s(this,void 0,void 0,(function*(){const s=yield u.default.pack(t,i,n);return s?yield this.write(e,(0,_.numberArray2Uint8Array)(s).buffer):{success:!1}})),this.updateDevice=e=>{const t=e.bleDeviceID,i=this.scanList.findIndex(e=>t==e.bleDeviceID);-1!==i&&(this.scanList[i]=e)},this.updateCtime=e=>{const t=e.deviceId,i=this.scanList.findIndex(e=>t==e.bleDeviceID);-1!==i&&(this.scanList[i].ctime=Date.now())},this.checkDeviceIsChange=(e,t)=>e.bleWorkStatus!==t.bleWorkStatus||e.name!==t.name||e.isBleOnline!==t.isBleOnline||e.isOnline!==t.isOnline,this.handleBluetoothDeviceFound=e=>{(0,_.unionBy)(e.devices,"deviceId").map(e=>{const{advertisData:t,deviceId:i,name:n,localName:s}=e,r=(0,_.ab2hex)(t);let o=null;try{o=(0,_.parseBroadcastData)((0,_.ab2numbers)(t))}catch(e){}const a=this.scanList.find(e=>e.bleDeviceID===i);if(!o||148!==o.cmd){if(o&&25===o.cmd){this.pks.find(e=>e===o.data.join(""))&&(e.communicationType="BLE_BROADCAST")}if(o&&this.validBoradcastCmd.includes(o.cmd)&&this.notiBoardCastData(e,o),a){const t=(0,_.BTDevice2GDevice)(e,this.pks,this.shortPks);if(t.productKey&&t.mac){const e=this.checkDeviceIsChange(t,a);t.ctime=Date.now(),this.updateDevice(t),e&&this.notifyDevices()}}else{if(this.shortPks.some(e=>r.includes(e))){console.log("BTDevice2GDevice");const t=(0,_.BTDevice2GDevice)(e,this.pks,this.shortPks);t.productKey&&t.mac&&(this.scanList.push(t),this.notifyDevices())}}}})},this.startScan=(e=5e3,t)=>s(this,void 0,void 0,(function*(){return this.disableScanFlag?{scanList:[]}:new Promise(i=>s(this,void 0,void 0,(function*(){a.default.debug("GIZ_SDK: start scan",e),yield wx.startBluetoothDevicesDiscovery({services:t||this.baseServices,powerLevel:"high",allowDuplicatesKey:!0,interval:200}),e>0&&setTimeout(()=>{this.stopScan(),i({scanList:this.scanList})},e)})))})),this.stopScan=()=>s(this,void 0,void 0,(function*(){try{return yield wx.stopBluetoothDevicesDiscovery()}catch(e){return e}})),this.disableScan=()=>s(this,void 0,void 0,(function*(){this.disableScanFlag=!0;const e=yield wx.stopBluetoothDevicesDiscovery();return yield(0,p.default)(200),e})),this.enableScan=()=>{this.disableScanFlag=!1},this.connectDevice=e=>s(this,void 0,void 0,(function*(){try{return this.connectingDevId=e.bleDeviceID,yield this._connectDevice(e)}finally{this.connectingDevId=null}})),this.handleWatchBleData=(e,t,i=3e3)=>s(this,void 0,void 0,(function*(){return new Promise(n=>{let s=(i,r)=>{if(console.log("handleWatchBleData",i,r),e!==i.deviceId)return;const o=t(i,r);o&&(n({success:!0,data:o}),this.removeEventListener("GizBleDeviceData",s))};this.addEventListener("GizBleDeviceData",s),setTimeout(()=>{s&&(this.removeEventListener("GizBleDeviceData",s),n({success:!1,err:S.default.GIZ_SDK_DEVICE_NO_RESPONSE}))},i)})})),this.handleBindReq=e=>new Promise(t=>{setTimeout(()=>{a.default.debug("绑定协议执行超时"),t({success:!1,data:""})},5e3);this.watchBleDevice(e,(e,t)=>{})}),this.handleLoginReq=e=>new Promise(t=>{setTimeout(()=>{a.default.debug("登录协议执行超时"),t({success:!1,data:""})},5e3);this.watchBleDevice(e,(e,t)=>{})}),this.startUpgrade=({device:e,type:t,onEvent:i,onProgress:n,productKey:r})=>s(this,void 0,void 0,(function*(){i({code:"GizOTAEventPretreatment"});const s=yield this.checkUpdate({device:e,type:t});a.default.debug("检查设备是否有新固件",s);const o=e.bleDeviceID;if(s.success){const c=s.data.download_url,u=s.data.soft_ver;i({code:"GizOTAEventDownload"});let l="";try{l=(yield(0,y.downloadFile)({url:c})).tempFilePath}catch(e){return a.default.error("固件下载失败",e),{success:!1,err:S.default.GIZ_SDK_OTA_FIRMWARE_DOWNLOAD_FAILED}}a.default.debug("下载固件成功",l),i({code:"GizOTAEventTransmit"});const f=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 66:return new w.default(i)}return null},m=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 68:return new I.default(i)}return null},D=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 82:return new A.default(i)}return null};a.default.debug("查询设备是否可以OTA");const b=w.default.pack(t);yield this.write(o,(0,_.numberArray2Uint8Array)(b).buffer);const T=yield this.handleWatchBleData(o,f);if(a.default.debug("设备回复是否可以OTA",T),T.success&&T.data.type!==t)return a.default.error(null,new Error("OTA类型不匹配")),{success:!1,err:S.default.GIZ_SDK_OTA_FIRMWARE_TYPE_NOT_MATCH};if(T.success&&0===T.data.state){const s=wx.getFileSystemManager();let c=[];try{c=yield s.readFileSync(l,"hex",0)}catch(e){return a.default.error("读取固件失败",e),{success:!1,err:S.default.GIZ_SDK_OTA_FIRMWARE_DOWNLOAD_FAILED}}const f=c.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})),y=(0,_.arrayBufferToWordArray)(f),b=(0,v.MD5)(y).toString(),w=(0,g.crc32)(f),A=I.default.pack(r,u,b,f.length,w);yield this.write(o,(0,_.numberArray2Uint8Array)(A).buffer);const T=yield this.handleWatchBleData(o,m,5e3);if(a.default.debug("设备回复ota 预请求",T),T.success&&0===T.data.state){let s=0;if(T.data.processedLen>0){(0,g.crc32)(f.slice(0,T.data.processedLen)).toString(16)===T.data.processedCrc32?(s=T.data.processedLen,a.default.debug(`断点续传,从 ${s} 开始`)):(a.default.debug("从位置0开始OTA"),yield this.write(o,(0,_.numberArray2Uint8Array)(C.default.pack(0)).buffer),yield(0,p.default)(100))}const r=f.length,c=T.data.packageMaxLen;let l=Math.ceil(s/c),v=0;for(;s<r;){const e=f.slice(s,s+c),t=E.default.pack(e,l);yield this.write(o,(0,_.numberArray2Uint8Array)(t).buffer);const i=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 72:{const e=new E.default(i);return e.packageNum===l?e:null}}return null},u=yield this.handleWatchBleData(o,i,5e3);let g=!1;if(!1===u.success&&(g=!0),u.success&&0!==u.data.state&&4!==u.data.state&&(g=!0),g){if(v+=1,a.default.debug(`发送OTA包失败,重试次数 ${v}`,u),v>3)return a.default.debug("发送OTA包失败次数超过限制"),{success:!1};continue}a.default.debug("设备接收ota子包成功",u),v=0,s+=c,l+=1;let y=parseInt(`${l*c/r*100}`);if(y>100&&(y=100),n({firmwareSize:r,packageMaxLen:c,currentNumber:l,currentProgress:y}),yield(0,p.default)(100),4===u.data.state){a.default.debug("设备请求等待OTA");const e=yield this.handleWatchBleData(o,D,6e4);if(a.default.debug("设备回复等待结果",e),1===e.data.state)return{success:!1}}}a.default.debug("发送完所有数据包,等待设备回复");const y=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 80:return new B.default(i)}return null},m=yield this.handleWatchBleData(o,y,1e4);if(m.success&&0===m.data.state){a.default.debug("设备回复收到固件,准备重启设备"),i({code:"GizOTAEventReboot"}),this.disConnectDevice(o),yield(0,p.default)(1e4);const n=yield this.connectDevice(e);if(console.log("connectRes",n),!n.success)return a.default.debug("设备重启后,无法连接"),{success:!1};const s=yield this.getDeviceInfo({deviceId:o});if(!s.success)return a.default.debug("获取设备版本号失败"),{success:!1};let r="";return r="MCU"===t?s.data.mcuSoftVersion:s.data.moduleSoftVersion,i({code:"GizOTAEventFinish"}),r===u?{success:!0}:(a.default.debug("设备上报版本号与更新的固件版本号不匹配,更新失败"),{success:!1})}return{success:!1}}return{success:!1}}return{success:!1,err:S.default.GIZ_SDK_OTA_DEVICE_BUSY_IN_UPGRADE}}return s})),this.getSsidList=e=>s(this,void 0,void 0,(function*(){const t=T.default.pack();this.write(e,t.buffer);return yield this.handleWatchBleData(e,(e,t)=>{switch(console.log("parseData",t),t.cmd){case 70:return new T.default(t.raw).parse()}return null},5e3)})),this.getDeviceInfo=({deviceId:e})=>s(this,void 0,void 0,(function*(){const t=b.default.pack();a.default.debug("DeviceInfo.pack",t),yield this.write(e,(0,_.numberArray2Uint8Array)(t).buffer);return yield this.handleWatchBleData(e,(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 20:try{const e=new b.default(i);return a.default.debug("parse DeviceInfo",e),e}catch(e){a.default.debug("parse DeviceInfo error",e)}}return null})})),this.checkUpdate=({device:e,type:t})=>s(this,void 0,void 0,(function*(){const i=yield this.getDeviceInfo({deviceId:e.bleDeviceID});if(i.success){let n="",s="";return"MCU"===t?(n=i.data.mcuSoftVersion,s=i.data.mcuHardVersion):(n=i.data.moduleSoftVersion,s=i.data.moduleHardVersion),yield(0,D.checkUpdate)({did:e.did,type:t,softVersion:n,hardVersion:s})}return{success:!1,err:i.err}})),this.watchBleDevice=(e,t)=>s(this,void 0,void 0,(function*(){const{serviceId:i,characteristics:n,errMsg:s}=this.getTargetDevice(e);if(s)return{success:!1,message:s};for(let t=0;t<n.length;t++)(n[t].properties.notify||n[t].properties.indicate)&&(yield(0,y.notifyBLECharacteristicValueChange)(e,i,n[t].uuid));return a.default.log(`监听设备 ${e} 成功!`),this.addEventListener("GizBleDeviceData",t),{message:"ok",success:!0}})),this.sendAdv=(e,t=1e3)=>s(this,void 0,void 0,(function*(){try{return this.peripheralServer.stopAdvertising({}),this.peripheralServer.startAdvertising({advertiseRequest:{connectable:!0,serviceUuids:e},powerLevel:"high",success:e=>{a.default.debug("GIZ_SDK: startAdvertising success",e)},fail:e=>{a.default.error("GIZ_SDK: startAdvertising error",new Error(JSON.stringify(e)))}}),a.default.debug("GIZ_SDK: start adv",e),yield(0,p.default)(t),this.peripheralServer.stopAdvertising({}),{success:!0}}catch(e){return a.default.log("GIZ_SDK:",e),{success:!1,message:"send cmd error"}}})),this.writeBigDataTimeoutHandle=null,this.writeBigData=(e,t)=>s(this,void 0,void 0,(function*(){return new Promise((i,n)=>s(this,void 0,void 0,(function*(){if(this.writeBigDataTimeoutHandle)return void i({success:!1,message:"send big data already"});const n=this.scanList.find(t=>t.bleDeviceID===e);if(!n)return{success:!1,message:"not found device"};let s=-1;const r=(0,_.splitIntoChunks)(t,19);r.map((e,t)=>{r[t].unshift(t)});const o=(0,_.convertToServiceUuids)({mac:n.mac,index:0,data:[r.length],len:1,cmd:151}),c=r.map(e=>(0,_.convertToServiceUuids)({mac:n.mac,index:0,data:e,len:e.length,cmd:153})),u=(t,i)=>{if(console.log("boardCastData",t.deviceId,e),t.deviceId==e)switch(i.cmd){case 154:{const e=i.data[0];parseInt(e,16)===s?(s+=1,a.default.debug("设备回复收到数据包",e)):a.default.debug("数据包序号不匹配",e,s);break}case 152:s=0,a.default.debug("设备回复引导,开始发送数据")}};this.addBoardCastDataListener(u);let l=!0;for(this.writeBigDataTimeoutHandle=setTimeout(()=>{a.default.debug("发送大数据超时"),i({success:!1,message:"write big data timeout"}),this.removeBoardCastDataListener(u),this.writeBigDataTimeoutHandle=null,l=!1},2e4);s<r.length&&l;){if(!this.writeBigDataTimeoutHandle)return;if(-1==s)a.default.debug("发送引导包",o),yield this.sendAdv(o);else{const e=c[s];a.default.debug("发送数据包",e),e&&(yield this.sendAdv(e))}}this.removeBoardCastDataListener(u),l&&(this.writeBigDataTimeoutHandle&&(clearTimeout(this.writeBigDataTimeoutHandle),this.writeBigDataTimeoutHandle=null),i({success:!0,message:"write big data success"}))})))})),this.writeBoradcast=(e,t)=>s(this,void 0,void 0,(function*(){const i=this.scanList.find(t=>t.bleDeviceID===e);if(!i)return{success:!1,message:"not found device"};const n=(0,_.convertToServiceUuids)({mac:i.mac,index:0,data:t,len:t.length,cmd:147});return this.sendAdv(n)})),this.write=(e,t)=>s(this,void 0,void 0,(function*(){return this.methodQueue=this.methodQueue.then(()=>s(this,void 0,void 0,(function*(){a.default.log("app => dev:",(0,_.ab2hex)(t));const i=this.getTargetDevice(e);if(a.default.log("write",i),i.serviceId&&i.characteristicId){const n=yield(0,y.unpackWriteBLECharacteristicValue)(e,i.serviceId,i.characteristicId,t);return 0==n.errCode?{success:!0,message:n.errMsg}:{success:!1,message:n.errMsg}}return{success:!1,message:"send cmd error"}}))),this.methodQueue})),this.disConnectDevice=e=>s(this,void 0,void 0,(function*(){this.removeDevById(e);const{errMsg:t}=yield wx.closeBLEConnection({deviceId:e});console.debug("disConnectDevice",e,t);const i=this.scanList.find(t=>t.bleDeviceID===e);return i&&(i.ctime=Date.now(),this.updateDevice(i)),"closeBLEConnection:ok"===t?{err:t,success:!0}:{err:t,success:!1}})),this.removeDevById=e=>{const t=this.connectedList.findIndex(t=>t.deviceId===e);-1!==t&&this.connectedList.splice(t,1)},this.getTargetDevice=e=>{const t=this.connectedList.find(t=>e===t.deviceId);return t||{errMsg:"Unable get this device,maybe you forgot to connect it."}},this.boardCastDataListenerCallbacks=[],this.notiBoardCastData=(e,t)=>{this.boardCastDataListenerCallbacks.forEach(i=>{i(e,t)})},this.addBoardCastDataListener=e=>{this.boardCastDataListenerCallbacks.push(e)},this.removeBoardCastDataListener=e=>{this.boardCastDataListenerCallbacks=this.boardCastDataListenerCallbacks.filter(t=>t!==e)},this.destory=()=>{this.listenDevOfflineTimer&&clearInterval(this.listenDevOfflineTimer),wx.offAppShow(this.onAppShow),wx.offAppHide(this.onAppHide),wx.offBluetoothAdapterStateChange(this.onBluetoothAdapterStateChange)};const{serviceUUIDSuffix:o}=i;this.serviceUUIDSuffix=o,this.pks=e,this.shortPks=t,this.offlineThreshold=n,this.listenDevOffline(),this.listenConnection(),wx.onAppShow(this.onAppShow),wx.onAppHide(this.onAppHide),wx.onBluetoothAdapterStateChange(this.onBluetoothAdapterStateChange)}connectDeviceBle(e){var t,i;return s(this,void 0,void 0,(function*(){yield this.disableScan();const n=yield(0,y.retryConnect)(e.bleDeviceID,this.serviceUUIDSuffix);return this.enableScan(),a.default.debug("connect res",n),n.success||(a.default.error("GIZ_SDK: createBLEConnection error",new Error(JSON.stringify(n.error))),"createBLEConnection:fail:already connect"===(null===(t=n.error)||void 0===t?void 0:t.errMsg))?n.success&&n.data?{success:!0,data:n.data}:{success:!1,message:"connection failed"}:(this.notifyError(n.error),{success:!1,message:null===(i=n.error)||void 0===i?void 0:i.errMsg})}))}connectDeviceBindRequest(e){return s(this,void 0,void 0,(function*(){this.write(e.bleDeviceID,(0,_.numberArray2Uint8Array)(c.default.pack()).buffer);const t=yield this.handleBindReq(e.bleDeviceID);return a.default.log("handleBindReq",t),t.success||(yield wx.closeBLEConnection({deviceId:e.bleDeviceID})),t}))}connectDeviceLoginRequest(e,t){return s(this,void 0,void 0,(function*(){this.write(e.bleDeviceID,(0,_.numberArray2Uint8Array)(l.default.pack({passcode:t})).buffer);const i=yield this.handleLoginReq(e.bleDeviceID).catch(e=>this.notifyError(e));return{success:!!(null==i?void 0:i.success),message:"ok"}}))}_connectDevice(e){return s(this,void 0,void 0,(function*(){const t=yield this.connectDeviceBle(e);if(!t.success)return t;const{serviceId:i,characteristics:n,characteristicId:s}=t.data;this.connectedList.every(t=>t.deviceId!==e.bleDeviceID)&&this.connectedList.push({deviceId:e.bleDeviceID,serviceId:i,characteristics:n,characteristicId:s});for(let t=0;t<n.length;t++){const s=n[t];if(s.properties.notify||s.properties.indicate){console.log("notifyBLECharacteristicValueChange",e.bleDeviceID,i,s.uuid);const t=yield(0,y.notifyBLECharacteristicValueChange)(e.bleDeviceID,i,s.uuid);console.debug("notifyBLECharacteristicValueChange res",t)}}return{success:!0,message:"ok"}}))}}n([k("BleDeviceConnectEnd")],O.prototype,"connectDeviceBle",null),n([k("BleDeviceConnectBind")],O.prototype,"connectDeviceBindRequest",null),n([k("BleDeviceConnectLogin")],O.prototype,"connectDeviceLoginRequest",null),n([function(e,t,i){const{value:n}=i;i.value=function(...e){const t=Object.create(this);return t.__event_id__=function(){let e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){let i=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?i:3&i|8).toString(16)}))}(),(0,f.reportEvent)({device:e[0],eventID:t.__event_id__,eventType:"BleDeviceConnectStart",success:!0}),n.apply(t,e).then(i=>{var{_failureType_:n}=i,s=r(i,["_failureType_"]);return(0,f.reportEvent)(Object.assign({device:e[0],eventID:t.__event_id__,eventType:"BleDeviceConnectFinish",success:s.success},s.success?{}:{failureType:n})),s})}}],O.prototype,"_connectDevice",null),t.BleHandle=O},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setMtu=t.downloadFile=t.unpackWriteBLECharacteristicValue=t.writeBLECharacteristicValue=t.notifyBLECharacteristicValueChange=t.getBLEDeviceCharacteristics=t.getBLEDeviceServices=t.createBLEConnection=t.getBluetoothDevices=t.getConnectedBluetoothDevices=t.startBluetoothDevicesDiscovery=t.getBluetoothAdapterState=t.closeBluetoothAdapter=t.openBluetoothAdapter=t.retryConnect=void 0;const r=s(i(6)),o=s(i(13));function a(e,t){return new Promise((i,n)=>{wx.createBLEConnection({deviceId:e,timeout:t,success:e=>i(e),fail:e=>{-1===e.errCode?i(e):n(e)}})})}function c(e){return new Promise((t,i)=>{wx.getBLEDeviceServices({deviceId:e,success:({services:e})=>t(e),fail:i})})}function u(e,t){return new Promise((i,n)=>{wx.getBLEDeviceCharacteristics({deviceId:e,serviceId:t,success:({characteristics:e})=>i(e),fail:n})})}function l(e,t,i,n){return new Promise(s=>{wx.writeBLECharacteristicValue({deviceId:e,serviceId:t,characteristicId:i,value:n,complete:s})})}t.retryConnect=function(e,t,i=3e3){var s;return n(this,void 0,void 0,(function*(){let n={success:!1,error:null};for(let r=0;r<5;r++)try{console.debug("start createBLEConnection");const n=yield a(e,i);if(n){const i=yield c(e),n=null===(s=i.find(e=>e.isPrimary&&e.uuid.toLowerCase().includes(t)))||void 0===s?void 0:s.uuid;if(!n)throw new Error("can not find valid serviceId");const r=yield u(e,n),o=r.filter(e=>e.properties.write)[0];if(!o)throw new Error("can not find write characteristic");const a=new Uint8Array([0]);return yield l(e,n,o.uuid,a.buffer),{success:!0,error:null,data:{serviceId:n,characteristics:r,characteristicId:o.uuid}}}return{success:n,error:null}}catch(t){n={success:!1,error:t},console.debug("createBLEConnection error retry",t);try{yield wx.closeBLEConnection({deviceId:e})}catch(e){console.debug("disconnect error",e)}yield(0,o.default)(1e3)}return n}))},t.openBluetoothAdapter=function(){return new Promise((e,t)=>{wx.openBluetoothAdapter({success:e,fail:t})})},t.closeBluetoothAdapter=function(){return new Promise((e,t)=>{wx.closeBluetoothAdapter({success:e,fail:t})})},t.getBluetoothAdapterState=function(){return new Promise((e,t)=>{wx.getBluetoothAdapterState({success:e,fail:t})})},t.startBluetoothDevicesDiscovery=function(e=!0){return new Promise((t,i)=>{wx.startBluetoothDevicesDiscovery({success:t,fail:i,allowDuplicatesKey:e,powerLevel:"high",interval:200})})},t.getConnectedBluetoothDevices=function(){return new Promise((e,t)=>{wx.getConnectedBluetoothDevices({services:["abd0"],success:({devices:t})=>e(t),fail:t})})},t.getBluetoothDevices=function(){return new Promise((e,t)=>{wx.getBluetoothDevices({success:({devices:t})=>e(t),fail:t})})},t.createBLEConnection=a,t.getBLEDeviceServices=c,t.getBLEDeviceCharacteristics=u,t.notifyBLECharacteristicValueChange=function(e,t,i,n=!0){return new Promise((s,r)=>{wx.notifyBLECharacteristicValueChange({deviceId:e,serviceId:t,characteristicId:i,state:n,success:s,fail:r})})},t.writeBLECharacteristicValue=l,t.unpackWriteBLECharacteristicValue=function(e,t,i,s,a=256){if(!s||0===s.byteLength)throw new Error("value is empty");return new Promise((c,u)=>n(this,void 0,void 0,(function*(){let n,d=0,h=s.byteLength;for(;h>0;){yield(0,o.default)(10);const c=s.slice(d,d+a);if(d+=a,h-=a,n=yield l(e,t,i,c),r.default.log("unpackWriteBLECharacteristicValue",d/a,n),0!==n.errCode)break}0!==n.errCode?u(n):c(n)})))},t.downloadFile=function({url:e}){return n(this,void 0,void 0,(function*(){return new Promise((t,i)=>{wx.downloadFile({url:e,success(e){t(e)},fail(e){i(e)}})})}))},t.setMtu=function(e,t){return n(this,void 0,void 0,(function*(){return new Promise(i=>{wx.setBLEMTU({mtu:e,deviceId:t,success:e=>{i(e.mtu)},fail:()=>{i(20)}})})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.snManager=t.SnManager=void 0;class n{constructor(){this.sn=0,this.max=32}getSn(){return this.sn+=1,this.sn>=this.max&&(this.sn=1),this.sn}}t.SnManager=n,t.snManager=new n},function(e,t,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||n(t,e,i)},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BleHandle=t.errorCode=void 0,i(36);const o=r(i(37)),a=r(i(4));t.errorCode=a.default;const c=i(32);Object.defineProperty(t,"BleHandle",{enumerable:!0,get:function(){return c.BleHandle}}),t.default=o.default,s(i(104),t)},function(e,t){},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(5),o=i(25),a=s(i(16)),c=i(38),u=s(i(20)),l=i(21),d=s(i(75)),h=i(76),f=i(3),p=i(32),v=s(i(88)),g=s(i(6)),_=s(i(4)),y=i(22),m=i(91),D=i(9),S=s(i(92)),b=s(i(94)),w=s(i(96)),I=a.default.version;class C{get deviceList(){return this._deviceList}set deviceList(e){this._deviceList=e,this.notiDeviceList()}get bleDevices(){return this._bleDevices}set bleDevices(e){this._bleDevices=e,this.notiDeviceList()}get lanDevices(){return this._lanDevices}set lanDevices(e){this._lanDevices=e,this.notiDeviceList()}get allDevices(){let e=(0,D.merageBleLocalDevices)([...this.deviceList],this.bleDevices);e=(0,D.merageLanLocalDevices)(e,this.lanDevices),this.bleHandle.connectedList.map(t=>{const i=e.findIndex(e=>e.bleDeviceID===t.deviceId);-1!==i&&(e[i].connectType="BLE")});const t=this.socketHandle._connections;return Object.keys(t).forEach(i=>{const n=t[i];n&&n._subDids.forEach(t=>{const i=e.findIndex(e=>e.did===t);-1!==i&&(e[i].connectType="WAN")})}),this.lanHandle.connectedList.map(t=>{const i=e.findIndex(e=>e.mac===t.mac&&e.productKey===t.productKey);-1!==i&&(e[i].connectType="LAN")}),e}get bleScanDevice(){return this.bleDevices.filter(e=>!0===e.isBleOnline)}constructor(e){this.listenerMap={},this.keepScanTimer=null,this._deviceList=[],this._bleDevices=[],this._lanDevices=[],this.productInfo=[],this.syncDataCallBack=null,this.syncTotalNum=0,this.syncCurrnetNum=0,this.syncDataTimoutTimer=null,this.SYNC_TIMEOUT=24e4,this.updateProductInfo=e=>{this.productInfo=[...e],this.productInfo.map(e=>{e.shortPk=(0,D.getShortProductKey)(e.productKey)}),(0,r.setGlobalData)("productInfo",this.productInfo),console.log("productInfo",this.productInfo)},this.init=({appID:e,appSecret:t,productInfo:i,cloudServiceInfo:n,token:s,uid:o,offlineThreshold:a})=>{this.updateProductInfo(i),(0,r.setGlobalData)("appID",e),(0,r.setGlobalData)("appSecret",t),(0,r.setGlobalData)("token",s),(0,r.setGlobalData)("uid",o),this.setDomain(n),this.offlineThreshold=a,g.default.debug(`init sdk success, current version: ${C.getVersion().data}`),this.initLan()},this.handleBleError=e=>{this.listenerMap.onBleHandleError&&this.listenerMap.onBleHandleError.map(t=>{t(e)})},this.handleBleDevices=e=>{this.bleDevices=e},this.handleLanDevices=e=>{this.lanDevices=e},this.handleLanDeviceData=(e,t)=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>t.mac===e);if(i){const e=yield(0,l.unpack)((0,f.hexStrint2byte)(t),i.productKey);(null==e?void 0:e.kvData)&&this.listenerMap.GizDeviceAttrsNotifications&&this.listenerMap.GizDeviceAttrsNotifications.map(t=>{t({device:i,data:null==e?void 0:e.kvData})})}})),this.handleBleDeviceData=(e,t)=>n(this,void 0,void 0,(function*(){if(this.allDevices.find(t=>t.bleDeviceID===e.deviceId)){t.cmd}})),this.handleSocketDeviceData=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>t.did===e.did);if(t){if(e.attrs&&null!=e.attrs.is_online){const i=e.attrs.is_online;this.setDeviceMeta(t,"isOnline",i)}this.listenerMap.GizDeviceAttrsNotifications&&(e.attrs&&(e.attrs=yield(0,l.formatEnum)(e.attrs,t.productKey,"int")),this.listenerMap.GizDeviceAttrsNotifications.map(i=>{i(Object.assign({device:t},"attrs"in e?{data:e.attrs}:{raw:e.raw}))}))}})),this.handleSocketStatus=(e,t)=>{const i=this.allDevices.filter(t=>e.includes(t.did)&&"WAN"===t.connectType);g.default.log("handleSocketStatus",e,t),i.forEach(e=>{this.setDeviceMeta(e,"connectType",t?"WAN":"NONE")})},this.notiDeviceList=()=>{var e,t;null===(e=this.listenerMap.GizDeviceListNotifications)||void 0===e||e.map(e=>{e(this.allDevices)}),null===(t=this.listenerMap.onScanListChange)||void 0===t||t.map(e=>{e(this.bleScanDevice)})},this.initLan=()=>{try{this.lanHandle.init(),this.lanHandle.addEventListener("GizLanDeviceList",this.handleLanDevices),this.lanHandle.addEventListener("GizLanDeviceData",this.handleLanDeviceData)}catch(e){g.default.error("init lan error",e)}},this.startAutoScan=e=>{this.keepScanTimer?g.default.debug("startAutoScan fail. keepScanTimer is init"):(this.keepScanTimer=setInterval(()=>n(this,void 0,void 0,(function*(){this.bleHandle.startScan(-1,e)})),9e3),this.bleHandle.startScan(-1,e))},this.stopAutoScan=()=>{this.keepScanTimer&&clearInterval(this.keepScanTimer),this.keepScanTimer=null,this.bleHandle.stopScan()},this.setDeviceMeta=(e,t,i,n=!1)=>{const s=this.allDevices.find(t=>t.mac===e.mac);s&&0!==this.allDevices.length&&(e[t]!==i||n)&&(s[t]=i,this.notiDeviceList())},this.setDevicesMeta=(e,t,i,n=!1)=>{let s=!1;const r=e.map(e=>this.allDevices.find(t=>t.mac===e.mac));for(let e=0;e<r.length;e++){const o=r[e];o&&(o[t]!==i||n)&&(o[t]=i,s=!0)}s&&this.notiDeviceList()},this.initBle=()=>n(this,void 0,void 0,(function*(){try{this.bleHandle.addEventListener("GizBleDeviceData",this.handleBleDeviceData),this.bleHandle.addEventListener("GizBleDeviceList",this.handleBleDevices),this.bleHandle.addEventListener("GizBleError",this.handleBleError);const e=yield this.bleHandle.checkPermission();if(!e.success)return g.default.error("init BLE Error",new Error(JSON.stringify(e))),{success:!1,err:_.default.GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON};g.default.debug("init BLE succcess",e)}catch(e){return g.default.error("init BLE error",e),{success:!1,err:_.default.GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON}}return{success:!0}})),this.scanBleDevice=(e,t)=>n(this,void 0,void 0,(function*(){return this.bleHandle.scanList=[],{success:!0,data:(yield this.bleHandle.startScan(e,t)).scanList}})),this.writeBigData=(e,t)=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return{success:!1,message:"target is undefind"};if("NONE"!==i.connectType)switch(i.connectType){case"BLE_BROADCAST":return yield this.bleHandle.writeBigData(i.bleDeviceID,t)}return{success:!1,message:"the connectType not support write big data"}})),this.write=(e,t)=>n(this,void 0,void 0,(function*(){console.log("write device current device",this.allDevices);const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return{success:!1,message:"target is undefind"};const{data:n,raw:s}=yield(0,l.pack)(t,i.productKey);switch(i.connectType){case"BLE_BROADCAST":return yield this.bleHandle.writeBoradcast(i.bleDeviceID,s.cmd);case"BLE":return n?yield this.bleHandle.write(i.bleDeviceID,(0,D.numberArray2Uint8Array)(n).buffer):{success:!1};case"LAN":return this.lanHandle.write(i,(0,D.numberArray2Uint8Array)(n).buffer);case"WAN":return yield this.socketHandle.writeData(i,t);default:return this.socketHandle.writeData(i,t)}})),this.writeRaw=(e,t)=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return{success:!1,message:"target is undefind"};if("NONE"!==i.connectType)switch(i.connectType){case"BLE_BROADCAST":return yield this.bleHandle.writeBoradcast(i.bleDeviceID,t);case"BLE":return t?yield this.bleHandle.write(i.bleDeviceID,(0,D.numberArray2Uint8Array)(t).buffer):{success:!1};case"WAN":return this.socketHandle.send(i.did,t);case"LAN":return this.lanHandle.write(i,(0,D.numberArray2Uint8Array)(t).buffer)}return{success:!1}})),this.setDeviceTimeStamp=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!t)return{success:!1,message:"target is undefind"};const i=d.default.pack();switch(t.connectType){case"BLE":return this.bleHandle.write(e.bleDeviceID,(0,D.numberArray2Uint8Array)(i).buffer)}return{success:!1,message:"the connectType not support set timestamp"}})),this.syncDeviceData=(e,t=(()=>{}))=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return{success:!1,message:"target is undefind"};if(!i.isBind)return{success:!1,message:"Only the bound devices are supported"};if(this.syncDevice)return{success:!1,message:"Synchronizing"};switch(this.syncDevice=Object.assign({},i),i.connectType){case"BLE":{g.default.debug("start syncDeviceData",e),this.syncDataCallBack=t,this.syncDataTimoutTimer=setTimeout(()=>{this.syncDataCallBack({event:"SYNC_FAIL",message:"sync timeout"}),this.cleanSyncDeviceData()},this.SYNC_TIMEOUT);const i=h.RequestSync.pack();return g.default.debug("sent RequestSync data"),this.bleHandle.write(e.bleDeviceID,(0,D.numberArray2Uint8Array)(i).buffer)}}return{success:!1,message:"the connectType not support sync data"}})),this.queryNeedSyncDataLength=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!t)return{success:!1,message:"target is undefind"};if(!t.isBind)return{success:!1,message:"Only the bound devices are supported"};switch(t.connectType){case"BLE":{const i=h.RequestSync.pack();return this.syncDevice=Object.assign({},t),g.default.debug("sent RequestSync data len"),this.bleHandle.write(e.bleDeviceID,(0,D.numberArray2Uint8Array)(i).buffer),new Promise(e=>{this.syncDataLengthCallback=e,setTimeout(()=>{try{e({success:!1,message:"timeout"})}catch(e){}},3e3)})}}return{success:!1,message:"the connectType not support sync data"}})),this.cancelSyncDeviceData=()=>n(this,void 0,void 0,(function*(){this.cleanSyncDeviceData()})),this.cleanSyncDeviceData=()=>{this.syncDataCallBack&&(this.syncDataCallBack({event:"SYNC_CANCEL"}),this.syncDataCallBack=null),this.syncCurrnetNum=0,this.syncTotalNum=0,this.syncDevice=null,this.syncDataTimoutTimer&&clearTimeout(this.syncDataTimoutTimer)},this.getProductConfig=e=>n(this,void 0,void 0,(function*(){const t=yield u.default.getConfigFile(e);return t?{success:!0,data:t}:{success:!1}})),this.stopScanBleDevice=()=>{this.bleHandle.stopScan()},this.login=e=>n(this,void 0,void 0,(function*(){var t,i,n,s;const o=yield(0,m.AnonymousLogin)({uid:e});if(o.success){const e=null===(i=null===(t=o.data)||void 0===t?void 0:t.data)||void 0===i?void 0:i.token.access_token,a=null===(s=null===(n=o.data)||void 0===n?void 0:n.data)||void 0===s?void 0:s.user.id;(0,r.setGlobalData)("token",e),(0,r.setGlobalData)("uid",a),console.log("login data",a,e),this.socketHandle.updateToken({token:e,uid:a})}return o})),this.wxLogin=()=>n(this,void 0,void 0,(function*(){const e=yield wx.login();if("login:ok"===e.errMsg){const t=yield(0,m.WxAnonymousLogin)({code:e.code});if(t.success){const e=t.data.data.token.access_token,i=t.data.data.user.id;return(0,r.setGlobalData)("token",e),(0,r.setGlobalData)("uid",i),this.socketHandle.updateToken({token:e,uid:i}),{success:!0,data:{expire_at:t.data.data.token.expire_at,token:e,uid:i}}}return{success:!1,message:t.err.errorMessage}}return console.error("wxLogin error",e),{success:!1,message:"wx login failed"}})),this.getSsidList=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!t)return{success:!1,message:"target is undefind"};switch(t.connectType){case"BLE":return this.bleHandle.getSsidList(t.bleDeviceID)}return{success:!1}})),this.getDeviceStatus=(e,t)=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return{success:!1,message:"target is undefind"};switch(i.connectType){case"BLE_BROADCAST":break;case"BLE":return yield this.bleHandle.getDeviceStatus(i.bleDeviceID,i.productKey,i.rootDeviceId,t);case"WAN":default:return this.socketHandle.readStatus(i,t)}})),this.subscribe=(e,t,i=!0)=>n(this,void 0,void 0,(function*(){g.default.debug("subscribe device:",e);let i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return g.default.warn("Device Target Not Found"),g.default.warn("current devices ",this.allDevices),{success:!1,message:"device not found"};if("BLE_BROADCAST"===i.connectType)return{success:!0,message:""};const n=(0,D.getFirstConnectType)(i,t);switch("NONE"!==i.connectType&&i.connectType!==n&&(yield this.unSubscribe(i)),n){case"BLE":{const e=yield this.bleHandle.connectDevice(i);return e.success&&(this.setDeviceMeta(i,"connectType","BLE",!0),setTimeout(()=>{this.setDeviceTimeStamp(i)},250),setTimeout(()=>{this.getDeviceStatus(i)},500)),e}case"WAN":{const t=this.socketHandle.connectDevice(i);return t.success&&this.setDeviceMeta(e,"connectType","WAN",!0),t}case"LAN":{const t=yield this.lanHandle.connectDevice(i);return t.success&&this.setDeviceMeta(e,"connectType","LAN",!0),t}}return{success:!1,message:""}})),this.batchSubscribe=(e,t)=>n(this,void 0,void 0,(function*(){var i,n,s;g.default.debug("subscribe devices =>",e);const r=this.allDevices.reduce((e,t)=>Object.assign(Object.assign({},e),{[(0,D.getDeviceId)(t)]:t}),{}),o=e.filter(e=>r[(0,D.getDeviceId)(e)]);if(0===o.length)return g.default.warn("Device Target Not Found"),g.default.warn("current devices ",this.allDevices),{success:!1,message:"device not found"};const a=o.reduce((e,i)=>{const n="BLE_BROADCAST"===i.connectType?"BLE_BROADCAST":(0,D.getFirstConnectType)(i,t);return e[n]||(e[n]=[]),e[n].push(i),e},{}),c=Object.keys(a);if(1===c.length&&"BLE_BROADCAST"===c[0])return{success:!0,message:""};if((null!==(i=a.BLE)&&void 0!==i?i:[]).length>0||(null!==(n=a.LAN)&&void 0!==n?n:[]).length>0)return{success:!1,message:"BLE and LAN can not subscribe together"};const u=null!==(s=a.WAN)&&void 0!==s?s:[];if(0===u.length)return{success:!1,message:"no WAN device"};const l=u.filter(e=>"NONE"!==e.connectType&&"WAN"!==e.connectType);l.length>0&&(yield this.batchWanUnSubscribe(l));const d=this.socketHandle.connectDevices(u);return d.success&&this.setDevicesMeta(u,"connectType","WAN",!0),d})),this.batchWanUnSubscribe=e=>n(this,void 0,void 0,(function*(){const t=yield this.socketHandle.disConnectDevices(e);return t.success&&this.setDevicesMeta(e,"connectType","NONE",!0),t})),this.unSubscribe=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));switch(t.connectType){case"BLE":{const e=yield this.bleHandle.disConnectDevice(t.bleDeviceID);return e.success&&this.setDeviceMeta(t,"connectType","NONE",!0),e}case"WAN":{const e=this.socketHandle.disConnectDevice(t);return e.success&&this.setDeviceMeta(t,"connectType","NONE",!0),e}case"LAN":{const e=this.lanHandle.disConnectDevice(t);return e.success&&this.setDeviceMeta(t,"connectType","NONE",!0),e}}return{success:!1}})),this.bindRemoteDevice=({mac:e,productKey:t,alias:i,beOwner:s})=>n(this,void 0,void 0,(function*(){const n=(0,D.getProductInfoThroughPK)(t,this.productInfo);if(n){const r=yield(0,y.bindMac)({mac:e,productKey:t,productSecret:n.productSecret,alias:i,beOwner:s});return this.getBindingList(),r}return{success:!1,err:_.default.GIZ_SDK_PRODUCTKEY_NOT_IN_SPECIFY}})),this.checkUpdate=({device:e,type:t})=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(i){if(!i.did)return{success:!1,err:_.default.GIZ_OPENAPI_DEVICE_NOT_BOUND};switch(i.connectType){case"BLE":return this.bleHandle.checkUpdate({device:e,type:t});default:return{success:!1,err:_.default.GIZ_SDK_OTA_DEVICE_NOT_SUPPORT}}}return{success:!1,err:_.default.GIZ_SDK_DEVICE_NOT_SUBSCRIBED}})),this.getDeviceInfo=({device:e})=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(t){if(!t.did)return{success:!1,err:_.default.GIZ_OPENAPI_DEVICE_NOT_BOUND};switch(t.connectType){case"BLE":return this.bleHandle.getDeviceInfo({deviceId:e.bleDeviceID});default:return{success:!1,err:_.default.GIZ_SDK_OTA_DEVICE_NOT_SUPPORT}}}return{success:!1,err:_.default.GIZ_SDK_DEVICE_NOT_SUBSCRIBED}})),this.startUpgrade=({device:e,type:t,onProgress:i,onEvent:s})=>n(this,void 0,void 0,(function*(){const n=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(n){if(!n.did)return{success:!1,err:_.default.GIZ_OPENAPI_DEVICE_NOT_BOUND};switch(n.connectType){case"BLE":return this.bleHandle.startUpgrade({device:e,type:t,productKey:e.productKey,onProgress:i,onEvent:s});default:return{success:!1,err:_.default.GIZ_SDK_OTA_DEVICE_NOT_SUPPORT}}}return{success:!1,err:_.default.GIZ_SDK_DEVICE_NOT_SUBSCRIBED}})),this.unbindDevice=e=>n(this,void 0,void 0,(function*(){const t=yield(0,y.unbindDevice)(e);return t.success&&this.getBindingList(),t})),this.deviceSafetyRegister=({mac:e,productKey:t})=>n(this,void 0,void 0,(function*(){return yield this.deviceSafetyApi({mac:e,productKey:t,isReset:!1})})),this.deviceSafetyUnbind=({mac:e,productKey:t})=>n(this,void 0,void 0,(function*(){return yield this.deviceSafetyApi({mac:e,productKey:t,isReset:!0})})),this.setDeviceOnboardingDeploy=({ssid:e,bssid:t="",password:i,mode:s=0,timeout:o,productKey:a,isBind:c=!0,softAPSSIDPrefix:u,eventCallBack:l,mac:d=""})=>n(this,void 0,void 0,(function*(){if(this.currentWifiConfigHandle)return{success:!1,err:_.default.GIZ_SDK_DEVICE_CONFIG_IS_RUNNING};const n=(new Date).getTime();g.default.debug("GIZ_SDK: 配网开始时间:"+n,s);try{switch(s){case 0:{this.currentWifiConfigHandle=new S.default(e,t,i,this.specialProductKeys,this.specialProductKeySecrets);const s=yield this.currentWifiConfigHandle.setDeviceOnboardingDeploy({timeout:o,isBind:c,productKey:a,softAPSSIDPrefix:u,eventCallBack:l});this.currentWifiConfigHandle=null;const r=(new Date).getTime();return g.default.debug("GIZ_SDK: 配网结束时间:"+r),g.default.debug("GIZ_SDK: 配网用时:"+(r-n)),s}case 3:{this.currentWifiConfigHandle=new b.default(e,t,i,this.specialProductKeys,this.specialProductKeySecrets,this.bleHandle);const s=yield this.currentWifiConfigHandle.setDeviceOnboardingDeploy({timeout:o,isBind:c,productKey:a,softAPSSIDPrefix:u,eventCallBack:l,mac:d});this.currentWifiConfigHandle=null;const r=(new Date).getTime();return g.default.debug("GIZ_SDK: 配网结束时间:"+r),g.default.debug("GIZ_SDK: 配网用时:"+(r-n)),s}case 5:{const s=yield wx.getSystemInfoSync();if(console.log("sysInfosysInfo",s),"android"!==s.platform)return{success:!1,message:"只支持安卓"};const a=(0,r.getGlobalData)("cloudServiceInfo");console.log("cloudServiceInfo",a),this.currentWifiConfigHandle=new w.default(e,t,i,this.specialProductKeys,this.specialProductKeySecrets,(null==a?void 0:a.openAPIInfo)||"api.gizwits.com");const d=yield this.currentWifiConfigHandle.setDeviceOnboardingDeploy({timeout:o,isBind:c,softAPSSIDPrefix:u,eventCallBack:l});this.currentWifiConfigHandle=null;const h=(new Date).getTime();return g.default.debug("GIZ_SDK: 配网结束时间:"+h),g.default.debug("GIZ_SDK: 配网用时:"+(h-n)),d}}}catch(e){return g.default.error("GIZ_SDK: setDeviceOnboardingDeploy",e),e.err&&e.err.errorCode?e:{success:!1,err:_.default.GIZ_SDK_OTHERWISE}}finally{this.currentWifiConfigHandle=null}})),this.setDomain=e=>{const t=e&&e.openAPIInfo||"api.gizwits.com",i=e&&e.cozeAPIInfo||"agent.gizwitsapi.com",n=Object.assign(Object.assign({},e||{}),{openAPIInfo:t,cozeAPIInfo:i});(0,r.setGlobalData)("cloudServiceInfo",n)},this.deviceSafetyApi=({mac:e,productKey:t,isReset:i})=>n(this,void 0,void 0,(function*(){const n=(0,D.getProductInfoThroughPK)(t,this.productInfo);return n?yield(0,y.safeRegister)({productKey:t,productSecret:n.productSecret,mac:e,isReset:i,passcode:"1234567890"}):{success:!1,err:_.default.GIZ_SDK_PRODUCTKEY_NOT_IN_SPECIFY}})),this.getBindingList=()=>n(this,void 0,void 0,(function*(){const e=yield(0,y.getBindingList)();return this.deviceList=e.data||[],this.notiDeviceList(),e})),this.getDevices=()=>n(this,void 0,void 0,(function*(){return yield this.getBindingList(),{success:!0,data:this.allDevices}})),this.stopDeviceOnboardingDeploy=()=>{this.currentWifiConfigHandle&&(this.currentWifiConfigHandle.stopDeviceOnboardingDeploy(),this.currentWifiConfigHandle=null)},this.setLogLevel=e=>g.default.setLogLevel(e),this.renameDevice=(e,t)=>n(this,void 0,void 0,(function*(){return t?e.isBind?yield(0,y.editBindInfo)({did:e.did,name:t}):{success:!1,message:"device not bind"}:{success:!1,message:"please input device name"}})),this.checkAvailableUpdates=(e,t)=>n(this,void 0,void 0,(function*(){var i,n;try{const s=yield(0,o.getDeviceOtaTask)(e);if(s.success&&(null===(n=null===(i=s.data)||void 0===i?void 0:i.data)||void 0===n?void 0:n.length)>0){let e=null;return s.data.data.forEach(i=>{i.firmware_version>t&&(e=Object.assign({version:i.firmware_version,taskId:i.id,status:i.status},i))}),{success:!0,data:e}}return{success:!0,data:null}}catch(e){return{success:!1,err:e.message||"Failed to check updates"}}})),this.getDeviceVersion=e=>n(this,void 0,void 0,(function*(){var t,i;try{const n=yield(0,o.getAiDeviceVersion)({id:e});return n.success&&(null===(t=n.data)||void 0===t?void 0:t.soft_version)&&(null===(i=n.data)||void 0===i?void 0:i.hard_version)?{success:!0,data:{soft_version:n.data.soft_version,hard_version:n.data.hard_version}}:{success:!1,err:_.default.GIZ_SDK_OTHERWISE}}catch(e){return{success:!1,err:_.default.GIZ_SDK_OTHERWISE}}})),this.startUpdate=e=>n(this,void 0,void 0,(function*(){var t,i;try{const n=yield(0,o.getDeviceOtaTask)(e);if(!n.success||!(null===(i=null===(t=n.data)||void 0===t?void 0:t.data)||void 0===i?void 0:i.length))return{success:!0,data:null,message:"No available OTA tasks"};const s=n.data.data[0],r=s.id,a=parseInt(s.status,10);let c={success:!0};if(3===a&&(c=yield(0,o.confirmDeviceOtaTask)(e,r)),c.success){return yield(0,o.pushDeviceOtaTask)(e,r)}return c}catch(e){return{success:!1,err:e.message||"Failed to start update"}}})),this.removeEventListener=(e,t)=>{if(this.listenerMap[e]){const i=this.listenerMap[e].indexOf(t);if(-1!==i)return this.listenerMap[e].splice(i,1),{success:!0}}return{success:!1}},this.addEventListener=(e,t)=>n(this,void 0,void 0,(function*(){return this.listenerMap[e]||(this.listenerMap[e]=[]),-1===this.listenerMap[e].indexOf(t)&&this.listenerMap[e].push(t),{success:!0}})),this.destory=()=>{this.bleHandle.destory(),this.lanHandle.destory(),this.socketHandle.destory(),this.keepScanTimer&&clearInterval(this.keepScanTimer)},this.getOtaStatus=e=>n(this,void 0,void 0,(function*(){try{return yield(0,o.getOtaStatus)(e)}catch(e){return{success:!1,err:_.default.GIZ_SDK_OTHERWISE}}})),this.init(e)}get bleHandle(){return this._bleHandle||(this._bleHandle=new p.BleHandle({pks:this.specialProductKeys,shortPks:this.shortProductKeys,offlineThreshold:this.offlineThreshold})),this._bleHandle}get lanHandle(){return this._lanHandle||(this._lanHandle=new c.LanHandle({pks:this.specialProductKeys})),this._lanHandle}get socketHandle(){return this._gizSocket||(this._gizSocket=new v.default({appID:(0,r.getGlobalData)("appID"),token:(0,r.getGlobalData)("token"),uid:(0,r.getGlobalData)("uid")}),this._gizSocket.subscribeDeviceStatus(this.handleSocketDeviceData),this._gizSocket.subscribeBindingChanged(this.getBindingList),this._gizSocket.subscribeSocketStatus(this.handleSocketStatus)),this._gizSocket}reInit(e){this.init(e),this.lanHandle.pks=this.specialProductKeys,this.bleHandle.pks=this.specialProductKeys,this.bleHandle.offlineThreshold=e.offlineThreshold;const{appID:t,token:i,cloudServiceInfo:n={openAPIInfo:""}}=e,s=n&&n.openAPIInfo||"api.gizwits.com";t===(0,r.getGlobalData)("appID")&&i===(0,r.getGlobalData)("token")&&s===(0,r.getGlobalData)("cloudServiceInfo").openAPIInfo||(this.socketHandle.destory(),this._gizSocket=null,this.socketHandle,this.getBindingList())}get shortProductKeys(){return this.productInfo.map(e=>{var t;return null!==(t=e.shortPk)&&void 0!==t?t:""})}get specialProductKeys(){return this.productInfo.map(e=>{var t;return null!==(t=e.productKey)&&void 0!==t?t:""})}get specialProductKeySecrets(){return this.productInfo.map(e=>{var t;return null!==(t=e.productSecret)&&void 0!==t?t:""})}}C.getVersion=()=>({success:!0,data:I}),t.default=C},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TCPHandler=t.LanHandle=void 0;const r=s(i(6)),o=s(i(29)),a=s(i(65)),c=s(i(1)),u=i(3),l=s(i(13)),d=i(9),h=s(i(31));class f extends h.default{constructor({pks:e}){super(),this.connectedList=[],this.pks=[],this.scanList=[],this.deviceUDPPort=12414,this.appUDPPort=2415,this.offlineThreshold=2e4,this.isActive=!0,this.listenDevOfflineTimer=null,this.init=()=>{this.UDPSocket&&(this.UDPSocket=wx.createUDPSocket(),this.UDPSocket.bind(),this.UDPSocket.onMessage(this.onMessage),this.UDPSocket.onError(this.onError),r.default.info("Start UDP Discover"),this.startDiscover(),this.listenDevOffline(this.offlineThreshold),wx.onAppShow(this.onAppShow),wx.onAppHide(this.onAppHide))},this.onAppShow=()=>{this.isActive=!0,this.scanList.map(e=>{e.ctime=Date.now()})},this.onAppHide=()=>{this.isActive=!1},this.listenDevOffline=e=>{this.listenDevOfflineTimer=setInterval(()=>{if(!this.isActive)return;const t=(new Date).getTime(),i=this.scanList.filter(i=>t-i.ctime<e);i.length!==this.scanList.length&&(r.default.debug("remove lan device"),this.scanList=i,this.notifyDevices())},500)},this.notifyDevices=()=>{this.listenerMap.GizLanDeviceList&&this.listenerMap.GizLanDeviceList.map(e=>{e(this.scanList)})},this.notifyDeviceData=(e,t)=>{this.listenerMap.GizLanDeviceData&&this.listenerMap.GizLanDeviceData.map(i=>{i(e,t)})},this.isSameDevice=(e,t)=>e.mac===t.mac&&e.productKey===t.productKey,this.disConnectDevice=e=>{const t=this.connectedList.findIndex(t=>t.productKey===e.productKey&&t.mac===e.mac);try{return-1!==t&&(this.connectedList[t].socketHandle.destory(),this.connectedList.splice(t,1)),{success:!0}}catch(e){return{success:!1,err:e}}},this.onData=(e,t)=>{this.notifyDeviceData(e,t)},this.connectDevice=e=>n(this,void 0,void 0,(function*(){const t=this.scanList.find(t=>this.isSameDevice(e,t));if(!t)return{success:!1};if(this.connectedList.find(t=>this.isSameDevice(e,t)))return{success:!0};{const e=new p({ip:t.ip,mac:t.mac,productKey:t.productKey,onClose:this.onDeviceClose,onData:this.onData}),i=yield e.connect();return i.success?this.connectedList.push({mac:t.mac,productKey:t.productKey,socketHandle:e}):e.destory(),i}})),this.onError=e=>{r.default.warn("Discover Error",e)},this.isMatchPk=e=>0===this.pks.length||this.pks.includes(e),this.onMessage=e=>{const t=(0,d.ab2numbers)(e.message),i=new a.default(t);""!==i.mac&&this.isMatchPk(i.productKey)&&this.updateDevice(i,e.remoteInfo.address)},this.onDeviceClose=({productKey:e,mac:t})=>{const i=this.connectedList.findIndex(i=>i.productKey===e&&i.mac===t);-1!==i&&this.connectedList.splice(i,1)},this.write=(e,t)=>n(this,void 0,void 0,(function*(){r.default.debug("send data to device",e,t,this.connectedList);const i=this.connectedList.findIndex(t=>this.isSameDevice(t,e));if(-1!==i){return this.connectedList[i].socketHandle.write(t)}return{success:!1,message:"device not sub"}})),this.updateDevice=(e,t)=>{const i=this.scanList.find(t=>t.mac===e.mac);if(i)i.ctime=Date.now();else{const i={mac:e.mac,ip:t,productKey:e.productKey,did:e.did,expandData:e,name:"",isBind:!1,localName:"",connectType:"NONE",isOnline:!1,isLanOnline:!0,isBleOnline:!1,ctime:Date.now()};this.scanList.push(i),this.notifyDevices()}},this.sendBoradCast=()=>{this.UDPSocket&&(this.UDPSocket.send({address:"255.255.255.255",message:a.default.pack(),port:this.deviceUDPPort}),r.default.debug("Send UDP Discover"))},this.startDiscover=()=>{this.sendBoradCast(),this.boradcastTimer=setInterval(()=>{this.sendBoradCast()},5e3)},this.destory=()=>{this.boradcastTimer&&clearInterval(this.boradcastTimer),this.UDPSocket&&this.UDPSocket.close(),this.listenDevOfflineTimer&&clearInterval(this.listenDevOfflineTimer),wx.offAppShow(this.onAppShow),wx.offAppHide(this.onAppHide)},this.pks=e}}t.LanHandle=f;class p{constructor({ip:e,onClose:t,mac:i,productKey:s,onData:a}){this.deviceTCPPort=12416,this.ip="",this.productKey="",this.mac="",this.tcpHandler=null,this.onData=(e,t)=>{},this.onCloseListener=({mac:e,productKey:t})=>{},this.connect=()=>n(this,void 0,void 0,(function*(){return new Promise(e=>n(this,void 0,void 0,(function*(){const t=()=>{const e=o.default.pack();this.tcpHandler.write((0,u.arrayToUint8)(e)),r.default.debug("connect success try login")},i=t=>{e({success:!0,err:t})},n=e=>{};try{this.tcpHandler=wx.createTCPSocket(),this.tcpHandler.onConnect(t),this.tcpHandler.onError(i),this.tcpHandler.onMessage(n),this.tcpHandler.connect({address:this.ip,port:this.deviceTCPPort,timeout:2}),yield(0,l.default)(4e3),e({success:!1,err:null})}catch(t){r.default.error("connect lan error",t),e({success:!1,err:null})}finally{this.tcpHandler.offConnect(t),this.tcpHandler.offError(i),this.tcpHandler.offMessage(n)}})))})),this.write=e=>(this.tcpHandler.write(e),{success:!0}),this.onMessage=e=>{try{const t=(0,d.ab2hex)(e.message),i=new c.default((0,u.hexStrint2byte)(t));r.default.debug("on tcp message",i),this.onData(this.mac,t)}catch(e){}},this.onError=()=>{},this.onClose=()=>{this.onCloseListener({productKey:this.productKey,mac:this.mac})},this.initListener=()=>{this.tcpHandler.onError(this.onError),this.tcpHandler.onMessage(this.onMessage),this.tcpHandler.onClose(this.onClose)},this.destory=()=>{this.tcpHandler&&this.tcpHandler.close(),this.tcpHandler.offError(this.onError),this.tcpHandler.offMessage(this.onMessage),this.tcpHandler.offClose(this.onClose)},this.ip=e,this.mac=i,this.productKey=s,this.onData=a,this.onCloseListener=t}}t.TCPHandler=p},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(12),r=n(i(26));t.default=e=>{const t=wx.getSystemInfoSync(),i={exception:{values:[{type:"Error",value:e.stack,stacktrace:{},mechanism:{type:"generic",handled:!0}}]},level:"error",event_id:(0,s.MD5)(`${(new Date).getTime()}`).toString(),platform:"javascript",sdk:{},timestamp:(new Date).getTime()/1e3,environment:"production",contexts:{device:{},os:{name:t.platform,version:t.version},extra:{}},extra:{message:e.message}};var n={method:"POST",headers:{Connection:"keep-alive","User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2206090 MicroMessenger/8.0.5 Language/zh_CN webview/","content-type":"application/json",Accept:"*/*","Sec-Fetch-Site":"cross-site","Sec-Fetch-Mode":"cors","Sec-Fetch-Dest":"empty",Referer:"https://servicewechat.com/wx6dc8e50cb68bc121/devtools/page-frame.html",Cookie:"__org="},data:JSON.stringify(i)};(0,r.default)("https://appmonitor.gizwits.com/api/21/store/?sentry_key=0b2de791abf548a1bedf0b0ebdd8ecc7&sentry_version=7",n)}},function(e,t){},function(e,t,i){var n;e.exports=(n=i(0),function(){if("function"==typeof ArrayBuffer){var e=n.lib.WordArray,t=e.init;(e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var i=e.byteLength,n=[],s=0;s<i;s++)n[s>>>2]|=e[s]<<24-s%4*8;t.call(this,n,i)}else t.apply(this,arguments)}).prototype=e}}(),n.lib.WordArray)},function(e,t,i){var n;e.exports=(n=i(0),function(){var e=n,t=e.lib.WordArray,i=e.enc;function s(e){return e<<8&4278255360|e>>>8&16711935}i.Utf16=i.Utf16BE={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],s=0;s<i;s+=2){var r=t[s>>>2]>>>16-s%4*8&65535;n.push(String.fromCharCode(r))}return n.join("")},parse:function(e){for(var i=e.length,n=[],s=0;s<i;s++)n[s>>>1]|=e.charCodeAt(s)<<16-s%2*16;return t.create(n,2*i)}},i.Utf16LE={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],r=0;r<i;r+=2){var o=s(t[r>>>2]>>>16-r%4*8&65535);n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var i=e.length,n=[],r=0;r<i;r++)n[r>>>1]|=s(e.charCodeAt(r)<<16-r%2*16);return t.create(n,2*i)}}}(),n.enc.Utf16)},function(e,t,i){var n,s,r;e.exports=(r=i(0),s=(n=r).lib.WordArray,n.enc.Base64url={stringify:function(e,t=!0){var i=e.words,n=e.sigBytes,s=t?this._safe_map:this._map;e.clamp();for(var r=[],o=0;o<n;o+=3)for(var a=(i[o>>>2]>>>24-o%4*8&255)<<16|(i[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|i[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c<n;c++)r.push(s.charAt(a>>>6*(3-c)&63));var u=s.charAt(64);if(u)for(;r.length%4;)r.push(u);return r.join("")},parse:function(e,t=!0){var i=e.length,n=t?this._safe_map:this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var o=0;o<n.length;o++)r[n.charCodeAt(o)]=o}var a=n.charAt(64);if(a){var c=e.indexOf(a);-1!==c&&(i=c)}return function(e,t,i){for(var n=[],r=0,o=0;o<t;o++)if(o%4){var a=i[e.charCodeAt(o-1)]<<o%4*2,c=i[e.charCodeAt(o)]>>>6-o%4*2,u=a|c;n[r>>>2]|=u<<24-r%4*8,r++}return s.create(n,r)}(e,i,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},r.enc.Base64url)},function(e,t,i){var n,s,r,o,a,c;e.exports=(c=i(0),i(27),s=(n=c).lib.WordArray,r=n.algo,o=r.SHA256,a=r.SHA224=o.extend({_doReset:function(){this._hash=new s.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=o._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=o._createHelper(a),n.HmacSHA224=o._createHmacHelper(a),c.SHA224)},function(e,t,i){var n,s,r,o,a,c,u,l;e.exports=(l=i(0),i(14),i(28),s=(n=l).x64,r=s.Word,o=s.WordArray,a=n.algo,c=a.SHA512,u=a.SHA384=c.extend({_doReset:function(){this._hash=new o.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var e=c._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=c._createHelper(u),n.HmacSHA384=c._createHmacHelper(u),l.SHA384)},function(e,t,i){var n;e.exports=(n=i(0),i(14),function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.x64.Word,a=t.algo,c=[],u=[],l=[];!function(){for(var e=1,t=0,i=0;i<24;i++){c[e+5*t]=(i+1)*(i+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)u[e+5*t]=t+(2*e+3*t)%5*5;for(var s=1,r=0;r<24;r++){for(var a=0,d=0,h=0;h<7;h++){if(1&s){var f=(1<<h)-1;f<32?d^=1<<f:a^=1<<f-32}128&s?s=s<<1^113:s<<=1}l[r]=o.create(a,d)}}();var d=[];!function(){for(var e=0;e<25;e++)d[e]=o.create()}();var h=a.SHA3=r.extend({cfg:r.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new o.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var i=this._state,n=this.blockSize/2,s=0;s<n;s++){var r=e[t+2*s],o=e[t+2*s+1];r=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),(B=i[s]).high^=o,B.low^=r}for(var a=0;a<24;a++){for(var h=0;h<5;h++){for(var f=0,p=0,v=0;v<5;v++)f^=(B=i[h+5*v]).high,p^=B.low;var g=d[h];g.high=f,g.low=p}for(h=0;h<5;h++){var _=d[(h+4)%5],y=d[(h+1)%5],m=y.high,D=y.low;for(f=_.high^(m<<1|D>>>31),p=_.low^(D<<1|m>>>31),v=0;v<5;v++)(B=i[h+5*v]).high^=f,B.low^=p}for(var S=1;S<25;S++){var b=(B=i[S]).high,w=B.low,I=c[S];I<32?(f=b<<I|w>>>32-I,p=w<<I|b>>>32-I):(f=w<<I-32|b>>>64-I,p=b<<I-32|w>>>64-I);var C=d[u[S]];C.high=f,C.low=p}var E=d[0],A=i[0];for(E.high=A.high,E.low=A.low,h=0;h<5;h++)for(v=0;v<5;v++){var B=i[S=h+5*v],T=d[S],k=d[(h+1)%5+5*v],O=d[(h+2)%5+5*v];B.high=T.high^~k.high&O.high,B.low=T.low^~k.low&O.low}B=i[0];var x=l[a];B.high^=x.high,B.low^=x.low}},_doFinalize:function(){var t=this._data,i=t.words,n=(this._nDataBytes,8*t.sigBytes),r=32*this.blockSize;i[n>>>5]|=1<<24-n%32,i[(e.ceil((n+1)/r)*r>>>5)-1]|=128,t.sigBytes=4*i.length,this._process();for(var o=this._state,a=this.cfg.outputLength/8,c=a/8,u=[],l=0;l<c;l++){var d=o[l],h=d.high,f=d.low;h=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8),f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),u.push(f),u.push(h)}return new s.init(u,a)},clone:function(){for(var e=r.clone.call(this),t=e._state=this._state.slice(0),i=0;i<25;i++)t[i]=t[i].clone();return e}});t.SHA3=r._createHelper(h),t.HmacSHA3=r._createHmacHelper(h)}(Math),n.SHA3)},function(e,t,i){var n;e.exports=(n=i(0),
1
+ module.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(n,s,function(t){return e[t]}.bind(null,s));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=35)}([function(e,t,i){(function(t){var n;e.exports=(n=n||function(e,n){var s;if("undefined"!=typeof window&&window.crypto&&(s=window.crypto),"undefined"!=typeof self&&self.crypto&&(s=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(s=globalThis.crypto),!s&&"undefined"!=typeof window&&window.msCrypto&&(s=window.msCrypto),!s&&void 0!==t&&t.crypto&&(s=t.crypto),!s)try{s=i(40)}catch(e){}var r=function(){if(s){if("function"==typeof s.getRandomValues)try{return s.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof s.randomBytes)try{return s.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function e(){}return function(t){var i;return e.prototype=t,i=new e,e.prototype=null,i}}(),a={},c=a.lib={},u=c.Base={extend:function(e){var t=o(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},l=c.WordArray=u.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,i=e.words,n=this.sigBytes,s=e.sigBytes;if(this.clamp(),n%4)for(var r=0;r<s;r++){var o=i[r>>>2]>>>24-r%4*8&255;t[n+r>>>2]|=o<<24-(n+r)%4*8}else for(var a=0;a<s;a+=4)t[n+a>>>2]=i[a>>>2];return this.sigBytes+=s,this},clamp:function(){var t=this.words,i=this.sigBytes;t[i>>>2]&=4294967295<<32-i%4*8,t.length=e.ceil(i/4)},clone:function(){var e=u.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],i=0;i<e;i+=4)t.push(r());return new l.init(t,e)}}),d=a.enc={},h=d.Hex={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],s=0;s<i;s++){var r=t[s>>>2]>>>24-s%4*8&255;n.push((r>>>4).toString(16)),n.push((15&r).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,i=[],n=0;n<t;n+=2)i[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new l.init(i,t/2)}},f=d.Latin1={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],s=0;s<i;s++){var r=t[s>>>2]>>>24-s%4*8&255;n.push(String.fromCharCode(r))}return n.join("")},parse:function(e){for(var t=e.length,i=[],n=0;n<t;n++)i[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new l.init(i,t)}},p=d.Utf8={stringify:function(e){try{return decodeURIComponent(escape(f.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return f.parse(unescape(encodeURIComponent(e)))}},v=c.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var i,n=this._data,s=n.words,r=n.sigBytes,o=this.blockSize,a=r/(4*o),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,u=e.min(4*c,r);if(c){for(var d=0;d<c;d+=o)this._doProcessBlock(s,d);i=s.splice(0,c),n.sigBytes-=u}return new l.init(i,u)},clone:function(){var e=u.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),g=(c.Hasher=v.extend({cfg:u.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){v.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,i){return new e.init(i).finalize(t)}},_createHmacHelper:function(e){return function(t,i){return new g.HMAC.init(e,i).finalize(t)}}}),a.algo={});return a}(Math),n)}).call(this,i(15))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(e){if(this.msgId=0,this.payloadVer=0,this.cmd=0,this.seq=0,this.frames=1,this.frameLen=0,this.payload=new Uint8Array,this.raw=new Uint8Array,!e)return;let t;if(t=e instanceof ArrayBuffer||Array.isArray(e)?new Uint8Array(e):e,this.raw=t,t.length<4)throw new Error("BLE packet too short");const i=t[0];this.msgId=31&i,this.payloadVer=i>>5&3,this.cmd=t[1];const n=t[2];this.seq=15&n,this.frames=1+(n>>4&15),this.frameLen=t[3],t.length>4?this.payload=t.slice(4):this.payload=new Uint8Array}isSingleFrame(){return 1===this.frames}getHeaderBytes(){return this.raw.slice(0,4)}}},function(e,t,i){var n,s,r,o,a,c,u,l,d,h,f,p,v,g,_,y,m,D,S;e.exports=(n=i(0),i(8),void(n.lib.Cipher||(s=n,r=s.lib,o=r.Base,a=r.WordArray,c=r.BufferedBlockAlgorithm,u=s.enc,u.Utf8,l=u.Base64,d=s.algo.EvpKDF,h=r.Cipher=c.extend({cfg:o.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,i){this.cfg=this.cfg.extend(i),this._xformMode=e,this._key=t,this.reset()},reset:function(){c.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?S:m}return function(t){return{encrypt:function(i,n,s){return e(n).encrypt(t,i,n,s)},decrypt:function(i,n,s){return e(n).decrypt(t,i,n,s)}}}}()}),r.StreamCipher=h.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),f=s.mode={},p=r.BlockCipherMode=o.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),v=f.CBC=function(){var e=p.extend();function t(e,t,i){var n,s=this._iv;s?(n=s,this._iv=void 0):n=this._prevBlock;for(var r=0;r<i;r++)e[t+r]^=n[r]}return e.Encryptor=e.extend({processBlock:function(e,i){var n=this._cipher,s=n.blockSize;t.call(this,e,i,s),n.encryptBlock(e,i),this._prevBlock=e.slice(i,i+s)}}),e.Decryptor=e.extend({processBlock:function(e,i){var n=this._cipher,s=n.blockSize,r=e.slice(i,i+s);n.decryptBlock(e,i),t.call(this,e,i,s),this._prevBlock=r}}),e}(),g=(s.pad={}).Pkcs7={pad:function(e,t){for(var i=4*t,n=i-e.sigBytes%i,s=n<<24|n<<16|n<<8|n,r=[],o=0;o<n;o+=4)r.push(s);var c=a.create(r,n);e.concat(c)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.BlockCipher=h.extend({cfg:h.cfg.extend({mode:v,padding:g}),reset:function(){var e;h.reset.call(this);var t=this.cfg,i=t.iv,n=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=n.createEncryptor:(e=n.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,i&&i.words):(this._mode=e.call(n,this,i&&i.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4}),_=r.CipherParams=o.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=(s.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,i=e.salt;return(i?a.create([1398893684,1701076831]).concat(i).concat(t):t).toString(l)},parse:function(e){var t,i=l.parse(e),n=i.words;return 1398893684==n[0]&&1701076831==n[1]&&(t=a.create(n.slice(2,4)),n.splice(0,4),i.sigBytes-=16),_.create({ciphertext:i,salt:t})}},m=r.SerializableCipher=o.extend({cfg:o.extend({format:y}),encrypt:function(e,t,i,n){n=this.cfg.extend(n);var s=e.createEncryptor(i,n),r=s.finalize(t),o=s.cfg;return _.create({ciphertext:r,key:i,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,i,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(i,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),D=(s.kdf={}).OpenSSL={execute:function(e,t,i,n){n||(n=a.random(8));var s=d.create({keySize:t+i}).compute(e,n),r=a.create(s.words.slice(t),4*i);return s.sigBytes=4*t,_.create({key:s,iv:r,salt:n})}},S=r.PasswordBasedCipher=m.extend({cfg:m.cfg.extend({kdf:D}),encrypt:function(e,t,i,n){var s=(n=this.cfg.extend(n)).kdf.execute(i,e.keySize,e.ivSize);n.iv=s.iv;var r=m.encrypt.call(this,e,t,s.key,n);return r.mixIn(s),r},decrypt:function(e,t,i,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var s=n.kdf.execute(i,e.keySize,e.ivSize,t.salt);return n.iv=s.iv,m.decrypt.call(this,e,t,s.key,n)}}))))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bytesToHexString=t.bytesToInt=t.arrayToUint8=t.formatCode=t.formatCodesFromStr=t.hexStrint2byte=t.string2Bytes=t.fillString=t.arrayToString=t.getProtocolLen=t.checkHeader=t.arrayToASCII=t.ascii2Array=t.completeBlock=void 0;t.checkHeader=e=>{let t=0;return 0===e[0]&&0===e[1]&&0===e[2]&&3===e[3]&&(t=4,4)};t.completeBlock=e=>{const t=n(e,8*Math.ceil(e.length/8)),i=[];for(let e=0;e<t.length;e+=8)i.push(parseInt(t.substring(e,e+8),2));return i};t.getProtocolLen=e=>{let t=0;for(;t<e.length&&"1"===n(e[t].toString(2),8)[0];t++);return t+1},t.arrayToString=function(e){let t="";return e.map(e=>(t+=n(e.toString(16),2),null)),t},t.ascii2Array=function(e){const t=[];for(let i=0;i<e.length;i++)t.push(e.charCodeAt(i));return t},t.arrayToASCII=function(e){let t="";return e.map(e=>(t+=String.fromCharCode(e),null)),t};const n=(e,t,i=!1)=>{const n=t-e.length,s=new Array(n).fill(0).join("");return i?e+=s:e=s+e,e};t.fillString=n;t.bytesToInt=e=>{let t=0;for(let i=0;i<e.length;i++)t=t<<8|e[i];return t};t.bytesToHexString=e=>Array.from(e,e=>("0"+e.toString(16)).slice(-2)).join("");t.string2Bytes=e=>{const t=[];for(let i=0;i<e.length;i++)t.push(e.charCodeAt(i));return t};t.hexStrint2byte=e=>{e.length%2!=0&&(e=`0${e}`);const t=Math.ceil(e.length/2),i=[];for(let n=0;n<t;n++){const t=2*n,s=t+2,r=e.substring(t,s);i.push(parseInt(r,16))}return i};const s=e=>{const t=encodeURI(e);return-1!==t.indexOf("%")&&"%"!==e?t.split("%").filter(e=>""!==e).map(e=>parseInt(e,16)):[t.charCodeAt(0)]};t.formatCode=s;t.formatCodesFromStr=e=>{let t=0,i=[];for(let n=0;n<e.length;n++){const r=s(e[n]);t+=r.length,i=i.concat(r)}return[i,t]};t.arrayToUint8=e=>{const t=new ArrayBuffer(e.length),i=new Uint8Array(t);for(let n=0;n<t.byteLength;n++)i[n]=e[n];return i}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={GIZ_OPENAPI_DEVICE_NOT_BOUND:{errorCode:9017,errorMessage:"not bind"},GIZ_SDK_HTTP_REQUEST_FAILED:{errorCode:8099,errorMessage:"网络请求失败"},GIZ_SDK_DEVICE_NO_RESPONSE:{errorCode:8030,errorMessage:"设备未响应"},GIZ_SDK_SDK_NOT_INITIALIZED:{errorCode:8300,errorMessage:"not init"},CONFIG_TIME_OUT:{errorCode:8023,errorMessage:"Config Timeout"},WECHAT_ERROR:{errorCode:1e4,errorMessage:"wechat error"},GIZ_SDK_ONBOARDING_STOPPED:{errorCode:8318,errorMessage:"配网中断"},GIZ_SDK_DEVICE_CONFIG_IS_RUNNING:{errorCode:8022,errorMessage:"配置正在进行中"},GIZ_OPENAPI_TOKEN_INVALID:{errorCode:9004,errorMessage:"token 失效"},GIZ_SDK_BIND_DEVICE_FAILED:{errorCode:8039,errorMessage:"设备绑定失败"},GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON:{errorCode:8281,errorMessage:"蓝牙未启用"},GIZ_SDK_OTHERWISE:{errorCode:8100,errorMessage:""},GIZ_SDK_DEVICE_NOT_SUBSCRIBED:{errorCode:8029,errorMessage:"设备还未订阅"},GIZ_SDK_PRODUCTKEY_NOT_IN_SPECIFY:{errorCode:8250,errorMessage:"产品类型不在指定范围内"},GIZ_SDK_LOG_LEVEL_INVALID:{errorCode:8009,errorMessage:"产品类型不在指定范围内"},GIZ_SDK_OTA_DEVICE_NOT_SUPPORT:{errorCode:8360,errorMessage:"设备不支持手机OTA升级"},GIZ_SDK_OTA_DEVICE_BUSY_IN_UPGRADE:{errorCode:8354,errorMessage:"设备忙,固件正在升级"},GIZ_SDK_OTA_FIRMWARE_DOWNLOAD_FAILED:{errorCode:8353,errorMessage:"固件下载失败"},GIZ_SDK_OTA_FIRMWARE_TYPE_NOT_MATCH:{errorCode:8361,errorMessage:"蓝牙OTA设备返回的固件类型与当前要升级的固件类型不匹配"},GIZ_SDK_BLE_DEVICE_NOT_FOUND:{errorCode:10001,errorMessage:"蓝牙设备未找到"},GIZ_SDK_BLE_DEVICE_SEND_FAILED:{errorCode:10002,errorMessage:"蓝牙配网包发送失败"}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getGlobalData=t.setGlobalData=void 0;const n={};t.setGlobalData=function(e,t){n[e]=t},t.getGlobalData=function(e){return n[e]}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(4)),r=n(i(39));t.default=new class{constructor(){this.logMap=[{id:"debug"},{id:"info"},{id:"warn"},{id:"error"}],this.console=console,this.debug=(...e)=>{this.console.debug(...e)},this.info=(...e)=>{this.console.info(...e)},this.log=(...e)=>{this.console.log(...e)},this.warn=(...e)=>{this.console.warn(...e)},this.error=(e,t)=>{this.console.error(e,t),(0,r.default)(t)},this.setLogLevel=e=>{const t=this.logMap.findIndex(t=>t.id===e);return-1!==t?(this.console=Object.assign({},console),this.logMap.map((e,i)=>{i<t&&(this.console[e.id]=()=>{})}),{success:!0,err:null}):{success:!1,err:s.default.GIZ_SDK_LOG_LEVEL_INVALID}}}}},function(e,t,i){"use strict";(function(e){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.statisticRequest=t.cozeApiRequest=void 0;const r=s(i(4)),o=i(5),a=s(i(26));t.cozeApiRequest=function(e,t){return n(this,void 0,void 0,(function*(){const i=Object.assign({},t),n=(0,o.getGlobalData)("cloudServiceInfo").cozeAPIInfo,s={"Content-Type":"application/json","X-Gizwits-Application-Id":(0,o.getGlobalData)("appID")},r=(0,o.getGlobalData)("token");r&&(s["X-Gizwits-User-Token"]=r),i.header=Object.assign(Object.assign({},s),t.headers),delete i.headers,console.log(`coze request ${n+e}`,s,e);const c=yield(0,a.default)("https://"+n+e,i);return c.statusCode>=200&&c.statusCode<300?{success:!0,data:c.data}:{success:!1,err:{errorCode:c.data.error_code,errorMessage:c.data.error_message}}}))};t.statisticRequest=function(t,i,s=!0){return n(this,void 0,void 0,(function*(){try{const n=i.body.appInfo.appID,r=Object.assign(Object.assign({},i),{data:i.body}),c={"Content-Type":"application/json","X-Gizwits-Application-Id":n};s&&(c["X-Gizwits-User-token"]=e.token),r.headers=Object.assign(Object.assign({},c),i.headers);const u=`https://${(0,o.getGlobalData)("cloudServiceInfo").openAPIInfo}/`;console.log("===statisticRequest===",u+t,r);const l=yield(0,a.default)(u+t,r);return(null==l?void 0:l.statusCode)>=200&&(null==l?void 0:l.statusCode)<300?{success:!0,data:null==l?void 0:l.data}:{success:!1,err:{errorCode:(null==l?void 0:l.data).error_code,errorMessage:(null==l?void 0:l.data).error_message}}}catch(e){return{success:!1}}}))},t.default=(e,t,i=!0)=>n(void 0,void 0,void 0,(function*(){const n=Object.assign({},t),s={"Content-Type":"application/json","X-Gizwits-Application-Id":(0,o.getGlobalData)("appID")};i&&(s["X-Gizwits-User-token"]=(0,o.getGlobalData)("token")),n.header=Object.assign(Object.assign({},s),t.headers),delete n.headers;const c=(0,o.getGlobalData)("cloudServiceInfo").openAPIInfo,u=yield(0,a.default)("https://"+c+e,n);if(u.statusCode>=200&&u.statusCode<300)return{success:!0,data:u.data};let l={success:!1,err:{errorCode:r.default.GIZ_SDK_HTTP_REQUEST_FAILED.errorCode,errorMessage:""}};try{l={success:!1,err:{errorCode:u.data.error_code,errorMessage:u.data.error_message}}}catch(e){}return l}))}).call(this,i(15))},function(e,t,i){var n,s,r,o,a,c,u,l;e.exports=(l=i(0),i(17),i(18),s=(n=l).lib,r=s.Base,o=s.WordArray,a=n.algo,c=a.MD5,u=a.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:c,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var i,n=this.cfg,s=n.hasher.create(),r=o.create(),a=r.words,c=n.keySize,u=n.iterations;a.length<c;){i&&s.update(i),i=s.update(e).finalize(t),s.reset();for(var l=1;l<u;l++)i=s.finalize(i),s.reset();r.concat(i)}return r.sigBytes=4*c,r}}),n.EvpKDF=function(e,t,i){return u.create(i).compute(e,t)},l.EvpKDF)},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getPayloadAsUtf8String=t.getShortProductKey=t.parseAdvData=t.createUUID32=t.arrayBufferToWordArray=t.convertToUuids=t.convertToServiceUuids=t.encrypt=t.ab2numbers=t.parseBroadcastData=t.hex2ab=t.mergeObject=t.getProductInfoThroughPK=t.getFirstConnectType=t.splitIntoChunks=t.BTDevice2GDevice=t.merageLanLocalDevices=t.merageBleLocalDevices=t.getDeviceId=t.isSameDevice=t.advertisData2PkAndMac=t.numberArray2Uint8Array=t.str2Buf=t.isWXDevicesResult=t.unionBy=t.wrapErrorInfo=t.isError=t.compareWXSDKVersion=t.ab2hex=void 0;const s=i(0),r=i(19),o=n(i(6)),a=i(3);t.ab2hex=function(e){return Array.prototype.map.call(new Uint8Array(e),(function(e){return("00"+e.toString(16)).slice(-2)})).join("")},t.compareWXSDKVersion=function(e,t){const i=e.split("."),n=t.split("."),s=Math.max(e.length,t.length);for(;i.length<s;)i.push("0");for(;n.length<s;)n.push("0");for(let i=0;i<s;i++){const n=parseInt(e[i]),s=parseInt(t[i]);if(n>s)return 1;if(n<s)return-1}return 0};t.isError=e=>null!=e&&"symbol"==typeof e.errorCode;t.wrapErrorInfo=e=>({errorCode:e,errorMessage:e});t.unionBy=(e,t)=>e.reduce((e,i)=>{const n=i[t];return e.some(e=>e[t]===n)||e.push(i),e},[]),t.isWXDevicesResult=function(e){return e.success&&"[object Array]"===Object.prototype.toString.call(e.bleDevices)},t.str2Buf=function(e){var t=e.length,i=new ArrayBuffer(t+2),n=new DataView(i);for(let i=0;i<t;i++)n.setUint8(i,parseInt(e[i],16));return i};t.numberArray2Uint8Array=e=>{const t=new ArrayBuffer(e.length),i=new Uint8Array(t);for(let n=0;n<t.byteLength;n++)i[n]=e[n];return i};t.advertisData2PkAndMac=(e,i,n)=>(0,t.parseAdvData)(u(e),i,n);t.isSameDevice=(e,t)=>e.mac===t.mac&&e.productKey===t.productKey;t.getDeviceId=e=>`${e.mac}${e.productKey}`;t.merageBleLocalDevices=(e,i)=>(e.map(e=>{e.isBleOnline=!1,e.bleWorkStatus=0}),i.map(i=>{const n=e.find(e=>(0,t.isSameDevice)(e,i));n?(n.isBleOnline=!0,n.bleDeviceID=i.bleDeviceID,n.connectType=i.connectType,n.bleWorkStatus=i.bleWorkStatus):e.push(i)}),e);t.merageLanLocalDevices=(e,i)=>(e.map(e=>{e.isLanOnline=!1}),i.map(i=>{const n=e.find(e=>(0,t.isSameDevice)(e,i));n?n.isLanOnline=!0:e.push(i)}),e);t.BTDevice2GDevice=(e,i,n)=>{let s={productKey:"",mac:"",bleWorkStatus:0},r={did:"",productKey:"",mac:"",bleWorkStatus:0,connectType:"NONE",isBleOnline:!0,isLanOnline:!1,isOnline:!1,name:e.localName,localName:e.localName,isBind:!1,bleDeviceID:e.deviceId,ctime:(new Date).getTime()};switch(e.communicationType){case"BLE_BROADCAST":try{o.default.log("parse BLE_BROADCAST");const t=c(u(e.advertisData));s.productKey=t.data.join(""),s.mac=t.mac,r.connectType="BLE_BROADCAST"}catch(e){}break;default:s=(0,t.advertisData2PkAndMac)(e.advertisData,i,n)}return r=Object.assign(Object.assign({},r),s),r};t.splitIntoChunks=(e,t)=>{const i=[];for(let n=0;n<e.length;n+=t)i.push(e.slice(n,n+t));return i};t.getFirstConnectType=(e,t)=>{if(!t)return e.isLanOnline?"LAN":e.isBleOnline?"BLE":"WAN";if("WAN"===t)return"WAN";switch(t){case"BLE":return e.isBleOnline?"BLE":"NONE";case"LAN":return e.isLanOnline?"LAN":"NONE"}return"WAN"};t.getProductInfoThroughPK=(e,t)=>t.find(t=>t.productKey===e);function c(e){if(25!=(e=e.slice(0,25)).length)throw new Error("数据不合法");const t=`${l(e[0])}${l(e[1])}`;if(e[2]!==(255&e.slice(3).reduce((e,t)=>e+t,0)))throw new Error("校验和不合法");const i=l(e[3]),n=e.slice(5,5+e[4]).map(e=>l(e));return{mac:t,cmd:parseInt(i,16),data:n}}function u(e){return Array.prototype.map.call(new Uint8Array(e),(function(e){return e}))}function l(e,t=2){return`${new Array(t).fill(0).join("")}${e.toString(16)}`.slice(-t)}t.mergeObject=(e,t)=>{for(let i in t)null!=t[i]&&""!==t[i]&&(e[i]=t[i]);return e},t.hex2ab=function(e){const t=[];for(let n=0;n<e.length;n+=2){var i=e.slice(n,n+2);t.push(parseInt(i,16))}return new Uint8Array(t)},t.parseBroadcastData=c,t.ab2numbers=u;let d=0;function h(e,t){let i=1,n=t;return e.map(e=>{const t=65535&(e^n);return n=i-t&65535,i<<=1,l(t,4)})}t.encrypt=h;function f(e,t,i){if(i.length>22)throw new Error("最大长度为22");const n=[...i,...new Array(22-i.length).fill(0)],s=255&i.reduce((e,t)=>e+t,0),r=(t>>4<<12)+(s>>4<<8)+((15&t)<<4)+(15&s),a=Array.from({length:11},(e,t)=>(n[2*t]<<8)+n[2*t+1]);return o.default.log("明文",l(e,4),l((t<<8)+s,4),a.map(e=>l(e,4))),[l(e,4),l((t<<8)+s,4),...h(a,r)].map(e=>`${e.slice(2)}${e.slice(0,2)}`)}t.convertToServiceUuids=({len:e=null,data:i=null,index:n=0,mac:s,cmd:r=147})=>{if(i&&i.length>20)throw new Error("data 最大 20");const o=null==e?Math.round(18*Math.random())+1:e,a=null==i?Array.from({length:o},e=>Math.round(255*Math.random())):i,c=[r,o,...a],u=f(s,(()=>{const e=d;return d=d+1&255,e})(),c);return[...new Set(u)].length!==u.length?(0,t.convertToServiceUuids)({len:o,data:a,index:n++,mac:s}):u},t.convertToUuids=f,t.arrayBufferToWordArray=function(e){for(var t=[],i=new Uint8Array(e),n=0;n<i.length;n+=4){var r=i[n]<<24|i[n+1]<<16|i[n+2]<<8|i[n+3];t.push(r)}return s.lib.WordArray.create(t,i.length)},t.createUUID32=function(){let e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){let i=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?i:3&i|8).toString(16)}))};t.parseAdvData=(e,t,i)=>{try{if(e.length<14)return null;e[0],e[1];const n=15&e[2],s=(240&e[2])>>4,r=7&e[3],o=(8&e[3])>>3!=0,c=(16&e[3])>>4!=0,u=(32&e[3])>>5,l=(64&e[3])>>6!=0,d=[e[4],e[5],e[6],e[7]],h=e.slice(8,14).map(e=>e.toString(16).padStart(2,"0")).join("").toLowerCase(),f=(0,a.bytesToHexString)(d);let p=i.findIndex(e=>e.toLowerCase().includes(f)),v="";return p>=0&&(v=t[p]),{productKey:v,mac:h,protocolVersion:n,blueToothType:s,blueToothVersion:r,supportOTA:o,requiresAuthentication:c,bleWorkStatus:l?0:1,authenticationMethod:u}}catch(e){return console.error("Parse advertisement data failed:",e),null}},t.getShortProductKey=function(e){const t=(0,a.ascii2Array)(e);return(0,r.crc32)(t).toString(16).padStart(8,"0")},t.getPayloadAsUtf8String=function(e){let t="";for(let i=0;i<e.length;i++)t+="%"+("0"+e[i].toString(16)).slice(-2);return decodeURIComponent(t)}},function(e,t,i){var n,s,r;e.exports=(r=i(0),s=(n=r).lib.WordArray,n.enc.Base64={stringify:function(e){var t=e.words,i=e.sigBytes,n=this._map;e.clamp();for(var s=[],r=0;r<i;r+=3)for(var o=(t[r>>>2]>>>24-r%4*8&255)<<16|(t[r+1>>>2]>>>24-(r+1)%4*8&255)<<8|t[r+2>>>2]>>>24-(r+2)%4*8&255,a=0;a<4&&r+.75*a<i;a++)s.push(n.charAt(o>>>6*(3-a)&63));var c=n.charAt(64);if(c)for(;s.length%4;)s.push(c);return s.join("")},parse:function(e){var t=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var r=0;r<i.length;r++)n[i.charCodeAt(r)]=r}var o=i.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return function(e,t,i){for(var n=[],r=0,o=0;o<t;o++)if(o%4){var a=i[e.charCodeAt(o-1)]<<o%4*2,c=i[e.charCodeAt(o)]>>>6-o%4*2,u=a|c;n[r>>>2]|=u<<24-r%4*8,r++}return s.create(n,r)}(e,t,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},r.enc.Base64)},function(e,t,i){var n;e.exports=(n=i(0),function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var c=o.MD5=r.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var i=0;i<16;i++){var n=t+i,s=e[n];e[n]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}var r=this._hash.words,o=e[t+0],c=e[t+1],f=e[t+2],p=e[t+3],v=e[t+4],g=e[t+5],_=e[t+6],y=e[t+7],m=e[t+8],D=e[t+9],S=e[t+10],b=e[t+11],w=e[t+12],I=e[t+13],C=e[t+14],E=e[t+15],A=r[0],B=r[1],T=r[2],k=r[3];A=u(A,B,T,k,o,7,a[0]),k=u(k,A,B,T,c,12,a[1]),T=u(T,k,A,B,f,17,a[2]),B=u(B,T,k,A,p,22,a[3]),A=u(A,B,T,k,v,7,a[4]),k=u(k,A,B,T,g,12,a[5]),T=u(T,k,A,B,_,17,a[6]),B=u(B,T,k,A,y,22,a[7]),A=u(A,B,T,k,m,7,a[8]),k=u(k,A,B,T,D,12,a[9]),T=u(T,k,A,B,S,17,a[10]),B=u(B,T,k,A,b,22,a[11]),A=u(A,B,T,k,w,7,a[12]),k=u(k,A,B,T,I,12,a[13]),T=u(T,k,A,B,C,17,a[14]),A=l(A,B=u(B,T,k,A,E,22,a[15]),T,k,c,5,a[16]),k=l(k,A,B,T,_,9,a[17]),T=l(T,k,A,B,b,14,a[18]),B=l(B,T,k,A,o,20,a[19]),A=l(A,B,T,k,g,5,a[20]),k=l(k,A,B,T,S,9,a[21]),T=l(T,k,A,B,E,14,a[22]),B=l(B,T,k,A,v,20,a[23]),A=l(A,B,T,k,D,5,a[24]),k=l(k,A,B,T,C,9,a[25]),T=l(T,k,A,B,p,14,a[26]),B=l(B,T,k,A,m,20,a[27]),A=l(A,B,T,k,I,5,a[28]),k=l(k,A,B,T,f,9,a[29]),T=l(T,k,A,B,y,14,a[30]),A=d(A,B=l(B,T,k,A,w,20,a[31]),T,k,g,4,a[32]),k=d(k,A,B,T,m,11,a[33]),T=d(T,k,A,B,b,16,a[34]),B=d(B,T,k,A,C,23,a[35]),A=d(A,B,T,k,c,4,a[36]),k=d(k,A,B,T,v,11,a[37]),T=d(T,k,A,B,y,16,a[38]),B=d(B,T,k,A,S,23,a[39]),A=d(A,B,T,k,I,4,a[40]),k=d(k,A,B,T,o,11,a[41]),T=d(T,k,A,B,p,16,a[42]),B=d(B,T,k,A,_,23,a[43]),A=d(A,B,T,k,D,4,a[44]),k=d(k,A,B,T,w,11,a[45]),T=d(T,k,A,B,E,16,a[46]),A=h(A,B=d(B,T,k,A,f,23,a[47]),T,k,o,6,a[48]),k=h(k,A,B,T,y,10,a[49]),T=h(T,k,A,B,C,15,a[50]),B=h(B,T,k,A,g,21,a[51]),A=h(A,B,T,k,w,6,a[52]),k=h(k,A,B,T,p,10,a[53]),T=h(T,k,A,B,S,15,a[54]),B=h(B,T,k,A,c,21,a[55]),A=h(A,B,T,k,m,6,a[56]),k=h(k,A,B,T,E,10,a[57]),T=h(T,k,A,B,_,15,a[58]),B=h(B,T,k,A,I,21,a[59]),A=h(A,B,T,k,v,6,a[60]),k=h(k,A,B,T,b,10,a[61]),T=h(T,k,A,B,f,15,a[62]),B=h(B,T,k,A,D,21,a[63]),r[0]=r[0]+A|0,r[1]=r[1]+B|0,r[2]=r[2]+T|0,r[3]=r[3]+k|0},_doFinalize:function(){var t=this._data,i=t.words,n=8*this._nDataBytes,s=8*t.sigBytes;i[s>>>5]|=128<<24-s%32;var r=e.floor(n/4294967296),o=n;i[15+(s+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),i[14+(s+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(i.length+1),this._process();for(var a=this._hash,c=a.words,u=0;u<4;u++){var l=c[u];c[u]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,i,n,s,r,o){var a=e+(t&i|~t&n)+s+o;return(a<<r|a>>>32-r)+t}function l(e,t,i,n,s,r,o){var a=e+(t&n|i&~n)+s+o;return(a<<r|a>>>32-r)+t}function d(e,t,i,n,s,r,o){var a=e+(t^i^n)+s+o;return(a<<r|a>>>32-r)+t}function h(e,t,i,n,s,r,o){var a=e+(i^(t|~n))+s+o;return(a<<r|a>>>32-r)+t}t.MD5=r._createHelper(c),t.HmacMD5=r._createHmacHelper(c)}(Math),n.MD5)},function(e,t,i){var n;e.exports=(n=i(0),i(14),i(41),i(42),i(10),i(43),i(11),i(17),i(27),i(44),i(28),i(45),i(46),i(47),i(18),i(48),i(8),i(2),i(49),i(50),i(51),i(52),i(53),i(54),i(55),i(56),i(57),i(58),i(59),i(60),i(61),i(62),i(63),i(64),n)},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=e=>new Promise(t=>setTimeout(()=>t(),e))},function(e,t,i){var n,s,r,o,a,c;e.exports=(c=i(0),s=(n=c).lib,r=s.Base,o=s.WordArray,(a=n.x64={}).Word=r.extend({init:function(e,t){this.high=e,this.low=t}}),a.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:8*e.length},toX32:function(){for(var e=this.words,t=e.length,i=[],n=0;n<t;n++){var s=e[n];i.push(s.high),i.push(s.low)}return o.create(i,this.sigBytes)},clone:function(){for(var e=r.clone.call(this),t=e.words=this.words.slice(0),i=t.length,n=0;n<i;n++)t[n]=t[n].clone();return e}}),c)},function(e,t){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(e){"object"==typeof window&&(i=window)}e.exports=i},function(e){e.exports=JSON.parse('{"name":"mini_program_gizwits_sdk","version":"3.7.36-cozev5","description":"更新setDeviceOnboardingDeploy","main":"./dist/index.js","scripts":{"test":"node_modules/mocha/bin/_mocha -r ts-node/register tests/**/*.spec.ts -file ./tests/setup-wx.js -timeout 60s","testBle":"node_modules/mocha/bin/_mocha -r ts-node/register tests/utils/randomCode.spec.ts -file ./tests/setup-wx.js -timeout 60s","build":"rm -rf ./dist && webpack","release":"npm run build && release-it","cover":"istanbul cover node_modules/mocha/bin/_mocha -- -r ts-node/register tests/**/*.spec.ts -file ./tests/setup-wx.js -timeout 60s","coveralls":"npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls"},"repository":{"type":"git","url":"git+https://github.com/gizwits/mini_program_gizwits_sdk.git"},"keywords":["gizwits","miniprogram","sdk"],"devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.12.1","@release-it/conventional-changelog":"^2.0.0","@types/chai":"^4.2.11","@types/crypto-js":"^4.0.2","@types/mocha":"^7.0.2","@types/node":"^12.12.14","@types/sinon":"^10.0.6","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^1.1.0-alpha.1","miniprogram-api-typings":"^3.9.0","mocha":"^7.1.1","release-it":"^14.2.2","sinon":"^9.2.4","ts-loader":"^6.2.2","ts-node":"^8.8.1","typescript":"^4.9.5","uglifyjs-webpack-plugin":"^2.2.0","webpack":"^4.42.1","webpack-bundle-analyzer":"^4.5.0","webpack-cli":"^3.3.11"},"author":"gizwits","license":"ISC","bugs":{"url":"https://github.com/gizwits/mini_program_gizwits_sdk/issues"},"homepage":"https://github.com/gizwits/mini_program_gizwits_sdk#readme","dependencies":{"crypto-js":"^4.1.1"}}')},function(e,t,i){var n,s,r,o,a,c,u,l;e.exports=(l=i(0),s=(n=l).lib,r=s.WordArray,o=s.Hasher,a=n.algo,c=[],u=a.SHA1=o.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var i=this._hash.words,n=i[0],s=i[1],r=i[2],o=i[3],a=i[4],u=0;u<80;u++){if(u<16)c[u]=0|e[t+u];else{var l=c[u-3]^c[u-8]^c[u-14]^c[u-16];c[u]=l<<1|l>>>31}var d=(n<<5|n>>>27)+a+c[u];d+=u<20?1518500249+(s&r|~s&o):u<40?1859775393+(s^r^o):u<60?(s&r|s&o|r&o)-1894007588:(s^r^o)-899497514,a=o,o=r,r=s<<30|s>>>2,s=n,n=d}i[0]=i[0]+n|0,i[1]=i[1]+s|0,i[2]=i[2]+r|0,i[3]=i[3]+o|0,i[4]=i[4]+a|0},_doFinalize:function(){var e=this._data,t=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(i/4294967296),t[15+(n+64>>>9<<4)]=i,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}}),n.SHA1=o._createHelper(u),n.HmacSHA1=o._createHmacHelper(u),l.SHA1)},function(e,t,i){var n,s,r,o;e.exports=(n=i(0),r=(s=n).lib.Base,o=s.enc.Utf8,void(s.algo.HMAC=r.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=o.parse(t));var i=e.blockSize,n=4*i;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var s=this._oKey=t.clone(),r=this._iKey=t.clone(),a=s.words,c=r.words,u=0;u<i;u++)a[u]^=1549556828,c[u]^=909522486;s.sigBytes=r.sigBytes=n,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,i=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(i))}})))},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.crc32=t.crc16modbus=void 0;const s=n(i(66));t.crc16modbus=s.default;const r=n(i(73));t.crc32=r.default,t.default={crc16modbus:s.default,crc32:r.default}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(7));const o=new class{constructor(){this.data={},this.key="dataPointConfig",this.init=()=>n(this,void 0,void 0,(function*(){const e=(yield wx.getStorageSync(this.key))||"{}";let t={};try{t=JSON.parse(e)}catch(e){}this.data=t})),this.getConfigFileMap={},this.getConfigFile=e=>{if(!this.data[e]){if(this.getConfigFileMap[e])return this.getConfigFileMap[e];const t=new Promise(t=>n(this,void 0,void 0,(function*(){var i;const n=`/app/datapoint?product_key=${e}`,s=yield(0,r.default)(`${n}`,{method:"GET"});s.success&&(null===(i=s.data)||void 0===i?void 0:i.entities)?(this.data[e]=s.data,t(this.data[e]),wx.setStorageSync(this.key,JSON.stringify(this.data))):t(null),this.getConfigFileMap[e]=null})));return this.getConfigFileMap[e]=t,t}return Promise.resolve(this.data[e])},this.getAttrItem=(e,t)=>n(this,void 0,void 0,(function*(){this.data[e]||(yield this.getConfigFile(e));for(let i in this.data[e].entities[0].attrs){const n=this.data[e].entities[0].attrs[i];if(n.name===t)return n}return null}))}};o.init(),t.default=o},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.formatBinary=t.formatEnum=t.padBoradcastData=t.unpack=t.pack=t.getVariableLength=void 0;const r=s(i(20)),o=i(3),a=e=>-1!==e.indexOf("uint")?"number":e,c=(e,t,i)=>{let n="";switch(e){case"bool":n=`${!0===t[i.name]?1:0}`;break;case"enum":{let e=t[i.name];"number"==typeof e&&(e=i.enum[e]);const s=i.enum.findIndex(t=>e===t),r=-1===s?0:s;n=(0,o.fillString)(r.toString(2),i.position.len);break}case"number":{let e=0;null!=t[i.name]&&(e=Math.round((t[i.name]-i.uint_spec.addition)/i.uint_spec.ratio)),n=(0,o.fillString)(e.toString(2),8*i.position.len);break}case"binary":{let e=t[i.name]||"";e instanceof Array&&(e=(0,o.arrayToString)(e));const s=(0,o.fillString)(e,2*i.position.len,!0);for(let e=0;e<s.length/2;e++){const t=2*e,i=s[t]+s[t+1];n+=(0,o.fillString)(parseInt(i,16).toString(2),8)}break}}const s=i.position.len*("byte"===i.position.unit?8:1)-n.length;if(s>0)for(let e=0;e<s;e++)n=`0${n}`;return`${n}`},u=(e,t,i)=>{switch(e){case"bool":return"1"===t;case"enum":return parseInt(t,2);case"binary":{const e=i.position.len;let n="";for(let e=0;e<t.length/8;e++){const i=8*e,s=t.substring(i,i+8);n+=(0,o.fillString)(parseInt(s,2).toString(16),2)}return(0,o.fillString)(n,2*e,!0)}case"number":return parseInt(t,2)/(1/i.uint_spec.ratio)+i.uint_spec.addition;default:return""}},l=({config:e,data:t,isAdaptiveDatapoint:i})=>{let n=e;const s=[0,0,0,3],r=[0],u=[0,147],l=[0,0,0,0];let h=[1],f="";const p=[];i||(n=n.filter(e=>"status_writable"===e.type)),n.map(e=>{void 0!==t[e.name]?(f=`1${f}`,p.push(e)):f=`0${f}`}),i&&(h=[17],n=p),f=(0,o.fillString)(f,8*Math.ceil(f.length/8));for(let e=0;e<f.length/8;e++)h.push(parseInt(f.substring(8*e,8*(e+1)),2));let v,g="";try{v=n[0]}catch(e){}n.map(e=>{"bool"===e.data_type||"enum"===e.data_type?(v.type!==e.type&&(h=h.concat((0,o.completeBlock)(g)),g=""),g=((e,i)=>{const n=a(e.data_type);return i=c(n,t,e)+i})(e,g)):(g.length>0&&(h=h.concat((0,o.completeBlock)(g)),g=""),h=((e,i)=>{const n=a(e.data_type),s=c(n,t,e);return i=i.concat((0,o.completeBlock)(s)),console.log("handleOther",s,i),i})(e,h)),v=e}),g.length>0&&(h=h.concat((0,o.completeBlock)(g)),g="");const _=r.concat(u).concat(l).concat(h),y=d(_);return s.push(...y),{data:s.concat(_),raw:{header:[0,0,0,3],flag:r,len:y,headerCmd:u,sn:l,cmd:h}}};function d(e){const t=e.length.toString(2),i=[];for(let e=t.length;e>0;e-=7){const n=e-7,s=e;let r=t.substring(n,s);r=`${n>0?"1":"0"}${r}`,i.push(parseInt(r,2))}return i}function h(e,t){return e===t||"ALL"===e}function f({attrs:e,activeAttrs:t,flagString:i,cmdData:n,accumulate:s}){let r=0,o={},a=0;return["status_writable","status_readonly","alert","fault"].map(c=>{const u=e.filter(e=>h(c,e.type)).length,{cmd:l,cmdDataLength:d}=p({type:c,attrs:e.slice(a,a+u),activeAttrs:t,flagString:i.substring(a,a+u),cmdData:n.slice(r,n.length),accumulate:s});return r+=d,o=Object.assign(Object.assign({},o),l),a+=u,null}),o}function p({type:e,attrs:t,activeAttrs:i,cmdData:n,flagString:s,accumulate:r}){let c=0,l=0,d=0;return i.map(t=>{if(h(e,t.type)){const e=t.position.len*("bit"===t.position.unit?1:8);"bool"===t.data_type||"enum"===t.data_type?l+=e:d+=e}return null}),c=Math.ceil(d/8)+Math.ceil(l/8),{cmdDataLength:c,cmd:function({attrs:e,flagString:t,boolEnumLength:i,cmdData:n,accumulate:s}){const r={};let c=0;for(let l=0;l<t.length;l++)if(e[l]&&"1"===t[l]){const{data_type:t,position:{len:s}}=e[l];let d="";if("bool"===t||"enum"===t){let e="";n.slice(0,i).map(t=>(e+=(0,o.fillString)(t.toString(2),8),null));const t=e.length-c;d=e.substring(t-s,t),c+=s}else{const e=i,t=i+s;n.slice(e,t).map(e=>(d+=(0,o.fillString)(e.toString(2),8),null)),i+=s}const h=a(t);r[e[l].name]=u(h,d,e[l])}else if(s){const t=e[l]||{position:{len:0}};"byte"===t.position.unit?i+=t.position.len:c+=t.position.len}return r}({attrs:t,flagString:s,boolEnumLength:Math.ceil(l/8),cmdData:n,accumulate:r})}}t.getVariableLength=d;t.unpack=(e,t)=>n(void 0,void 0,void 0,(function*(){const i=yield r.default.getConfigFile(t);if(i){const n=function({config:e=[],data:t}){let i,n,s="";const r={header:(0,o.arrayToString)(t.slice(0,4)),flag:"",len:"",cmd:"",sn:"",action:"",payload:""},a=e;let c=(0,o.checkHeader)(t);if(!1===c)return;const u=t.slice(c,t.length),l=(0,o.getProtocolLen)(u);if(c+=l,r.len=(0,o.arrayToString)(u.slice(0,l)),c+=1,r.flag=(0,o.arrayToString)(t.slice(c-1,c)),c+=2,r.cmd=(0,o.arrayToString)(t.slice(c-2,c)),r.sn="",("0093"===r.cmd||"0094"===r.cmd)&&(c+=4,r.sn=(0,o.arrayToString)(t.slice(c-4,c)),"01"===r.flag)){c+=2,c+=parseInt((0,o.arrayToString)(t.slice(c-2,c)),16)}c+=1,r.action=(0,o.arrayToString)(t.slice(c-1,c)),i=parseInt(r.action,16),r.payload=(0,o.arrayToString)(t.slice(c,t.length));const d=t.slice(c,t.length);let h=a;1===i&&(h=a.filter(e=>"status_writable"===e.type));const v=JSON.parse(JSON.stringify(h)),g=Math.ceil(h.length/8);let _=d.slice(0,g),y=d.slice(g,d.length);3!==i&&4!==i||(_=new Array(g).fill(255),y=d);let m="";_.map(e=>(m+=(0,o.fillString)(e.toString(2),8),null)),i>=17&&i<=20&&(h=h.filter((e,t)=>{const i=m.length-1-t;return"1"===m[i]})),"0090"===r.cmd||"0093"===r.cmd?(s="App 透传数据到 Dev",n="APP2DEV"):"0091"===r.cmd||"0094"===r.cmd?(s="Dev 收到控制命令后应答到 App",n="DEV2APP"):(s="非法数据",n="UNKNOW");let D={};switch(i){case 1:s="App 下发数据到 Dev",D=f({attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y,accumulate:!0});break;case 2:return s="App 下发查询指令到 Dev",{kvData:null,rawData:r,message:s,messageType:n};case 3:s="Dev 回复查询指令到 App",D=f({attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y,accumulate:!0});break;case 4:s="Dev 上报状态到 App",D=f({attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y,accumulate:!0});break;case 5:return s="App 透传数据到 Dev",{kvData:null,rawData:r,message:s,messageType:n};case 6:return s="Dev 透传数据到 App",{kvData:null,rawData:r,message:s,messageType:n};case 7:return s="App 下发控制子设备",{kvData:null,rawData:r,message:s,messageType:n};case 8:return s="App 读取子设备数据",{kvData:null,rawData:r,message:s,messageType:n};case 9:return s="Dev 中控回复ACK",{kvData:null,rawData:r,message:s,messageType:n};case 10:return s="子设备上报状态到 App",{kvData:null,rawData:r,message:s,messageType:n};case 11:return s="App 下发添加子设备指令",{kvData:null,rawData:r,message:s,messageType:n};case 12:return s="App 下发删除子设备",{kvData:null,rawData:r,message:s,messageType:n};case 13:return s="App 获取中控子设备列表",{kvData:null,rawData:r,message:s,messageType:n};case 14:return s="中控响应字设备查询到 App",{kvData:null,rawData:r,message:s,messageType:n};case 15:return s="子设备列表变更通知到 App",{kvData:null,rawData:r,message:s,messageType:n};case 16:return s="Dev 子设备上下线状态变更通知",{kvData:null,rawData:r,message:s,messageType:n};case 17:s="App 下发变长数据到 Dev",D=p({type:"ALL",attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y}).cmd;break;case 18:return s="App 下发变长查询到 Dev",{kvData:null,rawData:r,message:s,messageType:n};case 19:s="Dev 变长回复查询指令到 App",D=p({type:"ALL",attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y}).cmd;break;case 20:s="Dev 变长上报状态到 App",D=p({type:"ALL",attrs:v,activeAttrs:h,flagString:m.split("").reverse().join(""),cmdData:y}).cmd;break;case 114:return s="App 向网关发送数据",{kvData:null,rawData:r,message:s,messageType:n};case 115:return s="Dev 网关上报数据到 App",{kvData:null,rawData:r,message:s,messageType:n};case 116:return s="App 通知网关删除子设备",{kvData:null,rawData:r,message:s,messageType:n};default:return{kvData:null,rawData:r,message:s,messageType:n}}return 0===a.length?{kvData:null,rawData:r,message:s,messageType:n}:{kvData:D,rawData:r,message:s,messageType:n}}({config:(yield i).entities[0].attrs,data:e});return n.kvData&&(n.kvData=yield v(null==n?void 0:n.kvData,t,"object")),n}return null}));t.pack=(e,t)=>n(void 0,void 0,void 0,(function*(){const i=yield r.default.getConfigFile(t);if(i){const t="var_len"===i.protocolType;return l({data:e,config:(yield i).entities[0].attrs,isAdaptiveDatapoint:t})}return null}));t.padBoradcastData=e=>{const t=[0].concat([0,147]).concat([0,0,0,0]).concat(e),i=d(t);return(0,o.arrayToString)([0,0,0,3].concat(i).concat(t))};t.formatEnum=(e,t,i)=>n(void 0,void 0,void 0,(function*(){for(let n in e){const s=yield r.default.getAttrItem(t,n);if(s&&"enum"===s.data_type){if("int"===i&&"string"==typeof e[n]){const t=s.enum.findIndex(t=>t===e[n]);e[n]=t||0}"string"===i&&"number"==typeof e[n]&&(e[n]=s.enum[e[n]])}}return e}));const v=(e,t,i)=>n(void 0,void 0,void 0,(function*(){for(let n in e){const s=yield r.default.getAttrItem(t,n);s&&"binary"===s.data_type&&("object"===i&&"string"==typeof e[n]&&(e[n]=(0,o.hexStrint2byte)(e[n])),"string"===i&&"object"==typeof e[n]&&(e[n]=(0,o.arrayToString)(e[n])))}return e}));t.formatBinary=v},function(e,t,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t},o=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getDevicesStatus=t.updateDevicesStatus=t.editBindInfo=t.safeRegister=t.checkDeviceRegister=t.unbindDevice=t.bindMac=t.getBindingList=void 0;const c=i(12),u=r(i(7)),l=a(i(89)),d=i(90),h=i(5);class f{constructor(){this.pad=(e,t)=>{},this.unpad=e=>{const t=e.sigBytes;let i=0,n=1;const s=e.toString(c.enc.Utf8);for(;i+16<=t;)i+=16;for(let e=0;e<7;e++){const t=i-2*e;if(s.substring(t,t-2)!=s.substring(t-2,t-4)){i-=2*n;break}n++}e.sigBytes=i}}}t.getBindingList=()=>o(void 0,void 0,void 0,(function*(){const e=(0,h.getGlobalData)("uid"),t=yield(0,u.cozeApiRequest)(`/v3/users/${e}/devices`,{method:"GET"});if(t.success){return{success:!0,data:t.data.data.map(e=>Object.assign(Object.assign({},e),{productKey:e.product_key,mac:e.mac,did:e.id,host:"",localName:"",port_s:0,port:0,ws_port:0,wss_port:0,passcode:"",isBleOnline:!1,isLanOnline:!1,connectType:"NONE",name:e.name,isBind:!0,isOnline:e.is_online}))}}return{success:!1,err:t.err}})),t.bindMac=function({mac:e,productKey:t,productSecret:i,alias:n,beOwner:s}){return o(this,void 0,void 0,(function*(){const r={mac:e,product_key:t,dev_alias:n,set_owner:s},{Signature:o,timestamp:a}=(0,d.psKeySign)(i);return yield(0,u.default)("/app/bind_mac",{method:"POST",data:r,headers:{"X-Gizwits-Signature":o,"X-Gizwits-Timestamp":a}})}))},t.unbindDevice=function(e){return o(this,void 0,void 0,(function*(){const t=(0,h.getGlobalData)("uid");return yield(0,u.cozeApiRequest)(`/v3/users/${t}/devices/${e}`,{method:"DELETE"})}))},t.checkDeviceRegister=function({SSID:e,password:t,productKeys:i}){return o(this,void 0,void 0,(function*(){const n=(0,l.default)({SSID:e,password:t,pks:i});let s="";return n.map(e=>{s+=`${e},`}),s=s.substring(0,s.length-1),yield(0,u.default)(`/app/device_register?random_codes=${s}`,{method:"get"})}))},t.safeRegister=function({productKey:e,productSecret:t,mac:i,passcode:n,gwDid:s,isReset:r}){return o(this,void 0,void 0,(function*(){let o=`is_reset=${r?1:0}&mac=${i}&passcode=${n}`;s&&(o+=`&gw_did=${s}`);const a=c.enc.Hex.parse(t),l=c.enc.Hex.parse(""),d=c.enc.Utf8.parse(o),h=c.AES.encrypt(d,a,{iv:l,mode:c.mode.ECB,padding:c.pad.Pkcs7}).ciphertext.toString().toUpperCase(),f=yield(0,u.default)(`/dev/${e}/device`,{method:"POST",data:{data:h},headers:{"content-type":"application/x-www-form-urlencoded"}},!1);if(f.success){const e=p({productSecret:t,iv:l,data:f.data}),n=[];return e.find(e=>e.mac===i)||n.push({mac:i}),{success:!0,data:{successDevices:e,failedDevices:n}}}return{success:!1,err:f.err}}))};const p=({productSecret:e,data:t,iv:i})=>{const n=c.enc.Hex.parse(e),s=c.enc.Hex.parse(t);const r=c.AES.decrypt(c.enc.Base64.stringify(s),n,{iv:i,mode:c.mode.ECB,padding:new f}).toString(c.enc.Utf8),o=[];return r.split(",").map(e=>{const t=e.split("&"),i=t[0].replace("mac=",""),n=t[1].replace("did=","");o.push({mac:i,did:n})}),o};t.editBindInfo=function({name:e,remark:t,did:i}){return o(this,void 0,void 0,(function*(){const n={};return e&&(n.dev_alias=e),t&&(n.remark=t),yield(0,u.default)(`/app/bindings/${i}`,{method:"PUT",data:n},!0)}))},t.updateDevicesStatus=function(e){return o(this,void 0,void 0,(function*(){return yield(0,u.cozeApiRequest)("/v2/devices/status",{method:"POST",data:e})}))},t.getDevicesStatus=function(e){return o(this,void 0,void 0,(function*(){return(0,u.cozeApiRequest)(`/v3/devices/${e}/status`,{method:"GET"})}))}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(13)),o=s(i(4)),a=i(22),c=s(i(6)),u=s(i(24)),l=i(5);t.default=class{constructor(e,t,i,s,d){this.ssid="",this.bssid="",this.password="",this.specialProductKeys=[],this.disableSearchDevice=!1,this.specialProductKeySecrets=[],this.timeoutHandler=null,this.setDeviceOnboardingDeployRej=()=>{},this.cleanTimeout=()=>{this.disableSearchDevice=!0,this.timeoutHandler&&clearTimeout(this.timeoutHandler),this.timeoutHandler=null},this.stopDeviceOnboardingDeploy=()=>{this.setDeviceOnboardingDeployRej&&(u.default.cancel(),this.setDeviceOnboardingDeployRej({success:!1,err:o.default.GIZ_SDK_ONBOARDING_STOPPED})),this.cleanTimeout()},this.appendExtendData=e=>{const t=-(new Date).getTimezoneOffset()/60;let i=Math.floor(t),n=0,s="",r=t-i;return s=i>=0&&i<=9?String.fromCharCode("0".charCodeAt(0)+i):i>9?String.fromCharCode(i-10+"A".charCodeAt(0)):String.fromCharCode(-i-1+"a".charCodeAt(0)),r<0&&(r=-r),n=r>=0&&r<.25?0:r>=.25&&r<.5?1:r>=.5&&r<.75?2:3,e+""+(0,l.getGlobalData)("uid")},this.hasTimeoutHandler=e=>!!this.timeoutHandler&&(e&&e({success:!1,err:o.default.GIZ_SDK_DEVICE_CONFIG_IS_RUNNING}),!0),this.handleTimeout=()=>{if(this.setDeviceOnboardingDeployRej){const e={errorCode:o.default.CONFIG_TIME_OUT,errorMessage:"time out"};this.setDeviceOnboardingDeployRej({success:!1,err:{errorCode:o.default.CONFIG_TIME_OUT,errorMessage:"time out"}}),u.default.appendEvent({name:"WIFI_CONFIG_FAIL",message:JSON.stringify({error:e})})}this.timeoutHandler=null},this.searchDevice=({mac:e,productKey:t})=>new Promise((t,i)=>{u.default.appendEvent({name:"START_SEARCH_RANDOM_CODE",message:""}),c.default.debug("GIZ_SDK: 开始大循环搜索设备");const s=()=>n(this,void 0,void 0,(function*(){var i;if(this.hasTimeoutHandler())try{const n=yield(0,a.getBindingList)(),o=n.data.find(t=>t.mac===e&&t.isOnline);o?(null===(i=this.eventCallBack)||void 0===i||i.call(this,{event:"GIZ_CONFIG_SUCCESS"}),u.default.appendEvent({name:"START_SEARCH_RANDOM_CODE_SUCCESS",message:JSON.stringify(n)}),c.default.debug("GIZ_SDK: 大循环搜索到设备",n),t({success:!0,data:[o]})):(yield(0,r.default)(1e3),!this.disableSearchDevice&&s())}catch(e){yield(0,r.default)(3e3),!this.disableSearchDevice&&s()}}));s()}),this.initDeviceOnboardingDeploy=(e,t)=>{this.setDeviceOnboardingDeployRej=e,this.disableSearchDevice=!1},this.startTimeoutTimer=e=>{this.timeoutHandler=setTimeout(this.handleTimeout,1e3*e)},this.bindDevices=e=>(c.default.log("GIZ_SDK: start bind device"),u.default.appendEvent({name:"START_BIND_DEVICE",message:""}),new Promise((t,i)=>n(this,void 0,void 0,(function*(){const n=e.map(e=>{const t=this.specialProductKeys.findIndex(t=>e.productKey===t);if(-1===t)return;const i=this.specialProductKeySecrets[t];return(0,a.bindMac)({mac:e.mac,productKey:e.productKey,productSecret:i})});try{const s=yield Promise.all(n),r=e.filter((e,t)=>{const i=s[t];return i&&i.success});if(r.length>0)c.default.log("GIZ_SDK: bind device success",r),u.default.appendEvent({name:"BIND_DEVICE_SUCCESS",message:JSON.stringify(r)}),t({success:!0,data:r});else{c.default.log("GIZ_SDK: bind device error",s);const t={success:!1,data:e,err:o.default.GIZ_SDK_BIND_DEVICE_FAILED};u.default.appendEvent({name:"BIND_DEVICE_FAIL",message:JSON.stringify(t)}),i(t)}}catch(e){i(e)}})))),this.ssid=e,this.bssid=t,this.password=i,this.specialProductKeys=s,this.specialProductKeySecrets=d}}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const s=i(16),r=i(5),o=i(9),a=i(7);t.default=new class{constructor(){this.isSuccess=!1,this.productKey="",this.logs=[],this.init=e=>{this.clean(),this.productKey=e.productKey,this.ssid=e.ssid,this.mode=e.mode,this.isBind=e.isBind,this.timeout=e.timeout},this.getEnv=()=>{try{wx.getSystemInfoAsync({success:e=>{const t={wxSdkVersion:e.SDKVersion,gizwitsSdkVersion:s.version,appID:(0,r.getGlobalData)("appID"),bluetoothEnabled:e.bluetoothEnabled,locationEnabled:e.locationEnabled,wifiEnabled:e.wifiEnabled},i={brand:e.brand,model:e.model,pixelRatio:e.pixelRatio,systemVersion:e.system,platform:e.platform};this.mobileInfo=i,this.appInfo=t}})}catch(e){console.error(e)}},this.updateProductKey=e=>{this.productKey=e},this.appendEvent=e=>{try{this.logs.push(Object.assign(Object.assign({},e),{timestamp:Math.floor((new Date).getTime()/1e3)})),"WIFI_CONFIG_SUCCESS"===e.name&&(this.isSuccess=!0),"WIFI_CONFIG_SUCCESS"!==e.name&&"WIFI_CONFIG_FAIL"!==e.name||this.report()}catch(e){console.error(e)}},this.report=()=>n(this,void 0,void 0,(function*(){try{if(!this.productKey)return;if(0===this.logs.length)return;if(this.logs[0]&&"START_WIFI_CONFIG"!==this.logs[0].name)return;const e=new Date,t=(0,o.createUUID32)(),i=this.mobileInfo,n=this.appInfo,s={ssid:this.ssid,mode:this.mode,timeout:this.timeout,isBind:this.isBind},c={origin:"MINI-WX",mobileInfo:i,userInfo:{uid:(0,r.getGlobalData)("uid")},appInfo:n,eventID:t,eventType:"ConfigNetWorkDetail",monitorTarget:s,eventDetail:{success:this.isSuccess,processDetails:this.logs},time:e,timeStamp:Math.floor(e.getTime()/1e3)};if(console.debug("report data",c),this.productKey){const e=yield(0,a.statisticRequest)(`v2/products/${this.productKey}/devices/dist-net`,{method:"POST",body:c});e.success?console.debug("===已成功上报结束配网事件==="):console.error("===上报结束配网事件失败===",e)}this.clean()}catch(e){console.error(e)}})),this.cancel=()=>n(this,void 0,void 0,(function*(){return this.isSuccess=!1,this.appendEvent({name:"WIFI_CONFIG_CANCEL",message:""}),yield this.report()})),this.clean=()=>{this.logs=[],this.isSuccess=!1},this.getEnv()}}},function(e,t,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t},o=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getOtaStatus=t.confirmDeviceOtaTask=t.pushDeviceOtaTask=t.getDeviceOtaTask=t.getAiDeviceVersion=t.checkUpdate=void 0;const c=i(5),u=r(i(7)),l=a(i(4));t.checkUpdate=function({did:e,type:t,hardVersion:i,softVersion:n}){return o(this,void 0,void 0,(function*(){const s="MCU"==t?"2":"1";return(0,u.default)(`/app/ota/v4.1/update_and_check/${e}`,{data:{type:s,hard_version:i,soft_version:n,https:"1"},method:"POST"},!0)}))},t.getAiDeviceVersion=function(e){var t,i,n,s,r,a,l,d;return o(this,void 0,void 0,(function*(){const{id:o}=e,h=(0,c.getGlobalData)("uid"),f=yield(0,u.cozeApiRequest)(`/v3/users/${h}/devices/${o}`,{method:"GET",body:{}});return f.success?{success:!0,data:{soft_version:null===(s=null===(n=null===(i=null===(t=f.data)||void 0===t?void 0:t.data)||void 0===i?void 0:i.firmware)||void 0===n?void 0:n.comm)||void 0===s?void 0:s.sw_version,hard_version:null===(d=null===(l=null===(a=null===(r=f.data)||void 0===r?void 0:r.data)||void 0===a?void 0:a.firmware)||void 0===l?void 0:l.comm)||void 0===d?void 0:d.hw_version}}:{success:!1,data:{}}}))},t.getDeviceOtaTask=function(e){return o(this,void 0,void 0,(function*(){const t=`/v3/users/${(0,c.getGlobalData)("uid")}/devices/${e}/ota-tasks`;return(0,u.cozeApiRequest)(t,{method:"GET"})}))},t.pushDeviceOtaTask=function(e,t){return o(this,void 0,void 0,(function*(){const i=`/v3/users/${(0,c.getGlobalData)("uid")}/devices/${e}/ota-tasks/${t}`;return(0,u.cozeApiRequest)(i,{method:"PATCH"})}))},t.confirmDeviceOtaTask=function(e,t){return o(this,void 0,void 0,(function*(){const i=`/v3/users/${(0,c.getGlobalData)("uid")}/devices/${e}/ota-tasks/${t}`;return(0,u.cozeApiRequest)(i,{method:"PUT"})}))};t.getOtaStatus=e=>o(void 0,void 0,void 0,(function*(){var t,i,n;try{const s=yield(0,u.cozeApiRequest)(`/v2/devices/${e}/firmwares/ota-status`,{method:"GET"});if(s.success&&(null===(n=null===(i=null===(t=s.data)||void 0===t?void 0:t.data)||void 0===i?void 0:i.progresses)||void 0===n?void 0:n.length)>0){const e=s.data.data.progresses[0];if(Date.now()-1e3*e.create_time<=6e4)return{success:!0,data:e.percentage}}return{success:!0,data:null}}catch(e){return{success:!1,err:l.default.GIZ_SDK_OTHERWISE}}}))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return new Promise((i,n)=>{wx.request(Object.assign(Object.assign({url:e,timeout:3e3},t),{success:e=>{i(e)},fail:e=>{n(e)}}))})}},function(e,t,i){var n;e.exports=(n=i(0),function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=[],c=[];!function(){function t(t){for(var i=e.sqrt(t),n=2;n<=i;n++)if(!(t%n))return!1;return!0}function i(e){return 4294967296*(e-(0|e))|0}for(var n=2,s=0;s<64;)t(n)&&(s<8&&(a[s]=i(e.pow(n,.5))),c[s]=i(e.pow(n,1/3)),s++),n++}();var u=[],l=o.SHA256=r.extend({_doReset:function(){this._hash=new s.init(a.slice(0))},_doProcessBlock:function(e,t){for(var i=this._hash.words,n=i[0],s=i[1],r=i[2],o=i[3],a=i[4],l=i[5],d=i[6],h=i[7],f=0;f<64;f++){if(f<16)u[f]=0|e[t+f];else{var p=u[f-15],v=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=u[f-2],_=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;u[f]=v+u[f-7]+_+u[f-16]}var y=n&s^n&r^s&r,m=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),D=h+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&l^~a&d)+c[f]+u[f];h=d,d=l,l=a,a=o+D|0,o=r,r=s,s=n,n=D+(m+y)|0}i[0]=i[0]+n|0,i[1]=i[1]+s|0,i[2]=i[2]+r|0,i[3]=i[3]+o|0,i[4]=i[4]+a|0,i[5]=i[5]+l|0,i[6]=i[6]+d|0,i[7]=i[7]+h|0},_doFinalize:function(){var t=this._data,i=t.words,n=8*this._nDataBytes,s=8*t.sigBytes;return i[s>>>5]|=128<<24-s%32,i[14+(s+64>>>9<<4)]=e.floor(n/4294967296),i[15+(s+64>>>9<<4)]=n,t.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(l),t.HmacSHA256=r._createHmacHelper(l)}(Math),n.SHA256)},function(e,t,i){var n;e.exports=(n=i(0),i(14),function(){var e=n,t=e.lib.Hasher,i=e.x64,s=i.Word,r=i.WordArray,o=e.algo;function a(){return s.create.apply(s,arguments)}var c=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],u=[];!function(){for(var e=0;e<80;e++)u[e]=a()}();var l=o.SHA512=t.extend({_doReset:function(){this._hash=new r.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var i=this._hash.words,n=i[0],s=i[1],r=i[2],o=i[3],a=i[4],l=i[5],d=i[6],h=i[7],f=n.high,p=n.low,v=s.high,g=s.low,_=r.high,y=r.low,m=o.high,D=o.low,S=a.high,b=a.low,w=l.high,I=l.low,C=d.high,E=d.low,A=h.high,B=h.low,T=f,k=p,O=v,x=g,L=_,P=y,M=m,N=D,R=S,U=b,H=w,G=I,K=C,F=E,j=A,z=B,W=0;W<80;W++){var Z,V,$=u[W];if(W<16)V=$.high=0|e[t+2*W],Z=$.low=0|e[t+2*W+1];else{var Y=u[W-15],q=Y.high,J=Y.low,X=(q>>>1|J<<31)^(q>>>8|J<<24)^q>>>7,Q=(J>>>1|q<<31)^(J>>>8|q<<24)^(J>>>7|q<<25),ee=u[W-2],te=ee.high,ie=ee.low,ne=(te>>>19|ie<<13)^(te<<3|ie>>>29)^te>>>6,se=(ie>>>19|te<<13)^(ie<<3|te>>>29)^(ie>>>6|te<<26),re=u[W-7],oe=re.high,ae=re.low,ce=u[W-16],ue=ce.high,le=ce.low;V=(V=(V=X+oe+((Z=Q+ae)>>>0<Q>>>0?1:0))+ne+((Z+=se)>>>0<se>>>0?1:0))+ue+((Z+=le)>>>0<le>>>0?1:0),$.high=V,$.low=Z}var de,he=R&H^~R&K,fe=U&G^~U&F,pe=T&O^T&L^O&L,ve=k&x^k&P^x&P,ge=(T>>>28|k<<4)^(T<<30|k>>>2)^(T<<25|k>>>7),_e=(k>>>28|T<<4)^(k<<30|T>>>2)^(k<<25|T>>>7),ye=(R>>>14|U<<18)^(R>>>18|U<<14)^(R<<23|U>>>9),me=(U>>>14|R<<18)^(U>>>18|R<<14)^(U<<23|R>>>9),De=c[W],Se=De.high,be=De.low,we=j+ye+((de=z+me)>>>0<z>>>0?1:0),Ie=_e+ve;j=K,z=F,K=H,F=G,H=R,G=U,R=M+(we=(we=(we=we+he+((de+=fe)>>>0<fe>>>0?1:0))+Se+((de+=be)>>>0<be>>>0?1:0))+V+((de+=Z)>>>0<Z>>>0?1:0))+((U=N+de|0)>>>0<N>>>0?1:0)|0,M=L,N=P,L=O,P=x,O=T,x=k,T=we+(ge+pe+(Ie>>>0<_e>>>0?1:0))+((k=de+Ie|0)>>>0<de>>>0?1:0)|0}p=n.low=p+k,n.high=f+T+(p>>>0<k>>>0?1:0),g=s.low=g+x,s.high=v+O+(g>>>0<x>>>0?1:0),y=r.low=y+P,r.high=_+L+(y>>>0<P>>>0?1:0),D=o.low=D+N,o.high=m+M+(D>>>0<N>>>0?1:0),b=a.low=b+U,a.high=S+R+(b>>>0<U>>>0?1:0),I=l.low=I+G,l.high=w+H+(I>>>0<G>>>0?1:0),E=d.low=E+F,d.high=C+K+(E>>>0<F>>>0?1:0),B=h.low=B+z,h.high=A+j+(B>>>0<z>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(i/4294967296),t[31+(n+128>>>10<<5)]=i,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(l),e.HmacSHA512=t._createHmacHelper(l)}(),n.SHA512)},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.passcode=""}}r.pack=()=>[0,0,0,3,3,0,0,6],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(68));t.default=function(e,t){const i=(e,i)=>t((0,s.default)(e),i)>>>0;return i.signed=(e,i)=>t((0,s.default)(e),i),i.unsigned=i,i.model=e,i}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(){this.listenerMap={},this.addEventListener=(e,t)=>n(this,void 0,void 0,(function*(){return this.listenerMap[e]||(this.listenerMap[e]=[]),-1===this.listenerMap[e].indexOf(t)&&this.listenerMap[e].push(t),{success:!0}})),this.removeEventListener=(e,t)=>{if(this.listenerMap[e]){const i=this.listenerMap[e].indexOf(t);if(-1!==i)return this.listenerMap[e].splice(i,1),{success:!0}}return{success:!1}}}}},function(e,t,i){"use strict";var n=this&&this.__decorate||function(e,t,i,n){var s,r=arguments.length,o=r<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(o=(r<3?s(o):r>3?s(t,i,o):s(t,i))||o);return r>3&&o&&Object.defineProperty(t,i,o),o},s=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},r=this&&this.__rest||function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BleHandle=void 0;const a=o(i(6)),c=o(i(29)),u=o(i(77)),l=o(i(78)),d=o(i(1)),h=i(3),f=i(79),p=o(i(13)),v=i(12),g=i(19),_=i(9),y=i(33),m=o(i(31)),D=i(25),S=o(i(4)),b=o(i(80)),w=o(i(81)),I=o(i(82)),C=o(i(83)),E=o(i(84)),A=o(i(85)),B=o(i(86)),T=o(i(87));function k(e){return function(t,i,n){const{value:s}=n;n.value=function(...t){return s.apply(this,t).then(i=>{var{_failureType_:n}=i,s=r(i,["_failureType_"]);return(0,f.reportEvent)({device:t[0],eventID:this.__event_id__,eventType:e,success:s.success}),Object.assign(Object.assign({},s),{_failureType_:e})})}}}class O extends m.default{set offlineThreshold(e){this._offlineThreshold=e}get offlineThreshold(){return this._offlineThreshold||1e4}constructor({pks:e=[],shortPks:t=[],bleHandleParams:i={serviceUUIDSuffix:"abd0",characteristicUUIDSuffix:"abd5"},offlineThreshold:n}){super(),this.connectedList=[],this.connectingDevId=null,this.pks=[],this.shortPks=[],this.listenDevOfflineTimer=null,this.methodQueue=Promise.resolve(),this.boradcastDataCache={},this.validBoradcastCmd=[152,154,25,148],this.baseServices=["D0AB","ABD0"],this.tmpBleData="",this.tmpDataNum=0,this.disableScanFlag=!1,this.peripheralServer=null,this.isActive=!0,this.isInitSuccess=!1,this.isRunInit=!1,this._offlineThreshold=null,this.scanList=[],this.bleFrameCache=new Map,this.onBluetoothAdapterStateChange=e=>{a.default.debug("onBluetoothAdapterStateChange",e,this.isRunInit,this.isInitSuccess),e.available?this.isRunInit&&!1===this.isInitSuccess&&this.init():(this.scanList=[],this.notifyDevices())},this.onAppShow=()=>{this.isActive=!0,this.scanList.map(e=>{e.ctime=Date.now()})},this.onAppHide=()=>{this.isActive=!1},this.listenDevOffline=()=>{this.listenDevOfflineTimer=setInterval(()=>{if(!this.isActive)return;const e=(new Date).getTime(),t=this.scanList.filter(t=>{const i=this.connectedList.find(e=>t.bleDeviceID==e.deviceId),n=this.connectingDevId===t.bleDeviceID;return!(!i&&!n)||("BLE_BROADCAST"===t.connectType?e-t.ctime<2*this.offlineThreshold:e-t.ctime<this.offlineThreshold)});t.length!==this.scanList.length&&(this.scanList=t,this.notifyDevices())},500)},this.openBluetoothAdapter=(e="central")=>new Promise((t,i)=>{wx.openBluetoothAdapter({mode:e,success:()=>{t({success:!0}),wx.onBLECharacteristicValueChange(this.handleOnBLECharacteristicValueChange)},fail:e=>{a.default.error("openBluetoothAdapter fail",new Error(JSON.stringify(e))),this.notifyError({errMsg:e.errMsg,errCode:-1}),i({success:!1,err:e})}})}),this.handleOnBLECharacteristicValueChange=e=>s(this,void 0,void 0,(function*(){if(!e.value)return;let t;try{t=new d.default(new Uint8Array(e.value))}catch(e){return void console.warn("BLE协议解析失败",e)}console.log("handleOnBLECharacteristicValueChange",t);const i=`${e.deviceId}_${t.msgId}_${t.cmd}`;if(!this.bleFrameCache.has(i)){const e=setTimeout(()=>{this.bleFrameCache.delete(i)},5e3);this.bleFrameCache.set(i,{frames:new Array(t.frames),total:t.frames,received:0,timer:e})}const n=this.bleFrameCache.get(i);if(n.frames[t.seq]||(n.frames[t.seq]=t.payload,n.received++),n.received===n.total){console.log("cachecache",n);const t=n.frames.reduce((e,t)=>{if(t){const i=new Uint8Array(e.length+t.length);return i.set(e,0),i.set(t,e.length),i}return e},new Uint8Array),s=new Uint8Array(e.value.slice(0,4)),r=new Uint8Array([...s,...t]),o=new d.default(r);this.notiDeviceDataToSdk(e,o),clearTimeout(n.timer),this.bleFrameCache.delete(i)}})),this.notiDeviceDataToSdk=(e,t)=>{this.listenerMap.GizBleDeviceData&&this.listenerMap.GizBleDeviceData.map(i=>{i(e,t)})},this.notifyError=e=>{this.listenerMap.GizBleError&&this.listenerMap.GizBleError.map(t=>{t(e)})},this.notifyDevices=()=>{this.listenerMap.GizBleDeviceList&&this.listenerMap.GizBleDeviceList.map(e=>{e(this.scanList)})},this.listenConnection=()=>{wx.onBLEConnectionStateChange(e=>{if(!1===e.connected){const t=this.connectedList.findIndex(t=>t.deviceId===e.deviceId);-1!==t&&(this.connectedList.splice(t,1),this.notifyDevices())}})},this.init=()=>s(this,void 0,void 0,(function*(){this.isRunInit=!0;const{platform:e}=wx.getSystemInfoSync();yield this.openBluetoothAdapter(),"ios"===e&&(yield this.openBluetoothAdapter("peripheral"));let t=!0;try{this.peripheralServer&&(this.peripheralServer.close(),this.peripheralServer=null),this.peripheralServer=(yield wx.createBLEPeripheralServer()).server,a.default.info("GIZ_SDK: 广播初始化成功",this.peripheralServer)}catch(e){a.default.error("GIZ_SDK: 广播初始化失败",new Error(JSON.stringify(e))),t=!1}const i=yield this.getBluetoothAdapterState();return this.isInitSuccess=!0,wx.onBluetoothDeviceFound(e=>{this.handleBluetoothDeviceFound(e)}),i})),this.checkPermission=()=>s(this,void 0,void 0,(function*(){if((yield wx.getSetting()).authSetting["scope.bluetooth"])return yield this.init();for(let e=1;e<=2;e++)try{return yield wx.authorize({scope:"scope.bluetooth"}),yield this.init()}catch(t){if(a.default.log(`授权失败,第 ${e}/2 次尝试`,t),!(e<2))return a.default.log("授权重试失败",t),this.openBluetoothAdapter(),this.notifyError({errMsg:t.errMsg,errCode:-1}),{success:!1};yield(0,p.default)(300)}})),this.getBluetoothAdapterState=()=>s(this,void 0,void 0,(function*(){a.default.log("getBluetoothAdapterState",yield wx.getBluetoothAdapterState());const e=yield wx.getBluetoothAdapterState(),{errMsg:t,available:i}=e,n=r(e,["errMsg","available"]);return{data:Object.assign({},n),err:(0,_.wrapErrorInfo)(t),success:i}})),this.getDeviceStatus=(e,t,i,n)=>s(this,void 0,void 0,(function*(){const s=yield u.default.pack(t,i,n);return s?yield this.write(e,(0,_.numberArray2Uint8Array)(s).buffer):{success:!1}})),this.updateDevice=e=>{const t=e.bleDeviceID,i=this.scanList.findIndex(e=>t==e.bleDeviceID);-1!==i&&(this.scanList[i]=e)},this.updateCtime=e=>{const t=e.deviceId,i=this.scanList.findIndex(e=>t==e.bleDeviceID);-1!==i&&(this.scanList[i].ctime=Date.now())},this.checkDeviceIsChange=(e,t)=>e.bleWorkStatus!==t.bleWorkStatus||e.name!==t.name||e.isBleOnline!==t.isBleOnline||e.isOnline!==t.isOnline,this.handleBluetoothDeviceFound=e=>{(0,_.unionBy)(e.devices,"deviceId").map(e=>{const{advertisData:t,deviceId:i,name:n,localName:s}=e,r=(0,_.ab2hex)(t);let o=null;try{o=(0,_.parseBroadcastData)((0,_.ab2numbers)(t))}catch(e){}const a=this.scanList.find(e=>e.bleDeviceID===i);if(!o||148!==o.cmd){if(o&&25===o.cmd){this.pks.find(e=>e===o.data.join(""))&&(e.communicationType="BLE_BROADCAST")}if(o&&this.validBoradcastCmd.includes(o.cmd)&&this.notiBoardCastData(e,o),a){const t=(0,_.BTDevice2GDevice)(e,this.pks,this.shortPks);if(t.productKey&&t.mac){const e=this.checkDeviceIsChange(t,a);t.ctime=Date.now(),this.updateDevice(t),e&&this.notifyDevices()}}else{if(this.shortPks.some(e=>r.includes(e))){console.log("BTDevice2GDevice");const t=(0,_.BTDevice2GDevice)(e,this.pks,this.shortPks);t.productKey&&t.mac&&(this.scanList.push(t),this.notifyDevices())}}}})},this.startScan=(e=5e3,t)=>s(this,void 0,void 0,(function*(){return this.disableScanFlag?{scanList:[]}:new Promise(i=>s(this,void 0,void 0,(function*(){a.default.debug("GIZ_SDK: start scan",e),yield wx.startBluetoothDevicesDiscovery({services:t||this.baseServices,powerLevel:"high",allowDuplicatesKey:!0,interval:200}),e>0&&setTimeout(()=>{this.stopScan(),i({scanList:this.scanList})},e)})))})),this.stopScan=()=>s(this,void 0,void 0,(function*(){try{return yield wx.stopBluetoothDevicesDiscovery()}catch(e){return e}})),this.disableScan=()=>s(this,void 0,void 0,(function*(){this.disableScanFlag=!0;const e=yield wx.stopBluetoothDevicesDiscovery();return yield(0,p.default)(200),e})),this.enableScan=()=>{this.disableScanFlag=!1},this.connectDevice=e=>s(this,void 0,void 0,(function*(){try{return this.connectingDevId=e.bleDeviceID,yield this._connectDevice(e)}finally{this.connectingDevId=null}})),this.handleWatchBleData=(e,t,i=3e3)=>s(this,void 0,void 0,(function*(){return new Promise(n=>{let s=(i,r)=>{if(console.log("handleWatchBleData",i,r),e!==i.deviceId)return;const o=t(i,r);o&&(n({success:!0,data:o}),this.removeEventListener("GizBleDeviceData",s))};this.addEventListener("GizBleDeviceData",s),setTimeout(()=>{s&&(this.removeEventListener("GizBleDeviceData",s),n({success:!1,err:S.default.GIZ_SDK_DEVICE_NO_RESPONSE}))},i)})})),this.handleBindReq=e=>new Promise(t=>{setTimeout(()=>{a.default.debug("绑定协议执行超时"),t({success:!1,data:""})},5e3);this.watchBleDevice(e,(e,t)=>{})}),this.handleLoginReq=e=>new Promise(t=>{setTimeout(()=>{a.default.debug("登录协议执行超时"),t({success:!1,data:""})},5e3);this.watchBleDevice(e,(e,t)=>{})}),this.startUpgrade=({device:e,type:t,onEvent:i,onProgress:n,productKey:r})=>s(this,void 0,void 0,(function*(){i({code:"GizOTAEventPretreatment"});const s=yield this.checkUpdate({device:e,type:t});a.default.debug("检查设备是否有新固件",s);const o=e.bleDeviceID;if(s.success){const c=s.data.download_url,u=s.data.soft_ver;i({code:"GizOTAEventDownload"});let l="";try{l=(yield(0,y.downloadFile)({url:c})).tempFilePath}catch(e){return a.default.error("固件下载失败",e),{success:!1,err:S.default.GIZ_SDK_OTA_FIRMWARE_DOWNLOAD_FAILED}}a.default.debug("下载固件成功",l),i({code:"GizOTAEventTransmit"});const f=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 66:return new w.default(i)}return null},m=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 68:return new I.default(i)}return null},D=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 82:return new A.default(i)}return null};a.default.debug("查询设备是否可以OTA");const b=w.default.pack(t);yield this.write(o,(0,_.numberArray2Uint8Array)(b).buffer);const T=yield this.handleWatchBleData(o,f);if(a.default.debug("设备回复是否可以OTA",T),T.success&&T.data.type!==t)return a.default.error(null,new Error("OTA类型不匹配")),{success:!1,err:S.default.GIZ_SDK_OTA_FIRMWARE_TYPE_NOT_MATCH};if(T.success&&0===T.data.state){const s=wx.getFileSystemManager();let c=[];try{c=yield s.readFileSync(l,"hex",0)}catch(e){return a.default.error("读取固件失败",e),{success:!1,err:S.default.GIZ_SDK_OTA_FIRMWARE_DOWNLOAD_FAILED}}const f=c.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})),y=(0,_.arrayBufferToWordArray)(f),b=(0,v.MD5)(y).toString(),w=(0,g.crc32)(f),A=I.default.pack(r,u,b,f.length,w);yield this.write(o,(0,_.numberArray2Uint8Array)(A).buffer);const T=yield this.handleWatchBleData(o,m,5e3);if(a.default.debug("设备回复ota 预请求",T),T.success&&0===T.data.state){let s=0;if(T.data.processedLen>0){(0,g.crc32)(f.slice(0,T.data.processedLen)).toString(16)===T.data.processedCrc32?(s=T.data.processedLen,a.default.debug(`断点续传,从 ${s} 开始`)):(a.default.debug("从位置0开始OTA"),yield this.write(o,(0,_.numberArray2Uint8Array)(C.default.pack(0)).buffer),yield(0,p.default)(100))}const r=f.length,c=T.data.packageMaxLen;let l=Math.ceil(s/c),v=0;for(;s<r;){const e=f.slice(s,s+c),t=E.default.pack(e,l);yield this.write(o,(0,_.numberArray2Uint8Array)(t).buffer);const i=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 72:{const e=new E.default(i);return e.packageNum===l?e:null}}return null},u=yield this.handleWatchBleData(o,i,5e3);let g=!1;if(!1===u.success&&(g=!0),u.success&&0!==u.data.state&&4!==u.data.state&&(g=!0),g){if(v+=1,a.default.debug(`发送OTA包失败,重试次数 ${v}`,u),v>3)return a.default.debug("发送OTA包失败次数超过限制"),{success:!1};continue}a.default.debug("设备接收ota子包成功",u),v=0,s+=c,l+=1;let y=parseInt(`${l*c/r*100}`);if(y>100&&(y=100),n({firmwareSize:r,packageMaxLen:c,currentNumber:l,currentProgress:y}),yield(0,p.default)(100),4===u.data.state){a.default.debug("设备请求等待OTA");const e=yield this.handleWatchBleData(o,D,6e4);if(a.default.debug("设备回复等待结果",e),1===e.data.state)return{success:!1}}}a.default.debug("发送完所有数据包,等待设备回复");const y=(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 80:return new B.default(i)}return null},m=yield this.handleWatchBleData(o,y,1e4);if(m.success&&0===m.data.state){a.default.debug("设备回复收到固件,准备重启设备"),i({code:"GizOTAEventReboot"}),this.disConnectDevice(o),yield(0,p.default)(1e4);const n=yield this.connectDevice(e);if(console.log("connectRes",n),!n.success)return a.default.debug("设备重启后,无法连接"),{success:!1};const s=yield this.getDeviceInfo({deviceId:o});if(!s.success)return a.default.debug("获取设备版本号失败"),{success:!1};let r="";return r="MCU"===t?s.data.mcuSoftVersion:s.data.moduleSoftVersion,i({code:"GizOTAEventFinish"}),r===u?{success:!0}:(a.default.debug("设备上报版本号与更新的固件版本号不匹配,更新失败"),{success:!1})}return{success:!1}}return{success:!1}}return{success:!1,err:S.default.GIZ_SDK_OTA_DEVICE_BUSY_IN_UPGRADE}}return s})),this.getSsidList=e=>s(this,void 0,void 0,(function*(){const t=T.default.pack();this.write(e,t.buffer);return yield this.handleWatchBleData(e,(e,t)=>{switch(console.log("parseData",t),t.cmd){case 70:return new T.default(t.raw).parse()}return null},5e3)})),this.getDeviceInfo=({deviceId:e})=>s(this,void 0,void 0,(function*(){const t=b.default.pack();a.default.debug("DeviceInfo.pack",t),yield this.write(e,(0,_.numberArray2Uint8Array)(t).buffer);return yield this.handleWatchBleData(e,(e,t)=>{const i=(0,h.hexStrint2byte)(t);switch(new d.default(i).cmd){case 20:try{const e=new b.default(i);return a.default.debug("parse DeviceInfo",e),e}catch(e){a.default.debug("parse DeviceInfo error",e)}}return null})})),this.checkUpdate=({device:e,type:t})=>s(this,void 0,void 0,(function*(){const i=yield this.getDeviceInfo({deviceId:e.bleDeviceID});if(i.success){let n="",s="";return"MCU"===t?(n=i.data.mcuSoftVersion,s=i.data.mcuHardVersion):(n=i.data.moduleSoftVersion,s=i.data.moduleHardVersion),yield(0,D.checkUpdate)({did:e.did,type:t,softVersion:n,hardVersion:s})}return{success:!1,err:i.err}})),this.watchBleDevice=(e,t)=>s(this,void 0,void 0,(function*(){const{serviceId:i,characteristics:n,errMsg:s}=this.getTargetDevice(e);if(s)return{success:!1,message:s};for(let t=0;t<n.length;t++)(n[t].properties.notify||n[t].properties.indicate)&&(yield(0,y.notifyBLECharacteristicValueChange)(e,i,n[t].uuid));return a.default.log(`监听设备 ${e} 成功!`),this.addEventListener("GizBleDeviceData",t),{message:"ok",success:!0}})),this.sendAdv=(e,t=1e3)=>s(this,void 0,void 0,(function*(){try{return this.peripheralServer.stopAdvertising({}),this.peripheralServer.startAdvertising({advertiseRequest:{connectable:!0,serviceUuids:e},powerLevel:"high",success:e=>{a.default.debug("GIZ_SDK: startAdvertising success",e)},fail:e=>{a.default.error("GIZ_SDK: startAdvertising error",new Error(JSON.stringify(e)))}}),a.default.debug("GIZ_SDK: start adv",e),yield(0,p.default)(t),this.peripheralServer.stopAdvertising({}),{success:!0}}catch(e){return a.default.log("GIZ_SDK:",e),{success:!1,message:"send cmd error"}}})),this.writeBigDataTimeoutHandle=null,this.writeBigData=(e,t)=>s(this,void 0,void 0,(function*(){return new Promise((i,n)=>s(this,void 0,void 0,(function*(){if(this.writeBigDataTimeoutHandle)return void i({success:!1,message:"send big data already"});const n=this.scanList.find(t=>t.bleDeviceID===e);if(!n)return{success:!1,message:"not found device"};let s=-1;const r=(0,_.splitIntoChunks)(t,19);r.map((e,t)=>{r[t].unshift(t)});const o=(0,_.convertToServiceUuids)({mac:n.mac,index:0,data:[r.length],len:1,cmd:151}),c=r.map(e=>(0,_.convertToServiceUuids)({mac:n.mac,index:0,data:e,len:e.length,cmd:153})),u=(t,i)=>{if(console.log("boardCastData",t.deviceId,e),t.deviceId==e)switch(i.cmd){case 154:{const e=i.data[0];parseInt(e,16)===s?(s+=1,a.default.debug("设备回复收到数据包",e)):a.default.debug("数据包序号不匹配",e,s);break}case 152:s=0,a.default.debug("设备回复引导,开始发送数据")}};this.addBoardCastDataListener(u);let l=!0;for(this.writeBigDataTimeoutHandle=setTimeout(()=>{a.default.debug("发送大数据超时"),i({success:!1,message:"write big data timeout"}),this.removeBoardCastDataListener(u),this.writeBigDataTimeoutHandle=null,l=!1},2e4);s<r.length&&l;){if(!this.writeBigDataTimeoutHandle)return;if(-1==s)a.default.debug("发送引导包",o),yield this.sendAdv(o);else{const e=c[s];a.default.debug("发送数据包",e),e&&(yield this.sendAdv(e))}}this.removeBoardCastDataListener(u),l&&(this.writeBigDataTimeoutHandle&&(clearTimeout(this.writeBigDataTimeoutHandle),this.writeBigDataTimeoutHandle=null),i({success:!0,message:"write big data success"}))})))})),this.writeBoradcast=(e,t)=>s(this,void 0,void 0,(function*(){const i=this.scanList.find(t=>t.bleDeviceID===e);if(!i)return{success:!1,message:"not found device"};const n=(0,_.convertToServiceUuids)({mac:i.mac,index:0,data:t,len:t.length,cmd:147});return this.sendAdv(n)})),this.write=(e,t)=>s(this,void 0,void 0,(function*(){return this.methodQueue=this.methodQueue.then(()=>s(this,void 0,void 0,(function*(){a.default.log("app => dev:",(0,_.ab2hex)(t));const i=this.getTargetDevice(e);if(a.default.log("write",i),i.serviceId&&i.characteristicId){const n=yield(0,y.unpackWriteBLECharacteristicValue)(e,i.serviceId,i.characteristicId,t);return 0==n.errCode?{success:!0,message:n.errMsg}:{success:!1,message:n.errMsg}}return{success:!1,message:"send cmd error"}}))),this.methodQueue})),this.disConnectDevice=e=>s(this,void 0,void 0,(function*(){this.removeDevById(e);const{errMsg:t}=yield wx.closeBLEConnection({deviceId:e});console.debug("disConnectDevice",e,t);const i=this.scanList.find(t=>t.bleDeviceID===e);return i&&(i.ctime=Date.now(),this.updateDevice(i)),"closeBLEConnection:ok"===t?{err:t,success:!0}:{err:t,success:!1}})),this.removeDevById=e=>{const t=this.connectedList.findIndex(t=>t.deviceId===e);-1!==t&&this.connectedList.splice(t,1)},this.getTargetDevice=e=>{const t=this.connectedList.find(t=>e===t.deviceId);return t||{errMsg:"Unable get this device,maybe you forgot to connect it."}},this.boardCastDataListenerCallbacks=[],this.notiBoardCastData=(e,t)=>{this.boardCastDataListenerCallbacks.forEach(i=>{i(e,t)})},this.addBoardCastDataListener=e=>{this.boardCastDataListenerCallbacks.push(e)},this.removeBoardCastDataListener=e=>{this.boardCastDataListenerCallbacks=this.boardCastDataListenerCallbacks.filter(t=>t!==e)},this.destory=()=>{this.listenDevOfflineTimer&&clearInterval(this.listenDevOfflineTimer),wx.offAppShow(this.onAppShow),wx.offAppHide(this.onAppHide),wx.offBluetoothAdapterStateChange(this.onBluetoothAdapterStateChange)};const{serviceUUIDSuffix:o}=i;this.serviceUUIDSuffix=o,this.pks=e,this.shortPks=t,this.offlineThreshold=n,this.listenDevOffline(),this.listenConnection(),wx.onAppShow(this.onAppShow),wx.onAppHide(this.onAppHide),wx.onBluetoothAdapterStateChange(this.onBluetoothAdapterStateChange)}connectDeviceBle(e){var t,i;return s(this,void 0,void 0,(function*(){yield this.disableScan();const n=yield(0,y.retryConnect)(e.bleDeviceID,this.serviceUUIDSuffix);return this.enableScan(),a.default.debug("connect res",n),n.success||(a.default.error("GIZ_SDK: createBLEConnection error",new Error(JSON.stringify(n.error))),"createBLEConnection:fail:already connect"===(null===(t=n.error)||void 0===t?void 0:t.errMsg))?n.success&&n.data?{success:!0,data:n.data}:{success:!1,message:"connection failed"}:(this.notifyError(n.error),{success:!1,message:null===(i=n.error)||void 0===i?void 0:i.errMsg})}))}connectDeviceBindRequest(e){return s(this,void 0,void 0,(function*(){this.write(e.bleDeviceID,(0,_.numberArray2Uint8Array)(c.default.pack()).buffer);const t=yield this.handleBindReq(e.bleDeviceID);return a.default.log("handleBindReq",t),t.success||(yield wx.closeBLEConnection({deviceId:e.bleDeviceID})),t}))}connectDeviceLoginRequest(e,t){return s(this,void 0,void 0,(function*(){this.write(e.bleDeviceID,(0,_.numberArray2Uint8Array)(l.default.pack({passcode:t})).buffer);const i=yield this.handleLoginReq(e.bleDeviceID).catch(e=>this.notifyError(e));return{success:!!(null==i?void 0:i.success),message:"ok"}}))}_connectDevice(e){return s(this,void 0,void 0,(function*(){const t=yield this.connectDeviceBle(e);if(!t.success)return t;const{serviceId:i,characteristics:n,characteristicId:s}=t.data;this.connectedList.every(t=>t.deviceId!==e.bleDeviceID)&&this.connectedList.push({deviceId:e.bleDeviceID,serviceId:i,characteristics:n,characteristicId:s});for(let t=0;t<n.length;t++){const s=n[t];if(s.properties.notify||s.properties.indicate){console.log("notifyBLECharacteristicValueChange",e.bleDeviceID,i,s.uuid);const t=yield(0,y.notifyBLECharacteristicValueChange)(e.bleDeviceID,i,s.uuid);console.debug("notifyBLECharacteristicValueChange res",t)}}return{success:!0,message:"ok"}}))}}n([k("BleDeviceConnectEnd")],O.prototype,"connectDeviceBle",null),n([k("BleDeviceConnectBind")],O.prototype,"connectDeviceBindRequest",null),n([k("BleDeviceConnectLogin")],O.prototype,"connectDeviceLoginRequest",null),n([function(e,t,i){const{value:n}=i;i.value=function(...e){const t=Object.create(this);return t.__event_id__=function(){let e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){let i=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?i:3&i|8).toString(16)}))}(),(0,f.reportEvent)({device:e[0],eventID:t.__event_id__,eventType:"BleDeviceConnectStart",success:!0}),n.apply(t,e).then(i=>{var{_failureType_:n}=i,s=r(i,["_failureType_"]);return(0,f.reportEvent)(Object.assign({device:e[0],eventID:t.__event_id__,eventType:"BleDeviceConnectFinish",success:s.success},s.success?{}:{failureType:n})),s})}}],O.prototype,"_connectDevice",null),t.BleHandle=O},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setMtu=t.downloadFile=t.unpackWriteBLECharacteristicValue=t.writeBLECharacteristicValue=t.notifyBLECharacteristicValueChange=t.getBLEDeviceCharacteristics=t.getBLEDeviceServices=t.createBLEConnection=t.getBluetoothDevices=t.getConnectedBluetoothDevices=t.startBluetoothDevicesDiscovery=t.getBluetoothAdapterState=t.closeBluetoothAdapter=t.openBluetoothAdapter=t.retryConnect=void 0;const r=s(i(6)),o=s(i(13));function a(e,t){return new Promise((i,n)=>{wx.createBLEConnection({deviceId:e,timeout:t,success:e=>i(e),fail:e=>{-1===e.errCode?i(e):n(e)}})})}function c(e){return new Promise((t,i)=>{wx.getBLEDeviceServices({deviceId:e,success:({services:e})=>t(e),fail:i})})}function u(e,t){return new Promise((i,n)=>{wx.getBLEDeviceCharacteristics({deviceId:e,serviceId:t,success:({characteristics:e})=>i(e),fail:n})})}function l(e,t,i,n){return new Promise(s=>{wx.writeBLECharacteristicValue({deviceId:e,serviceId:t,characteristicId:i,value:n,complete:s})})}t.retryConnect=function(e,t,i=3e3){var s;return n(this,void 0,void 0,(function*(){let n={success:!1,error:null};for(let r=0;r<5;r++)try{console.debug("start createBLEConnection");const n=yield a(e,i);if(n){const i=yield c(e),n=null===(s=i.find(e=>e.isPrimary&&e.uuid.toLowerCase().includes(t)))||void 0===s?void 0:s.uuid;if(!n)throw new Error("can not find valid serviceId");const r=yield u(e,n),o=r.filter(e=>e.properties.write)[0];if(!o)throw new Error("can not find write characteristic");const a=new Uint8Array([0]);return yield l(e,n,o.uuid,a.buffer),{success:!0,error:null,data:{serviceId:n,characteristics:r,characteristicId:o.uuid}}}return{success:n,error:null}}catch(t){n={success:!1,error:t},console.debug("createBLEConnection error retry",t);try{yield wx.closeBLEConnection({deviceId:e})}catch(e){console.debug("disconnect error",e)}yield(0,o.default)(1e3)}return n}))},t.openBluetoothAdapter=function(){return new Promise((e,t)=>{wx.openBluetoothAdapter({success:e,fail:t})})},t.closeBluetoothAdapter=function(){return new Promise((e,t)=>{wx.closeBluetoothAdapter({success:e,fail:t})})},t.getBluetoothAdapterState=function(){return new Promise((e,t)=>{wx.getBluetoothAdapterState({success:e,fail:t})})},t.startBluetoothDevicesDiscovery=function(e=!0){return new Promise((t,i)=>{wx.startBluetoothDevicesDiscovery({success:t,fail:i,allowDuplicatesKey:e,powerLevel:"high",interval:200})})},t.getConnectedBluetoothDevices=function(){return new Promise((e,t)=>{wx.getConnectedBluetoothDevices({services:["abd0"],success:({devices:t})=>e(t),fail:t})})},t.getBluetoothDevices=function(){return new Promise((e,t)=>{wx.getBluetoothDevices({success:({devices:t})=>e(t),fail:t})})},t.createBLEConnection=a,t.getBLEDeviceServices=c,t.getBLEDeviceCharacteristics=u,t.notifyBLECharacteristicValueChange=function(e,t,i,n=!0){return new Promise((s,r)=>{wx.notifyBLECharacteristicValueChange({deviceId:e,serviceId:t,characteristicId:i,state:n,success:s,fail:r})})},t.writeBLECharacteristicValue=l,t.unpackWriteBLECharacteristicValue=function(e,t,i,s,a=256){if(!s||0===s.byteLength)throw new Error("value is empty");return new Promise((c,u)=>n(this,void 0,void 0,(function*(){let n,d=0,h=s.byteLength;for(;h>0;){yield(0,o.default)(10);const c=s.slice(d,d+a);if(d+=a,h-=a,n=yield l(e,t,i,c),r.default.log("unpackWriteBLECharacteristicValue",d/a,n),0!==n.errCode)break}0!==n.errCode?u(n):c(n)})))},t.downloadFile=function({url:e}){return n(this,void 0,void 0,(function*(){return new Promise((t,i)=>{wx.downloadFile({url:e,success(e){t(e)},fail(e){i(e)}})})}))},t.setMtu=function(e,t){return n(this,void 0,void 0,(function*(){return new Promise(i=>{wx.setBLEMTU({mtu:e,deviceId:t,success:e=>{i(e.mtu)},fail:()=>{i(20)}})})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.snManager=t.SnManager=void 0;class n{constructor(){this.sn=0,this.max=32}getSn(){return this.sn+=1,this.sn>=this.max&&(this.sn=1),this.sn}}t.SnManager=n,t.snManager=new n},function(e,t,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||n(t,e,i)},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BleHandle=t.errorCode=void 0,i(36);const o=r(i(37)),a=r(i(4));t.errorCode=a.default;const c=i(32);Object.defineProperty(t,"BleHandle",{enumerable:!0,get:function(){return c.BleHandle}}),t.default=o.default,s(i(104),t)},function(e,t){},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(5),o=i(25),a=s(i(16)),c=i(38),u=s(i(20)),l=i(21),d=s(i(75)),h=i(76),f=i(3),p=i(32),v=s(i(88)),g=s(i(6)),_=s(i(4)),y=i(22),m=i(91),D=i(9),S=s(i(92)),b=s(i(94)),w=s(i(96)),I=a.default.version;class C{get deviceList(){return this._deviceList}set deviceList(e){this._deviceList=e,this.notiDeviceList()}get bleDevices(){return this._bleDevices}set bleDevices(e){this._bleDevices=e,this.notiDeviceList()}get lanDevices(){return this._lanDevices}set lanDevices(e){this._lanDevices=e,this.notiDeviceList()}get allDevices(){let e=(0,D.merageBleLocalDevices)([...this.deviceList],this.bleDevices);e=(0,D.merageLanLocalDevices)(e,this.lanDevices),this.bleHandle.connectedList.map(t=>{const i=e.findIndex(e=>e.bleDeviceID===t.deviceId);-1!==i&&(e[i].connectType="BLE")});const t=this.socketHandle._connections;return Object.keys(t).forEach(i=>{const n=t[i];n&&n._subDids.forEach(t=>{const i=e.findIndex(e=>e.did===t);-1!==i&&(e[i].connectType="WAN")})}),this.lanHandle.connectedList.map(t=>{const i=e.findIndex(e=>e.mac===t.mac&&e.productKey===t.productKey);-1!==i&&(e[i].connectType="LAN")}),e}get bleScanDevice(){return this.bleDevices.filter(e=>!0===e.isBleOnline)}constructor(e){this.listenerMap={},this.keepScanTimer=null,this._deviceList=[],this._bleDevices=[],this._lanDevices=[],this.productInfo=[],this.syncDataCallBack=null,this.syncTotalNum=0,this.syncCurrnetNum=0,this.syncDataTimoutTimer=null,this.SYNC_TIMEOUT=24e4,this.updateProductInfo=e=>{this.productInfo=[...e],this.productInfo.map(e=>{e.shortPk=(0,D.getShortProductKey)(e.productKey)}),(0,r.setGlobalData)("productInfo",this.productInfo),console.log("productInfo",this.productInfo)},this.init=({appID:e,appSecret:t,productInfo:i,cloudServiceInfo:n,token:s,uid:o,offlineThreshold:a})=>{this.updateProductInfo(i),(0,r.setGlobalData)("appID",e),(0,r.setGlobalData)("appSecret",t),(0,r.setGlobalData)("token",s),(0,r.setGlobalData)("uid",o),this.setDomain(n),this.offlineThreshold=a,g.default.debug(`init sdk success, current version: ${C.getVersion().data}`),this.initLan()},this.handleBleError=e=>{this.listenerMap.onBleHandleError&&this.listenerMap.onBleHandleError.map(t=>{t(e)})},this.handleBleDevices=e=>{this.bleDevices=e},this.handleLanDevices=e=>{this.lanDevices=e},this.handleLanDeviceData=(e,t)=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>t.mac===e);if(i){const e=yield(0,l.unpack)((0,f.hexStrint2byte)(t),i.productKey);(null==e?void 0:e.kvData)&&this.listenerMap.GizDeviceAttrsNotifications&&this.listenerMap.GizDeviceAttrsNotifications.map(t=>{t({device:i,data:null==e?void 0:e.kvData})})}})),this.handleBleDeviceData=(e,t)=>n(this,void 0,void 0,(function*(){if(this.allDevices.find(t=>t.bleDeviceID===e.deviceId)){t.cmd}})),this.handleSocketDeviceData=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>t.did===e.did);if(t){if(e.attrs&&null!=e.attrs.is_online){const i=e.attrs.is_online;this.setDeviceMeta(t,"isOnline",i)}this.listenerMap.GizDeviceAttrsNotifications&&(e.attrs&&(e.attrs=yield(0,l.formatEnum)(e.attrs,t.productKey,"int")),this.listenerMap.GizDeviceAttrsNotifications.map(i=>{i(Object.assign({device:t},"attrs"in e?{data:e.attrs}:{raw:e.raw}))}))}})),this.handleSocketStatus=(e,t)=>{const i=this.allDevices.filter(t=>e.includes(t.did)&&"WAN"===t.connectType);g.default.log("handleSocketStatus",e,t),i.forEach(e=>{this.setDeviceMeta(e,"connectType",t?"WAN":"NONE")})},this.notiDeviceList=()=>{var e,t;null===(e=this.listenerMap.GizDeviceListNotifications)||void 0===e||e.map(e=>{e(this.allDevices)}),null===(t=this.listenerMap.onScanListChange)||void 0===t||t.map(e=>{e(this.bleScanDevice)})},this.initLan=()=>{try{this.lanHandle.init(),this.lanHandle.addEventListener("GizLanDeviceList",this.handleLanDevices),this.lanHandle.addEventListener("GizLanDeviceData",this.handleLanDeviceData)}catch(e){g.default.error("init lan error",e)}},this.startAutoScan=e=>{this.keepScanTimer?g.default.debug("startAutoScan fail. keepScanTimer is init"):(this.keepScanTimer=setInterval(()=>n(this,void 0,void 0,(function*(){this.bleHandle.startScan(-1,e)})),9e3),this.bleHandle.startScan(-1,e))},this.stopAutoScan=()=>{this.keepScanTimer&&clearInterval(this.keepScanTimer),this.keepScanTimer=null,this.bleHandle.stopScan()},this.setDeviceMeta=(e,t,i,n=!1)=>{const s=this.allDevices.find(t=>t.mac===e.mac);s&&0!==this.allDevices.length&&(e[t]!==i||n)&&(s[t]=i,this.notiDeviceList())},this.setDevicesMeta=(e,t,i,n=!1)=>{let s=!1;const r=e.map(e=>this.allDevices.find(t=>t.mac===e.mac));for(let e=0;e<r.length;e++){const o=r[e];o&&(o[t]!==i||n)&&(o[t]=i,s=!0)}s&&this.notiDeviceList()},this.initBle=()=>n(this,void 0,void 0,(function*(){try{this.bleHandle.addEventListener("GizBleDeviceData",this.handleBleDeviceData),this.bleHandle.addEventListener("GizBleDeviceList",this.handleBleDevices),this.bleHandle.addEventListener("GizBleError",this.handleBleError);const e=yield this.bleHandle.checkPermission();if(!e.success)return g.default.error("init BLE Error",new Error(JSON.stringify(e))),{success:!1,err:_.default.GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON};g.default.debug("init BLE succcess",e)}catch(e){return g.default.error("init BLE error",e),{success:!1,err:_.default.GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON}}return{success:!0}})),this.scanBleDevice=(e,t)=>n(this,void 0,void 0,(function*(){return this.bleHandle.scanList=[],{success:!0,data:(yield this.bleHandle.startScan(e,t)).scanList}})),this.writeBigData=(e,t)=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return{success:!1,message:"target is undefind"};if("NONE"!==i.connectType)switch(i.connectType){case"BLE_BROADCAST":return yield this.bleHandle.writeBigData(i.bleDeviceID,t)}return{success:!1,message:"the connectType not support write big data"}})),this.write=(e,t)=>n(this,void 0,void 0,(function*(){console.log("write device current device",this.allDevices);const i=this.findDevice(e);if(!i)return{success:!1,message:"target is undefind"};const{data:n,raw:s}=yield(0,l.pack)(t,i.productKey);switch(i.connectType){case"BLE_BROADCAST":return yield this.bleHandle.writeBoradcast(i.bleDeviceID,s.cmd);case"BLE":return n?yield this.bleHandle.write(i.bleDeviceID,(0,D.numberArray2Uint8Array)(n).buffer):{success:!1};case"LAN":return this.lanHandle.write(i,(0,D.numberArray2Uint8Array)(n).buffer);case"WAN":return yield this.socketHandle.writeData(i,t);default:return this.socketHandle.writeData(i,t)}})),this.writeRaw=(e,t)=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return{success:!1,message:"target is undefind"};if("NONE"!==i.connectType)switch(i.connectType){case"BLE_BROADCAST":return yield this.bleHandle.writeBoradcast(i.bleDeviceID,t);case"BLE":return t?yield this.bleHandle.write(i.bleDeviceID,(0,D.numberArray2Uint8Array)(t).buffer):{success:!1};case"WAN":return this.socketHandle.send(i.did,t);case"LAN":return this.lanHandle.write(i,(0,D.numberArray2Uint8Array)(t).buffer)}return{success:!1}})),this.setDeviceTimeStamp=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!t)return{success:!1,message:"target is undefind"};const i=d.default.pack();switch(t.connectType){case"BLE":return this.bleHandle.write(e.bleDeviceID,(0,D.numberArray2Uint8Array)(i).buffer)}return{success:!1,message:"the connectType not support set timestamp"}})),this.syncDeviceData=(e,t=(()=>{}))=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return{success:!1,message:"target is undefind"};if(!i.isBind)return{success:!1,message:"Only the bound devices are supported"};if(this.syncDevice)return{success:!1,message:"Synchronizing"};switch(this.syncDevice=Object.assign({},i),i.connectType){case"BLE":{g.default.debug("start syncDeviceData",e),this.syncDataCallBack=t,this.syncDataTimoutTimer=setTimeout(()=>{this.syncDataCallBack({event:"SYNC_FAIL",message:"sync timeout"}),this.cleanSyncDeviceData()},this.SYNC_TIMEOUT);const i=h.RequestSync.pack();return g.default.debug("sent RequestSync data"),this.bleHandle.write(e.bleDeviceID,(0,D.numberArray2Uint8Array)(i).buffer)}}return{success:!1,message:"the connectType not support sync data"}})),this.queryNeedSyncDataLength=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!t)return{success:!1,message:"target is undefind"};if(!t.isBind)return{success:!1,message:"Only the bound devices are supported"};switch(t.connectType){case"BLE":{const i=h.RequestSync.pack();return this.syncDevice=Object.assign({},t),g.default.debug("sent RequestSync data len"),this.bleHandle.write(e.bleDeviceID,(0,D.numberArray2Uint8Array)(i).buffer),new Promise(e=>{this.syncDataLengthCallback=e,setTimeout(()=>{try{e({success:!1,message:"timeout"})}catch(e){}},3e3)})}}return{success:!1,message:"the connectType not support sync data"}})),this.cancelSyncDeviceData=()=>n(this,void 0,void 0,(function*(){this.cleanSyncDeviceData()})),this.cleanSyncDeviceData=()=>{this.syncDataCallBack&&(this.syncDataCallBack({event:"SYNC_CANCEL"}),this.syncDataCallBack=null),this.syncCurrnetNum=0,this.syncTotalNum=0,this.syncDevice=null,this.syncDataTimoutTimer&&clearTimeout(this.syncDataTimoutTimer)},this.getProductConfig=e=>n(this,void 0,void 0,(function*(){const t=yield u.default.getConfigFile(e);return t?{success:!0,data:t}:{success:!1}})),this.stopScanBleDevice=()=>{this.bleHandle.stopScan()},this.login=e=>n(this,void 0,void 0,(function*(){var t,i,n,s;const o=yield(0,m.AnonymousLogin)({uid:e});if(o.success){const e=null===(i=null===(t=o.data)||void 0===t?void 0:t.data)||void 0===i?void 0:i.token.access_token,a=null===(s=null===(n=o.data)||void 0===n?void 0:n.data)||void 0===s?void 0:s.user.id;(0,r.setGlobalData)("token",e),(0,r.setGlobalData)("uid",a),console.log("login data",a,e),this.socketHandle.updateToken({token:e,uid:a})}return o})),this.wxLogin=()=>n(this,void 0,void 0,(function*(){const e=yield wx.login();if("login:ok"===e.errMsg){const t=yield(0,m.WxAnonymousLogin)({code:e.code});if(t.success){const e=t.data.data.token.access_token,i=t.data.data.user.id;return(0,r.setGlobalData)("token",e),(0,r.setGlobalData)("uid",i),this.socketHandle.updateToken({token:e,uid:i}),{success:!0,data:{expire_at:t.data.data.token.expire_at,token:e,uid:i}}}return{success:!1,message:t.err.errorMessage}}return console.error("wxLogin error",e),{success:!1,message:"wx login failed"}})),this.getSsidList=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!t)return{success:!1,message:"target is undefind"};switch(t.connectType){case"BLE":return this.bleHandle.getSsidList(t.bleDeviceID)}return{success:!1}})),this.findDevice=e=>this.allDevices.find(t=>(0,D.isSameDevice)(t,e))||e,this.getDeviceStatus=(e,t)=>n(this,void 0,void 0,(function*(){const i=this.findDevice(e);if(!i)return{success:!1,message:"target is undefind"};switch(i.connectType){case"BLE_BROADCAST":break;case"BLE":return yield this.bleHandle.getDeviceStatus(i.bleDeviceID,i.productKey,i.rootDeviceId,t);case"WAN":default:return this.socketHandle.readStatus(i,t)}})),this.subscribe=(e,t,i=!0)=>n(this,void 0,void 0,(function*(){g.default.debug("subscribe device:",e);let i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(!i)return g.default.warn("Device Target Not Found"),g.default.warn("current devices ",this.allDevices),{success:!1,message:"device not found"};if("BLE_BROADCAST"===i.connectType)return{success:!0,message:""};const n=(0,D.getFirstConnectType)(i,t);switch("NONE"!==i.connectType&&i.connectType!==n&&(yield this.unSubscribe(i)),n){case"BLE":{const e=yield this.bleHandle.connectDevice(i);return e.success&&(this.setDeviceMeta(i,"connectType","BLE",!0),setTimeout(()=>{this.setDeviceTimeStamp(i)},250),setTimeout(()=>{this.getDeviceStatus(i)},500)),e}case"WAN":{const t=this.socketHandle.connectDevice(i);return t.success&&this.setDeviceMeta(e,"connectType","WAN",!0),t}case"LAN":{const t=yield this.lanHandle.connectDevice(i);return t.success&&this.setDeviceMeta(e,"connectType","LAN",!0),t}}return{success:!1,message:""}})),this.batchSubscribe=(e,t)=>n(this,void 0,void 0,(function*(){var i,n,s;g.default.debug("subscribe devices =>",e);const r=this.allDevices.reduce((e,t)=>Object.assign(Object.assign({},e),{[(0,D.getDeviceId)(t)]:t}),{}),o=e.filter(e=>r[(0,D.getDeviceId)(e)]);if(0===o.length)return g.default.warn("Device Target Not Found"),g.default.warn("current devices ",this.allDevices),{success:!1,message:"device not found"};const a=o.reduce((e,i)=>{const n="BLE_BROADCAST"===i.connectType?"BLE_BROADCAST":(0,D.getFirstConnectType)(i,t);return e[n]||(e[n]=[]),e[n].push(i),e},{}),c=Object.keys(a);if(1===c.length&&"BLE_BROADCAST"===c[0])return{success:!0,message:""};if((null!==(i=a.BLE)&&void 0!==i?i:[]).length>0||(null!==(n=a.LAN)&&void 0!==n?n:[]).length>0)return{success:!1,message:"BLE and LAN can not subscribe together"};const u=null!==(s=a.WAN)&&void 0!==s?s:[];if(0===u.length)return{success:!1,message:"no WAN device"};const l=u.filter(e=>"NONE"!==e.connectType&&"WAN"!==e.connectType);l.length>0&&(yield this.batchWanUnSubscribe(l));const d=this.socketHandle.connectDevices(u);return d.success&&this.setDevicesMeta(u,"connectType","WAN",!0),d})),this.batchWanUnSubscribe=e=>n(this,void 0,void 0,(function*(){const t=yield this.socketHandle.disConnectDevices(e);return t.success&&this.setDevicesMeta(e,"connectType","NONE",!0),t})),this.unSubscribe=e=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));switch(t.connectType){case"BLE":{const e=yield this.bleHandle.disConnectDevice(t.bleDeviceID);return e.success&&this.setDeviceMeta(t,"connectType","NONE",!0),e}case"WAN":{const e=this.socketHandle.disConnectDevice(t);return e.success&&this.setDeviceMeta(t,"connectType","NONE",!0),e}case"LAN":{const e=this.lanHandle.disConnectDevice(t);return e.success&&this.setDeviceMeta(t,"connectType","NONE",!0),e}}return{success:!1}})),this.bindRemoteDevice=({mac:e,productKey:t,alias:i,beOwner:s})=>n(this,void 0,void 0,(function*(){const n=(0,D.getProductInfoThroughPK)(t,this.productInfo);if(n){const r=yield(0,y.bindMac)({mac:e,productKey:t,productSecret:n.productSecret,alias:i,beOwner:s});return this.getBindingList(),r}return{success:!1,err:_.default.GIZ_SDK_PRODUCTKEY_NOT_IN_SPECIFY}})),this.checkUpdate=({device:e,type:t})=>n(this,void 0,void 0,(function*(){const i=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(i){if(!i.did)return{success:!1,err:_.default.GIZ_OPENAPI_DEVICE_NOT_BOUND};switch(i.connectType){case"BLE":return this.bleHandle.checkUpdate({device:e,type:t});default:return{success:!1,err:_.default.GIZ_SDK_OTA_DEVICE_NOT_SUPPORT}}}return{success:!1,err:_.default.GIZ_SDK_DEVICE_NOT_SUBSCRIBED}})),this.getDeviceInfo=({device:e})=>n(this,void 0,void 0,(function*(){const t=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(t){if(!t.did)return{success:!1,err:_.default.GIZ_OPENAPI_DEVICE_NOT_BOUND};switch(t.connectType){case"BLE":return this.bleHandle.getDeviceInfo({deviceId:e.bleDeviceID});default:return{success:!1,err:_.default.GIZ_SDK_OTA_DEVICE_NOT_SUPPORT}}}return{success:!1,err:_.default.GIZ_SDK_DEVICE_NOT_SUBSCRIBED}})),this.startUpgrade=({device:e,type:t,onProgress:i,onEvent:s})=>n(this,void 0,void 0,(function*(){const n=this.allDevices.find(t=>(0,D.isSameDevice)(t,e));if(n){if(!n.did)return{success:!1,err:_.default.GIZ_OPENAPI_DEVICE_NOT_BOUND};switch(n.connectType){case"BLE":return this.bleHandle.startUpgrade({device:e,type:t,productKey:e.productKey,onProgress:i,onEvent:s});default:return{success:!1,err:_.default.GIZ_SDK_OTA_DEVICE_NOT_SUPPORT}}}return{success:!1,err:_.default.GIZ_SDK_DEVICE_NOT_SUBSCRIBED}})),this.unbindDevice=e=>n(this,void 0,void 0,(function*(){const t=yield(0,y.unbindDevice)(e);return t.success&&this.getBindingList(),t})),this.deviceSafetyRegister=({mac:e,productKey:t})=>n(this,void 0,void 0,(function*(){return yield this.deviceSafetyApi({mac:e,productKey:t,isReset:!1})})),this.deviceSafetyUnbind=({mac:e,productKey:t})=>n(this,void 0,void 0,(function*(){return yield this.deviceSafetyApi({mac:e,productKey:t,isReset:!0})})),this.setDeviceOnboardingDeploy=({ssid:e,bssid:t="",password:i,mode:s=0,timeout:o,productKey:a,isBind:c=!0,softAPSSIDPrefix:u,eventCallBack:l,mac:d=""})=>n(this,void 0,void 0,(function*(){if(this.currentWifiConfigHandle)return{success:!1,err:_.default.GIZ_SDK_DEVICE_CONFIG_IS_RUNNING};const n=(new Date).getTime();g.default.debug("GIZ_SDK: 配网开始时间:"+n,s);try{switch(s){case 0:{this.currentWifiConfigHandle=new S.default(e,t,i,this.specialProductKeys,this.specialProductKeySecrets);const s=yield this.currentWifiConfigHandle.setDeviceOnboardingDeploy({timeout:o,isBind:c,productKey:a,softAPSSIDPrefix:u,eventCallBack:l});this.currentWifiConfigHandle=null;const r=(new Date).getTime();return g.default.debug("GIZ_SDK: 配网结束时间:"+r),g.default.debug("GIZ_SDK: 配网用时:"+(r-n)),s}case 3:{this.currentWifiConfigHandle=new b.default(e,t,i,this.specialProductKeys,this.specialProductKeySecrets,this.bleHandle);const s=yield this.currentWifiConfigHandle.setDeviceOnboardingDeploy({timeout:o,isBind:c,productKey:a,softAPSSIDPrefix:u,eventCallBack:l,mac:d});this.currentWifiConfigHandle=null;const r=(new Date).getTime();return g.default.debug("GIZ_SDK: 配网结束时间:"+r),g.default.debug("GIZ_SDK: 配网用时:"+(r-n)),s}case 5:{const s=yield wx.getSystemInfoSync();if(console.log("sysInfosysInfo",s),"android"!==s.platform)return{success:!1,message:"只支持安卓"};const a=(0,r.getGlobalData)("cloudServiceInfo");console.log("cloudServiceInfo",a),this.currentWifiConfigHandle=new w.default(e,t,i,this.specialProductKeys,this.specialProductKeySecrets,(null==a?void 0:a.openAPIInfo)||"api.gizwits.com");const d=yield this.currentWifiConfigHandle.setDeviceOnboardingDeploy({timeout:o,isBind:c,softAPSSIDPrefix:u,eventCallBack:l});this.currentWifiConfigHandle=null;const h=(new Date).getTime();return g.default.debug("GIZ_SDK: 配网结束时间:"+h),g.default.debug("GIZ_SDK: 配网用时:"+(h-n)),d}}}catch(e){return g.default.error("GIZ_SDK: setDeviceOnboardingDeploy",e),e.err&&e.err.errorCode?e:{success:!1,err:_.default.GIZ_SDK_OTHERWISE}}finally{this.currentWifiConfigHandle=null}})),this.setDomain=e=>{const t=e&&e.openAPIInfo||"api.gizwits.com",i=e&&e.cozeAPIInfo||"agent.gizwitsapi.com",n=Object.assign(Object.assign({},e||{}),{openAPIInfo:t,cozeAPIInfo:i});(0,r.setGlobalData)("cloudServiceInfo",n)},this.deviceSafetyApi=({mac:e,productKey:t,isReset:i})=>n(this,void 0,void 0,(function*(){const n=(0,D.getProductInfoThroughPK)(t,this.productInfo);return n?yield(0,y.safeRegister)({productKey:t,productSecret:n.productSecret,mac:e,isReset:i,passcode:"1234567890"}):{success:!1,err:_.default.GIZ_SDK_PRODUCTKEY_NOT_IN_SPECIFY}})),this.getBindingList=()=>n(this,void 0,void 0,(function*(){const e=yield(0,y.getBindingList)();return this.deviceList=e.data||[],this.notiDeviceList(),e})),this.getDevices=()=>n(this,void 0,void 0,(function*(){return yield this.getBindingList(),{success:!0,data:this.allDevices}})),this.stopDeviceOnboardingDeploy=()=>{this.currentWifiConfigHandle&&(this.currentWifiConfigHandle.stopDeviceOnboardingDeploy(),this.currentWifiConfigHandle=null)},this.setLogLevel=e=>g.default.setLogLevel(e),this.renameDevice=(e,t)=>n(this,void 0,void 0,(function*(){return t?e.isBind?yield(0,y.editBindInfo)({did:e.did,name:t}):{success:!1,message:"device not bind"}:{success:!1,message:"please input device name"}})),this.checkAvailableUpdates=(e,t)=>n(this,void 0,void 0,(function*(){var i,n;try{const s=yield(0,o.getDeviceOtaTask)(e);if(s.success&&(null===(n=null===(i=s.data)||void 0===i?void 0:i.data)||void 0===n?void 0:n.length)>0){let e=null;return s.data.data.forEach(i=>{i.firmware_version>t&&(e=Object.assign({version:i.firmware_version,taskId:i.id,status:i.status},i))}),{success:!0,data:e}}return{success:!0,data:null}}catch(e){return{success:!1,err:e.message||"Failed to check updates"}}})),this.getDeviceVersion=e=>n(this,void 0,void 0,(function*(){var t,i;try{const n=yield(0,o.getAiDeviceVersion)({id:e});return n.success&&(null===(t=n.data)||void 0===t?void 0:t.soft_version)&&(null===(i=n.data)||void 0===i?void 0:i.hard_version)?{success:!0,data:{soft_version:n.data.soft_version,hard_version:n.data.hard_version}}:{success:!1,err:_.default.GIZ_SDK_OTHERWISE}}catch(e){return{success:!1,err:_.default.GIZ_SDK_OTHERWISE}}})),this.startUpdate=e=>n(this,void 0,void 0,(function*(){var t,i;try{const n=yield(0,o.getDeviceOtaTask)(e);if(!n.success||!(null===(i=null===(t=n.data)||void 0===t?void 0:t.data)||void 0===i?void 0:i.length))return{success:!0,data:null,message:"No available OTA tasks"};const s=n.data.data[0],r=s.id,a=parseInt(s.status,10);let c={success:!0};if(3===a&&(c=yield(0,o.confirmDeviceOtaTask)(e,r)),c.success){return yield(0,o.pushDeviceOtaTask)(e,r)}return c}catch(e){return{success:!1,err:e.message||"Failed to start update"}}})),this.removeEventListener=(e,t)=>{if(this.listenerMap[e]){const i=this.listenerMap[e].indexOf(t);if(-1!==i)return this.listenerMap[e].splice(i,1),{success:!0}}return{success:!1}},this.addEventListener=(e,t)=>n(this,void 0,void 0,(function*(){return this.listenerMap[e]||(this.listenerMap[e]=[]),-1===this.listenerMap[e].indexOf(t)&&this.listenerMap[e].push(t),{success:!0}})),this.destory=()=>{this.bleHandle.destory(),this.lanHandle.destory(),this.socketHandle.destory(),this.keepScanTimer&&clearInterval(this.keepScanTimer)},this.getOtaStatus=e=>n(this,void 0,void 0,(function*(){try{return yield(0,o.getOtaStatus)(e)}catch(e){return{success:!1,err:_.default.GIZ_SDK_OTHERWISE}}})),this.init(e)}get bleHandle(){return this._bleHandle||(this._bleHandle=new p.BleHandle({pks:this.specialProductKeys,shortPks:this.shortProductKeys,offlineThreshold:this.offlineThreshold})),this._bleHandle}get lanHandle(){return this._lanHandle||(this._lanHandle=new c.LanHandle({pks:this.specialProductKeys})),this._lanHandle}get socketHandle(){return this._gizSocket||(this._gizSocket=new v.default({appID:(0,r.getGlobalData)("appID"),token:(0,r.getGlobalData)("token"),uid:(0,r.getGlobalData)("uid")}),this._gizSocket.subscribeDeviceStatus(this.handleSocketDeviceData),this._gizSocket.subscribeBindingChanged(this.getBindingList),this._gizSocket.subscribeSocketStatus(this.handleSocketStatus)),this._gizSocket}reInit(e){this.init(e),this.lanHandle.pks=this.specialProductKeys,this.bleHandle.pks=this.specialProductKeys,this.bleHandle.offlineThreshold=e.offlineThreshold;const{appID:t,token:i,cloudServiceInfo:n={openAPIInfo:""}}=e,s=n&&n.openAPIInfo||"api.gizwits.com";t===(0,r.getGlobalData)("appID")&&i===(0,r.getGlobalData)("token")&&s===(0,r.getGlobalData)("cloudServiceInfo").openAPIInfo||(this.socketHandle.destory(),this._gizSocket=null,this.socketHandle,this.getBindingList())}get shortProductKeys(){return this.productInfo.map(e=>{var t;return null!==(t=e.shortPk)&&void 0!==t?t:""})}get specialProductKeys(){return this.productInfo.map(e=>{var t;return null!==(t=e.productKey)&&void 0!==t?t:""})}get specialProductKeySecrets(){return this.productInfo.map(e=>{var t;return null!==(t=e.productSecret)&&void 0!==t?t:""})}}C.getVersion=()=>({success:!0,data:I}),t.default=C},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TCPHandler=t.LanHandle=void 0;const r=s(i(6)),o=s(i(29)),a=s(i(65)),c=s(i(1)),u=i(3),l=s(i(13)),d=i(9),h=s(i(31));class f extends h.default{constructor({pks:e}){super(),this.connectedList=[],this.pks=[],this.scanList=[],this.deviceUDPPort=12414,this.appUDPPort=2415,this.offlineThreshold=2e4,this.isActive=!0,this.listenDevOfflineTimer=null,this.init=()=>{this.UDPSocket&&(this.UDPSocket=wx.createUDPSocket(),this.UDPSocket.bind(),this.UDPSocket.onMessage(this.onMessage),this.UDPSocket.onError(this.onError),r.default.info("Start UDP Discover"),this.startDiscover(),this.listenDevOffline(this.offlineThreshold),wx.onAppShow(this.onAppShow),wx.onAppHide(this.onAppHide))},this.onAppShow=()=>{this.isActive=!0,this.scanList.map(e=>{e.ctime=Date.now()})},this.onAppHide=()=>{this.isActive=!1},this.listenDevOffline=e=>{this.listenDevOfflineTimer=setInterval(()=>{if(!this.isActive)return;const t=(new Date).getTime(),i=this.scanList.filter(i=>t-i.ctime<e);i.length!==this.scanList.length&&(r.default.debug("remove lan device"),this.scanList=i,this.notifyDevices())},500)},this.notifyDevices=()=>{this.listenerMap.GizLanDeviceList&&this.listenerMap.GizLanDeviceList.map(e=>{e(this.scanList)})},this.notifyDeviceData=(e,t)=>{this.listenerMap.GizLanDeviceData&&this.listenerMap.GizLanDeviceData.map(i=>{i(e,t)})},this.isSameDevice=(e,t)=>e.mac===t.mac&&e.productKey===t.productKey,this.disConnectDevice=e=>{const t=this.connectedList.findIndex(t=>t.productKey===e.productKey&&t.mac===e.mac);try{return-1!==t&&(this.connectedList[t].socketHandle.destory(),this.connectedList.splice(t,1)),{success:!0}}catch(e){return{success:!1,err:e}}},this.onData=(e,t)=>{this.notifyDeviceData(e,t)},this.connectDevice=e=>n(this,void 0,void 0,(function*(){const t=this.scanList.find(t=>this.isSameDevice(e,t));if(!t)return{success:!1};if(this.connectedList.find(t=>this.isSameDevice(e,t)))return{success:!0};{const e=new p({ip:t.ip,mac:t.mac,productKey:t.productKey,onClose:this.onDeviceClose,onData:this.onData}),i=yield e.connect();return i.success?this.connectedList.push({mac:t.mac,productKey:t.productKey,socketHandle:e}):e.destory(),i}})),this.onError=e=>{r.default.warn("Discover Error",e)},this.isMatchPk=e=>0===this.pks.length||this.pks.includes(e),this.onMessage=e=>{const t=(0,d.ab2numbers)(e.message),i=new a.default(t);""!==i.mac&&this.isMatchPk(i.productKey)&&this.updateDevice(i,e.remoteInfo.address)},this.onDeviceClose=({productKey:e,mac:t})=>{const i=this.connectedList.findIndex(i=>i.productKey===e&&i.mac===t);-1!==i&&this.connectedList.splice(i,1)},this.write=(e,t)=>n(this,void 0,void 0,(function*(){r.default.debug("send data to device",e,t,this.connectedList);const i=this.connectedList.findIndex(t=>this.isSameDevice(t,e));if(-1!==i){return this.connectedList[i].socketHandle.write(t)}return{success:!1,message:"device not sub"}})),this.updateDevice=(e,t)=>{const i=this.scanList.find(t=>t.mac===e.mac);if(i)i.ctime=Date.now();else{const i={mac:e.mac,ip:t,productKey:e.productKey,did:e.did,expandData:e,name:"",isBind:!1,localName:"",connectType:"NONE",isOnline:!1,isLanOnline:!0,isBleOnline:!1,ctime:Date.now()};this.scanList.push(i),this.notifyDevices()}},this.sendBoradCast=()=>{this.UDPSocket&&(this.UDPSocket.send({address:"255.255.255.255",message:a.default.pack(),port:this.deviceUDPPort}),r.default.debug("Send UDP Discover"))},this.startDiscover=()=>{this.sendBoradCast(),this.boradcastTimer=setInterval(()=>{this.sendBoradCast()},5e3)},this.destory=()=>{this.boradcastTimer&&clearInterval(this.boradcastTimer),this.UDPSocket&&this.UDPSocket.close(),this.listenDevOfflineTimer&&clearInterval(this.listenDevOfflineTimer),wx.offAppShow(this.onAppShow),wx.offAppHide(this.onAppHide)},this.pks=e}}t.LanHandle=f;class p{constructor({ip:e,onClose:t,mac:i,productKey:s,onData:a}){this.deviceTCPPort=12416,this.ip="",this.productKey="",this.mac="",this.tcpHandler=null,this.onData=(e,t)=>{},this.onCloseListener=({mac:e,productKey:t})=>{},this.connect=()=>n(this,void 0,void 0,(function*(){return new Promise(e=>n(this,void 0,void 0,(function*(){const t=()=>{const e=o.default.pack();this.tcpHandler.write((0,u.arrayToUint8)(e)),r.default.debug("connect success try login")},i=t=>{e({success:!0,err:t})},n=e=>{};try{this.tcpHandler=wx.createTCPSocket(),this.tcpHandler.onConnect(t),this.tcpHandler.onError(i),this.tcpHandler.onMessage(n),this.tcpHandler.connect({address:this.ip,port:this.deviceTCPPort,timeout:2}),yield(0,l.default)(4e3),e({success:!1,err:null})}catch(t){r.default.error("connect lan error",t),e({success:!1,err:null})}finally{this.tcpHandler.offConnect(t),this.tcpHandler.offError(i),this.tcpHandler.offMessage(n)}})))})),this.write=e=>(this.tcpHandler.write(e),{success:!0}),this.onMessage=e=>{try{const t=(0,d.ab2hex)(e.message),i=new c.default((0,u.hexStrint2byte)(t));r.default.debug("on tcp message",i),this.onData(this.mac,t)}catch(e){}},this.onError=()=>{},this.onClose=()=>{this.onCloseListener({productKey:this.productKey,mac:this.mac})},this.initListener=()=>{this.tcpHandler.onError(this.onError),this.tcpHandler.onMessage(this.onMessage),this.tcpHandler.onClose(this.onClose)},this.destory=()=>{this.tcpHandler&&this.tcpHandler.close(),this.tcpHandler.offError(this.onError),this.tcpHandler.offMessage(this.onMessage),this.tcpHandler.offClose(this.onClose)},this.ip=e,this.mac=i,this.productKey=s,this.onData=a,this.onCloseListener=t}}t.TCPHandler=p},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(12),r=n(i(26));t.default=e=>{const t=wx.getSystemInfoSync(),i={exception:{values:[{type:"Error",value:e.stack,stacktrace:{},mechanism:{type:"generic",handled:!0}}]},level:"error",event_id:(0,s.MD5)(`${(new Date).getTime()}`).toString(),platform:"javascript",sdk:{},timestamp:(new Date).getTime()/1e3,environment:"production",contexts:{device:{},os:{name:t.platform,version:t.version},extra:{}},extra:{message:e.message}};var n={method:"POST",headers:{Connection:"keep-alive","User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2206090 MicroMessenger/8.0.5 Language/zh_CN webview/","content-type":"application/json",Accept:"*/*","Sec-Fetch-Site":"cross-site","Sec-Fetch-Mode":"cors","Sec-Fetch-Dest":"empty",Referer:"https://servicewechat.com/wx6dc8e50cb68bc121/devtools/page-frame.html",Cookie:"__org="},data:JSON.stringify(i)};(0,r.default)("https://appmonitor.gizwits.com/api/21/store/?sentry_key=0b2de791abf548a1bedf0b0ebdd8ecc7&sentry_version=7",n)}},function(e,t){},function(e,t,i){var n;e.exports=(n=i(0),function(){if("function"==typeof ArrayBuffer){var e=n.lib.WordArray,t=e.init;(e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var i=e.byteLength,n=[],s=0;s<i;s++)n[s>>>2]|=e[s]<<24-s%4*8;t.call(this,n,i)}else t.apply(this,arguments)}).prototype=e}}(),n.lib.WordArray)},function(e,t,i){var n;e.exports=(n=i(0),function(){var e=n,t=e.lib.WordArray,i=e.enc;function s(e){return e<<8&4278255360|e>>>8&16711935}i.Utf16=i.Utf16BE={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],s=0;s<i;s+=2){var r=t[s>>>2]>>>16-s%4*8&65535;n.push(String.fromCharCode(r))}return n.join("")},parse:function(e){for(var i=e.length,n=[],s=0;s<i;s++)n[s>>>1]|=e.charCodeAt(s)<<16-s%2*16;return t.create(n,2*i)}},i.Utf16LE={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],r=0;r<i;r+=2){var o=s(t[r>>>2]>>>16-r%4*8&65535);n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var i=e.length,n=[],r=0;r<i;r++)n[r>>>1]|=s(e.charCodeAt(r)<<16-r%2*16);return t.create(n,2*i)}}}(),n.enc.Utf16)},function(e,t,i){var n,s,r;e.exports=(r=i(0),s=(n=r).lib.WordArray,n.enc.Base64url={stringify:function(e,t=!0){var i=e.words,n=e.sigBytes,s=t?this._safe_map:this._map;e.clamp();for(var r=[],o=0;o<n;o+=3)for(var a=(i[o>>>2]>>>24-o%4*8&255)<<16|(i[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|i[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c<n;c++)r.push(s.charAt(a>>>6*(3-c)&63));var u=s.charAt(64);if(u)for(;r.length%4;)r.push(u);return r.join("")},parse:function(e,t=!0){var i=e.length,n=t?this._safe_map:this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var o=0;o<n.length;o++)r[n.charCodeAt(o)]=o}var a=n.charAt(64);if(a){var c=e.indexOf(a);-1!==c&&(i=c)}return function(e,t,i){for(var n=[],r=0,o=0;o<t;o++)if(o%4){var a=i[e.charCodeAt(o-1)]<<o%4*2,c=i[e.charCodeAt(o)]>>>6-o%4*2,u=a|c;n[r>>>2]|=u<<24-r%4*8,r++}return s.create(n,r)}(e,i,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},r.enc.Base64url)},function(e,t,i){var n,s,r,o,a,c;e.exports=(c=i(0),i(27),s=(n=c).lib.WordArray,r=n.algo,o=r.SHA256,a=r.SHA224=o.extend({_doReset:function(){this._hash=new s.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=o._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=o._createHelper(a),n.HmacSHA224=o._createHmacHelper(a),c.SHA224)},function(e,t,i){var n,s,r,o,a,c,u,l;e.exports=(l=i(0),i(14),i(28),s=(n=l).x64,r=s.Word,o=s.WordArray,a=n.algo,c=a.SHA512,u=a.SHA384=c.extend({_doReset:function(){this._hash=new o.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var e=c._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=c._createHelper(u),n.HmacSHA384=c._createHmacHelper(u),l.SHA384)},function(e,t,i){var n;e.exports=(n=i(0),i(14),function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.x64.Word,a=t.algo,c=[],u=[],l=[];!function(){for(var e=1,t=0,i=0;i<24;i++){c[e+5*t]=(i+1)*(i+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)u[e+5*t]=t+(2*e+3*t)%5*5;for(var s=1,r=0;r<24;r++){for(var a=0,d=0,h=0;h<7;h++){if(1&s){var f=(1<<h)-1;f<32?d^=1<<f:a^=1<<f-32}128&s?s=s<<1^113:s<<=1}l[r]=o.create(a,d)}}();var d=[];!function(){for(var e=0;e<25;e++)d[e]=o.create()}();var h=a.SHA3=r.extend({cfg:r.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new o.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var i=this._state,n=this.blockSize/2,s=0;s<n;s++){var r=e[t+2*s],o=e[t+2*s+1];r=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),(B=i[s]).high^=o,B.low^=r}for(var a=0;a<24;a++){for(var h=0;h<5;h++){for(var f=0,p=0,v=0;v<5;v++)f^=(B=i[h+5*v]).high,p^=B.low;var g=d[h];g.high=f,g.low=p}for(h=0;h<5;h++){var _=d[(h+4)%5],y=d[(h+1)%5],m=y.high,D=y.low;for(f=_.high^(m<<1|D>>>31),p=_.low^(D<<1|m>>>31),v=0;v<5;v++)(B=i[h+5*v]).high^=f,B.low^=p}for(var S=1;S<25;S++){var b=(B=i[S]).high,w=B.low,I=c[S];I<32?(f=b<<I|w>>>32-I,p=w<<I|b>>>32-I):(f=w<<I-32|b>>>64-I,p=b<<I-32|w>>>64-I);var C=d[u[S]];C.high=f,C.low=p}var E=d[0],A=i[0];for(E.high=A.high,E.low=A.low,h=0;h<5;h++)for(v=0;v<5;v++){var B=i[S=h+5*v],T=d[S],k=d[(h+1)%5+5*v],O=d[(h+2)%5+5*v];B.high=T.high^~k.high&O.high,B.low=T.low^~k.low&O.low}B=i[0];var x=l[a];B.high^=x.high,B.low^=x.low}},_doFinalize:function(){var t=this._data,i=t.words,n=(this._nDataBytes,8*t.sigBytes),r=32*this.blockSize;i[n>>>5]|=1<<24-n%32,i[(e.ceil((n+1)/r)*r>>>5)-1]|=128,t.sigBytes=4*i.length,this._process();for(var o=this._state,a=this.cfg.outputLength/8,c=a/8,u=[],l=0;l<c;l++){var d=o[l],h=d.high,f=d.low;h=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8),f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),u.push(f),u.push(h)}return new s.init(u,a)},clone:function(){for(var e=r.clone.call(this),t=e._state=this._state.slice(0),i=0;i<25;i++)t[i]=t[i].clone();return e}});t.SHA3=r._createHelper(h),t.HmacSHA3=r._createHmacHelper(h)}(Math),n.SHA3)},function(e,t,i){var n;e.exports=(n=i(0),
2
2
  /** @preserve
3
3
  (c) 2012 by Cédric Mesnil. All rights reserved.
4
4
 
@@ -22,4 +22,4 @@ n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(e){
22
22
  * @author Feross Aboukhadijeh <http://feross.org>
23
23
  * @license MIT
24
24
  */
25
- var n=i(70),s=i(71),r=i(72);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,i){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,i);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return d(this,e)}return u(this,e,t,i)}function u(e,t,i,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,i,n){if(t.byteLength,i<0||t.byteLength<i)throw new RangeError("'offset' is out of bounds");if(t.byteLength<i+(n||0))throw new RangeError("'length' is out of bounds");t=void 0===i&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,i):new Uint8Array(t,i,n);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=h(e,t);return e}(e,t,i,n):"string"==typeof t?function(e,t,i){"string"==typeof i&&""!==i||(i="utf8");if(!c.isEncoding(i))throw new TypeError('"encoding" must be a valid string encoding');var n=0|p(t,i),s=(e=a(e,n)).write(t,i);s!==n&&(e=e.slice(0,s));return e}(e,t,i):function(e,t){if(c.isBuffer(t)){var i=0|f(t.length);return 0===(e=a(e,i)).length||t.copy(e,0,0,i),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?a(e,0):h(e,t);if("Buffer"===t.type&&r(t.data))return h(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function d(e,t){if(l(t),e=a(e,t<0?0:0|f(t)),!c.TYPED_ARRAY_SUPPORT)for(var i=0;i<t;++i)e[i]=0;return e}function h(e,t){var i=t.length<0?0:0|f(t.length);e=a(e,i);for(var n=0;n<i;n+=1)e[n]=255&t[n];return e}function f(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function p(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var i=e.length;if(0===i)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return G(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return K(e).length;default:if(n)return G(e).length;t=(""+t).toLowerCase(),n=!0}}function v(e,t,i){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,i);case"utf8":case"utf-8":return E(this,t,i);case"ascii":return A(this,t,i);case"latin1":case"binary":return B(this,t,i);case"base64":return C(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,t,i);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function _(e,t,i,n,s){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=s?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(s)return-1;i=e.length-1}else if(i<0){if(!s)return-1;i=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:y(e,t,i,n,s);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):y(e,[t],i,n,s);throw new TypeError("val must be string, number or Buffer")}function y(e,t,i,n,s){var r,o=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,i/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(s){var l=-1;for(r=i;r<a;r++)if(u(e,r)===u(t,-1===l?0:r-l)){if(-1===l&&(l=r),r-l+1===c)return l*o}else-1!==l&&(r-=r-l),l=-1}else for(i+c>a&&(i=a-c),r=i;r>=0;r--){for(var d=!0,h=0;h<c;h++)if(u(e,r+h)!==u(t,h)){d=!1;break}if(d)return r}return-1}function m(e,t,i,n){i=Number(i)||0;var s=e.length-i;n?(n=Number(n))>s&&(n=s):n=s;var r=t.length;if(r%2!=0)throw new TypeError("Invalid hex string");n>r/2&&(n=r/2);for(var o=0;o<n;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[i+o]=a}return o}function D(e,t,i,n){return F(G(t,e.length-i),e,i,n)}function S(e,t,i,n){return F(function(e){for(var t=[],i=0;i<e.length;++i)t.push(255&e.charCodeAt(i));return t}(t),e,i,n)}function b(e,t,i,n){return S(e,t,i,n)}function w(e,t,i,n){return F(K(t),e,i,n)}function I(e,t,i,n){return F(function(e,t){for(var i,n,s,r=[],o=0;o<e.length&&!((t-=2)<0);++o)i=e.charCodeAt(o),n=i>>8,s=i%256,r.push(s),r.push(n);return r}(t,e.length-i),e,i,n)}function C(e,t,i){return 0===t&&i===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,i))}function E(e,t,i){i=Math.min(e.length,i);for(var n=[],s=t;s<i;){var r,o,a,c,u=e[s],l=null,d=u>239?4:u>223?3:u>191?2:1;if(s+d<=i)switch(d){case 1:u<128&&(l=u);break;case 2:128==(192&(r=e[s+1]))&&(c=(31&u)<<6|63&r)>127&&(l=c);break;case 3:r=e[s+1],o=e[s+2],128==(192&r)&&128==(192&o)&&(c=(15&u)<<12|(63&r)<<6|63&o)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:r=e[s+1],o=e[s+2],a=e[s+3],128==(192&r)&&128==(192&o)&&128==(192&a)&&(c=(15&u)<<18|(63&r)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),s+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var i="",n=0;for(;n<t;)i+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return i}(n)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,i){return u(null,e,t,i)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,i){return function(e,t,i,n){return l(t),t<=0?a(e,t):void 0!==i?"string"==typeof n?a(e,t).fill(i,n):a(e,t).fill(i):a(e,t)}(null,e,t,i)},c.allocUnsafe=function(e){return d(null,e)},c.allocUnsafeSlow=function(e){return d(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var i=e.length,n=t.length,s=0,r=Math.min(i,n);s<r;++s)if(e[s]!==t[s]){i=e[s],n=t[s];break}return i<n?-1:n<i?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!r(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var i;if(void 0===t)for(t=0,i=0;i<e.length;++i)t+=e[i].length;var n=c.allocUnsafe(t),s=0;for(i=0;i<e.length;++i){var o=e[i];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(n,s),s+=o.length}return n},c.byteLength=p,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?E(this,0,e):v.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",i=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,i).match(/.{2}/g).join(" "),this.length>i&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,i,n,s){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===i&&(i=e?e.length:0),void 0===n&&(n=0),void 0===s&&(s=this.length),t<0||i>e.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&t>=i)return 0;if(n>=s)return-1;if(t>=i)return 1;if(this===e)return 0;for(var r=(s>>>=0)-(n>>>=0),o=(i>>>=0)-(t>>>=0),a=Math.min(r,o),u=this.slice(n,s),l=e.slice(t,i),d=0;d<a;++d)if(u[d]!==l[d]){r=u[d],o=l[d];break}return r<o?-1:o<r?1:0},c.prototype.includes=function(e,t,i){return-1!==this.indexOf(e,t,i)},c.prototype.indexOf=function(e,t,i){return _(this,e,t,i,!0)},c.prototype.lastIndexOf=function(e,t,i){return _(this,e,t,i,!1)},c.prototype.write=function(e,t,i,n){if(void 0===t)n="utf8",i=this.length,t=0;else if(void 0===i&&"string"==typeof t)n=t,i=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(i)?(i|=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}var s=this.length-t;if((void 0===i||i>s)&&(i=s),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var r=!1;;)switch(n){case"hex":return m(this,e,t,i);case"utf8":case"utf-8":return D(this,e,t,i);case"ascii":return S(this,e,t,i);case"latin1":case"binary":return b(this,e,t,i);case"base64":return w(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,i);default:if(r)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),r=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(e,t,i){var n="";i=Math.min(e.length,i);for(var s=t;s<i;++s)n+=String.fromCharCode(127&e[s]);return n}function B(e,t,i){var n="";i=Math.min(e.length,i);for(var s=t;s<i;++s)n+=String.fromCharCode(e[s]);return n}function T(e,t,i){var n=e.length;(!t||t<0)&&(t=0),(!i||i<0||i>n)&&(i=n);for(var s="",r=t;r<i;++r)s+=H(e[r]);return s}function k(e,t,i){for(var n=e.slice(t,i),s="",r=0;r<n.length;r+=2)s+=String.fromCharCode(n[r]+256*n[r+1]);return s}function O(e,t,i){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>i)throw new RangeError("Trying to access beyond buffer length")}function x(e,t,i,n,s,r){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||t<r)throw new RangeError('"value" argument is out of bounds');if(i+n>e.length)throw new RangeError("Index out of range")}function L(e,t,i,n){t<0&&(t=65535+t+1);for(var s=0,r=Math.min(e.length-i,2);s<r;++s)e[i+s]=(t&255<<8*(n?s:1-s))>>>8*(n?s:1-s)}function P(e,t,i,n){t<0&&(t=4294967295+t+1);for(var s=0,r=Math.min(e.length-i,4);s<r;++s)e[i+s]=t>>>8*(n?s:3-s)&255}function M(e,t,i,n,s,r){if(i+n>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function N(e,t,i,n,r){return r||M(e,0,i,4),s.write(e,t,i,n,23,4),i+4}function R(e,t,i,n,r){return r||M(e,0,i,8),s.write(e,t,i,n,52,8),i+8}c.prototype.slice=function(e,t){var i,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(i=this.subarray(e,t)).__proto__=c.prototype;else{var s=t-e;i=new c(s,void 0);for(var r=0;r<s;++r)i[r]=this[r+e]}return i},c.prototype.readUIntLE=function(e,t,i){e|=0,t|=0,i||O(e,t,this.length);for(var n=this[e],s=1,r=0;++r<t&&(s*=256);)n+=this[e+r]*s;return n},c.prototype.readUIntBE=function(e,t,i){e|=0,t|=0,i||O(e,t,this.length);for(var n=this[e+--t],s=1;t>0&&(s*=256);)n+=this[e+--t]*s;return n},c.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,i){e|=0,t|=0,i||O(e,t,this.length);for(var n=this[e],s=1,r=0;++r<t&&(s*=256);)n+=this[e+r]*s;return n>=(s*=128)&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,i){e|=0,t|=0,i||O(e,t,this.length);for(var n=t,s=1,r=this[e+--n];n>0&&(s*=256);)r+=this[e+--n]*s;return r>=(s*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var i=this[e]|this[e+1]<<8;return 32768&i?4294901760|i:i},c.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var i=this[e+1]|this[e]<<8;return 32768&i?4294901760|i:i},c.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),s.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),s.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),s.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),s.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,i,n){(e=+e,t|=0,i|=0,n)||x(this,e,t,i,Math.pow(2,8*i)-1,0);var s=1,r=0;for(this[t]=255&e;++r<i&&(s*=256);)this[t+r]=e/s&255;return t+i},c.prototype.writeUIntBE=function(e,t,i,n){(e=+e,t|=0,i|=0,n)||x(this,e,t,i,Math.pow(2,8*i)-1,0);var s=i-1,r=1;for(this[t+s]=255&e;--s>=0&&(r*=256);)this[t+s]=e/r&255;return t+i},c.prototype.writeUInt8=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):P(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,i,n){if(e=+e,t|=0,!n){var s=Math.pow(2,8*i-1);x(this,e,t,i,s-1,-s)}var r=0,o=1,a=0;for(this[t]=255&e;++r<i&&(o*=256);)e<0&&0===a&&0!==this[t+r-1]&&(a=1),this[t+r]=(e/o>>0)-a&255;return t+i},c.prototype.writeIntBE=function(e,t,i,n){if(e=+e,t|=0,!n){var s=Math.pow(2,8*i-1);x(this,e,t,i,s-1,-s)}var r=i-1,o=1,a=0;for(this[t+r]=255&e;--r>=0&&(o*=256);)e<0&&0===a&&0!==this[t+r+1]&&(a=1),this[t+r]=(e/o>>0)-a&255;return t+i},c.prototype.writeInt8=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):P(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,i){return N(this,e,t,!0,i)},c.prototype.writeFloatBE=function(e,t,i){return N(this,e,t,!1,i)},c.prototype.writeDoubleLE=function(e,t,i){return R(this,e,t,!0,i)},c.prototype.writeDoubleBE=function(e,t,i){return R(this,e,t,!1,i)},c.prototype.copy=function(e,t,i,n){if(i||(i=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-i&&(n=e.length-t+i);var s,r=n-i;if(this===e&&i<t&&t<n)for(s=r-1;s>=0;--s)e[s+t]=this[s+i];else if(r<1e3||!c.TYPED_ARRAY_SUPPORT)for(s=0;s<r;++s)e[s+t]=this[s+i];else Uint8Array.prototype.set.call(e,this.subarray(i,i+r),t);return r},c.prototype.fill=function(e,t,i,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),1===e.length){var s=e.charCodeAt(0);s<256&&(e=s)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!c.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<i)throw new RangeError("Out of range index");if(i<=t)return this;var r;if(t>>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(r=t;r<i;++r)this[r]=e;else{var o=c.isBuffer(e)?e:G(new c(e,n).toString()),a=o.length;for(r=0;r<i-t;++r)this[r+t]=o[r%a]}return this};var U=/[^+\/0-9A-Za-z-_]/g;function H(e){return e<16?"0"+e.toString(16):e.toString(16)}function G(e,t){var i;t=t||1/0;for(var n=e.length,s=null,r=[],o=0;o<n;++o){if((i=e.charCodeAt(o))>55295&&i<57344){if(!s){if(i>56319){(t-=3)>-1&&r.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&r.push(239,191,189);continue}s=i;continue}if(i<56320){(t-=3)>-1&&r.push(239,191,189),s=i;continue}i=65536+(s-55296<<10|i-56320)}else s&&(t-=3)>-1&&r.push(239,191,189);if(s=null,i<128){if((t-=1)<0)break;r.push(i)}else if(i<2048){if((t-=2)<0)break;r.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;r.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;r.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return r}function K(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function F(e,t,i,n){for(var s=0;s<n&&!(s+i>=t.length||s>=e.length);++s)t[s+i]=e[s];return s}}).call(this,i(15))},function(e,t,i){"use strict";t.byteLength=function(e){var t=u(e),i=t[0],n=t[1];return 3*(i+n)/4-n},t.toByteArray=function(e){var t,i,n=u(e),o=n[0],a=n[1],c=new r(function(e,t,i){return 3*(t+i)/4-i}(0,o,a)),l=0,d=a>0?o-4:o;for(i=0;i<d;i+=4)t=s[e.charCodeAt(i)]<<18|s[e.charCodeAt(i+1)]<<12|s[e.charCodeAt(i+2)]<<6|s[e.charCodeAt(i+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===a&&(t=s[e.charCodeAt(i)]<<2|s[e.charCodeAt(i+1)]>>4,c[l++]=255&t);1===a&&(t=s[e.charCodeAt(i)]<<10|s[e.charCodeAt(i+1)]<<4|s[e.charCodeAt(i+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,i=e.length,s=i%3,r=[],o=0,a=i-s;o<a;o+=16383)r.push(l(e,o,o+16383>a?a:o+16383));1===s?(t=e[i-1],r.push(n[t>>2]+n[t<<4&63]+"==")):2===s&&(t=(e[i-2]<<8)+e[i-1],r.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return r.join("")};for(var n=[],s=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,c=o.length;a<c;++a)n[a]=o[a],s[o.charCodeAt(a)]=a;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=e.indexOf("=");return-1===i&&(i=t),[i,i===t?0:4-i%4]}function l(e,t,i){for(var s,r,o=[],a=t;a<i;a+=3)s=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(n[(r=s)>>18&63]+n[r>>12&63]+n[r>>6&63]+n[63&r]);return o.join("")}s["-".charCodeAt(0)]=62,s["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,i,n,s){var r,o,a=8*s-n-1,c=(1<<a)-1,u=c>>1,l=-7,d=i?s-1:0,h=i?-1:1,f=e[t+d];for(d+=h,r=f&(1<<-l)-1,f>>=-l,l+=a;l>0;r=256*r+e[t+d],d+=h,l-=8);for(o=r&(1<<-l)-1,r>>=-l,l+=n;l>0;o=256*o+e[t+d],d+=h,l-=8);if(0===r)r=1-u;else{if(r===c)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,n),r-=u}return(f?-1:1)*o*Math.pow(2,r-n)},t.write=function(e,t,i,n,s,r){var o,a,c,u=8*r-s-1,l=(1<<u)-1,d=l>>1,h=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:r-1,p=n?1:-1,v=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(o++,c/=2),o+d>=l?(a=0,o=l):o+d>=1?(a=(t*c-1)*Math.pow(2,s),o+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,s),o=0));s>=8;e[i+f]=255&a,f+=p,a/=256,s-=8);for(o=o<<s|a,u+=s;u>0;e[i+f]=255&o,f+=p,o/=256,u-=8);e[i+f-p]|=128*v}},function(e,t){var i={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==i.call(e)}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(74)),r=n(i(30));t.default=(0,r.default)("crc-32",s.default)},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let n=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(n=new Int32Array(n));t.default=(e,t)=>{let i=0===t?0:-1^~~t;for(let t=0;t<e.length;t++)i=n[255&(i^e[t])]^i>>>8;return-1^i}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(3);class o extends s.default{}o.pack=()=>{const e=parseInt(`${Date.now()/1e3}`,10),t=(0,r.fillString)(e.toString(2),40);return[0,0,0,3,8,0,0,89].concat((0,r.completeBlock)(t))},t.default=o},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CancelSync=t.DeletePackage=t.SyncPackage=t.RequestSync=void 0;const s=n(i(1)),r=i(3);class o extends s.default{constructor(e){super(e),this.state=0,this.len=0}}t.RequestSync=o,o.pack=()=>[0,0,0,3,3,0,0,113];class a extends s.default{constructor(e){super(e),this.id=0,this.timestemp=0,this.payloadLen=0}}t.SyncPackage=a,a.pack=e=>{let t=e.toString(2);return t=(0,r.fillString)(t,16),[0,0,0,3,5].concat([0,0,115]).concat((0,r.completeBlock)(t))};class c extends s.default{}t.DeletePackage=c,c.pack=e=>{let t=e.toString(2);return t=(0,r.fillString)(t,16),[0,0,0,3,5].concat([0,0,117]).concat((0,r.completeBlock)(t))};class u extends s.default{constructor(e){super(e),this.state=0}}t.CancelSync=u,u.pack=()=>[0,0,0,3,3,0,0,119]},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(20)),o=s(i(1)),a=i(3);class c extends o.default{}c.pack=(e,t,i)=>n(void 0,void 0,void 0,(function*(){const n=yield r.default.getConfigFile(e);if(n){const e="var_len"===n.protocolType,s=[0,0,0,3],r=[0];let o=[0];const c=[0,147];let u=[0,0,0,0],l=[2];if(t){o=[1];const e=(0,a.fillString)(t.length.toString(16),4),i=(0,a.hexStrint2byte)(e),n=(0,a.string2Bytes)(t);u=u.concat(i).concat(n)}if(e){l=[18];let e="";if(i){const t=i.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:1}),{});n.entities[0].attrs.map(i=>{e=t[i.name]?`1${e}`:`0${e}`})}else n.entities[0].attrs.map(()=>{e=`1${e}`});e=(0,a.fillString)(e,8*Math.ceil(e.length/8)),l=l.concat((0,a.hexStrint2byte)(parseInt(e,2).toString(16)))}const d=o.concat(c).concat(u).concat(l);return r[0]=d.length,s.concat(r).concat(d)}return null})),t.default=c},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(3);class o extends s.default{constructor(e){super(e),this.result=!1,this.didLength=0,this.did=""}}o.pack=({passcode:e})=>{let t=[0];const i=(0,r.hexStrint2byte)((0,r.fillString)(e.length.toString(16),4)),n=(0,r.string2Bytes)(e),s=[0].concat([0,8]).concat(i).concat(n);return t=(0,r.hexStrint2byte)(s.length.toString(16)),[0,0,0,3].concat(t).concat(s)},t.default=o},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.reportEvent=void 0;const r=i(16),o=i(5),a=s(i(7));const c=new class{constructor(){wx.getSystemInfoAsync({success:e=>{this.app={wxSdkVersion:e.SDKVersion,gizwitsSdkVersion:r.version,appID:"unknown",bluetoothEnabled:e.bluetoothEnabled,locationEnabled:e.locationEnabled,wifiEnabled:e.wifiEnabled},this.mobile={brand:e.brand,model:e.model,pixelRatio:e.pixelRatio,systemVersion:e.system,platform:e.platform}}})}updateAppId(e){this.app.appID=e}};t.reportEvent=function({device:e,eventID:t,eventType:i,success:s,failureType:r}){return n(this,void 0,void 0,(function*(){c.updateAppId((0,o.getGlobalData)("appID")||"unknown");const n=`/v2/products/${e.productKey}/devices/bluetooth-connect-data`,u=new Date,l={origin:"MINI-WX",mobileInfo:c.mobile,userInfo:null,appInfo:c.app,eventID:t,eventType:i,monitorTarget:{device:e,success:s,failureType:r},time:u,timeStamp:Math.floor(u.getTime()/1e3)};return(0,a.default)(n,{data:l,method:"POST"},!0)}))}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.moduleSoftVersion="",this.moduleHardVersion="",this.mcuSoftVersion="",this.mcuHardVersion="",this.businessVersion="";let t=0;t+=8}}r.pack=()=>[0,0,0,3,3,0,0,19],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.type="MCU",this.state=0,this.version=0}}r.pack=e=>[0,0,0,3,4,0,0,65,"MCU"===e?2:1],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(21),r=n(i(1)),o=i(3);class a extends r.default{constructor(e){super(e),this.state=0,this.processedLen=0,this.processedCrc32="",this.packageMaxLen=20}}a.pack=(e,t,i,n,r)=>{const a=(0,o.string2Bytes)(e),c=e.length,u=(0,o.string2Bytes)((0,o.fillString)(t,8)),l=(0,o.hexStrint2byte)(i),d=(0,o.hexStrint2byte)((0,o.fillString)(r.toString(16),8)),h=(0,o.hexStrint2byte)((0,o.fillString)(n.toString(16),8));let f=[0];f=f.concat([0,67],[c],a,u,l,h,d);const p=(0,s.getVariableLength)(f);return[0,0,0,3].concat(p,f)},t.default=a},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(3);class o extends s.default{constructor(e){super(e)}}o.pack=e=>[0,0,0,3,7,0,0,69,...(0,r.hexStrint2byte)((0,r.fillString)(e.toString(16),8))],t.default=o},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(19),r=i(21),o=n(i(1)),a=i(3);class c extends o.default{constructor(e){super(e),this.packageNum=0,this.state=0;let t=0;t+=2}}c.pack=(e,t)=>{const i=(0,a.hexStrint2byte)((0,a.fillString)(t.toString(16),4)),n=(0,a.hexStrint2byte)((0,a.fillString)(e.length.toString(16),4)),o=(0,a.fillString)((0,s.crc16modbus)(new Uint8Array(e)).toString(16),4),c=(0,a.hexStrint2byte)(o);let u=[0];u=u.concat([0,71],i,n,c,e);const l=(0,r.getVariableLength)(u);return[0,0,0,3].concat(l,u)},t.default=c},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.state=0}}r.pack=e=>[0,0,0,3],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.state=0}}r.pack=e=>[0,0,0,3,4,0,0,80,e],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(34);class o extends s.default{constructor(e){super(e),this.parse=()=>{const e=[];let t=0;for(;t<this.payload.length;){const i=this.payload[t];if(0===i||t+1+i>this.payload.length)break;const n=this.payload.slice(t+1,t+1+i);let s="";for(let e=0;e<n.length;e++)s+="%"+("0"+n[e].toString(16)).slice(-2);let r="";try{console.log("utf8str",s),r=decodeURIComponent(s)}catch(e){console.error("decodeURIComponent error",e,s)}t+=1+i,e.push({ssid:r,rssi:this.payload[t]-100}),t+=1}return e}}}o.pack=()=>{const e=[4,69,...[r.snManager.getSn()],0];return new Uint8Array(e)},t.default=o},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Connection=void 0;const r=s(i(4)),o=s(i(6)),a=s(i(7)),c=i(9),u=i(22);t.default=class{constructor({appID:e,token:t,uid:i,limitSocketNum:s=!0}){this._bindingDevices=null,this._connections={},this.updateToken=({token:e,uid:t})=>{this.token=e,this.uid=t},this._getDevice=e=>{if(null===this._bindingDevices)return r.default.GIZ_SDK_SDK_NOT_INITIALIZED;const t=this._bindingDevices[e];return null==t?r.default.GIZ_OPENAPI_DEVICE_NOT_BOUND:t},this._getConnect=e=>{const t=this._getWebsocketConnInfo(e);return this._connections[t]},this._getDeviceAndConnect=e=>{const t=this._getDevice(e);if((0,c.isError)(t))return t;const i=this._getConnect(t);return null==i?r.default.GIZ_SDK_DEVICE_NOT_SUBSCRIBED:[t,i]},this.connectDevice=e=>{const t=this._getWebsocketConnInfo(e);let i=this._connections[t];if(null==i){const e=Object.keys(this._connections).length;if(0!==this._maxSocketNum&&e>=this._maxSocketNum)return{success:!1,errorCode:r.default.MAX_CONNECT};i=new l({appID:this.appID,token:this.token,uid:this.uid,wsInfo:t,onDeviceStatusChanged:this._handleDeviceStatusChanged,onBindingChanged:this._handleBindingChanged,onSocketStatusChanged:this._handleSocketStatusChanged}),this._connections[t]=i}return i._addSubDid(e.did),null==i._websocket?i._connectWS():i.ready&&i._subDevices([e.did]),{success:!0}},this.connectDevices=e=>{const t={};e.forEach(e=>{const i=this._getWebsocketConnInfo(e);t[i]||(t[i]=[]),t[i].push(e.did)});const i=Object.keys(t).filter(e=>null==this._connections[e]).length,n=Object.keys(this._connections).length;return 0!==this._maxSocketNum&&n+i>this._maxSocketNum?{success:!1,errorCode:r.default.MAX_CONNECT}:(Object.entries(t).forEach(([e,t])=>{let i=this._connections[e];null==i&&(i=new l({appID:this.appID,token:this.token,uid:this.uid,wsInfo:e,onDeviceStatusChanged:this._handleDeviceStatusChanged,onBindingChanged:this._handleBindingChanged,onSocketStatusChanged:this._handleSocketStatusChanged}),this._connections[e]=i),i._addSubDid(...t),null==i._websocket?i._connectWS():i.ready&&i._subDevices(t)}),{success:!0})},this.disConnectDevice=e=>{const t=this._getWebsocketConnInfo(e);let i=this._connections[t];return i&&i._unSubDevices([e.did]),{success:!0}},this.disConnectDevices=e=>{const t={};return e.forEach(e=>{const i=this._getWebsocketConnInfo(e);t[i]||(t[i]=[]),t[i].push(e.did)}),Object.entries(t).forEach(([e,t])=>{const i=this._connections[e];i&&i._unSubDevices(t)}),{success:!0}},this.connect=e=>{const t=this._getDevice(e);if((0,c.isError)(t))return t;const i=this.connectDevice(t);return i.success?null:i.errorCode},this.send=(e,t)=>{const i=this._getDeviceAndConnect(e);return(0,c.isError)(i)?i:i[1]._send({cmd:"c2s_raw",data:{did:e,raw:t}})},this.writeData=(e,t)=>n(this,void 0,void 0,(function*(){const i=yield(0,u.updateDevicesStatus)({data:[{id:e.did,product_key:e.productKey,mac:e.mac,qos:0,property:t}]});if(i.success){const e=i.data.data[0];return e.error?{success:!1,errorCode:r.default.GIZ_SDK_OTHERWISE.errorCode,message:e.msg}:{success:!0}}return{success:!1,errorCode:r.default.GIZ_SDK_OTHERWISE}})),this.write=(e,t)=>{const i=this._getDeviceAndConnect(e);return(0,c.isError)(i)?i:i[1]._send({cmd:"c2s_write",data:{did:e,attrs:t}})},this.readStatus=(e,t)=>n(this,void 0,void 0,(function*(){const t=yield(0,u.getDevicesStatus)(e.did);if(t.success){return{success:!0,data:t.data.data.property}}return{success:!1,errorCode:r.default.GIZ_SDK_OTHERWISE,data:{}}})),this.read=(e,t)=>{const i=this._getDeviceAndConnect(e);return(0,c.isError)(i)?i:i[1]._send({cmd:"c2s_read",data:{did:e,names:t}})},this.destory=()=>{Object.values(this._connections).forEach(e=>e.destory())},this.subscribeDeviceStatus=e=>{this._onDeviceStatusChanged=e},this.subscribeBindingChanged=e=>{this._onBindingChanged=e},this.subscribeSocketStatus=e=>{this._onSocketStatusChanged=e},this._handleDeviceStatusChanged=e=>{this._onDeviceStatusChanged&&this._onDeviceStatusChanged(e)},this._handleBindingChanged=()=>{this._onBindingChanged&&this._onBindingChanged()},this._handleSocketStatusChanged=(...e)=>{this._onSocketStatusChanged&&this._onSocketStatusChanged(...e)},this._getBindingList=(e=20,t=0,i=[])=>n(this,void 0,void 0,(function*(){const n=`/app/bindings?show_disabled=0&limit=${e}&skip=${t}`,{err:s,data:r}=yield(0,a.default)(`${n}`,{method:"GET"});if(s)return{err:s};const o=[...i,...(null==r?void 0:r.devices)||[]];return r&&r.devices.length===e?yield this._getBindingList(e,e+t,o):o})),this._getWebsocketConnInfo=e=>e.host?`wss://wx${e.host}`:"wss://wxstage.gizwits.com",this.appID=e,this.token=t,this.uid=i;const o=wx.getSystemInfoSync().SDKVersion;this._maxSocketNum=s?-1===(0,c.compareWXSDKVersion)(o||"1.0.0","1.7.0")?1:5:0}init(){var e,t;return n(this,void 0,void 0,(function*(){try{const i=yield this._getBindingList();return(null===(e=i.err)||void 0===e?void 0:e.errorCode)?{errorCode:null===(t=i.err)||void 0===t?void 0:t.errorCode,errorMessage:"getting binding list failed"}:(this._bindingDevices=i.reduce((e,t)=>Object.assign(Object.assign({},e),{[t.did]:t}),{}),null)}catch(e){return r.default.GIZ_SDK_OTHERWISE}}))}};class l{constructor({appID:e,token:t,uid:i,wsInfo:s,onDeviceStatusChanged:r,onBindingChanged:a,onSocketStatusChanged:c}){this.ready=!1,this.commType="attrs_v4",this._heartbeatInterval=60,this._keepaliveTime=180,this._loginIntveral=5e3,this.autoSubscribe=!1,this._websocket=null,this._loginFailedTimes=0,this._subDids=new Set,this._socketRespHandleMap={},this._waitSends=[],this.destory=()=>{this._heartbeatTimerId&&clearInterval(this._heartbeatTimerId),this._checkConnectTimerId&&clearInterval(this._checkConnectTimerId),this.close()},this._networkChange=e=>n(this,void 0,void 0,(function*(){o.default.log("network change",e)})),this._appShow=()=>n(this,void 0,void 0,(function*(){o.default.log("app show")})),this._addSubDid=(...e)=>{e.forEach(e=>this._subDids.add(e))},this._removeSubDid=(...e)=>{e.forEach(e=>this._subDids.delete(e))},this._connectWS=()=>{o.default.log("GIZ_SDK: start connect ws"),this._websocket=wx.connectSocket({url:this._wsUrl,fail:e=>{o.default.error("GIZ_SDK: connectSocket error",new Error(JSON.stringify(e)))}}),this._websocket.onClose(this.handleClose),this._websocket.onOpen(this.handleOpen),this._websocket.onError(this.handleError),this._websocket.onMessage(this.handleMessage),this._checkConnectTimerId||(this._checkConnectTimerId=setInterval(()=>{this._websocket||this._connectWS()},1e3))},this._subDevices=e=>{const t={cmd:"subscribe_req",data:e.map(e=>({did:e}))};this._send(t)},this._unSubDevices=e=>{e.map(e=>this._removeSubDid(e))},this._send=(e,t=!1)=>(o.default.log("GIZ_SDK: Socket send",e,t),new Promise(i=>{this._websocket?t||this.ready?this._websocket&&(t||this.ready)&&this._websocket.send({data:JSON.stringify(e),complete:e=>{o.default.log("GIZ_SDK: socket send res",e),o.default.log("resres",e);let t=!1;"sendSocketMessage:ok"===e.errMsg&&(t=!0),i({success:t,message:e.errMsg})},fail:e=>{o.default.error("GIZ_SDK: Socket send error",new Error(JSON.stringify(e))),i({success:!1,message:e.errMsg})}}):i({success:!1,message:"Socket not ready"}):i({success:!1,message:"Socket not init"})})),this.close=()=>{this.ready=!1,this._heartbeatTimerId&&clearInterval(this._heartbeatTimerId),this._websocket&&(this._websocket.close({}),this._websocket=null),this._currentSocketStatus&&(this._currentSocketStatus=!1,this._handleSocketStatusChanged(!1))},this.handleClose=e=>{o.default.error("GIZ_SDK: socket close",new Error(JSON.stringify(e))),this.close(),this._stopPing()},this.handleOpen=()=>{o.default.log(" socket open"),this._login()},this.handleMessage=({data:e})=>{o.default.log("GIZ_SDK: message",e);const t=JSON.parse(e),i=this._socketRespHandleMap[t.cmd];i&&i(t.data)},this.handleError=e=>{o.default.error("GIZ_SDK: socket error",new Error(JSON.stringify(e))),this.close(),this._stopPing()},this._login=()=>{const e={cmd:"login_req",data:{appid:this.appID,uid:this.uid,token:this.token,p0_type:this.commType,heartbeat_interval:this._keepaliveTime,auto_subscribe:this.autoSubscribe}};this._send(e,!0)},this._tryLoginAgain=()=>{this._loginFailedTimes+=1,setTimeout(()=>{this._login()},this._loginFailedTimes*this._loginIntveral)},this._startPing=()=>{this._heartbeatTimerId=setInterval(()=>{this._send({cmd:"ping"})},1e3*this._heartbeatInterval)},this._stopPing=()=>{this._heartbeatTimerId&&clearInterval(this._heartbeatTimerId)},this.pongResp=()=>{},this._currentSocketStatus=!1,this._loginResp=e=>{1==e.success?(this._loginFailedTimes=0,this.ready=!0,this._startPing(),this._subDevices([...this._subDids]),this._currentSocketStatus=!0,this._handleSocketStatusChanged(this._currentSocketStatus),this._consumeWaitSends()):this._loginFailedTimes<3?(o.default.log("GIZ_SDK: Login failed, will try again, please wait..."),this._tryLoginAgain()):(o.default.error("GIZ_SDK: Login failed",new Error("m2m socket login failed")),this.close())},this._consumeWaitSends=()=>{let e=this._waitSends.pop();for(;e;)this._send(e),e=this._waitSends.pop()},this._handleSocketStatusChanged=e=>{this._onSocketStatusChanged&&this._onSocketStatusChanged([...this._subDids],e)},this._subscribeResp=e=>{o.default.log("GIZ_SDK: subscribe_res",e),e&&e.success&&e.success.forEach(e=>this._send({cmd:"c2s_read",data:{did:e.did}})),o.default.debug("GIZ_SDK: subscribe_res",e)},this._onlineResp=e=>{this._isSub(e.did)&&this._onDeviceStatusChanged&&this._onDeviceStatusChanged({did:e.did,attrs:Object.assign({is_online:e.online},e)})},this._rawChangedResp=e=>{this._isSub(e.did)&&this._onDeviceStatusChanged&&this._onDeviceStatusChanged(e)},this._statusChangedResp=e=>{this._isSub(e.did)&&this._onDeviceStatusChanged&&this._onDeviceStatusChanged(e)},this._isSub=e=>this._subDids.has(e),this._invalidMsgResp=e=>{1003===e.error_code&&this._login(),o.default.error("GIZ_SDK: s2c_invalid_msg",new Error(JSON.stringify(e)))},this._bindingChangedResp=e=>{!e.bind&&e.did&&this._removeSubDid(e.did),this._onBindingChanged&&this._onBindingChanged()},this.appID=e,this.token=t,this.uid=i,this._wsUrl=`${s}/ws/app/v1`,this._heartbeatTimerId=void 0,this._loginFailedTimes=0,this._onDeviceStatusChanged=r,this._onBindingChanged=a,this._onSocketStatusChanged=c,this._socketRespHandleMap={pong:this.pongResp,login_res:this._loginResp,subscribe_res:this._subscribeResp,s2c_online_status:this._onlineResp,s2c_raw:this._rawChangedResp,s2c_noti:this._statusChangedResp,s2c_invalid_msg:this._invalidMsgResp,s2c_binding_changed:this._bindingChangedResp},wx.onNetworkStatusChange(this._networkChange),wx.onAppShow(this._appShow)}}t.Connection=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(12),s=({SSID:e,password:t,pk:i})=>{let s=(0,n.MD5)(e+t).toString();s=n.enc.Hex.parse(s);let r=n.enc.Utf8.parse(i),o=n.AES.encrypt(r,s,{iv:s,mode:n.mode.ECB,padding:n.pad.ZeroPadding});return(0,n.MD5)(o.ciphertext).toString()};t.default=({SSID:e,password:t,pks:i})=>{const n=[];return i.map(i=>{const r=s({SSID:e,password:t,pk:i});n.push(r)}),n}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.psKeySign=void 0;const n=i(12);t.psKeySign=e=>{const t=Math.round((new Date).getTime()/1e3),i=e+t;return{Signature:(0,n.MD5)(i).toString(),timestamp:t}}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.WxAnonymousLogin=t.AnonymousLogin=void 0;const s=i(7);t.AnonymousLogin=function({uid:e}){return n(this,void 0,void 0,(function*(){return(0,s.cozeApiRequest)("/v3/users/oauth/anonymous",{data:{openid:e},method:"POST"})}))},t.WxAnonymousLogin=function({code:e}){return n(this,void 0,void 0,(function*(){return(0,s.cozeApiRequest)(`/v3/users/oauth/wechat?code=${e}`,{method:"POST"})}))}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(4)),o=s(i(6)),a=s(i(93)),c=s(i(23)),u=s(i(24)),l=i(5);class d extends c.default{constructor(){super(...arguments),this.disableSendUDP=!1,this.sendMessageInterval=null,this.UDPSocketHandler=null,this.destroy=()=>{this.cleanTimeout(),this.sendMessageInterval&&clearInterval(this.sendMessageInterval),this.sendMessageInterval=null,this.UDPSocketHandler&&(this.UDPSocketHandler.offError(),this.UDPSocketHandler.offMessage(),this.UDPSocketHandler.close())},this.configDevice=({ssid:e,password:t,softAPSSIDPrefix:i})=>(u.default.appendEvent({name:"START_DISCOVER_DEVICE",message:""}),u.default.appendEvent({name:"DISCOVER_DEVICE_SUCCESS",message:""}),u.default.appendEvent({name:"START_CONNECT_DEVICE",message:""}),u.default.appendEvent({name:"CONNECT_DEVICE_SUCCESS",message:""}),new Promise((s,c)=>{o.default.debug("GIZ_SDK: start config device");let d=!1,h=0;const f=(0,l.getGlobalData)("uid"),p=a.default.pack(e,t,f);this.UDPSocketHandler=wx.createUDPSocket(),this.UDPSocketHandler.bind(),this.disableSendUDP=!1,u.default.appendEvent({name:"START_SEND_WIFI_CONFIG",message:""});let v=!1;const g=()=>{try{!this.disableSendUDP&&this.UDPSocketHandler.send({address:"10.10.100.254",port:12414,message:p,offset:0,length:p.byteLength}),v||(v=!0,u.default.appendEvent({name:"START_SEND_WIFI_CONFIG_SUCCESS",message:""}))}catch(e){}};this.sendMessageInterval=setInterval(()=>{g()},2e3),this.UDPSocketHandler.onError(e=>{h+=1,h>2&&(this.destroy(),u.default.appendEvent({name:"START_SEND_WIFI_CONFIG_FAIL",message:""}),c({success:!1,err:{errorCode:r.default.WECHAT_ERROR.errorCode,errorMessage:e.errMsg}}))});const _=()=>n(this,void 0,void 0,(function*(){if(!d){this.UDPSocketHandler.offMessage(),this.UDPSocketHandler.offError(),this.sendMessageInterval&&clearInterval(this.sendMessageInterval),this.disableSendUDP=!0,d=!0;try{s({success:!0,data:[]})}catch(e){c(e)}}}));this.UDPSocketHandler.onMessage(e=>{_()}),wx.onNetworkStatusChange(()=>n(this,void 0,void 0,(function*(){!d&&wx.getConnectedWifi({success:e=>n(this,void 0,void 0,(function*(){-1===e.wifi.SSID.indexOf(i)&&_()}))})})))})),this.setDeviceOnboardingDeploy=({timeout:e,isBind:t=!0,productKey:i,softAPSSIDPrefix:s})=>{const r=this.ssid,o=this.password;return u.default.init({productKey:i,timeout:e,isBind:t,ssid:this.ssid,mode:0}),u.default.appendEvent({name:"START_WIFI_CONFIG",message:""}),new Promise((t,i)=>n(this,void 0,void 0,(function*(){this.destroy(),this.initDeviceOnboardingDeploy(t,i),this.startTimeoutTimer(e);try{yield this.configDevice({ssid:r,password:o,softAPSSIDPrefix:s});u.default.appendEvent({name:"WIFI_CONFIG_SUCCESS",message:""}),t({success:!0,data:[]})}catch(e){i(e)}finally{this.destroy()}})))}}}t.default=d},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(3);class o extends s.default{constructor(e){super(e)}}o.pack=(e,t,i)=>{const n=[],[s,o]=(0,r.formatCodesFromStr)(e),[a,c]=(0,r.formatCodesFromStr)(t),[u,l]=(0,r.formatCodesFromStr)(i),d=[0].concat([0,1],o,s,c,a,l,u);let h=d.length;for(;h>0;)n.push(h),h-=255;const f=[0,0,0,3].concat(n).concat(d),p=new ArrayBuffer(f.length),v=new Uint8Array(p);for(let e=0;e<p.byteLength;e++)v[e]=f[e];return v},t.default=o},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(4)),o=i(9),a=s(i(6)),c=s(i(95)),u=s(i(13)),l=i(33),d=s(i(23)),h=s(i(24)),f=i(5);class p extends d.default{constructor(e,t,i,s,d,p){super(e,t,i,s,d),this.retryTimes=0,this.maxRetryTimes=3,this.sendBLEConfigCmd=({bleDeviceId:e,arrayBuffer:t,serviceUUIDSuffix:i="abd0",characteristicUUIDSuffix:s="abd5",bleHandle:r,productKey:u,mac:d,eventCallBack:f})=>{let p=null,v=null;const g=()=>null===v?(p&&clearInterval(p),!0):!this.hasTimeoutHandler();return new Promise((s,_)=>n(this,void 0,void 0,(function*(){try{a.default.debug("GIZ_SDK: ssid info: ",t),v=setTimeout(()=>{p&&clearInterval(p),v=null,s(!1)},5e4),a.default.debug("GIZ_SDK: createBLEConnection start: ",e),yield r.disableScan(),h.default.appendEvent({name:"START_CONNECT_DEVICE",message:""});const n=yield(0,l.retryConnect)(e,i,1e4);if(!n.success)return h.default.appendEvent({name:"CONNECT_DEVICE_FAIL",message:JSON.stringify(n)}),void s(!1);null==f||f({event:"GIZ_CONNECT_SUCCESS",mac:d}),r.enableScan(),a.default.debug("GIZ_SDK: createBLEConnection end, res:",n);const{serviceId:_,characteristics:y,characteristicId:m}=n.data;for(let t=0;t<y.length;t++){const i=y[t];(i.properties.notify||i.properties.indicate)&&(yield(0,l.notifyBLECharacteristicValueChange)(e,_,i.uuid))}null==f||f({event:"GIZ_CONFIG_SEND_SUCCESS",mac:d});const D=(t,i)=>{if(console.debug("curDevice",t,e),t.deviceId!==e)return;const n=(0,o.ab2hex)(i.raw),l=i;switch(console.debug("protocol",l),l.cmd){case 65:p&&clearInterval(p),a.default.debug("GIZ_SDK: 收到设备返回ack",n),null==f||f({event:"GIZ_CONFIG_RECV_SUCCESS",mac:d}),h.default.appendEvent({name:"WIFI_CONFIG_RECV_SUCCESS",message:""});try{this.searchDevice({mac:d,productKey:u}).then(e=>{s(!0)})}catch(e){s(!1),a.default.error("GIZ_SDK: searchDevice error",new Error(JSON.stringify(e)))}break;case 66:{const e=new c.default(i.raw);console.debug("wifiprotocol",e),3===e.state&&(r.removeEventListener("GizBleDeviceData",D),e.log.includes("Incorrect WiFi password")?(null==f||f({event:"GIZ_CONFIG_PASSWORD_ERROR",mac:d}),h.default.appendEvent({name:"GIZ_CONFIG_PASSWORD_ERROR",message:""})):(null==f||f({event:"GIZ_CONFIG_FAIL",mac:d}),h.default.appendEvent({name:"GIZ_CONFIG_FAIL",message:""})),s(!1)),10===e.state&&(r.removeEventListener("GizBleDeviceData",D),null==f||f({event:"GIZ_CONFIG_CONNECT_SUCCESS",mac:d}),h.default.appendEvent({name:"GIZ_CONFIG_CONNECT_SUCCESS",message:""}));break}}};if(r.addEventListener("GizBleDeviceData",D),a.default.debug("GIZ_SDK: on notifyBLECharacteristicValueChange success"),g())return;h.default.appendEvent({name:"START_SEND_WIFI_CONFIG",message:""});try{const i=yield(0,l.unpackWriteBLECharacteristicValue)(e,_,m,t);i.errCode?h.default.appendEvent({name:"START_SEND_WIFI_CONFIG_FAIL",message:JSON.stringify(i)}):h.default.appendEvent({name:"START_SEND_WIFI_CONFIG_SUCCESS",message:""})}catch(e){a.default.error("GIZ_SDK: sendBLEConfigCmd error",new Error(JSON.stringify(e)))}p=setInterval(()=>{g()||(0,l.unpackWriteBLECharacteristicValue)(e,_,m,t)},2e3),a.default.debug("GIZ_SDK: unpackWriteBLECharacteristicValue end")}catch(e){a.default.debug("GIZ_SDK: sendBLEConfigCmd error",e)}}))).catch(e=>{a.default.debug("GIZ_SDK: sendBLEConfigCmd error",e)}).finally(()=>{console.debug("GIZ_SDK: sendBLEConfigCmd finally",e),v&&clearTimeout(v),p&&clearInterval(p);try{this.bleHandle.disConnectDevice(e)}catch(e){a.default.error("GIZ_SDK: disConnectDevice error",new Error(JSON.stringify(e)))}})},this.sendBLEConfigCmdWithEswin=({bleDeviceId:e,arrayBuffer:t,serviceUUIDSuffix:i="abd0",characteristicUUIDSuffix:s="abd5",bleHandle:r,eventCallBack:c})=>{let u=null,d=null;console.debug("GIZ_SDK: sendBLEConfigCmdWithEswin",e);const f=()=>null===d?(u&&clearInterval(u),!0):!this.hasTimeoutHandler();return new Promise((p,v)=>n(this,void 0,void 0,(function*(){try{a.default.debug("GIZ_SDK: ssid info: ",t),d=setTimeout(()=>{u&&clearInterval(u),d=null,p(!1)},5e3),a.default.debug("GIZ_SDK: createBLEConnection start: ",e),yield r.disableScan(),h.default.appendEvent({name:"START_CONNECT_DEVICE",message:""});const n=yield(0,l.retryConnect)(e,i,1e4);if(!n.success)return h.default.appendEvent({name:"CONNECT_DEVICE_FAIL",message:JSON.stringify(n)}),void p(!1);null==c||c({event:"GIZ_CONNECT_SUCCESS",mac:e}),r.enableScan(),a.default.debug("GIZ_SDK: createBLEConnection end, res:",n);const v=yield(0,l.getBLEDeviceServices)(e);a.default.debug("GIZ_SDK: getBLEDeviceServices end, res:",v);const g=v.find(e=>e.uuid.split("-")[0].toLowerCase().endsWith(i));if(!g)return a.default.debug("GIZ_SDK: get ble device services fail",e,v),h.default.appendEvent({name:"CONNECT_DEVICE_FAIL",message:JSON.stringify({bleDeviceId:e,message:"GIZ_SDK: get ble device services fail"})}),void p(!1);const _=yield(0,l.getBLEDeviceCharacteristics)(e,g.uuid);a.default.debug("GIZ_SDK: getBLEDeviceCharacteristics end, res:",_);const y=_.find(e=>e.uuid.split("-")[0].toLowerCase().endsWith(s));if(!y)return a.default.debug("GIZ_SDK: get ble device characteristics fail",e,_),h.default.appendEvent({name:"CONNECT_DEVICE_FAIL",message:JSON.stringify({bleDeviceId:e,message:"GIZ_SDK: get ble device characteristics fail"})}),void p(!1);for(let t=0;t<_.length;t++){const i=_[t];(i.properties.notify||i.properties.indicate)&&(yield(0,l.notifyBLECharacteristicValueChange)(e,g.uuid,i.uuid))}null==c||c({event:"GIZ_CONFIG_SEND_SUCCESS"});const m=e=>{const t=(0,o.ab2hex)(e.value);a.default.debug("GIZ_SDK: 收到设备返回ack",t),null==c||c({event:"GIZ_CONFIG_RECV_SUCCESS"}),h.default.appendEvent({name:"WIFI_CONFIG_RECV_SUCCESS",message:""}),r.removeEventListener("GizBleDeviceData",m),p(!0)};if(r.addEventListener("GizBleDeviceData",m),wx.onBLECharacteristicValueChange(m),a.default.debug("GIZ_SDK: on notifyBLECharacteristicValueChange success"),f())return;h.default.appendEvent({name:"START_SEND_WIFI_CONFIG",message:""});const D=yield(0,l.unpackWriteBLECharacteristicValue)(e,g.uuid,y.uuid,t);D.errCode?h.default.appendEvent({name:"START_SEND_WIFI_CONFIG_FAIL",message:JSON.stringify(D)}):h.default.appendEvent({name:"START_SEND_WIFI_CONFIG_SUCCESS",message:""}),u=setInterval(()=>{f()||(0,l.unpackWriteBLECharacteristicValue)(e,g.uuid,y.uuid,t)},2e3),a.default.debug("GIZ_SDK: unpackWriteBLECharacteristicValue end")}catch(e){v(!1),a.default.debug("GIZ_SDK: sendBLEConfigCmd error",e)}}))).catch(e=>{a.default.debug("GIZ_SDK: sendBLEConfigCmd error",e)}).finally(()=>{d&&clearTimeout(d),u&&clearInterval(u),this.bleHandle.disConnectDevice(e)})},this.destroy=()=>{this.cleanTimeout()},this.isValidBleDevice=(e,t)=>0!==e.bleWorkStatus&&(!!this.specialProductKeys.includes(e.productKey)&&(a.default.debug(`GIZ_SDK: isValidBleDevice mac: ${e.mac} pk: ${e.productKey} name: ${e.name}`),a.default.debug(`GIZ_SDK: softAPSSIDPrefix: ${t} ismatch : ${e.name&&e.name.startsWith(t)}`),!t||e.name&&e.name.startsWith(t)||e.localName&&e.localName.startsWith(t))),this.enableBluetoothDevicesDescovery=()=>n(this,void 0,void 0,(function*(){return(yield(0,l.getBluetoothAdapterState)()).available?(yield(0,l.startBluetoothDevicesDiscovery)(),{success:!0}):{success:!1,err:{errorCode:r.default.GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON.errorCode,errorMessage:"蓝牙状态不可用"}}})),this.enableAndGetBluetoothDevices=(e,t)=>n(this,void 0,void 0,(function*(){const e=yield this.enableBluetoothDevicesDescovery();if(!e.success)return e;a.default.debug("GIZ_SDK: start enableAndGetBluetoothDevices");let i=this.bleHandle.scanList.filter(e=>e.mac.toUpperCase()==(null==t?void 0:t.toUpperCase()));return a.default.debug("GIZ_SDK: getBluetoothDevices success",i),{success:!0,bleDevices:i}})),this.setDeviceOnboardingDeploy=({timeout:e,isBind:t=!0,softAPSSIDPrefix:i,productKey:s,eventCallBack:r=(e=>{}),mac:o=""})=>(h.default.init({productKey:s,timeout:e,isBind:t,ssid:this.ssid,mode:3}),h.default.appendEvent({name:"START_WIFI_CONFIG",message:""}),this.eventCallBack=r,new Promise((t,s)=>n(this,void 0,void 0,(function*(){var n;this.bleHandle.scanList=[];try{const e=yield(0,l.getConnectedBluetoothDevices)();console.log("connectedBluetoothDevices",e),e.length>0&&e.forEach(e=>{this.bleHandle.disConnectDevice(e.deviceId)})}catch(e){a.default.debug("GIZ_SDK: getConnectedBluetoothDevices error",e)}null===(n=this.eventCallBack)||void 0===n||n.call(this,{event:"GIZ_CONFIG_START",mac:o});const r=this.ssid,c=this.password;this.destroy(),this.initDeviceOnboardingDeploy(t,s),this.startTimeoutTimer(e);try{const n=((yield this.configBLEDevice({ssid:r,password:c,timeout:1e3*e,softAPSSIDPrefix:i,mac:o})).data||[]).map(e=>({mac:e.mac,productKey:e.product_key,did:e.did,name:"",localName:"",isBind:!1,connectType:"NONE",isBleOnline:!1,isLanOnline:!1,isOnline:!1}));h.default.appendEvent({name:"WIFI_CONFIG_SUCCESS",message:JSON.stringify(n)}),t({success:!0,data:n})}catch(e){console.error("GIZ_SDK: setDeviceOnboardingDeploy error",e),h.default.appendEvent({name:"WIFI_CONFIG_FAIL",message:`${e}`}),t({success:!1,data:e})}finally{this.destroy()}})))),this.configBLEDevice=({ssid:e,password:t,softAPSSIDPrefix:i,mac:s})=>new Promise((d,p)=>n(this,void 0,void 0,(function*(){a.default.debug("GIZ_SDK: start config ble device"),yield(0,l.startBluetoothDevicesDiscovery)(!0),h.default.appendEvent({name:"START_DISCOVER_DEVICE",message:""});const v=yield this.enableAndGetBluetoothDevices(i,s).catch(e=>(h.default.appendEvent({name:"DISCOVER_DEVICE_FAIL",message:JSON.stringify(e)}),{success:!1,err:{errorCode:r.default.WECHAT_ERROR.errorCode,errorMessage:JSON.stringify(e)}}));if(!(0,o.isWXDevicesResult)(v))return p(v);let g=v.bleDevices;a.default.debug("GIZ_SDK: enableAndGetBluetoothDevices success, target devices: ",g);let _=null;const y=(0,f.getGlobalData)("uid"),m=c.default.pack(e,t,y),D=()=>n(this,void 0,void 0,(function*(){var e;if(a.default.debug("GIZ_SDK: startConfigDevice"),this.hasTimeoutHandler())if(_=g.find(e=>e.mac.toUpperCase()==(null==s?void 0:s.toUpperCase())),_&&(null===(e=this.eventCallBack)||void 0===e||e.call(this,{event:"GIZ_DISCOVER_SUCCESS",mac:_.mac}),h.default.appendEvent({name:"DISCOVER_DEVICE_SUCCESS",message:JSON.stringify(_)}),a.default.debug("GIZ_SDK: startConfigDevice, target device: ",_)),_){h.default.updateProductKey(_.productKey);let e=!1;e="30f360d17f574bbd8dee8ae47a6cfd67"===_.productKey?!0===(yield this.sendBLEConfigCmdWithEswin({bleDeviceId:_.bleDeviceID,arrayBuffer:m.buffer,bleHandle:this.bleHandle,eventCallBack:this.eventCallBack,mac:_.mac,productKey:_.productKey})):!0===(yield this.sendBLEConfigCmd({bleDeviceId:_.bleDeviceID,arrayBuffer:m.buffer,bleHandle:this.bleHandle,eventCallBack:this.eventCallBack,mac:_.mac,productKey:_.productKey})),e?d({success:!0,data:[Object.assign(Object.assign({},_),{product_key:_.productKey,mac:_.mac})]}):p({success:!1,err:{errorCode:r.default.GIZ_SDK_BLE_DEVICE_SEND_FAILED.errorCode,errorMessage:r.default.GIZ_SDK_BLE_DEVICE_SEND_FAILED.errorMessage}})}else{if(this.retryTimes++,this.retryTimes<=this.maxRetryTimes)return yield(0,u.default)(2e3),g=this.bleHandle.scanList.filter(e=>e.mac.toUpperCase()==(null==s?void 0:s.toUpperCase())),console.log("this.bleHandle.scanList",this.bleHandle.scanList),void(yield D());this.retryTimes=0,p({success:!1,err:{errorCode:r.default.GIZ_SDK_BLE_DEVICE_NOT_FOUND.errorCode,errorMessage:r.default.GIZ_SDK_BLE_DEVICE_NOT_FOUND.errorMessage}})}}));yield D()}))),this.bleHandle=p}}t.default=p},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(9),r=n(i(1)),o=i(34),a=i(3);class c extends r.default{constructor(e){super(e),this.state=-1,this.logLen=0,this.log="",this.logBytes=new Uint8Array,this.state=this.payload[0],this.logLen=this.payload[1],this.logLen>0&&(this.logBytes=this.payload.slice(2,2+this.logLen),this.log=(0,s.getPayloadAsUtf8String)(this.logBytes))}}c.pack=(e,t,i)=>{const n=o.snManager.getSn(),s=Math.floor(Date.now()/1e3),r=[n],[c,u]=(0,a.formatCodesFromStr)(e);let l=[],d=0;i&&([l,d]=(0,a.formatCodesFromStr)(i));const[h,f]=(0,a.formatCodesFromStr)(t),p=[s>>24&255,s>>16&255,s>>8&255,255&s],v=[u,...c,0,f,...h,d,...l];console.debug("contentcontentcontentcontent",u,e);const g=[4,64,...r,...[v.length+4],...p,...v];return new Uint8Array(g)},t.default=c},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(97),o=i(98),a=i(99),c=i(101),u=s(i(23));class l extends u.default{constructor(e,t,i,s,u,l){super(e,t,i,s,u),this.address="",this.destroy=()=>{this.cleanTimeout()},this.configDevice=({ssid:e,password:t,bssid:i,address:s})=>n(this,void 0,void 0,(function*(){const{SSIDTLV:n,isSSIDIncludedCH:u}=(0,a.formatSSID)(e),l=(0,o.formatData)(i,"BSSID"),d=(0,o.formatData)(t,"pwd"),h=(0,o.formatData)(s,"address"),f=(0,r.disposeData)(n,u,d,h,l);return console.log(f,"DATA"),(0,c.transceive)(f),yield this.searchDevice({mac:"",productKey:""})})),this.setDeviceOnboardingDeploy=({timeout:e,isBind:t=!0})=>{const i=this.ssid,s=this.password;return new Promise((r,o)=>n(this,void 0,void 0,(function*(){console.log("ssid0",i,s,this.bssid,this.address),this.destroy(),this.initDeviceOnboardingDeploy(r,o),this.startTimeoutTimer(e),console.log("ssid",i,s,this.bssid,this.address);try{const e=((yield this.configDevice({ssid:i,password:s,bssid:this.bssid,address:this.address})).data||[]).map(e=>({mac:e.mac,productKey:e.product_key,did:e.did,localName:"",name:"",isBind:!1,connectType:"NONE",isBleOnline:!1,isLanOnline:!1,isOnline:!1}));if(t)try{r(yield this.bindDevices(e))}catch(e){o(e)}else r({success:!0,data:e})}catch(e){o(e)}finally{this.destroy()}})))},this.address=l}}t.default=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.disposeData=void 0;t.disposeData=(e,t,i,n,s)=>{const r=(()=>{const e=new ArrayBuffer(1),t=new Uint8Array(e);return t[0]=1,t})(),o=(e=>{const t=new ArrayBuffer(1),i=new Uint8Array(t);return i[0]=0,e&&(i[0]=1),i})(t),a=(()=>{const e=new ArrayBuffer(2),t=new Uint8Array(e);return t[0]=parseInt("0x55",16),t[1]=parseInt("0xaa",16),t})(),c=Uint8Array.from([...r,...o,...a]),u=Uint8Array.from([...e,...i,...n,...s]);return console.log(c.buffer,"uint8Array_sign.buffer",c),console.log(u.buffer,"uint8Array_others.buffer",u),{ArrayBuffer_sign:c.buffer,ArrayBuffer_others:u.buffer}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatData=void 0;t.formatData=(e,t)=>{const i=0===e.length,n="BSSID"===t?e.split(":"):e.split("");let s=0,r=null,o=0;switch(t){case"BSSID":s=i?3:n.length+2,r="b",o=i?0:n.length;break;case"pwd":s=e.length+2,r="p",o=e.length;break;case"address":s=i?3:n.length+2,r="i",o=i?0:n.length}const a=new ArrayBuffer(s),c=new Uint8Array(a);return c[0]=r.charCodeAt(0),c[1]=o,i?c[2]=0:n.forEach((e,i)=>{const n="BSSID"===t?parseInt(e,16):e.charCodeAt(0);c[i+2]=n}),console.log(a,c,"formatData",t),c}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.formatSSID=void 0;const s=i(3),r=n(i(100));t.formatSSID=e=>{const t={SSIDTLV:null,isSSIDIncludedCH:(0,r.default)(e)},[i,n]=(0,s.formatCodesFromStr)(e),o=parseInt((0,s.arrayToString)([n]),16);if(o<=127){const e=new ArrayBuffer(o+2),n=new Uint8Array(e);n[0]="s".charCodeAt(0),n[1]=o,i.forEach((e,t)=>{n[t+2]=e}),t.SSIDTLV=n}else{const e=parseInt(n/255)+1,s=new ArrayBuffer(o+2+e),r=new Uint8Array(s);if(r[0]="s".charCodeAt(0),r[1]=128+e,1===e)r[2]=o;else{r[e]=255,r[e+1]=o-255*(e-1);for(let t=e;t>=1;t--)0===r[e-t]&&(r[e-t]=255)}i.forEach((t,i)=>{r[i+2+e]=t}),t.SSIDTLV=r}return t}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return/.*[\u4e00-\u9fa5]+.*$/.test(e)}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.transceive=void 0;const s=i(102),r=i(103);t.transceive=e=>{const t=wx.getNFCAdapter();t.startDiscovery(),t.onDiscovered(i=>n(void 0,void 0,void 0,(function*(){console.log(i,"onDiscovered");let n=!0;const{success:o,nfcA:a}=yield(0,s.nfcAConnect)(t);if(o){const t=e.ArrayBuffer_others.byteLength,i=parseInt(t%4),s=parseInt(t/4);let o=s;const c=new Uint8Array(e.ArrayBuffer_others);for(let e=0;e<=4*s-4;e+=4){if(o>0){const t=new ArrayBuffer(6),i=new Uint8Array(t),u=49+s-o;i[0]=parseInt("0xa2",16),i[1]=u,i[2]=c[0+e],i[3]=c[1+e],i[4]=c[2+e],i[5]=c[3+e];const{transceiveSuccess:l}=yield(0,r.nfcATransceive)(a,t);if(o-=1,!l){n=!1,wx.hideLoading(),wx.showToast({title:"NFC写入失败!",icon:"error",duration:2e3});break}}if(0!==i&&n){const e=new ArrayBuffer(6),n=new Uint8Array(e),o=49+s;switch(n[0]=parseInt("0xa2",16),n[1]=o,i){case 1:n[2]=c[t-1];break;case 2:n[2]=c[t-2],n[3]=c[t-1];break;case 3:n[2]=c[t-3],n[3]=c[t-2],n[4]=c[t-1]}const{transceiveSuccess:u}=yield(0,r.nfcATransceive)(a,e);u||(wx.hideLoading(),wx.showToast({title:"NFC写入失败!",icon:"error",duration:2e3}))}}const u=new ArrayBuffer(6),l=new Uint8Array(u),d=new Uint8Array(e.ArrayBuffer_sign);l[0]=parseInt("0xa2",16),l[1]=48,l[2]=d[0],l[3]=d[1],l[4]=d[2],l[5]=d[3];const{transceiveSuccess:h}=yield(0,r.nfcATransceive)(a,u);wx.hideLoading(),wx.showToast(h?{title:"NFC写入成功!",icon:"success",duration:2e3}:{title:"NFC写入失败!",icon:"error",duration:2e3}),a.close()}else wx.hideLoading(),wx.showToast({title:"NFC连接失败!",icon:"error",duration:2e3})})))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nfcAConnect=void 0;t.nfcAConnect=e=>new Promise(t=>{const i=e.getNfcA();i.connect({success(){t({success:!0,nfcA:i})},fail(){t({success:!1,nfcA:i})}})})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nfcATransceive=void 0;t.nfcATransceive=(e,t)=>new Promise(i=>{e.transceive({data:t,success:e=>{console.log("success",e),i({transceiveSuccess:!0})},fail:e=>{console.log("fail",e),i({transceiveSuccess:!1})}})})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OtaStatus=void 0,function(e){e.CHECKING="CHECKING",e.LATEST="LATEST",e.UPDATE_AVAILABLE="UPDATE_AVAILABLE",e.UPDATING="UPDATING",e.UPDATE_SUCCESS="UPDATE_SUCCESS"}(t.OtaStatus||(t.OtaStatus={}))}]);
25
+ var n=i(70),s=i(71),r=i(72);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,i){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,i);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return d(this,e)}return u(this,e,t,i)}function u(e,t,i,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,i,n){if(t.byteLength,i<0||t.byteLength<i)throw new RangeError("'offset' is out of bounds");if(t.byteLength<i+(n||0))throw new RangeError("'length' is out of bounds");t=void 0===i&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,i):new Uint8Array(t,i,n);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=h(e,t);return e}(e,t,i,n):"string"==typeof t?function(e,t,i){"string"==typeof i&&""!==i||(i="utf8");if(!c.isEncoding(i))throw new TypeError('"encoding" must be a valid string encoding');var n=0|p(t,i),s=(e=a(e,n)).write(t,i);s!==n&&(e=e.slice(0,s));return e}(e,t,i):function(e,t){if(c.isBuffer(t)){var i=0|f(t.length);return 0===(e=a(e,i)).length||t.copy(e,0,0,i),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?a(e,0):h(e,t);if("Buffer"===t.type&&r(t.data))return h(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function d(e,t){if(l(t),e=a(e,t<0?0:0|f(t)),!c.TYPED_ARRAY_SUPPORT)for(var i=0;i<t;++i)e[i]=0;return e}function h(e,t){var i=t.length<0?0:0|f(t.length);e=a(e,i);for(var n=0;n<i;n+=1)e[n]=255&t[n];return e}function f(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function p(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var i=e.length;if(0===i)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return G(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return K(e).length;default:if(n)return G(e).length;t=(""+t).toLowerCase(),n=!0}}function v(e,t,i){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,i);case"utf8":case"utf-8":return E(this,t,i);case"ascii":return A(this,t,i);case"latin1":case"binary":return B(this,t,i);case"base64":return C(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,t,i);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function _(e,t,i,n,s){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=s?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(s)return-1;i=e.length-1}else if(i<0){if(!s)return-1;i=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:y(e,t,i,n,s);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):y(e,[t],i,n,s);throw new TypeError("val must be string, number or Buffer")}function y(e,t,i,n,s){var r,o=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,i/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(s){var l=-1;for(r=i;r<a;r++)if(u(e,r)===u(t,-1===l?0:r-l)){if(-1===l&&(l=r),r-l+1===c)return l*o}else-1!==l&&(r-=r-l),l=-1}else for(i+c>a&&(i=a-c),r=i;r>=0;r--){for(var d=!0,h=0;h<c;h++)if(u(e,r+h)!==u(t,h)){d=!1;break}if(d)return r}return-1}function m(e,t,i,n){i=Number(i)||0;var s=e.length-i;n?(n=Number(n))>s&&(n=s):n=s;var r=t.length;if(r%2!=0)throw new TypeError("Invalid hex string");n>r/2&&(n=r/2);for(var o=0;o<n;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[i+o]=a}return o}function D(e,t,i,n){return F(G(t,e.length-i),e,i,n)}function S(e,t,i,n){return F(function(e){for(var t=[],i=0;i<e.length;++i)t.push(255&e.charCodeAt(i));return t}(t),e,i,n)}function b(e,t,i,n){return S(e,t,i,n)}function w(e,t,i,n){return F(K(t),e,i,n)}function I(e,t,i,n){return F(function(e,t){for(var i,n,s,r=[],o=0;o<e.length&&!((t-=2)<0);++o)i=e.charCodeAt(o),n=i>>8,s=i%256,r.push(s),r.push(n);return r}(t,e.length-i),e,i,n)}function C(e,t,i){return 0===t&&i===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,i))}function E(e,t,i){i=Math.min(e.length,i);for(var n=[],s=t;s<i;){var r,o,a,c,u=e[s],l=null,d=u>239?4:u>223?3:u>191?2:1;if(s+d<=i)switch(d){case 1:u<128&&(l=u);break;case 2:128==(192&(r=e[s+1]))&&(c=(31&u)<<6|63&r)>127&&(l=c);break;case 3:r=e[s+1],o=e[s+2],128==(192&r)&&128==(192&o)&&(c=(15&u)<<12|(63&r)<<6|63&o)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:r=e[s+1],o=e[s+2],a=e[s+3],128==(192&r)&&128==(192&o)&&128==(192&a)&&(c=(15&u)<<18|(63&r)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),s+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var i="",n=0;for(;n<t;)i+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return i}(n)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,i){return u(null,e,t,i)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,i){return function(e,t,i,n){return l(t),t<=0?a(e,t):void 0!==i?"string"==typeof n?a(e,t).fill(i,n):a(e,t).fill(i):a(e,t)}(null,e,t,i)},c.allocUnsafe=function(e){return d(null,e)},c.allocUnsafeSlow=function(e){return d(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var i=e.length,n=t.length,s=0,r=Math.min(i,n);s<r;++s)if(e[s]!==t[s]){i=e[s],n=t[s];break}return i<n?-1:n<i?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!r(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var i;if(void 0===t)for(t=0,i=0;i<e.length;++i)t+=e[i].length;var n=c.allocUnsafe(t),s=0;for(i=0;i<e.length;++i){var o=e[i];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(n,s),s+=o.length}return n},c.byteLength=p,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?E(this,0,e):v.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",i=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,i).match(/.{2}/g).join(" "),this.length>i&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,i,n,s){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===i&&(i=e?e.length:0),void 0===n&&(n=0),void 0===s&&(s=this.length),t<0||i>e.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&t>=i)return 0;if(n>=s)return-1;if(t>=i)return 1;if(this===e)return 0;for(var r=(s>>>=0)-(n>>>=0),o=(i>>>=0)-(t>>>=0),a=Math.min(r,o),u=this.slice(n,s),l=e.slice(t,i),d=0;d<a;++d)if(u[d]!==l[d]){r=u[d],o=l[d];break}return r<o?-1:o<r?1:0},c.prototype.includes=function(e,t,i){return-1!==this.indexOf(e,t,i)},c.prototype.indexOf=function(e,t,i){return _(this,e,t,i,!0)},c.prototype.lastIndexOf=function(e,t,i){return _(this,e,t,i,!1)},c.prototype.write=function(e,t,i,n){if(void 0===t)n="utf8",i=this.length,t=0;else if(void 0===i&&"string"==typeof t)n=t,i=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(i)?(i|=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}var s=this.length-t;if((void 0===i||i>s)&&(i=s),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var r=!1;;)switch(n){case"hex":return m(this,e,t,i);case"utf8":case"utf-8":return D(this,e,t,i);case"ascii":return S(this,e,t,i);case"latin1":case"binary":return b(this,e,t,i);case"base64":return w(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,i);default:if(r)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),r=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(e,t,i){var n="";i=Math.min(e.length,i);for(var s=t;s<i;++s)n+=String.fromCharCode(127&e[s]);return n}function B(e,t,i){var n="";i=Math.min(e.length,i);for(var s=t;s<i;++s)n+=String.fromCharCode(e[s]);return n}function T(e,t,i){var n=e.length;(!t||t<0)&&(t=0),(!i||i<0||i>n)&&(i=n);for(var s="",r=t;r<i;++r)s+=H(e[r]);return s}function k(e,t,i){for(var n=e.slice(t,i),s="",r=0;r<n.length;r+=2)s+=String.fromCharCode(n[r]+256*n[r+1]);return s}function O(e,t,i){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>i)throw new RangeError("Trying to access beyond buffer length")}function x(e,t,i,n,s,r){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||t<r)throw new RangeError('"value" argument is out of bounds');if(i+n>e.length)throw new RangeError("Index out of range")}function L(e,t,i,n){t<0&&(t=65535+t+1);for(var s=0,r=Math.min(e.length-i,2);s<r;++s)e[i+s]=(t&255<<8*(n?s:1-s))>>>8*(n?s:1-s)}function P(e,t,i,n){t<0&&(t=4294967295+t+1);for(var s=0,r=Math.min(e.length-i,4);s<r;++s)e[i+s]=t>>>8*(n?s:3-s)&255}function M(e,t,i,n,s,r){if(i+n>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function N(e,t,i,n,r){return r||M(e,0,i,4),s.write(e,t,i,n,23,4),i+4}function R(e,t,i,n,r){return r||M(e,0,i,8),s.write(e,t,i,n,52,8),i+8}c.prototype.slice=function(e,t){var i,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(i=this.subarray(e,t)).__proto__=c.prototype;else{var s=t-e;i=new c(s,void 0);for(var r=0;r<s;++r)i[r]=this[r+e]}return i},c.prototype.readUIntLE=function(e,t,i){e|=0,t|=0,i||O(e,t,this.length);for(var n=this[e],s=1,r=0;++r<t&&(s*=256);)n+=this[e+r]*s;return n},c.prototype.readUIntBE=function(e,t,i){e|=0,t|=0,i||O(e,t,this.length);for(var n=this[e+--t],s=1;t>0&&(s*=256);)n+=this[e+--t]*s;return n},c.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,i){e|=0,t|=0,i||O(e,t,this.length);for(var n=this[e],s=1,r=0;++r<t&&(s*=256);)n+=this[e+r]*s;return n>=(s*=128)&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,i){e|=0,t|=0,i||O(e,t,this.length);for(var n=t,s=1,r=this[e+--n];n>0&&(s*=256);)r+=this[e+--n]*s;return r>=(s*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var i=this[e]|this[e+1]<<8;return 32768&i?4294901760|i:i},c.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var i=this[e+1]|this[e]<<8;return 32768&i?4294901760|i:i},c.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),s.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),s.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),s.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),s.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,i,n){(e=+e,t|=0,i|=0,n)||x(this,e,t,i,Math.pow(2,8*i)-1,0);var s=1,r=0;for(this[t]=255&e;++r<i&&(s*=256);)this[t+r]=e/s&255;return t+i},c.prototype.writeUIntBE=function(e,t,i,n){(e=+e,t|=0,i|=0,n)||x(this,e,t,i,Math.pow(2,8*i)-1,0);var s=i-1,r=1;for(this[t+s]=255&e;--s>=0&&(r*=256);)this[t+s]=e/r&255;return t+i},c.prototype.writeUInt8=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):P(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,i,n){if(e=+e,t|=0,!n){var s=Math.pow(2,8*i-1);x(this,e,t,i,s-1,-s)}var r=0,o=1,a=0;for(this[t]=255&e;++r<i&&(o*=256);)e<0&&0===a&&0!==this[t+r-1]&&(a=1),this[t+r]=(e/o>>0)-a&255;return t+i},c.prototype.writeIntBE=function(e,t,i,n){if(e=+e,t|=0,!n){var s=Math.pow(2,8*i-1);x(this,e,t,i,s-1,-s)}var r=i-1,o=1,a=0;for(this[t+r]=255&e;--r>=0&&(o*=256);)e<0&&0===a&&0!==this[t+r+1]&&(a=1),this[t+r]=(e/o>>0)-a&255;return t+i},c.prototype.writeInt8=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):P(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,i){return e=+e,t|=0,i||x(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,i){return N(this,e,t,!0,i)},c.prototype.writeFloatBE=function(e,t,i){return N(this,e,t,!1,i)},c.prototype.writeDoubleLE=function(e,t,i){return R(this,e,t,!0,i)},c.prototype.writeDoubleBE=function(e,t,i){return R(this,e,t,!1,i)},c.prototype.copy=function(e,t,i,n){if(i||(i=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-i&&(n=e.length-t+i);var s,r=n-i;if(this===e&&i<t&&t<n)for(s=r-1;s>=0;--s)e[s+t]=this[s+i];else if(r<1e3||!c.TYPED_ARRAY_SUPPORT)for(s=0;s<r;++s)e[s+t]=this[s+i];else Uint8Array.prototype.set.call(e,this.subarray(i,i+r),t);return r},c.prototype.fill=function(e,t,i,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),1===e.length){var s=e.charCodeAt(0);s<256&&(e=s)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!c.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<i)throw new RangeError("Out of range index");if(i<=t)return this;var r;if(t>>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(r=t;r<i;++r)this[r]=e;else{var o=c.isBuffer(e)?e:G(new c(e,n).toString()),a=o.length;for(r=0;r<i-t;++r)this[r+t]=o[r%a]}return this};var U=/[^+\/0-9A-Za-z-_]/g;function H(e){return e<16?"0"+e.toString(16):e.toString(16)}function G(e,t){var i;t=t||1/0;for(var n=e.length,s=null,r=[],o=0;o<n;++o){if((i=e.charCodeAt(o))>55295&&i<57344){if(!s){if(i>56319){(t-=3)>-1&&r.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&r.push(239,191,189);continue}s=i;continue}if(i<56320){(t-=3)>-1&&r.push(239,191,189),s=i;continue}i=65536+(s-55296<<10|i-56320)}else s&&(t-=3)>-1&&r.push(239,191,189);if(s=null,i<128){if((t-=1)<0)break;r.push(i)}else if(i<2048){if((t-=2)<0)break;r.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;r.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;r.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return r}function K(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function F(e,t,i,n){for(var s=0;s<n&&!(s+i>=t.length||s>=e.length);++s)t[s+i]=e[s];return s}}).call(this,i(15))},function(e,t,i){"use strict";t.byteLength=function(e){var t=u(e),i=t[0],n=t[1];return 3*(i+n)/4-n},t.toByteArray=function(e){var t,i,n=u(e),o=n[0],a=n[1],c=new r(function(e,t,i){return 3*(t+i)/4-i}(0,o,a)),l=0,d=a>0?o-4:o;for(i=0;i<d;i+=4)t=s[e.charCodeAt(i)]<<18|s[e.charCodeAt(i+1)]<<12|s[e.charCodeAt(i+2)]<<6|s[e.charCodeAt(i+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===a&&(t=s[e.charCodeAt(i)]<<2|s[e.charCodeAt(i+1)]>>4,c[l++]=255&t);1===a&&(t=s[e.charCodeAt(i)]<<10|s[e.charCodeAt(i+1)]<<4|s[e.charCodeAt(i+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,i=e.length,s=i%3,r=[],o=0,a=i-s;o<a;o+=16383)r.push(l(e,o,o+16383>a?a:o+16383));1===s?(t=e[i-1],r.push(n[t>>2]+n[t<<4&63]+"==")):2===s&&(t=(e[i-2]<<8)+e[i-1],r.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return r.join("")};for(var n=[],s=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,c=o.length;a<c;++a)n[a]=o[a],s[o.charCodeAt(a)]=a;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=e.indexOf("=");return-1===i&&(i=t),[i,i===t?0:4-i%4]}function l(e,t,i){for(var s,r,o=[],a=t;a<i;a+=3)s=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(n[(r=s)>>18&63]+n[r>>12&63]+n[r>>6&63]+n[63&r]);return o.join("")}s["-".charCodeAt(0)]=62,s["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,i,n,s){var r,o,a=8*s-n-1,c=(1<<a)-1,u=c>>1,l=-7,d=i?s-1:0,h=i?-1:1,f=e[t+d];for(d+=h,r=f&(1<<-l)-1,f>>=-l,l+=a;l>0;r=256*r+e[t+d],d+=h,l-=8);for(o=r&(1<<-l)-1,r>>=-l,l+=n;l>0;o=256*o+e[t+d],d+=h,l-=8);if(0===r)r=1-u;else{if(r===c)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,n),r-=u}return(f?-1:1)*o*Math.pow(2,r-n)},t.write=function(e,t,i,n,s,r){var o,a,c,u=8*r-s-1,l=(1<<u)-1,d=l>>1,h=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:r-1,p=n?1:-1,v=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(o++,c/=2),o+d>=l?(a=0,o=l):o+d>=1?(a=(t*c-1)*Math.pow(2,s),o+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,s),o=0));s>=8;e[i+f]=255&a,f+=p,a/=256,s-=8);for(o=o<<s|a,u+=s;u>0;e[i+f]=255&o,f+=p,o/=256,u-=8);e[i+f-p]|=128*v}},function(e,t){var i={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==i.call(e)}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(74)),r=n(i(30));t.default=(0,r.default)("crc-32",s.default)},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let n=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(n=new Int32Array(n));t.default=(e,t)=>{let i=0===t?0:-1^~~t;for(let t=0;t<e.length;t++)i=n[255&(i^e[t])]^i>>>8;return-1^i}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(3);class o extends s.default{}o.pack=()=>{const e=parseInt(`${Date.now()/1e3}`,10),t=(0,r.fillString)(e.toString(2),40);return[0,0,0,3,8,0,0,89].concat((0,r.completeBlock)(t))},t.default=o},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CancelSync=t.DeletePackage=t.SyncPackage=t.RequestSync=void 0;const s=n(i(1)),r=i(3);class o extends s.default{constructor(e){super(e),this.state=0,this.len=0}}t.RequestSync=o,o.pack=()=>[0,0,0,3,3,0,0,113];class a extends s.default{constructor(e){super(e),this.id=0,this.timestemp=0,this.payloadLen=0}}t.SyncPackage=a,a.pack=e=>{let t=e.toString(2);return t=(0,r.fillString)(t,16),[0,0,0,3,5].concat([0,0,115]).concat((0,r.completeBlock)(t))};class c extends s.default{}t.DeletePackage=c,c.pack=e=>{let t=e.toString(2);return t=(0,r.fillString)(t,16),[0,0,0,3,5].concat([0,0,117]).concat((0,r.completeBlock)(t))};class u extends s.default{constructor(e){super(e),this.state=0}}t.CancelSync=u,u.pack=()=>[0,0,0,3,3,0,0,119]},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(20)),o=s(i(1)),a=i(3);class c extends o.default{}c.pack=(e,t,i)=>n(void 0,void 0,void 0,(function*(){const n=yield r.default.getConfigFile(e);if(n){const e="var_len"===n.protocolType,s=[0,0,0,3],r=[0];let o=[0];const c=[0,147];let u=[0,0,0,0],l=[2];if(t){o=[1];const e=(0,a.fillString)(t.length.toString(16),4),i=(0,a.hexStrint2byte)(e),n=(0,a.string2Bytes)(t);u=u.concat(i).concat(n)}if(e){l=[18];let e="";if(i){const t=i.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:1}),{});n.entities[0].attrs.map(i=>{e=t[i.name]?`1${e}`:`0${e}`})}else n.entities[0].attrs.map(()=>{e=`1${e}`});e=(0,a.fillString)(e,8*Math.ceil(e.length/8)),l=l.concat((0,a.hexStrint2byte)(parseInt(e,2).toString(16)))}const d=o.concat(c).concat(u).concat(l);return r[0]=d.length,s.concat(r).concat(d)}return null})),t.default=c},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(3);class o extends s.default{constructor(e){super(e),this.result=!1,this.didLength=0,this.did=""}}o.pack=({passcode:e})=>{let t=[0];const i=(0,r.hexStrint2byte)((0,r.fillString)(e.length.toString(16),4)),n=(0,r.string2Bytes)(e),s=[0].concat([0,8]).concat(i).concat(n);return t=(0,r.hexStrint2byte)(s.length.toString(16)),[0,0,0,3].concat(t).concat(s)},t.default=o},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.reportEvent=void 0;const r=i(16),o=i(5),a=s(i(7));const c=new class{constructor(){wx.getSystemInfoAsync({success:e=>{this.app={wxSdkVersion:e.SDKVersion,gizwitsSdkVersion:r.version,appID:"unknown",bluetoothEnabled:e.bluetoothEnabled,locationEnabled:e.locationEnabled,wifiEnabled:e.wifiEnabled},this.mobile={brand:e.brand,model:e.model,pixelRatio:e.pixelRatio,systemVersion:e.system,platform:e.platform}}})}updateAppId(e){this.app.appID=e}};t.reportEvent=function({device:e,eventID:t,eventType:i,success:s,failureType:r}){return n(this,void 0,void 0,(function*(){c.updateAppId((0,o.getGlobalData)("appID")||"unknown");const n=`/v2/products/${e.productKey}/devices/bluetooth-connect-data`,u=new Date,l={origin:"MINI-WX",mobileInfo:c.mobile,userInfo:null,appInfo:c.app,eventID:t,eventType:i,monitorTarget:{device:e,success:s,failureType:r},time:u,timeStamp:Math.floor(u.getTime()/1e3)};return(0,a.default)(n,{data:l,method:"POST"},!0)}))}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.moduleSoftVersion="",this.moduleHardVersion="",this.mcuSoftVersion="",this.mcuHardVersion="",this.businessVersion="";let t=0;t+=8}}r.pack=()=>[0,0,0,3,3,0,0,19],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.type="MCU",this.state=0,this.version=0}}r.pack=e=>[0,0,0,3,4,0,0,65,"MCU"===e?2:1],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(21),r=n(i(1)),o=i(3);class a extends r.default{constructor(e){super(e),this.state=0,this.processedLen=0,this.processedCrc32="",this.packageMaxLen=20}}a.pack=(e,t,i,n,r)=>{const a=(0,o.string2Bytes)(e),c=e.length,u=(0,o.string2Bytes)((0,o.fillString)(t,8)),l=(0,o.hexStrint2byte)(i),d=(0,o.hexStrint2byte)((0,o.fillString)(r.toString(16),8)),h=(0,o.hexStrint2byte)((0,o.fillString)(n.toString(16),8));let f=[0];f=f.concat([0,67],[c],a,u,l,h,d);const p=(0,s.getVariableLength)(f);return[0,0,0,3].concat(p,f)},t.default=a},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(3);class o extends s.default{constructor(e){super(e)}}o.pack=e=>[0,0,0,3,7,0,0,69,...(0,r.hexStrint2byte)((0,r.fillString)(e.toString(16),8))],t.default=o},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(19),r=i(21),o=n(i(1)),a=i(3);class c extends o.default{constructor(e){super(e),this.packageNum=0,this.state=0;let t=0;t+=2}}c.pack=(e,t)=>{const i=(0,a.hexStrint2byte)((0,a.fillString)(t.toString(16),4)),n=(0,a.hexStrint2byte)((0,a.fillString)(e.length.toString(16),4)),o=(0,a.fillString)((0,s.crc16modbus)(new Uint8Array(e)).toString(16),4),c=(0,a.hexStrint2byte)(o);let u=[0];u=u.concat([0,71],i,n,c,e);const l=(0,r.getVariableLength)(u);return[0,0,0,3].concat(l,u)},t.default=c},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.state=0}}r.pack=e=>[0,0,0,3],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1));class r extends s.default{constructor(e){super(e),this.state=0}}r.pack=e=>[0,0,0,3,4,0,0,80,e],t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(34);class o extends s.default{constructor(e){super(e),this.parse=()=>{const e=[];let t=0;for(;t<this.payload.length;){const i=this.payload[t];if(0===i||t+1+i>this.payload.length)break;const n=this.payload.slice(t+1,t+1+i);let s="";for(let e=0;e<n.length;e++)s+="%"+("0"+n[e].toString(16)).slice(-2);let r="";try{console.log("utf8str",s),r=decodeURIComponent(s)}catch(e){console.error("decodeURIComponent error",e,s)}t+=1+i,e.push({ssid:r,rssi:this.payload[t]-100}),t+=1}return e}}}o.pack=()=>{const e=[4,69,...[r.snManager.getSn()],0];return new Uint8Array(e)},t.default=o},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Connection=void 0;const r=s(i(4)),o=s(i(6)),a=s(i(7)),c=i(9),u=i(22);t.default=class{constructor({appID:e,token:t,uid:i,limitSocketNum:s=!0}){this._bindingDevices=null,this._connections={},this.updateToken=({token:e,uid:t})=>{this.token=e,this.uid=t},this._getDevice=e=>{if(null===this._bindingDevices)return r.default.GIZ_SDK_SDK_NOT_INITIALIZED;const t=this._bindingDevices[e];return null==t?r.default.GIZ_OPENAPI_DEVICE_NOT_BOUND:t},this._getConnect=e=>{const t=this._getWebsocketConnInfo(e);return this._connections[t]},this._getDeviceAndConnect=e=>{const t=this._getDevice(e);if((0,c.isError)(t))return t;const i=this._getConnect(t);return null==i?r.default.GIZ_SDK_DEVICE_NOT_SUBSCRIBED:[t,i]},this.connectDevice=e=>{const t=this._getWebsocketConnInfo(e);let i=this._connections[t];if(null==i){const e=Object.keys(this._connections).length;if(0!==this._maxSocketNum&&e>=this._maxSocketNum)return{success:!1,errorCode:r.default.MAX_CONNECT};i=new l({appID:this.appID,token:this.token,uid:this.uid,wsInfo:t,onDeviceStatusChanged:this._handleDeviceStatusChanged,onBindingChanged:this._handleBindingChanged,onSocketStatusChanged:this._handleSocketStatusChanged}),this._connections[t]=i}return i._addSubDid(e.did),null==i._websocket?i._connectWS():i.ready&&i._subDevices([e.did]),{success:!0}},this.connectDevices=e=>{const t={};e.forEach(e=>{const i=this._getWebsocketConnInfo(e);t[i]||(t[i]=[]),t[i].push(e.did)});const i=Object.keys(t).filter(e=>null==this._connections[e]).length,n=Object.keys(this._connections).length;return 0!==this._maxSocketNum&&n+i>this._maxSocketNum?{success:!1,errorCode:r.default.MAX_CONNECT}:(Object.entries(t).forEach(([e,t])=>{let i=this._connections[e];null==i&&(i=new l({appID:this.appID,token:this.token,uid:this.uid,wsInfo:e,onDeviceStatusChanged:this._handleDeviceStatusChanged,onBindingChanged:this._handleBindingChanged,onSocketStatusChanged:this._handleSocketStatusChanged}),this._connections[e]=i),i._addSubDid(...t),null==i._websocket?i._connectWS():i.ready&&i._subDevices(t)}),{success:!0})},this.disConnectDevice=e=>{const t=this._getWebsocketConnInfo(e);let i=this._connections[t];return i&&i._unSubDevices([e.did]),{success:!0}},this.disConnectDevices=e=>{const t={};return e.forEach(e=>{const i=this._getWebsocketConnInfo(e);t[i]||(t[i]=[]),t[i].push(e.did)}),Object.entries(t).forEach(([e,t])=>{const i=this._connections[e];i&&i._unSubDevices(t)}),{success:!0}},this.connect=e=>{const t=this._getDevice(e);if((0,c.isError)(t))return t;const i=this.connectDevice(t);return i.success?null:i.errorCode},this.send=(e,t)=>{const i=this._getDeviceAndConnect(e);return(0,c.isError)(i)?i:i[1]._send({cmd:"c2s_raw",data:{did:e,raw:t}})},this.writeData=(e,t)=>n(this,void 0,void 0,(function*(){const i=yield(0,u.updateDevicesStatus)({data:[{id:e.did,product_key:e.productKey,mac:e.mac,qos:0,property:t}]});if(i.success){const e=i.data.data[0];return e.error?{success:!1,errorCode:r.default.GIZ_SDK_OTHERWISE.errorCode,message:e.msg}:{success:!0}}return{success:!1,errorCode:r.default.GIZ_SDK_OTHERWISE}})),this.write=(e,t)=>{const i=this._getDeviceAndConnect(e);return(0,c.isError)(i)?i:i[1]._send({cmd:"c2s_write",data:{did:e,attrs:t}})},this.readStatus=(e,t)=>n(this,void 0,void 0,(function*(){const t=yield(0,u.getDevicesStatus)(e.did);if(t.success){return{success:!0,data:t.data.data.property}}return{success:!1,errorCode:r.default.GIZ_SDK_OTHERWISE,data:{}}})),this.read=(e,t)=>{const i=this._getDeviceAndConnect(e);return(0,c.isError)(i)?i:i[1]._send({cmd:"c2s_read",data:{did:e,names:t}})},this.destory=()=>{Object.values(this._connections).forEach(e=>e.destory())},this.subscribeDeviceStatus=e=>{this._onDeviceStatusChanged=e},this.subscribeBindingChanged=e=>{this._onBindingChanged=e},this.subscribeSocketStatus=e=>{this._onSocketStatusChanged=e},this._handleDeviceStatusChanged=e=>{this._onDeviceStatusChanged&&this._onDeviceStatusChanged(e)},this._handleBindingChanged=()=>{this._onBindingChanged&&this._onBindingChanged()},this._handleSocketStatusChanged=(...e)=>{this._onSocketStatusChanged&&this._onSocketStatusChanged(...e)},this._getBindingList=(e=20,t=0,i=[])=>n(this,void 0,void 0,(function*(){const n=`/app/bindings?show_disabled=0&limit=${e}&skip=${t}`,{err:s,data:r}=yield(0,a.default)(`${n}`,{method:"GET"});if(s)return{err:s};const o=[...i,...(null==r?void 0:r.devices)||[]];return r&&r.devices.length===e?yield this._getBindingList(e,e+t,o):o})),this._getWebsocketConnInfo=e=>e.host?`wss://wx${e.host}`:"wss://wxstage.gizwits.com",this.appID=e,this.token=t,this.uid=i;const o=wx.getSystemInfoSync().SDKVersion;this._maxSocketNum=s?-1===(0,c.compareWXSDKVersion)(o||"1.0.0","1.7.0")?1:5:0}init(){var e,t;return n(this,void 0,void 0,(function*(){try{const i=yield this._getBindingList();return(null===(e=i.err)||void 0===e?void 0:e.errorCode)?{errorCode:null===(t=i.err)||void 0===t?void 0:t.errorCode,errorMessage:"getting binding list failed"}:(this._bindingDevices=i.reduce((e,t)=>Object.assign(Object.assign({},e),{[t.did]:t}),{}),null)}catch(e){return r.default.GIZ_SDK_OTHERWISE}}))}};class l{constructor({appID:e,token:t,uid:i,wsInfo:s,onDeviceStatusChanged:r,onBindingChanged:a,onSocketStatusChanged:c}){this.ready=!1,this.commType="attrs_v4",this._heartbeatInterval=60,this._keepaliveTime=180,this._loginIntveral=5e3,this.autoSubscribe=!1,this._websocket=null,this._loginFailedTimes=0,this._subDids=new Set,this._socketRespHandleMap={},this._waitSends=[],this.destory=()=>{this._heartbeatTimerId&&clearInterval(this._heartbeatTimerId),this._checkConnectTimerId&&clearInterval(this._checkConnectTimerId),this.close()},this._networkChange=e=>n(this,void 0,void 0,(function*(){o.default.log("network change",e)})),this._appShow=()=>n(this,void 0,void 0,(function*(){o.default.log("app show")})),this._addSubDid=(...e)=>{e.forEach(e=>this._subDids.add(e))},this._removeSubDid=(...e)=>{e.forEach(e=>this._subDids.delete(e))},this._connectWS=()=>{o.default.log("GIZ_SDK: start connect ws"),this._websocket=wx.connectSocket({url:this._wsUrl,fail:e=>{o.default.error("GIZ_SDK: connectSocket error",new Error(JSON.stringify(e)))}}),this._websocket.onClose(this.handleClose),this._websocket.onOpen(this.handleOpen),this._websocket.onError(this.handleError),this._websocket.onMessage(this.handleMessage),this._checkConnectTimerId||(this._checkConnectTimerId=setInterval(()=>{this._websocket||this._connectWS()},1e3))},this._subDevices=e=>{const t={cmd:"subscribe_req",data:e.map(e=>({did:e}))};this._send(t)},this._unSubDevices=e=>{e.map(e=>this._removeSubDid(e))},this._send=(e,t=!1)=>(o.default.log("GIZ_SDK: Socket send",e,t),new Promise(i=>{this._websocket?t||this.ready?this._websocket&&(t||this.ready)&&this._websocket.send({data:JSON.stringify(e),complete:e=>{o.default.log("GIZ_SDK: socket send res",e),o.default.log("resres",e);let t=!1;"sendSocketMessage:ok"===e.errMsg&&(t=!0),i({success:t,message:e.errMsg})},fail:e=>{o.default.error("GIZ_SDK: Socket send error",new Error(JSON.stringify(e))),i({success:!1,message:e.errMsg})}}):i({success:!1,message:"Socket not ready"}):i({success:!1,message:"Socket not init"})})),this.close=()=>{this.ready=!1,this._heartbeatTimerId&&clearInterval(this._heartbeatTimerId),this._websocket&&(this._websocket.close({}),this._websocket=null),this._currentSocketStatus&&(this._currentSocketStatus=!1,this._handleSocketStatusChanged(!1))},this.handleClose=e=>{o.default.error("GIZ_SDK: socket close",new Error(JSON.stringify(e))),this.close(),this._stopPing()},this.handleOpen=()=>{o.default.log(" socket open"),this._login()},this.handleMessage=({data:e})=>{o.default.log("GIZ_SDK: message",e);const t=JSON.parse(e),i=this._socketRespHandleMap[t.cmd];i&&i(t.data)},this.handleError=e=>{o.default.error("GIZ_SDK: socket error",new Error(JSON.stringify(e))),this.close(),this._stopPing()},this._login=()=>{const e={cmd:"login_req",data:{appid:this.appID,uid:this.uid,token:this.token,p0_type:this.commType,heartbeat_interval:this._keepaliveTime,auto_subscribe:this.autoSubscribe}};this._send(e,!0)},this._tryLoginAgain=()=>{this._loginFailedTimes+=1,setTimeout(()=>{this._login()},this._loginFailedTimes*this._loginIntveral)},this._startPing=()=>{this._heartbeatTimerId=setInterval(()=>{this._send({cmd:"ping"})},1e3*this._heartbeatInterval)},this._stopPing=()=>{this._heartbeatTimerId&&clearInterval(this._heartbeatTimerId)},this.pongResp=()=>{},this._currentSocketStatus=!1,this._loginResp=e=>{1==e.success?(this._loginFailedTimes=0,this.ready=!0,this._startPing(),this._subDevices([...this._subDids]),this._currentSocketStatus=!0,this._handleSocketStatusChanged(this._currentSocketStatus),this._consumeWaitSends()):this._loginFailedTimes<3?(o.default.log("GIZ_SDK: Login failed, will try again, please wait..."),this._tryLoginAgain()):(o.default.error("GIZ_SDK: Login failed",new Error("m2m socket login failed")),this.close())},this._consumeWaitSends=()=>{let e=this._waitSends.pop();for(;e;)this._send(e),e=this._waitSends.pop()},this._handleSocketStatusChanged=e=>{this._onSocketStatusChanged&&this._onSocketStatusChanged([...this._subDids],e)},this._subscribeResp=e=>{o.default.log("GIZ_SDK: subscribe_res",e),e&&e.success&&e.success.forEach(e=>this._send({cmd:"c2s_read",data:{did:e.did}})),o.default.debug("GIZ_SDK: subscribe_res",e)},this._onlineResp=e=>{this._isSub(e.did)&&this._onDeviceStatusChanged&&this._onDeviceStatusChanged({did:e.did,attrs:Object.assign({is_online:e.online},e)})},this._rawChangedResp=e=>{this._isSub(e.did)&&this._onDeviceStatusChanged&&this._onDeviceStatusChanged(e)},this._statusChangedResp=e=>{this._isSub(e.did)&&this._onDeviceStatusChanged&&this._onDeviceStatusChanged(e)},this._isSub=e=>this._subDids.has(e),this._invalidMsgResp=e=>{1003===e.error_code&&this._login(),o.default.error("GIZ_SDK: s2c_invalid_msg",new Error(JSON.stringify(e)))},this._bindingChangedResp=e=>{!e.bind&&e.did&&this._removeSubDid(e.did),this._onBindingChanged&&this._onBindingChanged()},this.appID=e,this.token=t,this.uid=i,this._wsUrl=`${s}/ws/app/v1`,this._heartbeatTimerId=void 0,this._loginFailedTimes=0,this._onDeviceStatusChanged=r,this._onBindingChanged=a,this._onSocketStatusChanged=c,this._socketRespHandleMap={pong:this.pongResp,login_res:this._loginResp,subscribe_res:this._subscribeResp,s2c_online_status:this._onlineResp,s2c_raw:this._rawChangedResp,s2c_noti:this._statusChangedResp,s2c_invalid_msg:this._invalidMsgResp,s2c_binding_changed:this._bindingChangedResp},wx.onNetworkStatusChange(this._networkChange),wx.onAppShow(this._appShow)}}t.Connection=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(12),s=({SSID:e,password:t,pk:i})=>{let s=(0,n.MD5)(e+t).toString();s=n.enc.Hex.parse(s);let r=n.enc.Utf8.parse(i),o=n.AES.encrypt(r,s,{iv:s,mode:n.mode.ECB,padding:n.pad.ZeroPadding});return(0,n.MD5)(o.ciphertext).toString()};t.default=({SSID:e,password:t,pks:i})=>{const n=[];return i.map(i=>{const r=s({SSID:e,password:t,pk:i});n.push(r)}),n}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.psKeySign=void 0;const n=i(12);t.psKeySign=e=>{const t=Math.round((new Date).getTime()/1e3),i=e+t;return{Signature:(0,n.MD5)(i).toString(),timestamp:t}}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.WxAnonymousLogin=t.AnonymousLogin=void 0;const s=i(7);t.AnonymousLogin=function({uid:e}){return n(this,void 0,void 0,(function*(){return(0,s.cozeApiRequest)("/v3/users/oauth/anonymous",{data:{openid:e},method:"POST"})}))},t.WxAnonymousLogin=function({code:e}){return n(this,void 0,void 0,(function*(){return(0,s.cozeApiRequest)(`/v3/users/oauth/wechat?code=${e}`,{method:"POST"})}))}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(4)),o=s(i(6)),a=s(i(93)),c=s(i(23)),u=s(i(24)),l=i(5);class d extends c.default{constructor(){super(...arguments),this.disableSendUDP=!1,this.sendMessageInterval=null,this.UDPSocketHandler=null,this.destroy=()=>{this.cleanTimeout(),this.sendMessageInterval&&clearInterval(this.sendMessageInterval),this.sendMessageInterval=null,this.UDPSocketHandler&&(this.UDPSocketHandler.offError(),this.UDPSocketHandler.offMessage(),this.UDPSocketHandler.close())},this.configDevice=({ssid:e,password:t,softAPSSIDPrefix:i})=>(u.default.appendEvent({name:"START_DISCOVER_DEVICE",message:""}),u.default.appendEvent({name:"DISCOVER_DEVICE_SUCCESS",message:""}),u.default.appendEvent({name:"START_CONNECT_DEVICE",message:""}),u.default.appendEvent({name:"CONNECT_DEVICE_SUCCESS",message:""}),new Promise((s,c)=>{o.default.debug("GIZ_SDK: start config device");let d=!1,h=0;const f=(0,l.getGlobalData)("uid"),p=a.default.pack(e,t,f);this.UDPSocketHandler=wx.createUDPSocket(),this.UDPSocketHandler.bind(),this.disableSendUDP=!1,u.default.appendEvent({name:"START_SEND_WIFI_CONFIG",message:""});let v=!1;const g=()=>{try{!this.disableSendUDP&&this.UDPSocketHandler.send({address:"10.10.100.254",port:12414,message:p,offset:0,length:p.byteLength}),v||(v=!0,u.default.appendEvent({name:"START_SEND_WIFI_CONFIG_SUCCESS",message:""}))}catch(e){}};this.sendMessageInterval=setInterval(()=>{g()},2e3),this.UDPSocketHandler.onError(e=>{h+=1,h>2&&(this.destroy(),u.default.appendEvent({name:"START_SEND_WIFI_CONFIG_FAIL",message:""}),c({success:!1,err:{errorCode:r.default.WECHAT_ERROR.errorCode,errorMessage:e.errMsg}}))});const _=()=>n(this,void 0,void 0,(function*(){if(!d){this.UDPSocketHandler.offMessage(),this.UDPSocketHandler.offError(),this.sendMessageInterval&&clearInterval(this.sendMessageInterval),this.disableSendUDP=!0,d=!0;try{s({success:!0,data:[]})}catch(e){c(e)}}}));this.UDPSocketHandler.onMessage(e=>{_()}),wx.onNetworkStatusChange(()=>n(this,void 0,void 0,(function*(){!d&&wx.getConnectedWifi({success:e=>n(this,void 0,void 0,(function*(){-1===e.wifi.SSID.indexOf(i)&&_()}))})})))})),this.setDeviceOnboardingDeploy=({timeout:e,isBind:t=!0,productKey:i,softAPSSIDPrefix:s})=>{const r=this.ssid,o=this.password;return u.default.init({productKey:i,timeout:e,isBind:t,ssid:this.ssid,mode:0}),u.default.appendEvent({name:"START_WIFI_CONFIG",message:""}),new Promise((t,i)=>n(this,void 0,void 0,(function*(){this.destroy(),this.initDeviceOnboardingDeploy(t,i),this.startTimeoutTimer(e);try{yield this.configDevice({ssid:r,password:o,softAPSSIDPrefix:s});u.default.appendEvent({name:"WIFI_CONFIG_SUCCESS",message:""}),t({success:!0,data:[]})}catch(e){i(e)}finally{this.destroy()}})))}}}t.default=d},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(1)),r=i(3);class o extends s.default{constructor(e){super(e)}}o.pack=(e,t,i)=>{const n=[],[s,o]=(0,r.formatCodesFromStr)(e),[a,c]=(0,r.formatCodesFromStr)(t),[u,l]=(0,r.formatCodesFromStr)(i),d=[0].concat([0,1],o,s,c,a,l,u);let h=d.length;for(;h>0;)n.push(h),h-=255;const f=[0,0,0,3].concat(n).concat(d),p=new ArrayBuffer(f.length),v=new Uint8Array(p);for(let e=0;e<p.byteLength;e++)v[e]=f[e];return v},t.default=o},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(4)),o=i(9),a=s(i(6)),c=s(i(95)),u=s(i(13)),l=i(33),d=s(i(23)),h=s(i(24)),f=i(5);class p extends d.default{constructor(e,t,i,s,d,p){super(e,t,i,s,d),this.retryTimes=0,this.maxRetryTimes=3,this.sendBLEConfigCmd=({bleDeviceId:e,arrayBuffer:t,serviceUUIDSuffix:i="abd0",characteristicUUIDSuffix:s="abd5",bleHandle:r,productKey:u,mac:d,eventCallBack:f})=>{let p=null,v=null;const g=()=>null===v?(p&&clearInterval(p),!0):!this.hasTimeoutHandler();return new Promise((s,_)=>n(this,void 0,void 0,(function*(){try{a.default.debug("GIZ_SDK: ssid info: ",t),v=setTimeout(()=>{p&&clearInterval(p),v=null,s(!1)},5e4),a.default.debug("GIZ_SDK: createBLEConnection start: ",e),yield r.disableScan(),h.default.appendEvent({name:"START_CONNECT_DEVICE",message:""});const n=yield(0,l.retryConnect)(e,i,1e4);if(!n.success)return h.default.appendEvent({name:"CONNECT_DEVICE_FAIL",message:JSON.stringify(n)}),void s(!1);null==f||f({event:"GIZ_CONNECT_SUCCESS",mac:d}),r.enableScan(),a.default.debug("GIZ_SDK: createBLEConnection end, res:",n);const{serviceId:_,characteristics:y,characteristicId:m}=n.data;for(let t=0;t<y.length;t++){const i=y[t];(i.properties.notify||i.properties.indicate)&&(yield(0,l.notifyBLECharacteristicValueChange)(e,_,i.uuid))}null==f||f({event:"GIZ_CONFIG_SEND_SUCCESS",mac:d});const D=(t,i)=>{if(console.debug("curDevice",t,e),t.deviceId!==e)return;const n=(0,o.ab2hex)(i.raw),l=i;switch(console.debug("protocol",l),l.cmd){case 65:p&&clearInterval(p),a.default.debug("GIZ_SDK: 收到设备返回ack",n),null==f||f({event:"GIZ_CONFIG_RECV_SUCCESS",mac:d}),h.default.appendEvent({name:"WIFI_CONFIG_RECV_SUCCESS",message:""});try{this.searchDevice({mac:d,productKey:u}).then(e=>{console.log("devicesReturndevicesReturn",e),e.success?s(e.data[0]):s(!1)})}catch(e){s(!1),a.default.error("GIZ_SDK: searchDevice error",new Error(JSON.stringify(e)))}break;case 66:{const e=new c.default(i.raw);console.debug("wifiprotocol",e),3===e.state&&(r.removeEventListener("GizBleDeviceData",D),e.log.includes("Incorrect WiFi password")?(null==f||f({event:"GIZ_CONFIG_PASSWORD_ERROR",mac:d}),h.default.appendEvent({name:"GIZ_CONFIG_PASSWORD_ERROR",message:""})):(null==f||f({event:"GIZ_CONFIG_FAIL",mac:d}),h.default.appendEvent({name:"GIZ_CONFIG_FAIL",message:""})),s(!1)),10===e.state&&(r.removeEventListener("GizBleDeviceData",D),null==f||f({event:"GIZ_CONFIG_CONNECT_SUCCESS",mac:d}),h.default.appendEvent({name:"GIZ_CONFIG_CONNECT_SUCCESS",message:""}));break}}};if(r.addEventListener("GizBleDeviceData",D),a.default.debug("GIZ_SDK: on notifyBLECharacteristicValueChange success"),g())return;h.default.appendEvent({name:"START_SEND_WIFI_CONFIG",message:""});try{const i=yield(0,l.unpackWriteBLECharacteristicValue)(e,_,m,t);i.errCode?h.default.appendEvent({name:"START_SEND_WIFI_CONFIG_FAIL",message:JSON.stringify(i)}):h.default.appendEvent({name:"START_SEND_WIFI_CONFIG_SUCCESS",message:""})}catch(e){a.default.error("GIZ_SDK: sendBLEConfigCmd error",new Error(JSON.stringify(e)))}p=setInterval(()=>{g()||(0,l.unpackWriteBLECharacteristicValue)(e,_,m,t)},2e3),a.default.debug("GIZ_SDK: unpackWriteBLECharacteristicValue end")}catch(e){a.default.debug("GIZ_SDK: sendBLEConfigCmd error",e)}}))).catch(e=>{a.default.debug("GIZ_SDK: sendBLEConfigCmd error",e)}).finally(()=>{console.debug("GIZ_SDK: sendBLEConfigCmd finally",e),v&&clearTimeout(v),p&&clearInterval(p);try{this.bleHandle.disConnectDevice(e)}catch(e){a.default.error("GIZ_SDK: disConnectDevice error",new Error(JSON.stringify(e)))}})},this.sendBLEConfigCmdWithEswin=({bleDeviceId:e,arrayBuffer:t,serviceUUIDSuffix:i="abd0",characteristicUUIDSuffix:s="abd5",bleHandle:r,eventCallBack:c})=>{let u=null,d=null;console.debug("GIZ_SDK: sendBLEConfigCmdWithEswin",e);const f=()=>null===d?(u&&clearInterval(u),!0):!this.hasTimeoutHandler();return new Promise((p,v)=>n(this,void 0,void 0,(function*(){try{a.default.debug("GIZ_SDK: ssid info: ",t),d=setTimeout(()=>{u&&clearInterval(u),d=null,p(!1)},5e3),a.default.debug("GIZ_SDK: createBLEConnection start: ",e),yield r.disableScan(),h.default.appendEvent({name:"START_CONNECT_DEVICE",message:""});const n=yield(0,l.retryConnect)(e,i,1e4);if(!n.success)return h.default.appendEvent({name:"CONNECT_DEVICE_FAIL",message:JSON.stringify(n)}),void p(!1);null==c||c({event:"GIZ_CONNECT_SUCCESS",mac:e}),r.enableScan(),a.default.debug("GIZ_SDK: createBLEConnection end, res:",n);const v=yield(0,l.getBLEDeviceServices)(e);a.default.debug("GIZ_SDK: getBLEDeviceServices end, res:",v);const g=v.find(e=>e.uuid.split("-")[0].toLowerCase().endsWith(i));if(!g)return a.default.debug("GIZ_SDK: get ble device services fail",e,v),h.default.appendEvent({name:"CONNECT_DEVICE_FAIL",message:JSON.stringify({bleDeviceId:e,message:"GIZ_SDK: get ble device services fail"})}),void p(!1);const _=yield(0,l.getBLEDeviceCharacteristics)(e,g.uuid);a.default.debug("GIZ_SDK: getBLEDeviceCharacteristics end, res:",_);const y=_.find(e=>e.uuid.split("-")[0].toLowerCase().endsWith(s));if(!y)return a.default.debug("GIZ_SDK: get ble device characteristics fail",e,_),h.default.appendEvent({name:"CONNECT_DEVICE_FAIL",message:JSON.stringify({bleDeviceId:e,message:"GIZ_SDK: get ble device characteristics fail"})}),void p(!1);for(let t=0;t<_.length;t++){const i=_[t];(i.properties.notify||i.properties.indicate)&&(yield(0,l.notifyBLECharacteristicValueChange)(e,g.uuid,i.uuid))}null==c||c({event:"GIZ_CONFIG_SEND_SUCCESS"});const m=e=>{const t=(0,o.ab2hex)(e.value);a.default.debug("GIZ_SDK: 收到设备返回ack",t),null==c||c({event:"GIZ_CONFIG_RECV_SUCCESS"}),h.default.appendEvent({name:"WIFI_CONFIG_RECV_SUCCESS",message:""}),r.removeEventListener("GizBleDeviceData",m),p(!0)};if(r.addEventListener("GizBleDeviceData",m),wx.onBLECharacteristicValueChange(m),a.default.debug("GIZ_SDK: on notifyBLECharacteristicValueChange success"),f())return;h.default.appendEvent({name:"START_SEND_WIFI_CONFIG",message:""});const D=yield(0,l.unpackWriteBLECharacteristicValue)(e,g.uuid,y.uuid,t);D.errCode?h.default.appendEvent({name:"START_SEND_WIFI_CONFIG_FAIL",message:JSON.stringify(D)}):h.default.appendEvent({name:"START_SEND_WIFI_CONFIG_SUCCESS",message:""}),u=setInterval(()=>{f()||(0,l.unpackWriteBLECharacteristicValue)(e,g.uuid,y.uuid,t)},2e3),a.default.debug("GIZ_SDK: unpackWriteBLECharacteristicValue end")}catch(e){v(!1),a.default.debug("GIZ_SDK: sendBLEConfigCmd error",e)}}))).catch(e=>{a.default.debug("GIZ_SDK: sendBLEConfigCmd error",e)}).finally(()=>{d&&clearTimeout(d),u&&clearInterval(u),this.bleHandle.disConnectDevice(e)})},this.destroy=()=>{this.cleanTimeout()},this.isValidBleDevice=(e,t)=>0!==e.bleWorkStatus&&(!!this.specialProductKeys.includes(e.productKey)&&(a.default.debug(`GIZ_SDK: isValidBleDevice mac: ${e.mac} pk: ${e.productKey} name: ${e.name}`),a.default.debug(`GIZ_SDK: softAPSSIDPrefix: ${t} ismatch : ${e.name&&e.name.startsWith(t)}`),!t||e.name&&e.name.startsWith(t)||e.localName&&e.localName.startsWith(t))),this.enableBluetoothDevicesDescovery=()=>n(this,void 0,void 0,(function*(){return(yield(0,l.getBluetoothAdapterState)()).available?(yield(0,l.startBluetoothDevicesDiscovery)(),{success:!0}):{success:!1,err:{errorCode:r.default.GIZ_SDK_BLE_BLUETOOTH_FUNCTION_NOT_TURNED_ON.errorCode,errorMessage:"蓝牙状态不可用"}}})),this.enableAndGetBluetoothDevices=(e,t)=>n(this,void 0,void 0,(function*(){const e=yield this.enableBluetoothDevicesDescovery();if(!e.success)return e;a.default.debug("GIZ_SDK: start enableAndGetBluetoothDevices");let i=this.bleHandle.scanList.filter(e=>e.mac.toUpperCase()==(null==t?void 0:t.toUpperCase()));return a.default.debug("GIZ_SDK: getBluetoothDevices success",i),{success:!0,bleDevices:i}})),this.setDeviceOnboardingDeploy=({timeout:e,isBind:t=!0,softAPSSIDPrefix:i,productKey:s,eventCallBack:r=(e=>{}),mac:o=""})=>(h.default.init({productKey:s,timeout:e,isBind:t,ssid:this.ssid,mode:3}),h.default.appendEvent({name:"START_WIFI_CONFIG",message:""}),this.eventCallBack=r,new Promise((t,s)=>n(this,void 0,void 0,(function*(){var n;this.bleHandle.scanList=[];try{const e=yield(0,l.getConnectedBluetoothDevices)();console.log("connectedBluetoothDevices",e),e.length>0&&e.forEach(e=>{this.bleHandle.disConnectDevice(e.deviceId)})}catch(e){a.default.debug("GIZ_SDK: getConnectedBluetoothDevices error",e)}null===(n=this.eventCallBack)||void 0===n||n.call(this,{event:"GIZ_CONFIG_START",mac:o});const r=this.ssid,c=this.password;this.destroy(),this.initDeviceOnboardingDeploy(t,s),this.startTimeoutTimer(e);try{const n=((yield this.configBLEDevice({ssid:r,password:c,timeout:1e3*e,softAPSSIDPrefix:i,mac:o})).data||[]).map(e=>({mac:e.mac,productKey:e.product_key,did:e.did,name:"",localName:"",isBind:!1,connectType:"NONE",isBleOnline:!1,isLanOnline:!1,isOnline:!1}));h.default.appendEvent({name:"WIFI_CONFIG_SUCCESS",message:JSON.stringify(n)}),t({success:!0,data:n})}catch(e){console.error("GIZ_SDK: setDeviceOnboardingDeploy error",e),h.default.appendEvent({name:"WIFI_CONFIG_FAIL",message:`${e}`}),t({success:!1,data:e})}finally{this.destroy()}})))),this.configBLEDevice=({ssid:e,password:t,softAPSSIDPrefix:i,mac:s})=>new Promise((d,p)=>n(this,void 0,void 0,(function*(){a.default.debug("GIZ_SDK: start config ble device"),yield(0,l.startBluetoothDevicesDiscovery)(!0),h.default.appendEvent({name:"START_DISCOVER_DEVICE",message:""});const v=yield this.enableAndGetBluetoothDevices(i,s).catch(e=>(h.default.appendEvent({name:"DISCOVER_DEVICE_FAIL",message:JSON.stringify(e)}),{success:!1,err:{errorCode:r.default.WECHAT_ERROR.errorCode,errorMessage:JSON.stringify(e)}}));if(!(0,o.isWXDevicesResult)(v))return p(v);let g=v.bleDevices;a.default.debug("GIZ_SDK: enableAndGetBluetoothDevices success, target devices: ",g);let _=null;const y=(0,f.getGlobalData)("uid"),m=c.default.pack(e,t,y),D=()=>n(this,void 0,void 0,(function*(){var e;if(a.default.debug("GIZ_SDK: startConfigDevice"),this.hasTimeoutHandler())if(_=g.find(e=>e.mac.toUpperCase()==(null==s?void 0:s.toUpperCase())),_&&(null===(e=this.eventCallBack)||void 0===e||e.call(this,{event:"GIZ_DISCOVER_SUCCESS",mac:_.mac}),h.default.appendEvent({name:"DISCOVER_DEVICE_SUCCESS",message:JSON.stringify(_)}),a.default.debug("GIZ_SDK: startConfigDevice, target device: ",_)),_){h.default.updateProductKey(_.productKey);let e=!1;if(e="30f360d17f574bbd8dee8ae47a6cfd67"===_.productKey?!0===(yield this.sendBLEConfigCmdWithEswin({bleDeviceId:_.bleDeviceID,arrayBuffer:m.buffer,bleHandle:this.bleHandle,eventCallBack:this.eventCallBack,mac:_.mac,productKey:_.productKey})):yield this.sendBLEConfigCmd({bleDeviceId:_.bleDeviceID,arrayBuffer:m.buffer,bleHandle:this.bleHandle,eventCallBack:this.eventCallBack,mac:_.mac,productKey:_.productKey}),e){const t=Object.assign(Object.assign({},_),{product_key:_.productKey,mac:_.mac});"object"==typeof e&&(t.did=e.did),console.log("configBleDevice",t),d({success:!0,data:[t]})}else p({success:!1,err:{errorCode:r.default.GIZ_SDK_BLE_DEVICE_SEND_FAILED.errorCode,errorMessage:r.default.GIZ_SDK_BLE_DEVICE_SEND_FAILED.errorMessage}})}else{if(this.retryTimes++,this.retryTimes<=this.maxRetryTimes)return yield(0,u.default)(2e3),g=this.bleHandle.scanList.filter(e=>e.mac.toUpperCase()==(null==s?void 0:s.toUpperCase())),console.log("this.bleHandle.scanList",this.bleHandle.scanList),void(yield D());this.retryTimes=0,p({success:!1,err:{errorCode:r.default.GIZ_SDK_BLE_DEVICE_NOT_FOUND.errorCode,errorMessage:r.default.GIZ_SDK_BLE_DEVICE_NOT_FOUND.errorMessage}})}}));yield D()}))),this.bleHandle=p}}t.default=p},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(9),r=n(i(1)),o=i(34),a=i(3);class c extends r.default{constructor(e){super(e),this.state=-1,this.logLen=0,this.log="",this.logBytes=new Uint8Array,this.state=this.payload[0],this.logLen=this.payload[1],this.logLen>0&&(this.logBytes=this.payload.slice(2,2+this.logLen),this.log=(0,s.getPayloadAsUtf8String)(this.logBytes))}}c.pack=(e,t,i)=>{const n=o.snManager.getSn(),s=Math.floor(Date.now()/1e3),r=[n],[c,u]=(0,a.formatCodesFromStr)(e);let l=[],d=0;i&&([l,d]=(0,a.formatCodesFromStr)(i));const[h,f]=(0,a.formatCodesFromStr)(t),p=[s>>24&255,s>>16&255,s>>8&255,255&s],v=[u,...c,0,f,...h,d,...l];console.debug("contentcontentcontentcontent",u,e);const g=[4,64,...r,...[v.length+4],...p,...v];return new Uint8Array(g)},t.default=c},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(97),o=i(98),a=i(99),c=i(101),u=s(i(23));class l extends u.default{constructor(e,t,i,s,u,l){super(e,t,i,s,u),this.address="",this.destroy=()=>{this.cleanTimeout()},this.configDevice=({ssid:e,password:t,bssid:i,address:s})=>n(this,void 0,void 0,(function*(){const{SSIDTLV:n,isSSIDIncludedCH:u}=(0,a.formatSSID)(e),l=(0,o.formatData)(i,"BSSID"),d=(0,o.formatData)(t,"pwd"),h=(0,o.formatData)(s,"address"),f=(0,r.disposeData)(n,u,d,h,l);return console.log(f,"DATA"),(0,c.transceive)(f),yield this.searchDevice({mac:"",productKey:""})})),this.setDeviceOnboardingDeploy=({timeout:e,isBind:t=!0})=>{const i=this.ssid,s=this.password;return new Promise((r,o)=>n(this,void 0,void 0,(function*(){console.log("ssid0",i,s,this.bssid,this.address),this.destroy(),this.initDeviceOnboardingDeploy(r,o),this.startTimeoutTimer(e),console.log("ssid",i,s,this.bssid,this.address);try{const e=((yield this.configDevice({ssid:i,password:s,bssid:this.bssid,address:this.address})).data||[]).map(e=>({mac:e.mac,productKey:e.product_key,did:e.did,localName:"",name:"",isBind:!1,connectType:"NONE",isBleOnline:!1,isLanOnline:!1,isOnline:!1}));if(t)try{r(yield this.bindDevices(e))}catch(e){o(e)}else r({success:!0,data:e})}catch(e){o(e)}finally{this.destroy()}})))},this.address=l}}t.default=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.disposeData=void 0;t.disposeData=(e,t,i,n,s)=>{const r=(()=>{const e=new ArrayBuffer(1),t=new Uint8Array(e);return t[0]=1,t})(),o=(e=>{const t=new ArrayBuffer(1),i=new Uint8Array(t);return i[0]=0,e&&(i[0]=1),i})(t),a=(()=>{const e=new ArrayBuffer(2),t=new Uint8Array(e);return t[0]=parseInt("0x55",16),t[1]=parseInt("0xaa",16),t})(),c=Uint8Array.from([...r,...o,...a]),u=Uint8Array.from([...e,...i,...n,...s]);return console.log(c.buffer,"uint8Array_sign.buffer",c),console.log(u.buffer,"uint8Array_others.buffer",u),{ArrayBuffer_sign:c.buffer,ArrayBuffer_others:u.buffer}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatData=void 0;t.formatData=(e,t)=>{const i=0===e.length,n="BSSID"===t?e.split(":"):e.split("");let s=0,r=null,o=0;switch(t){case"BSSID":s=i?3:n.length+2,r="b",o=i?0:n.length;break;case"pwd":s=e.length+2,r="p",o=e.length;break;case"address":s=i?3:n.length+2,r="i",o=i?0:n.length}const a=new ArrayBuffer(s),c=new Uint8Array(a);return c[0]=r.charCodeAt(0),c[1]=o,i?c[2]=0:n.forEach((e,i)=>{const n="BSSID"===t?parseInt(e,16):e.charCodeAt(0);c[i+2]=n}),console.log(a,c,"formatData",t),c}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.formatSSID=void 0;const s=i(3),r=n(i(100));t.formatSSID=e=>{const t={SSIDTLV:null,isSSIDIncludedCH:(0,r.default)(e)},[i,n]=(0,s.formatCodesFromStr)(e),o=parseInt((0,s.arrayToString)([n]),16);if(o<=127){const e=new ArrayBuffer(o+2),n=new Uint8Array(e);n[0]="s".charCodeAt(0),n[1]=o,i.forEach((e,t)=>{n[t+2]=e}),t.SSIDTLV=n}else{const e=parseInt(n/255)+1,s=new ArrayBuffer(o+2+e),r=new Uint8Array(s);if(r[0]="s".charCodeAt(0),r[1]=128+e,1===e)r[2]=o;else{r[e]=255,r[e+1]=o-255*(e-1);for(let t=e;t>=1;t--)0===r[e-t]&&(r[e-t]=255)}i.forEach((t,i)=>{r[i+2+e]=t}),t.SSIDTLV=r}return t}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return/.*[\u4e00-\u9fa5]+.*$/.test(e)}},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.transceive=void 0;const s=i(102),r=i(103);t.transceive=e=>{const t=wx.getNFCAdapter();t.startDiscovery(),t.onDiscovered(i=>n(void 0,void 0,void 0,(function*(){console.log(i,"onDiscovered");let n=!0;const{success:o,nfcA:a}=yield(0,s.nfcAConnect)(t);if(o){const t=e.ArrayBuffer_others.byteLength,i=parseInt(t%4),s=parseInt(t/4);let o=s;const c=new Uint8Array(e.ArrayBuffer_others);for(let e=0;e<=4*s-4;e+=4){if(o>0){const t=new ArrayBuffer(6),i=new Uint8Array(t),u=49+s-o;i[0]=parseInt("0xa2",16),i[1]=u,i[2]=c[0+e],i[3]=c[1+e],i[4]=c[2+e],i[5]=c[3+e];const{transceiveSuccess:l}=yield(0,r.nfcATransceive)(a,t);if(o-=1,!l){n=!1,wx.hideLoading(),wx.showToast({title:"NFC写入失败!",icon:"error",duration:2e3});break}}if(0!==i&&n){const e=new ArrayBuffer(6),n=new Uint8Array(e),o=49+s;switch(n[0]=parseInt("0xa2",16),n[1]=o,i){case 1:n[2]=c[t-1];break;case 2:n[2]=c[t-2],n[3]=c[t-1];break;case 3:n[2]=c[t-3],n[3]=c[t-2],n[4]=c[t-1]}const{transceiveSuccess:u}=yield(0,r.nfcATransceive)(a,e);u||(wx.hideLoading(),wx.showToast({title:"NFC写入失败!",icon:"error",duration:2e3}))}}const u=new ArrayBuffer(6),l=new Uint8Array(u),d=new Uint8Array(e.ArrayBuffer_sign);l[0]=parseInt("0xa2",16),l[1]=48,l[2]=d[0],l[3]=d[1],l[4]=d[2],l[5]=d[3];const{transceiveSuccess:h}=yield(0,r.nfcATransceive)(a,u);wx.hideLoading(),wx.showToast(h?{title:"NFC写入成功!",icon:"success",duration:2e3}:{title:"NFC写入失败!",icon:"error",duration:2e3}),a.close()}else wx.hideLoading(),wx.showToast({title:"NFC连接失败!",icon:"error",duration:2e3})})))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nfcAConnect=void 0;t.nfcAConnect=e=>new Promise(t=>{const i=e.getNfcA();i.connect({success(){t({success:!0,nfcA:i})},fail(){t({success:!1,nfcA:i})}})})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nfcATransceive=void 0;t.nfcATransceive=(e,t)=>new Promise(i=>{e.transceive({data:t,success:e=>{console.log("success",e),i({transceiveSuccess:!0})},fail:e=>{console.log("fail",e),i({transceiveSuccess:!1})}})})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OtaStatus=void 0,function(e){e.CHECKING="CHECKING",e.LATEST="LATEST",e.UPDATE_AVAILABLE="UPDATE_AVAILABLE",e.UPDATING="UPDATING",e.UPDATE_SUCCESS="UPDATE_SUCCESS"}(t.OtaStatus||(t.OtaStatus={}))}]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mini_program_gizwits_sdk",
3
- "version": "3.7.34-cozev5",
3
+ "version": "3.7.36-cozev5",
4
4
  "description": "更新setDeviceOnboardingDeploy",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
package/yarn-error.log CHANGED
@@ -1,29 +1,29 @@
1
1
  Arguments:
2
- /Users/Kylewang/.nvm/versions/node/v16.13.2/bin/node /usr/local/bin/yarn
2
+ /Users/Kylewang/.nvm/versions/node/v20.13.1/bin/node /usr/local/bin/yarn
3
3
 
4
4
  PATH:
5
- /Users/Kylewang/.nvm/versions/node/v16.13.2/bin:/usr/local/opt/mysql@8.0/bin:/Users/Kylewang/Library/pnpm:/usr/local/sbin:/usr/local/bin:/opt/homebrew/bin:/Users/Kylewang/miniconda3/bin:/usr/local/opt/openjdk/bin:/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin:/Applications/CMake.app/Contents/bin:/tools:/platform-tools:/Users/Kylewang/.rvm/gems/ruby-3.0.0/bin:/Users/Kylewang/.rvm/gems/ruby-3.0.0@global/bin:/Users/Kylewang/.rvm/rubies/ruby-3.0.0/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin://Applications/Topaz Gigapixel AI.app/Contents/Resources/bin:/Library/Apple/usr/bin:/usr/local/MacGPG2/bin:/Applications/Wireshark.app/Contents/MacOS:/Applications/VMware Fusion Tech Preview.app/Contents/Public:/usr/local/go/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/Kylewang/.cargo/bin:/Users/Kylewang/Library/Android/sdk/platform-tools:/Users/Kylewang/Library/Android/sdk/tools:/usr/local/mysql/bin:/Users/Kylewang/flutter/bin:/Applications/Android Studio.app/Contents/gradle/gradle-5.1.1/bin:/Users/Kylewang/.rvm/bin:.:/usr/local/go/bin:/Users/Kylewang/Library/Android/sdk/ndk/20.0.5594570/build:/usr/local/go/bin:/Users/Kylewang/Documents/go_workspaces/bin:
5
+ /Users/Kylewang/.nvm/versions/node/v20.13.1/bin:/usr/local/go/bin:/usr/local/opt/mysql@8.0/bin:/Users/Kylewang/Library/pnpm:/usr/local/sbin:/usr/local/bin:/opt/homebrew/bin:/Users/Kylewang/miniconda3/bin:/usr/local/opt/openjdk/bin:/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin:/Applications/CMake.app/Contents/bin:/tools:/platform-tools:/Users/Kylewang/.rvm/gems/ruby-3.0.0/bin:/Users/Kylewang/.rvm/gems/ruby-3.0.0@global/bin:/Users/Kylewang/.rvm/rubies/ruby-3.0.0/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin://Applications/Topaz Gigapixel AI.app/Contents/Resources/bin:/Library/Apple/usr/bin:/usr/local/MacGPG2/bin:/Applications/Wireshark.app/Contents/MacOS:/Applications/VMware Fusion Tech Preview.app/Contents/Public:/usr/local/go/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/Kylewang/.cargo/bin:/Users/Kylewang/Library/Android/sdk/platform-tools:/Users/Kylewang/Library/Android/sdk/tools:/usr/local/mysql/bin:/Users/Kylewang/flutter/bin:/Applications/Android Studio.app/Contents/gradle/gradle-5.1.1/bin:/Users/Kylewang/.rvm/bin:.:/usr/local/go/bin:/Users/Kylewang/Library/Android/sdk/ndk/20.0.5594570/build:/usr/local/go/bin:/Users/Kylewang/Documents/go_workspaces/bin:
6
6
 
7
7
  Yarn version:
8
8
  1.22.11
9
9
 
10
10
  Node version:
11
- 16.13.2
11
+ 20.13.1
12
12
 
13
13
  Platform:
14
14
  darwin arm64
15
15
 
16
16
  Trace:
17
17
  Error: certificate has expired
18
- at TLSSocket.onConnectSecure (node:_tls_wrap:1530:34)
19
- at TLSSocket.emit (node:events:390:28)
20
- at TLSSocket._finishInit (node:_tls_wrap:944:8)
21
- at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:725:12)
18
+ at TLSSocket.onConnectSecure (node:_tls_wrap:1674:34)
19
+ at TLSSocket.emit (node:events:519:28)
20
+ at TLSSocket._finishInit (node:_tls_wrap:1085:8)
21
+ at ssl.onhandshakedone (node:_tls_wrap:871:12)
22
22
 
23
23
  npm manifest:
24
24
  {
25
25
  "name": "mini_program_gizwits_sdk",
26
- "version": "3.7.31-cozev5",
26
+ "version": "3.7.35-cozev5",
27
27
  "description": "更新setDeviceOnboardingDeploy",
28
28
  "main": "./dist/index.js",
29
29
  "scripts": {