diff --git a/bin/config/transformer.js b/bin/config/transformer.js index ac93cb7c1..4f66f1e20 100644 --- a/bin/config/transformer.js +++ b/bin/config/transformer.js @@ -1 +1 @@ -'use strict';require('../setupBabel')();var e=require('metro-react-native-babel-transformer/src/index.js'),r=require('path'),i=require("fs"),n=require("./common"),t=n.project_dir,o=n.DEV,u=require('../fixbug'),s=e.transform,a={getCacheKey:e.getCacheKey},f=new Map;function l(e){e&&'string'!=typeof e&&(e.modules||[]).forEach(function(e){f.set(e[1],e[0])})}var c={"modules":[["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"./service/Account\")).default;exports.default=r;","miot-sdk/Account.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,i=e(require(\"@babel/runtime/helpers/objectSpread\")),o=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),u=t(require(\"../native\")),s=require(\"../decorator/ReportDecorator\"),c=(r=(function(){function e(){(0,o.default)(this,e)}return(0,n.default)(e,[{key:\"load\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=u.Properties.of(this);return!t&&r.isLoaded?Promise.resolve(this):new Promise(function(t,o){u.default.MIOTService.loadAccountInfo(r.id,function(n,a){n?(a.nickName&&''!==a.nickName||(a.nickName=r.nickName||''),u.Properties.init(e,(0,i.default)({},a,{isLoaded:!0,id:r.id})),t(e)):o(a)})})}},{key:\"getAccountInfoById\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.loadAccountInfo(e,function(e,i){e&&i?t({ID:i.id||i.currentAccountID2||i.userid,avatarURL:i.avatarURL,birth:i.birth,email:i.email,nickName:i.nickname||i.nickName,phone:i.phone,sex:i.sex,shareTime:i.shareTime}):r(i)})})}},{key:\"getAccountInfoList\",value:function(e){return new Promise(function(t,r){u.default.MIOTRPC.standardCall('/home/profiles',{uids:e},function(e,i){if(e){var o=[];if(null===i||null===i.list||0===i.list.length)t(o);else{for(var n=i.list.length,a=0;a1&&void 0!==arguments[1]?arguments[1]:0;return setTimeout(e,t)};exports.SetTimeout=x;var g=function(e){return e&&clearTimeout(e)};exports.ClearTimeout=g;var E={current:0,funcs:[],timer:0},T={addListener:function(e,t){if(!t||t<1||!e)return{remove:function(){},get isValid(){return!1}};var r=E.funcs;if(!E.timer){E.timer=setTimeout(function e(){if(E.timer){var t=(new Date).getTime(),i=4999;r.forEach(function(e,a){if(e)if(e.expire<=t)\"continue\"==e.func()?e.expire=t+e.timeout:r[a]=0;else{var n=e.expire-t;n1?t-1:0),a=1;a1?i-1:0),l=1;l1?a-1:0),u=1;u0&&void 0!==arguments[0])||arguments[0],t=(new Date).getTime();t!=p.t&&(p.ts=p.rand((\"\"+(t+p.min)).split(\"\")),p.t=t,p.i=a(1e7,99999999),p.r=p.i%10,u(p.ts,p.r,p.ts.length-1-p.r));var r=\"\"+ ++p.i%1e8+p.r+a(1e7,99999999),n=Math.floor((r.length-p.ts.length)/2),o=p.ts.map(function(e,t){return t%2?e+r.charAt(n+t):r.charAt(n+t)+e}).join(\"\");for(o=r.substr(0,n)+o+r.substr(n+p.ts.length),o=p.rand(o.split(\"\")).join(\"\");o.length<32;)o=a(0,10)+o;return e?(e=\"function\"==typeof e?e:p.exchange)(o):o}function h(e,t,r){return((e<<16)+(t<<8)+r).toString(16).padStart(6,'0')}function d(e){return\"rgb(\"+e.slice(1).match(/.{2}/g).map(function(e){return parseInt(e,16)}).join()+\")\"}function v(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;no?e:void 0===n||null===n?'-':n})}function y(e){var t=Object.prototype.toString.call(e);return t.substr(8,t.length-9).toLowerCase()}function x(e){return void 0===e?'undefined':null===e?'null':e.constructor.name.toLowerCase()}function b(e){return e.match(/([^?=&]+)(=([^&]*))/g).reduce(function(e,t){return e[t.slice(0,t.indexOf('='))]=t.slice(t.indexOf('=')+1),e},{})}function m(e,t,r){return Object.defineProperty(e,t,{enumerable:!0,configurable:!1,get:function(){return r},set:function(){}})}function A(e){if(!e)return e;for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0?r:Object.keys(e)).forEach(function(t){m(e,t,e[t])}),e}function j(e){return e?(Object.keys(e).forEach(function(t){m(e,t,e[t]||t)}),e):{}}function E(e){if(e.length<1)return function(){return\"\"};var t=e[0];return\"function\"==typeof t?t:function(){for(var t=arguments.length,r=new Array(t),n=0;n0)for(var o=1;o()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;exports.REGEXP_EMAIL=M;var R={swap:u,randomInt:a,uniqueToken32:g,format:v,formats:O,createArrayFormater:E,typeName:y,className:x,setReadonly:m,setObjectReadonly:A,setObjectAsConstants:j,hexToRgb:d,rgbToHex:h,getUrlParameters:b,getStandardLanguageName:w,REGEXP_EMAIL:M};exports.default=R;","miot-sdk/native/utils.js"],["'use strict';var e=require(\"react-native/Libraries/Image/resolveAssetSource\");function t(e){return e&&(e.endsWith(\"/\")||(e+=\"/\"),e.startsWith(\"/\")&&(e=\"file://\"+e)),e}module.exports=function(s,r,o){if(console.log(\"resolveAssetSource\",s,r,o),s&&\"\"!=s&&o&&\"\"!=o&&r&&\"\"!=r){var i=(s=t(s)).startsWith(\"asset:/\")?\"file:///\":null;o=t(o),r=t(r),e.setMiotProcessor&&e.setMiotProcessor(function(e){e&&'object'==typeof e&&'string'==typeof e.local&&e.local.length>0&&(e.uri=r+e.local)}),e.setCustomSourceTransformer(function(e){var t=e.asset._miot_base_bundle;e.jsbundleUrl=t?i||s:o;var r=e.defaultAsset();return t&&i&&(r.uri=s+r.uri.substr(i.length)),r})}};","miot-sdk/native/common/node/resolve.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;exports.default=function(e,n){var t=function(n,t){var r=e[n]||{actions:new Set};return r.close?r.close():e[n]=r,r.emitter={get eventType(){return n},emit:function(){for(var e=arguments.length,n=new Array(e),t=0;t4&&void 0!==arguments[4]?arguments[4]:200404};t.default.MIOTPackage.apiReport(c)}function r(e,t,r,n,c){c&&'object'==typeof c&&'code'in c?o(e,t,r,n,c.code):o(e,t,r,n)}exports.referenceReport=function(e){o(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:'constructor',!0,0)};","miot-sdk/decorator/ReportDecorator.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.takeBluetooth=exports.getBluetoothUUID128=exports.IBluetoothLock=exports.IBluetoothCharacteristic=exports.IBluetoothService=exports.BluetoothEvent=exports.IBluetooth=exports.default=void 0;var o=t(require(\"./device/bluetooth\")),r=require(\"./device/bluetooth/BluetoothDevice\"),u=require(\"./device/bluetooth/CoreBluetooth\"),l=e(require(\"./device/bluetooth/LockDevice\")),h=o.default;exports.default=h;var i=r.IBluetooth;exports.IBluetooth=i;var a=r.BluetoothEvent;exports.BluetoothEvent=a;var s=u.IBluetoothService;exports.IBluetoothService=s;var v=u.IBluetoothCharacteristic;exports.IBluetoothCharacteristic=v;var p=l.default;exports.IBluetoothLock=p;var B=o.getBluetoothUUID128;exports.getBluetoothUUID128=B;var c=o.takeBluetooth;exports.takeBluetooth=c;","miot-sdk/Bluetooth.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.takeBluetooth=s,exports.default=exports.getBluetoothUUID128=void 0;var n=t(require(\"../../native\")),i=require(\"./BluetoothDevice\"),r=e(require(\"./LockDevice\")),o=e(require(\"../BasicDevice\")),u=e(require(\"./blespec\")),a=function(e){if(!e||''==e)return null;if((e=e.toUpperCase()).length>8)return e;switch(e.length){case 2:e=\"000000\"+e;break;case 4:e=\"0000\"+e;break;case 6:e=\"00\"+e;break;case 8:break;default:return null}return e+\"-0000-1000-8000-00805F9B34FB\"};exports.getBluetoothUUID128=a;var c=function(e,t){return{mac:e,deviceUUID:t,get id(){return n.isAndroid?this.mac:this.mac?this.mac:this.deviceUUID}}},l=n.default.LocalCache.bluetoothDevices;function s(e,t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e&&!t)return null;var u=(0,i.getMacUuid)();if(n.isAndroid)t=null;else if(u&&(t&&(t=a(t)),e)){var s=u.get(e);s?t=s:(0,i.setMacUuid)(e,t)}var f=l.get(t||e);if(!f&&t&&(f=l.get(e))&&l.set(t,f),f)n.Properties.of(f).isClassic=o;else{var d=c(e,t),h=new r.default;n.Properties.init(h,{fakemac:d}),f=n.Properties.init(new i.IBluetooth,{fakemac:d,services:new Map,securityChip:h,isClassic:o,_specMsgSet:new Set}),e&&l.set(e,f),t&&l.set(t,f)}return f}var f={UUID128:a,isSameUUID:function(e,t){return e==t||!(!e||!t)&&a(e)==a(t)},createBluetoothLE:function(e){return n.isAndroid?s(e,null,!1):s(null,e,!1)},createBluetoothClassic:function(e){return n.isAndroid?s(e,null,!0):s(null,e,!0)},checkBluetoothIsEnabled:function(){return n.isAndroid?new Promise(function(e){n.default.MIOTBluetooth.isBluetoothOpen(function(t){e(t)})}):new Promise(function(e){n.default.MIOTBluetooth.getBluetoothStateCallback(function(t){e(5==t)})})},startScan:function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r0&&void 0!==arguments[0]&&arguments[0];n.isAndroid&&n.default.MIOTBluetooth.openBluetooth(e)},isBleGatewayConnected:function(e){return new Promise(function(t){n.isAndroid?n.default.MIOTBluetooth.isBleGatewayConnected(e,function(e){t(e)}):n.default.MIOTHost.isBtGateWaySubDeviceWithMac(e,function(e){t(e)})})},isBleOrMeshGatewayConnected:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(i,r){n.default.MIOTBluetooth.isBleOrMeshGatewayConnected(e,t,function(t,n){if(t){if(n&&n.data&&!n.data.connected&&o.default.mac===e&&o.default.isShared)return void i({code:0,data:{connected:o.default.isOnline}});i(n)}else r(n)})})},getBtGateWaySubDeviceRSSI:function(e){return new Promise(function(t,i){n.default.MIOTHost.getBtGateWaySubDeviceRSSIWithMac(e,function(e,n){e?t(n):i(n)})})},bindDeviceforMIUI:function(e){n.isAndroid&&n.default.MIOTBluetooth.bindDevice(e)},unBindDeviceforMIUI:function(e){n.isAndroid&&n.default.MIOTBluetooth.unBindDevice(e)},setAlertConfigsOnMIUI:function(e,t,i){if(n.isAndroid)return new Promise(function(r){n.default.MIOTBluetooth.setAlertConfigs(e,t,i,function(e){return r(e)})});Promise.reject(\"not MIUI\")}};exports.default=f;","miot-sdk/device/bluetooth/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.setMacUuid=function(e,t){t&&v.set(e,t)},exports.getMacUuid=function(){return v},exports.BluetoothEvent=exports.IBluetooth=void 0;var r,o=e(require(\"@babel/runtime/helpers/toConsumableArray\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),c=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),s=t(require(\"../../native\")),a=require(\"./CoreBluetooth\"),u=t(require(\"./index\")),l=e(require(\"../BasicDevice\")),f=require(\"../../decorator/ReportDecorator\"),v=s.isIOS?new Map:null,d=s.default.LocalCache.bluetoothDevices;function p(e){for(var t=e.toString(),r='',o=0;o0&&void 0!==arguments[0]?arguments[0]:-1,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!Number.isInteger(t))return Promise.reject({code:101,msg:\"the first param type is error, param type must be an integer\"});var o=s.Properties.of(this);if(o._connecting&&!s.isIOS)return Promise.reject({code:100,msg:\"the bluetooth is connecting now, please waiting for a moment\"});if(r=r||{},o.isConnected&&!r.forceReconnect&&(r.forceReconnect=o._disconnect_timeout&&o._disconnect_timeout>=(new Date).getTime(),!r.forceReconnect))return Promise.resolve(this);var i=o.fakemac;if(r&&r.peripheralID&&(i.deviceUUID?i.deviceUUID!==r.peripheralID&&u.default.createBluetoothClassic(r.peripheralID):i.deviceUUID=r.peripheralID),v&&!i.deviceUUID){if(!i.mac)return Promise.reject({code:10,msg:\"invalid bluetooth on IOS\"});i.deviceUUID=v.get(i.mac),i.deviceUUID}return o._connecting=!0,new Promise(function(n,c){s.default.MIOTBluetooth.connect(i.id,t,r,function(t,r){if(o._connecting=!1,o._disconnect_timeout=0,t){o.isConnected=!0;var a=r.services;(a||[]).forEach(function(t){var r=e.getService(t.uuid);r&&(s.Properties.of(r).isDiscovered=!0,(t.chars||[]).forEach(function(e){var t=r.getCharacteristic(e);t&&(s.Properties.of(t).isDiscovered=!0)}))}),n(r),s.MIOTEventEmitter.emit('bluetoothSeviceDiscovered',{mac:i.id,foundUUIDs:(a||[]).map(function(e){return e.uuid})}),(a||[]).forEach(function(e){s.MIOTEventEmitter.emit('bluetoothCharacteristicDiscovered',{mac:i.id,serviceUUID:e.uuid,foundUUIDs:e.chars||[]})})}else{if(o.isConnected=!1,s.isIOS){var u={0:-6,1:-15,2:-7,3:-10,5:-1,6:-16,7:-18,8:-20,4:0};void 0!==r.code&&(console.log(r.code),void 0!==u[r.code]&&(r.code=u[r.code]))}c(r)}})})}},{key:\"readRSSI\",value:function(){var e=this;return new Promise(function(t,r){var o=s.Properties.of(e).fakemac;s.default.MIOTBluetooth.readRSSI(o.id,function(e,o){e?t(o):r(o)})})}},{key:\"disconnect\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=s.Properties.of(this);return!(t._connecting&&!s.isIOS)&&(t._disconnect_timeout=(new Date).getTime()+(e&&e>0?e:0)+1,s.default.MIOTBluetooth.disconnectDeviceWithDelay(t.fakemac.id,e),!0)}},{key:\"maximumWriteValueLength\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return __DEV__&&console.warn&&console.warn(\"maximumWriteValueLength deprecated Use {@readReliableMTU} \\u5efa\\u8bae\\u4f7f\\u7528readReliableMTU\"),new Promise(function(t,r){s.isIOS?s.default.MIOTBluetooth.maximumWriteValueLengthForType(e,function(e,o){e?t(o):r(o)}):(console.log(\"has no real methord,return default value 20 bytes.\"),t(160))})}},{key:\"readReliableMTU\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{timeout:2};return new Promise(function(t,r){if(s.isIOS)s.default.MIOTBluetooth.readReliableMTU(e,function(e,o,i){e?t({reliable:o,mtu:i}):r(i)});else{var o=l.default.mtu||23;t({reliable:23===o,mtu:o})}})}},{key:\"getVersion\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(o,i){function n(e){var t=(s.Properties.of(this).fakemac||{}).mac,r=l.default,o=s.Properties.of(r);o.mac!=t&&(r=(o._subDevices||[]).find(function(e){return t==e.mac})),r&&(r.version=e)}var c=s.Properties.of(e).fakemac;s.isIOS?t?s.default.MIOTBluetooth.readHexStringWithCallback(c.id,'0004','FE95',function(t,c){if(r||(c=p(c)),t)return n.call(e,c),void o(c);i(c)}):s.default.MIOTDevice.getVersion(!1,function(t,r){if(t)return n.call(e,r),void o(r);i(r)}):s.default.MIOTBluetooth.getVersion(c.id,!1,function(t,r){if(t)return n.call(e,r),void o(r);i(r)})})}},{key:\"subscribeMessages\",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&r.objects.forEach(function(e){var t=\"prop.\"+e.siid+\".\"+e.piid;c.has(t)&&(a.set(t,e.value),s.set(t,e))});break;case d.BleSpecOpCode.event_occured:if(r.objects&&r.objects.length>0){var u=\"event.\"+r.siid+\".\"+r.eiid;c.has(u)&&(a.set(u,r.objects),s.set(u,r.objects))}break;default:console.log('BLESpecNotifyActionEvent,unknown opcode:',r.opcode)}0!==a.size?e.emit(n,a,s):console.log('BLESpecNotifyActionEvent,data is empty.')}else console.log('BLESpecNotifyActionEvent,_specMsgSet is null')}else console.log('BLESpecNotifyActionEvent,bleDevice is null')}else console.log('BLESpecNotifyActionEvent error:result is null')}}},deviceReceivedMessages:{forever:function(e){return function(t){var r=t.did,o=t.data,i=t.subcribeId;if(console.log('listenMessage,deviceReceivedMessages',r,o,i,p.default.LocalCache.deviceUsingSubscribers),i){var n=p.default.LocalCache.deviceUsingSubscribers;if(n&&!n.has(i))return}var c=f(r).device;if(c){\"string\"==typeof o&&(o=JSON.parse(o));var s=new Map,a=p.Properties.of(c)._pollMsgSet,u=i&&a&&a.subscribeInfoMap.has(i);o.forEach(function(e){if(a&&(u||e._msg_source&&e._msg_source===y.MSG_SOURCE_POLL)){var t=e.value,r=a.propInfoMap.get(e.key);r&&(r.type===y.PROP_TYPE_MIOT_SPEC||r.type===y.PROP_TYPE_PROFILE?e.time>r.updateTime&&JSON.stringify(t)!==JSON.stringify(r.value)?(r.value=e.value,s.set(e.key,e.value),r.updateTime=e.time):console.log('listenMessage,deviceReceivedMessages,prop not changed,',e.key,e.value):s.set(e.key,e.value))}else s.set(e.key,e.value)}),e.emit(c,s,o)}}},sameas:(p.isIOS,\"deviceRecievedMessages\")},multiSwitchNameChanged:{forever:function(e){return function(t){p.isAndroid&&'string'==typeof t.value&&(t.value=JSON.parse(t.value)),e.emit(t.value,t.did)}}}};exports.DeviceEvent=g,(0,p.buildEvents)(g);var D=(r=(function(){function e(){(0,i.default)(this,e)}return(0,n.default)(e,[{key:\"getDeviceWifi\",value:function(){var e=p.Properties.of(this);return e._device_wifi||(e._device_wifi=p.Properties.init(new u.default,e),e._device_wifi.deviceID=this.deviceID),e._device_wifi}},{key:\"deleteDevices\",value:function(e){return new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/user/del_owner_device_batch\",{devList:e},function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getSubDevices\",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=p.Properties.of(this);return i.parentDevice&&Object.keys(i.parentDevice).length>0?Promise.reject('parent device exist, current device is a sub device, can not load sub devices'):r&&i._subDevices?Promise.resolve(i._subDevices):new Promise(function(r,n){p.default.MIOTDevice.loadSubDevices(t.deviceID,function(c,s){c&&s?(i._subDevices=s.map(function(r){return p.Properties.init(new e,(0,o.default)({},r,{_parentDeviceID:t.deviceID,_parentDevice:t,_msgset:new Set,_pollMsgSet:new y}))}),r(i._subDevices)):n(s)})})}},{key:\"getLinkedBTDevices\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e=e||this.deviceID,new Promise(function(t,r){p.default.MIOTDevice.getLinkedBTDevices(e,function(e,o){if(!e||!o)return r({code:-1,error:o,extra:'fetch bledevice info failed'});t(o)})})}},{key:\"loadRealDeviceConfig\",value:function(e){return new Promise(function(t,r){p.default.MIOTHost.loadRealDeviceConfig(e,function(e,o){e?t(o):r(o)})})}},{key:\"getBluetoothLE\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=p.Properties.of(this);if(!t.mac)throw new Error(\"the device is not initialized\");return(0,l.takeBluetooth)(t.mac,e,!1)}},{key:\"reportDeviceGPSInfo\",value:function(){var e=this;return new Promise(function(t,r){p.default.MIOTDevice.reportDeviceGPSInfo(function(o,i){if(o){var n=p.Properties.of(e);n.latitude=i.latitude||i.lat,n.longitude=i.longitude||i.lng,t(i)}else r(i)})})}},{key:\"getDeviceTimeZone\",value:function(){var e=this;if(p.isIOS){var t={timeZone:this.timeZone};return Promise.resolve(t)}return new Promise(function(t,r){p.default.MIOTDevice.getDeviceTimeZone(e.deviceID,function(e,o){e?t(o):r(o)})})}},{key:\"changeDeviceName\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new Promise(function(r,o){p.default.MIOTDevice.changeDeviceName(e,t,function(i,n){if(i){var c=f(t),s=c.device,p=c.props;s&&p&&(p.name=e),r(n)}else o(n)})})}},{key:\"getCurrentDeviceValue\",value:function(){return new Promise(function(e,t){p.default.MIOTDevice.getCurrentDeviceValue(function(r,o){r?e(o):t(o)})})}},{key:\"getVirtualDevices\",value:function(){return __DEV__&&console.warn&&console.warn(\"getVirtualDevices deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().getVirtualDevices()\\u4ee3\\u66ff\"),this.getDeviceWifi().getVirtualDevices()}},{key:\"getRecommendScenes\",value:function(e,t){return __DEV__&&console.warn&&console.warn(\"getRecommendScenes deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().getRecommendScenes()\\u4ee3\\u66ff\"),this.getDeviceWifi().getRecommendScenes(e,t)}},{key:\"requestAuthorizedDeviceListData\",value:function(e){return __DEV__&&console.warn&&console.warn(\"requestAuthorizedDeviceListData deprecated since 10032\\uff0c\\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().requestAuthorizedDeviceListData()\\u4ee3\\u66ff\"),new Promise(function(t,r){p.default.MIOTDevice.requestAuthorizedDeviceListData(e,function(e,o){e?t(o):r(o)})})}},{key:\"checkIsHomeKitDevice\",value:function(){return __DEV__&&console.warn&&console.warn(\"checkIsHomeKitDevice deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().checkIsHomeKitDevice()\"),this.getDeviceWifi().checkIsHomeKitDevice()}},{key:\"checkHomeKitConnected\",value:function(){return __DEV__&&console.warn&&console.warn(\"checkHomeKitConnected deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().checkHomeKitConnected()\"),this.getDeviceWifi().checkHomeKitConnected()}},{key:\"bindToHomeKit\",value:function(){return __DEV__&&console.warn&&console.warn(\"bindToHomeKit deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().bindToHomeKit()\"),this.getDeviceWifi().bindToHomeKit()}},{key:\"checkFirmwareUpdateAndAlert\",value:function(){return __DEV__&&console.warn&&console.warn(\"checkFirmwareUpdateAndAlert deprecated since 10032,\\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().checkFirmwareUpdateAndAlert()\"),this.getDeviceWifi().checkFirmwareUpdateAndAlert()}},{key:\"readDeviceNetWorkInfo\",value:function(e){return __DEV__&&console.warn&&console.warn(\"readDeviceNetWorkInfo deprecated since 10032 \\u5373\\u5c06\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().readDeviceNetWorkInfo()\\u3002\"),this.getDeviceWifi().readDeviceNetWorkInfo(e)}},{key:\"createScene\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return __DEV__&&console.warn&&console.warn(\"createScene deprecated since 10032 \\u8bf7\\u4f7f\\u7528Service.scene.createScene(BasicDevice.deviceID,sceneType,opt)\"),a.default.createScene(this.deviceID,e,t)}},{key:\"createTimerScene\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return __DEV__&&console.warn&&console.warn(\"createTimerScene deprecated since 10032 \\u8bf7\\u4f7f\\u7528Service.scene.createTimerScene(BasicDevice.deviceID,opt)\"),a.default.createTimerScene(this.deviceID,e)}},{key:\"loadScenes\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return __DEV__&&console.warn&&console.warn(\"loadScenes deprecated since 10032 \\u8bf7\\u4f7f\\u7528Service.scene.loadScenes(BasicDevice.deviceID,sceneType,opt)\"),a.default.loadScenes(this.deviceID,e,t)}},{key:\"loadTimerScenes\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return __DEV__&&console.warn&&console.warn(\"loadTimerScenes deprecated since 10032 \\u8bf7\\u4f7f\\u7528Service.scene.loadTimerScenes(BasicDevice.deviceID,opt)\"),a.default.loadTimerScenes(this.deviceID,e)}},{key:\"reportLog\",value:function(e){__DEV__&&console.warn&&console.warn(\"reportLog deprecated since 10032,\\u8bf7\\u4f7f\\u7528Service.smarthome.reportLog()\\u4ee3\\u66ff\\u3002\"),'[object String]'==Object.prototype.toString.call(e)?p.default.MIOTService.addLog(this.model,e):p.default.MIOTService.addLog(this.model,String(e))}},{key:\"getRoomInfoForCurrentHome\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e=e||this.deviceID,new Promise(function(t,r){p.default.MIOTDevice.getRoomInfoForCurrentHome(e,function(e,o){e?t(o):r(o)})})}},{key:\"needUpgrade\",get:function(){return p.Properties.of(this).needUpgrade},set:function(e){p.Properties.of(this).needUpgrade=e}},{key:\"deviceID\",get:function(){return p.Properties.of(this).did}},{key:\"model\",get:function(){return p.Properties.of(this).model}},{key:\"isReady\",get:function(){var e=p.Properties.of(this).did;return e&&''!=e}},{key:\"parentDevice\",get:function(){var t=p.Properties.of(this)._parentDevice;if(!t){var r=p.Properties.of(this).parentDevice;r&&r.did&&(t=new e,p.Properties.init(t,(0,o.default)({},r,{_msgset:new Set,_pollMsgSet:new y})),p.Properties.of(this)._parentDevice=t)}return t}},{key:\"isRootDevice\",get:function(){var e=p.Properties.of(this).parentDevice;return!(e&&Object.keys(e).length>0)}},{key:\"isVirtualDevice\",get:function(){return p.Properties.of(this).isVirtual||p.Properties.of(this)._is_virtual}},{key:\"owner\",get:function(){var e=p.Properties.of(this);return e._owner||(e._owner=p.Properties.init(new s.default,{id:p.Properties.of(this).ownerId,nickName:p.Properties.of(this).ownerName,isLoaded:!1})),e._owner}},{key:\"name\",get:function(){return p.Properties.of(this).name}},{key:\"session\",get:function(){return p.Properties.of(this).session}},{key:\"iconURL\",get:function(){return p.Properties.of(this).iconURL}},{key:\"permitLevel\",get:function(){return p.Properties.of(this).permitLevel}},{key:\"isSetPinCode\",get:function(){return p.Properties.of(this).isSetPinCode}},{key:\"showMode\",get:function(){return p.Properties.of(this).showMode}},{key:\"mac\",get:function(){return p.Properties.of(this).mac}},{key:\"lastVersion\",get:function(){if(p.isAndroid){if(this.extra&&\"string\"==typeof this.extra){var e=JSON.parse(this.extra);return e&&e.fw_version&&\"string\"==typeof e.fw_version&&e.fw_version.length>0?e.mcu_version&&\"string\"==typeof e.mcu_version&&e.mcu_version.length>0?e.fw_version+\".\"+e.mcu_version:e.fw_version:p.Properties.of(this).version}return p.Properties.of(this).version}return p.Properties.of(this).version}},{key:\"latestVersion\",get:function(){return p.Properties.of(this).latestVersion}},{key:\"IP\",get:function(){return p.Properties.of(this).ip}},{key:\"RSSI\",get:function(){return p.Properties.of(this).rssi}},{key:\"SSID\",get:function(){return p.Properties.of(this).ssid}},{key:\"BSSID\",get:function(){return p.Properties.of(this).bssid}},{key:\"type\",get:function(){return p.Properties.of(this).pid}},{key:\"lastModified\",get:function(){return p.Properties.of(this).lastModified}},{key:\"location\",get:function(){return p.Properties.of(this).location}},{key:\"latitude\",get:function(){return p.Properties.of(this).latitude}},{key:\"longitude\",get:function(){return p.Properties.of(this).longitude}},{key:\"isVoiceDevice\",get:function(){return p.Properties.of(this).isVoiceDevice}},{key:\"isOnline\",get:function(){return p.Properties.of(this).isOnline}},{key:\"mtu\",get:function(){return p.Properties.of(this).mtu}},{key:\"isOwner\",get:function(){return 0!=(16&p.Properties.of(this).permitLevel)}},{key:\"isFamily\",get:function(){var e=p.Properties.of(this).permitLevel;return 8==e||68==e}},{key:\"isShared\",get:function(){var e=p.Properties.of(this).permitLevel;return(4==e||32==e)&&null!==p.Properties.of(this).ownerName}},{key:\"isBinded\",get:function(){return 0!=(30&p.Properties.of(this).permitLevel)}},{key:\"isBinded2\",get:function(){return this.isBinded}},{key:\"isReadonlyShared\",get:function(){return 0!=(32&p.Properties.of(this).permitLevel)&&null!==p.Properties.of(this).ownerName}},{key:\"extra\",get:function(){return __DEV__&&console.warn&&console.warn(\"extra deprecated since 10032 \\u6b64\\u5b57\\u6bb5\\u540e\\u53f0\\u65e0\\u4eba\\u7ef4\\u62a4\\uff0c\\u4e5f\\u65e0\\u4eba\\u77e5\\u9053\\u5b83\\u5b58\\u5728\\u7684\\u542b\\u4e49\\uff0c\\u6545\\u5e9f\\u5f03\\u3002\"),p.Properties.of(this).extrainfo||p.Properties.of(this).extra}},{key:\"parentModel\",get:function(){return __DEV__&&console.warn&&console.warn(\"parentModel deprecated 10023\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c10023\\u53ca\\u540e\\u7eed\\u7248\\u672c\\u5efa\\u8bae\\u4f7f\\u7528 Device.parentDevice.model\"),p.Properties.of(this).parentModel}},{key:\"timeZone\",get:function(){return __DEV__&&console.warn&&console.warn(\"timeZone deprecated 10021\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c10021\\u53ca\\u540e\\u7eed\\u7248\\u672c\\u5efa\\u8bae\\u4f7f\\u7528 Device.getDeviceTimeZone().then\"),p.Properties.of(this).timeZone}},{key:\"propInfo\",get:function(){return __DEV__&&console.warn&&console.warn(\"propInfo deprecated \\u56e0\\u6b64\\u5c5e\\u6027\\u6781\\u5927\\u9020\\u6210\\u7c73\\u5bb6\\u8bbe\\u5907\\u5217\\u8868\\u9875\\u63a5\\u53e3\\u54cd\\u5e94\\u65f6\\u957f\\u53d8\\u957f\\uff0c\\u73b0\\u5df2\\u5e9f\\u5f03\\uff0c\\u4e00\\u822c\\u90fd\\u4f1a\\u8fd4\\u56denull\\u3002\\u82e5\\u9700\\u8981\\u8fd9\\u91cc\\u9762\\u7684\\u5c5e\\u6027\\uff0c\\u8bf7\\u76f4\\u63a5\\u901a\\u8fc7callMethod\\u53bb\\u8bfb\\u53d6\\u3002\"),p.Properties.of(this).propInfo}},{key:\"resetFlag\",get:function(){return __DEV__&&console.warn&&console.warn(\"resetFlag deprecated 10023\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c\\u540e\\u7eed\\u4e0d\\u518d\\u63d0\\u4f9b\\u6b64\\u5b57\\u6bb5\\uff0c\\u6b64\\u65b9\\u6cd5\\u6c38\\u8fdc\\u8fd4\\u56de0\"),p.Properties.of(this).resetFlag}}]),e})(),(0,c.default)(r.prototype,\"deleteDevices\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"deleteDevices\"),r.prototype),(0,c.default)(r.prototype,\"getSubDevices\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getSubDevices\"),r.prototype),(0,c.default)(r.prototype,\"getLinkedBTDevices\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getLinkedBTDevices\"),r.prototype),(0,c.default)(r.prototype,\"loadRealDeviceConfig\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadRealDeviceConfig\"),r.prototype),(0,c.default)(r.prototype,\"getBluetoothLE\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getBluetoothLE\"),r.prototype),(0,c.default)(r.prototype,\"reportDeviceGPSInfo\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"reportDeviceGPSInfo\"),r.prototype),(0,c.default)(r.prototype,\"getDeviceTimeZone\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getDeviceTimeZone\"),r.prototype),(0,c.default)(r.prototype,\"changeDeviceName\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"changeDeviceName\"),r.prototype),(0,c.default)(r.prototype,\"getCurrentDeviceValue\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getCurrentDeviceValue\"),r.prototype),(0,c.default)(r.prototype,\"getVirtualDevices\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getVirtualDevices\"),r.prototype),(0,c.default)(r.prototype,\"getRecommendScenes\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getRecommendScenes\"),r.prototype),(0,c.default)(r.prototype,\"requestAuthorizedDeviceListData\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"requestAuthorizedDeviceListData\"),r.prototype),(0,c.default)(r.prototype,\"checkIsHomeKitDevice\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkIsHomeKitDevice\"),r.prototype),(0,c.default)(r.prototype,\"checkHomeKitConnected\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkHomeKitConnected\"),r.prototype),(0,c.default)(r.prototype,\"bindToHomeKit\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"bindToHomeKit\"),r.prototype),(0,c.default)(r.prototype,\"checkFirmwareUpdateAndAlert\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkFirmwareUpdateAndAlert\"),r.prototype),(0,c.default)(r.prototype,\"readDeviceNetWorkInfo\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"readDeviceNetWorkInfo\"),r.prototype),(0,c.default)(r.prototype,\"createScene\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"createScene\"),r.prototype),(0,c.default)(r.prototype,\"createTimerScene\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"createTimerScene\"),r.prototype),(0,c.default)(r.prototype,\"loadScenes\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadScenes\"),r.prototype),(0,c.default)(r.prototype,\"loadTimerScenes\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadTimerScenes\"),r.prototype),(0,c.default)(r.prototype,\"reportLog\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"reportLog\"),r.prototype),(0,c.default)(r.prototype,\"getRoomInfoForCurrentHome\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getRoomInfoForCurrentHome\"),r.prototype),r);exports.BasicDevice=D;var y=function e(){(0,i.default)(this,e),this.propInfoMap=new Map,this.subscribeInfoMap=new Map};exports.PollPropMap=y,y.PROP_TYPE_UNKNOWN=0,y.PROP_TYPE_MIOT_SPEC=1,y.PROP_TYPE_PROFILE=2,y.MSG_SOURCE_POLL=1;var h=new D;p.default.MIOTDevice&&p.Properties.init(h,(0,o.default)({},p.default.MIOTDevice.currentDevice,{_msgset:new Set,_pollMsgSet:new y}));var m=h;exports.default=m;","miot-sdk/device/BasicDevice.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.IScene=exports.SceneType=void 0;var r,o,n=e(require(\"@babel/runtime/helpers/objectSpread\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),p=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),u=t(require(\"../native\")),c=require(\"../decorator/ReportDecorator\"),s={Timer:8,Artificial:30,Automatic:15};exports.SceneType=s,Object.freeze(s);var d=(r=(function(){function e(){(0,i.default)(this,e)}return(0,a.default)(e,[{key:\"save\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t&&(t.name&&(this.name=t.name),t.identify&&(this.identify=t.identify),t.setting&&(this.setting=t.setting),t.authed&&t.authed.length>0&&(this.authorizedDeviceIDs=t.authed)),new Promise(function(t,r){var o={us_id:e.sceneID,st_id:e.type,name:e.name||'',identify:e.identify,setting:e.setting,authed:e.authorizedDeviceIDs};u.default.MIOTRPC.standardCall(\"/scene/edit\",o,function(o,n){if(o){var i=u.Properties.of(e);return i.data.us_id=i.data.us_id||n.us_id,i.data.status=n.status,t(e,n)}return r(n)})})}},{key:\"reload\",value:function(){var e=this;if(this.isNew)return Promise.reject(!1);var t=u.Properties.of(this);return new Promise(function(r,o){u.default.MIOTRPC.standardCall(\"/scene/get\",{us_id:e.sceneID},function(n,i){if(n&&i.result)return t.data=i.result,r(e,i);o(i)})})}},{key:\"start\",value:function(){var e=this;return this.isNew?Promise.reject(!1):new Promise(function(t,r){u.default.MIOTRPC.standardCall(\"/scene/start\",{us_id:e.sceneID},function(o,n){o&&t(e,n),!o&&r(n)})})}},{key:\"remove\",value:function(){var e=this;return this.isNew?Promise.reject(this):new Promise(function(t,r){u.default.MIOTRPC.standardCall(\"/scene/delete\",{us_id:e.sceneID},function(o,n){if(o)return u.Properties.of(e).data.us_id=0,t(e,n);r(n)})})}},{key:\"sceneID\",get:function(){return console.log(u.Properties.of(this).data.us_id),u.Properties.of(this).data.us_id}},{key:\"isNew\",get:function(){return!this.sceneID}},{key:\"createTime\",get:function(){return u.Properties.of(this).data.create_time}},{key:\"status\",get:function(){return u.Properties.of(this).data.status||0}},{key:\"deviceID\",get:function(){return u.Properties.of(this).deviceID}},{key:\"name\",get:function(){return(u.Properties.of(this).data||{}).name},set:function(e){u.Properties.of(this).data.name=e}},{key:\"type\",get:function(){return u.Properties.of(this).data.st_id}},{key:\"isTimer\",get:function(){return\"\"+this.type==\"\"+s.Timer}},{key:\"isArtificial\",get:function(){return\"\"+this.type==\"\"+s.Artificial}},{key:\"isAutomatic\",get:function(){return\"\"+this.type==\"\"+s.Automatic}},{key:\"identify\",get:function(){return u.Properties.of(this).data.identify},set:function(e){u.Properties.of(this).data.identify=e}},{key:\"setting\",get:function(){return u.Properties.of(this).data.setting||{}},set:function(e){u.Properties.of(this).data.setting=e||{}}},{key:\"authorizedDeviceIDs\",get:function(){return u.Properties.of(this).data.authed||[this.deviceID]},set:function(e){u.Properties.of(this).data.authed=e.map(function(e){return\"\"+e})}}]),e})(),(0,p.default)(r.prototype,\"save\",[c.report],Object.getOwnPropertyDescriptor(r.prototype,\"save\"),r.prototype),(0,p.default)(r.prototype,\"reload\",[c.report],Object.getOwnPropertyDescriptor(r.prototype,\"reload\"),r.prototype),(0,p.default)(r.prototype,\"start\",[c.report],Object.getOwnPropertyDescriptor(r.prototype,\"start\"),r.prototype),(0,p.default)(r.prototype,\"remove\",[c.report],Object.getOwnPropertyDescriptor(r.prototype,\"remove\"),r.prototype),r);function l(e,t){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)||{},o=r.identify,n=r.us_id,i=r.name,a=r.setting;return u.Properties.init(new d,{data:{st_id:t,us_id:n,identify:o,name:i,authed:[\"\"+e],setting:a||{},deviceID:e}})}function f(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o={did:e,st_id:t,type:0},i=r||{},a=i.identify,p=i.name;return a&&(o.identify=a),p&&(o.name=p),new Promise(function(r,i){u.default.MIOTRPC.standardCall(\"/scene/list\",o,function(o,c){if(!o||!c)return i(c);r(Object.keys(c).map(function(r){return u.Properties.init(new d,{data:(0,n.default)({name:p,identify:a},c[r],{st_id:t}),deviceID:e})}))})})}exports.IScene=d;var y=new(o=(function(){function e(){(0,i.default)(this,e)}return(0,a.default)(e,[{key:\"createScene\",value:function(e,t,r){return l(e,t,r)}},{key:\"createTimerScene\",value:function(e,t){return l(e,s.Timer,t)}},{key:\"createArtificialScene\",value:function(e,t){return l(e,s.Artificial,t)}},{key:\"createAutomaticScene\",value:function(e,t){return l(e,s.Automatic,t)}},{key:\"loadScenes\",value:function(e,t){return f(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)}},{key:\"loadTimerScenes\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return f(e,s.Timer,t)}},{key:\"loadArtificialScenes\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return f(e,s.Artificial,t)}},{key:\"loadAutomaticScenes\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return f(e,s.Automatic,t)}},{key:\"loadScenesHistoryForDevice\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,r={did:e,limit:arguments.length>2&&void 0!==arguments[2]?arguments[2]:50,command:\"history\"};return-1!==t&&(r.timestamp=t),new Promise(function(e,t){u.default.MIOTRPC.standardCall(\"/scene/history\",r,function(r,o){r?e(o):t(o)})})}},{key:\"editSceneRecord\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.editSceneRecord(e,function(e,o){e?t(o):r(o)})})}},{key:\"deleteSceneRecords\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.deleteSceneRecords(e,function(e,o){e?t(o):r(o)})})}},{key:\"triggerTemplatesForQualified\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.triggerTemplatesForQualifiedDid(e,function(e,o){e?t(o):r(o)})})}},{key:\"actionTemplatesForQualified\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.actionTemplatesForQualifiedDid(e,function(e,o){e?t(o):r(o)})})}},{key:\"loadSceneTemplate\",value:function(){return new Promise(function(e,t){u.default.MIOTRPC.standardCall(\"/scene/tplv2\",null,function(r,o){r?e(o):t(o)})})}},{key:\"openIftttAutoPage\",value:function(){u.default.MIOTHost.openIftttAutoPage()}},{key:\"openTimerSettingPageWithOptions\",value:function(e){u.default.MIOTHost.openTimerSettingPageWithOptions(e)}},{key:\"openCountDownPage\",value:function(e,t){u.default.MIOTHost.launchCountDownWhenDevice(e,t)}},{key:\"convertDateToCron\",value:function(e){return new Promise(function(t,r){u.default.MIOTHost.convertDateToCron(e,function(e,o){e?t(o):r(o)})})}},{key:\"convertCronToDate\",value:function(e){return new Promise(function(t,r){u.default.MIOTHost.convertCronToDate(e,function(e,o){e?t(o):r(o)})})}}]),e})(),(0,p.default)(o.prototype,\"createScene\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"createScene\"),o.prototype),(0,p.default)(o.prototype,\"createTimerScene\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"createTimerScene\"),o.prototype),(0,p.default)(o.prototype,\"createArtificialScene\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"createArtificialScene\"),o.prototype),(0,p.default)(o.prototype,\"createAutomaticScene\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"createAutomaticScene\"),o.prototype),(0,p.default)(o.prototype,\"loadScenes\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadScenes\"),o.prototype),(0,p.default)(o.prototype,\"loadTimerScenes\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadTimerScenes\"),o.prototype),(0,p.default)(o.prototype,\"loadArtificialScenes\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadArtificialScenes\"),o.prototype),(0,p.default)(o.prototype,\"loadAutomaticScenes\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadAutomaticScenes\"),o.prototype),(0,p.default)(o.prototype,\"loadScenesHistoryForDevice\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadScenesHistoryForDevice\"),o.prototype),(0,p.default)(o.prototype,\"editSceneRecord\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"editSceneRecord\"),o.prototype),(0,p.default)(o.prototype,\"deleteSceneRecords\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"deleteSceneRecords\"),o.prototype),(0,p.default)(o.prototype,\"triggerTemplatesForQualified\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"triggerTemplatesForQualified\"),o.prototype),(0,p.default)(o.prototype,\"actionTemplatesForQualified\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"actionTemplatesForQualified\"),o.prototype),(0,p.default)(o.prototype,\"loadSceneTemplate\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadSceneTemplate\"),o.prototype),(0,p.default)(o.prototype,\"openIftttAutoPage\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"openIftttAutoPage\"),o.prototype),(0,p.default)(o.prototype,\"openTimerSettingPageWithOptions\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPageWithOptions\"),o.prototype),(0,p.default)(o.prototype,\"openCountDownPage\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"openCountDownPage\"),o.prototype),(0,p.default)(o.prototype,\"convertDateToCron\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"convertDateToCron\"),o.prototype),(0,p.default)(o.prototype,\"convertCronToDate\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"convertCronToDate\"),o.prototype),o);exports.default=y;","miot-sdk/service/scene.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,o=e(require(\"@babel/runtime/helpers/objectSpread\")),i=e(require(\"@babel/runtime/helpers/toConsumableArray\")),s=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),c=require(\"react-native\"),p=t(require(\"../native\")),u=require(\"./BasicDevice\"),d=require(\"../decorator/ReportDecorator\"),l=e(require(\"../Service\"));function f(e){return new RegExp(\"^[0-9]*$\").test(e)}var v=(r=(function(){function e(){(0,s.default)(this,e)}return(0,n.default)(e,[{key:\"readDeviceNetWorkInfo\",value:function(e){return new Promise(function(t,r){p.default.MIOTDevice.readDeviceNetWorkInfo(e,function(e,o){if(e){var i=0;(i=0==o.rssi||o.rssi<=-85?0:o.rssi>=-30?100:100*(Math.abs(-85)+o.rssi)/55)>100&&(i=100),o.wifiStrength=i,t(o)}else r(o)})})}},{key:\"loadProperties\",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(i,s){console.log(\"device--\\x3ecallMethod\",r.deviceID,r),p.default.MIOTDevice.callMethod(r.deviceID,e,p.isAndroid?\"string\"==typeof t?t:JSON.stringify(t):t,p.isAndroid?\"string\"==typeof o?o:JSON.stringify(o):o,function(e,t){e?i(t):s(t)})})}},{key:\"callMethodFromCloud\",value:function(e,t){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(i,s){p.isAndroid?p.default.MIOTDevice.callMethodFromCloud(r.deviceID,e,\"string\"==typeof t?t:JSON.stringify(t),\"string\"==typeof o?o:JSON.stringify(o),function(e,t){e?i(t):s(t)}):p.default.MIOTDevice.callMethodForceWay(e,t,2,o,function(e,t){e?i(t):s(t)})})}},{key:\"callMethodFromLocal\",value:function(e,t){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(i,s){p.isAndroid?p.default.MIOTDevice.callMethodFromLocal(r.deviceID,e,\"string\"==typeof t?t:JSON.stringify(t),\"string\"==typeof o?o:JSON.stringify(o),function(e,t){e?i(t):s(t)}):p.default.MIOTDevice.callMethodForceWay(e,t,1,o,function(e,t){e?i(t):s(t)})})}},{key:\"sendKeyFramePayLoad\",value:function(e,t,r){return new Promise(function(o,i){p.isAndroid?p.default.MIOTDevice.sendKeyFramePayLoad(\"string\"==typeof e?e:JSON.stringify(e),t,r,function(e,t){e?o(t):i(t)}):p.default.MIOTDevice.sendKeyFramePayLoad(e,t,r,function(e,t){e?o(t):i(t)})})}},{key:\"localPing\",value:function(){var e=this;return new Promise(function(t,r){var o=function(e){e?t(e):r(e)};p.isAndroid?p.default.MIOTDevice.localPingWithCallback(e.deviceID,o):p.default.MIOTHost.localPingWithCallback(o)})}},{key:\"subscribeMessages\",value:function(){for(var e=this,t=arguments.length,r=new Array(t),o=0;oa||a>0&&d===a)&&setTimeout(function(){n.listenMessages.apply(n,(0,i.default)(s.propInfoMap.keys()))},5e3),c.length>0)return new Promise(function(t,r){e.subscribeMessages.apply(e,c).then(function(e){c.forEach(function(t){s.propInfoMap.get(t).subscription=e}),s.subscribeInfoMap.set(e.subscribeId,new Set(c)),t({total_listen_props:d,message:'success'})}).catch(function(e){console.log('listenMessages, subscribe message failed,props:',JSON.stringify(c),JSON.stringify(e)),r({err_info:JSON.stringify(e),message:'subscribe messages error'})})});if(0===a||c.length>0)return Promise.resolve({total_listen_props:d,message:'success'});var v=[],g=[];if(s.propInfoMap.forEach(function(e){var t=Date.now();if(e&&t-1e3*e.updateTime>5e3)switch(e.type){case u.PollPropMap.PROP_TYPE_MIOT_SPEC:v.push({did:e.did,siid:e.siid,piid:e.piid});break;case u.PollPropMap.PROP_TYPE_PROFILE:g.push(e.prop)}}),v.length>0&&l.default.spec.getPropertiesValue(v).then(function(e){var t=[];e.forEach(function(e){var r=\"prop.\"+e.siid+\".\"+e.piid,o=[].concat(e.value),i=s.propInfoMap.get(r).value;null!==e.value&&JSON.stringify(e.value)!==JSON.stringify('null')&&JSON.stringify(o)!==JSON.stringify(i)&&t.push({key:r,time:e.updateTime,value:o,_msg_source:u.PollPropMap.MSG_SOURCE_POLL})}),t.length>0&&p.MIOTEventEmitter.emit(\"deviceRecievedMessages\",{did:n.deviceID,data:t})}).catch(function(e){console.log('listenMessages spec raw err:',JSON.stringify(e))}),g.length>0){var y=Date.now()/1e3;n.loadProperties.apply(n,g).then(function(e){var t=[];g.forEach(function(r){var o=e.get(r),i=[].concat(o),n=s.propInfoMap.get(r).value;null!==o&&JSON.stringify(o)!==JSON.stringify('null')&&JSON.stringify(i)!==JSON.stringify(n)&&t.push({key:r,value:i,time:y,msg_source:u.PollPropMap.MSG_SOURCE_POLL})}),t.length>0&&p.MIOTEventEmitter.emit(\"deviceRecievedMessages\",{did:n.deviceID,data:t})}).catch(function(e){console.log('listenMessages, profile raw err:',JSON.stringify(e))})}return Promise.resolve({total_listen_props:d,message:'success'})}},{key:\"unlistenMessages\",value:function(){var e=p.Properties.of(this)._pollMsgSet;if(!e)return Promise.reject({message:\"cann't unlisten any messages\"});for(var t=[],r=arguments.length,o=new Array(r),s=0;s0?Promise.reject(\"\\u5f53\\u524d\\u8bbe\\u5907\\u5df2\\u7ecf\\u662f\\u4e00\\u4e2a\\u5b50\\u8bbe\\u5907\\uff0c\\u4e0d\\u5b58\\u5728\\u5b50\\u8bbe\\u5907\\u5217\\u8868\"):r._virtualDevices&&r._virtualDevices.length>0?Promise.resolve(r._virtualDevices):new Promise(function(t,i){p.default.MIOTRPC.nativeCall(\"/home/virtualdevicectr\",{type:\"get\",masterDid:e.deviceID},function(s,n){s&&n&&n.result&&n.result.members?(r._virtualDevices=n.result.members.map(function(t){return p.Properties.init(new u.BasicDevice,(0,o.default)({},t,{_parentDeviceID:e.deviceID,_parentDevice:e,_msgset:null,_is_virtual:!0}))}),t(r._virtualDevices)):i(n)})})}},{key:\"getRecommendScenes\",value:function(e,t){return new Promise(function(r,o){p.isAndroid?p.default.MIOTDevice.getRecommendScenes(e,t,function(e,t){e?(\"string\"==typeof t&&(t=JSON.parse(t)),r(t)):o(t)}):p.default.MIOTDevice.getRecommendScenes(t,function(e,t){e?r(t):o(t)})})}},{key:\"updateHomeKitAuthorizationData\",value:function(e){return p.isAndroid?Promise.reject({code:-1,message:'Android not support HomeKit'}):new Promise(function(t,r){p.default.MIOTHost.updateHomeKitAuthorizationData(e,function(e,o){e?t(o):r(o)})})}},{key:\"deviceID\",set:function(e){p.Properties.of(this).deviceID=e},get:function(){return __DEV__&&console.warn&&console.warn(\"deviceID deprecated since 10032,\\u8bf7\\u4f7f\\u7528Device.deviceID;\"),p.Properties.of(this).deviceID}}]),e})(),(0,a.default)(r.prototype,\"readDeviceNetWorkInfo\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"readDeviceNetWorkInfo\"),r.prototype),(0,a.default)(r.prototype,\"loadProperties\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadProperties\"),r.prototype),(0,a.default)(r.prototype,\"loadPropertiesFromCloud\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadPropertiesFromCloud\"),r.prototype),(0,a.default)(r.prototype,\"callMethod\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"callMethod\"),r.prototype),(0,a.default)(r.prototype,\"callMethodFromCloud\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"callMethodFromCloud\"),r.prototype),(0,a.default)(r.prototype,\"callMethodFromLocal\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"callMethodFromLocal\"),r.prototype),(0,a.default)(r.prototype,\"sendKeyFramePayLoad\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"sendKeyFramePayLoad\"),r.prototype),(0,a.default)(r.prototype,\"localPing\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"localPing\"),r.prototype),(0,a.default)(r.prototype,\"subscribeMessages\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"subscribeMessages\"),r.prototype),(0,a.default)(r.prototype,\"listenMessages\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"listenMessages\"),r.prototype),(0,a.default)(r.prototype,\"getVersion\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"getVersion\"),r.prototype),(0,a.default)(r.prototype,\"startUpgradingFirmware\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"startUpgradingFirmware\"),r.prototype),(0,a.default)(r.prototype,\"setFirmwareUpdateErrDic\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"setFirmwareUpdateErrDic\"),r.prototype),(0,a.default)(r.prototype,\"setFirmwareNotCheckUpdate\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"setFirmwareNotCheckUpdate\"),r.prototype),(0,a.default)(r.prototype,\"checkFirmwareUpdateAndAlert\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkFirmwareUpdateAndAlert\"),r.prototype),(0,a.default)(r.prototype,\"checkIsHomeKitDevice\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkIsHomeKitDevice\"),r.prototype),(0,a.default)(r.prototype,\"checkHomeKitConnected\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkHomeKitConnected\"),r.prototype),(0,a.default)(r.prototype,\"bindToHomeKit\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"bindToHomeKit\"),r.prototype),(0,a.default)(r.prototype,\"requestAuthorizedDeviceListData\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"requestAuthorizedDeviceListData\"),r.prototype),(0,a.default)(r.prototype,\"getVirtualDevices\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"getVirtualDevices\"),r.prototype),(0,a.default)(r.prototype,\"getRecommendScenes\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"getRecommendScenes\"),r.prototype),(0,a.default)(r.prototype,\"updateHomeKitAuthorizationData\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"updateHomeKitAuthorizationData\"),r.prototype),r);exports.default=v;","miot-sdk/device/WifiDevice.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"./service/Account\")),n=e(require(\"./native\")),i=r(require(\"./service/apiRepo\")),u=r(require(\"./service/omitApi\")),o=r(require(\"./service/cameraSubDomain\")),c=r(require(\"./service/ircontroller\")),a=r(require(\"./service/room\")),f=r(require(\"./service/scene\")),s=r(require(\"./service/security\")),d=r(require(\"./service/smarthome\")),l=r(require(\"./service/spec\")),m=r(require(\"./service/storage\")),v=r(require(\"./service/tjinfra\")),g=r(require(\"./service/miotcamera\")),p=r(require(\"./service/kookong\")),S=n.Properties.init(new t.default,{id:n.default.MIOTService.currentAccountID}),I={get smarthome(){return d.default},get miotcamera(){return g.default},get ircontroller(){return c.default},get account(){return S},get tjinfra(){return v.default},get scene(){return f.default},get security(){return s.default},get storage(){return m.default},get spec(){return l.default},get room(){return a.default},get kookong(){return p.default},callSmartHomeAPI:function(e,r){return new Promise(function(t,o){u.default.some(function(r){return e.startsWith(r)})?n.default.MIOTRPC.standardCall(e,r,function(e,r){if(e)return t(r);o(r)}):i.default[e]?n.default.MIOTRPC.standardCall(e,r,function(e,r){if(e)return t(r);o(r)}):o(\"\\u5931\\u8d25\\uff0c\\u539f\\u56e0\\u5982\\u4e0b:\\n1. api\\u8def\\u5f84\\u586b\\u5199\\u9519\\u8bef\\uff0c\\u8bf7\\u68c0\\u67e5\\n2. sdk \\u6682\\u672a\\u6536\\u5f55\\u8be5\\u63a5\\u53e3\\uff0c\\u8bf7\\u8054\\u7cfb\\u7c73\\u5bb6\\u63d2\\u4ef6\\u6846\\u67b6\\u7684\\u5f00\\u53d1\\u4eba\\u5458\")})},callSmartHomeCameraAPI:function(e,r,t,u){return new Promise(function(c,a){i.default[e]&&o.default[r]?n.default.MIOTService.callSmartHomeCameraAPI(e,r,t,u,function(e,r){if(e)return\"string\"==typeof r&&(r=JSON.parse(r)),c(r);a(r)}):a('\\u5931\\u8d25\\uff0c\\u539f\\u56e0\\u5982\\u4e0b:\\n1. api\\u8def\\u5f84\\u586b\\u5199\\u9519\\u8bef\\uff0c\\u8bf7\\u68c0\\u67e5\\n2. sdk \\u6682\\u672a\\u6536\\u5f55\\u8be5\\u63a5\\u53e3\\uff0c\\u8bf7\\u8054\\u7cfb\\u7c73\\u5bb6\\u63d2\\u4ef6\\u6846\\u67b6\\u7684\\u5f00\\u53d1\\u4eba\\u5458')})},getServerName:function(){return new Promise(function(e,r){n.isAndroid?n.default.MIOTService.getServerName(function(r){\"us_true\"===r.countryCode&&(r.countryCode='us'),e(r)}):n.default.MIOTHost.getCurrentCountryInfoCallback(function(t,n){t?(\"us_sg\"===n.countryCode&&(n.countryCode='us'),e(n)):r(\"\\u5730\\u533a\\u548c\\u670d\\u52a1\\u5668\\u4fe1\\u606f\\u672a\\u6b63\\u786e\\u83b7\\u53d6\")})})},getTimeZoneOfServer:function(){return new Promise},getUTCFromServer:function(){return new Promise(function(e,r){n.default.MIOTRPC.standardCall(\"/device/get_utc_time\",{},function(t,n){if(t&&n)return e(n);r(n)})})},getServiceTokenWithSid:function(e){return n.isAndroid?new Promise(function(r,t){n.default.MIOTService.getServiceTokenWithSid(e,function(e,n){e?r(n):t(n)})}):new Promise(function(r,t){n.default.MIOTHost.getServiceTokenWithSid(e,function(e,n){if(e)return t(e);r(n)})})},applyForDeviceIDAndToken:function(e,r){return n.isAndroid?Promise.reject('Android not support yet'):new Promise(function(t,i){n.default.MIOTHost.applyForDeviceIDAndToken(e,r,function(e,r,n,u){if(e)return i(e);t({res:r,did:n,token:u})})})},callSpecificAPI:function(e,r,t){return new Promise(function(i,u){n.default.MIOTService.callSpecificAPI(e,r,t,function(e,r){e?i(r):u(r)})})}};exports.default=I;","miot-sdk/Service.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e={'/v2/irdevice/controllers':{},'/v2/ircode/categories':{},'/v2/ircode/area/area_id':{},'/v2/ircode/area/lineups':{},'/v2/ircode/area/province/cities':{},'/v2/ircode/area/provinces/china':{},'/v2/ircode/area/city/areas':{},'/v2/ircode/iptv/brands':{},'/v2/ircode/category/brands':{},'/v2/irdevice/controller/add':{},'/v2/irdevice/controller/keys/set':{},'/v2/irdevice/send_key':{},'/v2/irdevice/controller/del':{},'/v2/irdevice/controller/update':{},'/v2/irdevice/controller/keys':{},'/v2/irdevice/controller/key/update':{},'/v2/irdevice/controller/key/del':{},'/v2/irdevice/controller/key/click':{},'/v2/irdevice/controller/functions':{},'/scene/edit':{},'/scene/get':{},'/scene/start':{},'/scene/delete':{},'/scene/list':{},'/scene/history':{},'/scene/tplv2':{},'/share/bluetoothkeyshare':{},'/home/profile':{},'/device/blelockbindinfo':{},'/home/profiles':{},'/location/set':{},'/location/weather':{},'/home/checkversion':{},'/location/area_prop_info':{},'/home/multi_checkversion':{},'/home/latest_version':{},'/v2/device/latest_ver':{},'/device/event':{},'/v2/device/set_extra_data':{},'/v2/device/range_get_extra_data':{},'/v2/device/del_extra_data':{},'/v2/device/get_extra_data':{},'/v2/user/statistics':{},'/voicectrl/ai_devs':{},'/voicectrl/xiaoice_skills':{},'/voicectrl/get_skills':{},'/v2/voicectrl/ai_flash_briefing':{},'/v2/api/aivs':{},'/device/getsetting':{},'/v2/device/getsettingv2':{},'/device/setsetting':{},'/device/delsetting':{},'/user/set_user_device_data':{},'/user/get_user_device_data':{},'/user/del_user_device_data':{},'/v2/user/get_user_device_log':{},'/user/get_user_coll':{},'/user/set_user_coll':{},'/user/edit_user_coll':{},'/user/del_user_coll':{},'/home/getmapfileurl':{},'/home/getrobomapurl':{},'/user/del_user_map':{},'/home/device_list':{},'/service/getappconfig':{},'/service/getappconfigv2':{},'/home/getcountry':{},'/v2/device/batch_set_props':{},'/v2/device/set_props':{},'/device/batchdevicedatas':{},'/device/getThirdConfig':{},'/v2/third/synccall':{},'/third/api':{},'/third/api_result':{},'/user/get_device_auth':{},'/v2/home/get_interim_file_url':{},'/home/getfileurl':{},'/v2/user/getuserdevicedatatab':{},'/v2/home/range_get_open_config':{},'/v2/nfckey/bind_nfc_card':{},'/v2/nfckey/get_nfc_card':{},'/yaokan/insertunmodel':{},'/scene/idfy_get':{},'/scene/idfy_edit':{},'/v2/user/create_member':{},'/v2/user/update_member':{},'/v2/user/remove_member':{},'/v2/user/get_member':{},'/user/setpdata':{},'/user/getpdata':{},'/v2/user/get_device_data_raw':{},'/v2/nfckey/create_se_session':{},'/v2/nfckey/replace_se_isdkey':{},'/v2/nfckey/reset_lock_primarykey':{},'/v2/nfckey/handle_se_response':{},'/v2/device/bledevice_info':{},'/miotspec/prop/get':{},'/miotspec/prop/set':{},'/miotspec/action':{},'/user/get_user_config':{},'/user/get_third_user_config':{},'/user/set_user_config':{},'/user/set_third_user_config':{},'/v2/device/multi_button_template':{},'/device/deviceinfo':{},'/v2/device/ble_event':{},'/share/get_share_user':{},'/v2/aftersale/validate':{},'/v2/aftersale/create':{},'/v2/aftersale/list':{},'/v2/aftersale/detail':{},'/wx/app/v1/get/pushSwitch':{},'/wx/app/v1/put/pushSwitch':{},'/miot/camera/app/v1/get/alarmSwitch':{},'/miot/camera/app/v1/put/motionDetectionSwitch':{},'/miot/camera/app/v1/put/sensitive':{},'/miot/camera/app/v1/put/pushSwitch':{},'/miot/camera/app/v1/put/areaChangePushSwitch':{},'/miot/camera/app/v1/put/pedestrianDetectionPushSwitch':{},'/miot/camera/app/v1/put/babyCryPushSwitch':{},'/miot/camera/app/v1/put/aiPushSwitch':{},'/miot/camera/app/v1/vip/status':{},'/common/app/get/eventlist':{},'/common/app/v2/delete/files':{},'/common/app/markRead':{},'/common/device/vip/status':{},'/common/app/vip/status':{},'/miot/camera/app/v1/get/fileIdMetas':{},'/miot/camera/app/v1/get/figures':{},'/miot/camera/app/v1/get/figureByName':{},'/miot/camera/app/v1/add/figure':{},'/miot/camera/app/v1/add/face':{},'/common/app/m3u8':{},'/common/app/v1/img':{},'/miot/camera/app/v1/put/faceSwitch':{},'/miot/camera/app/v1/put/babyCrySwitch':{},'/miot/camera/app/v2/get/alarmSwitch':{},'/miot/camera/app/v2/put/motionDetectionSwitch':{},'/v2/public/get_weekday_info':{},'/v2/device/blt_get_beaconkey':{},'/v2/device/set_break_lock_alarm_info':{},'/v2/device/get_break_lock_alarm_info':{},'/v2/device/set_hijack_alarm_info':{},'/v2/device/get_hijack_alarm_info':{},'/v2/device/del_alarm_info':{}};exports.default=e;","miot-sdk/service/apiRepo.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=['/appgateway/third/miwifi/app'];exports.default=e;","miot-sdk/service/omitApi.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e={'connect.camera':{},'business.smartcamera':{},'processor.smartcamera':{}};exports.default=e;","miot-sdk/service/cameraSubDomain.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,r=e(require(\"@babel/runtime/helpers/classCallCheck\")),o=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),i=e(require(\"../native\")),p=require(\"../decorator/ReportDecorator\"),u=new(t=(function(){function e(){(0,r.default)(this,e)}return(0,o.default)(e,[{key:\"getList\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controllers\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getCategories\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/categories\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"queryArea\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/area_id\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getLineups\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/lineups\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getCities\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/province/cities\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getProvinces\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/provinces/china\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getAreas\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/city/areas\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIPTVBrands\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/iptv/brands\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getBrands\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/category/brands\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"controllerAdd\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/add\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"setKeys\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/keys/set\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"sendKey\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/send_key\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"controllerDel\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/del\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"controllerUpdate\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/update\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getKeys\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/keys\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"keyUpdate\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/key/update\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"keyDel\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/key/del\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"keyClick\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/key/click\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIrCodeFunctions\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/controller/functions\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIrCodeKeys\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/controller/keys\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIrCodeInfo\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/info\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIrCodeBrand\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/brand\",e,function(e,o){if(!e)return r(o);t(o)})})}}]),e})(),(0,n.default)(t.prototype,\"getList\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getList\"),t.prototype),(0,n.default)(t.prototype,\"getCategories\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCategories\"),t.prototype),(0,n.default)(t.prototype,\"queryArea\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"queryArea\"),t.prototype),(0,n.default)(t.prototype,\"getLineups\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getLineups\"),t.prototype),(0,n.default)(t.prototype,\"getCities\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCities\"),t.prototype),(0,n.default)(t.prototype,\"getProvinces\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getProvinces\"),t.prototype),(0,n.default)(t.prototype,\"getAreas\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getAreas\"),t.prototype),(0,n.default)(t.prototype,\"getIPTVBrands\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIPTVBrands\"),t.prototype),(0,n.default)(t.prototype,\"getBrands\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getBrands\"),t.prototype),(0,n.default)(t.prototype,\"controllerAdd\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"controllerAdd\"),t.prototype),(0,n.default)(t.prototype,\"setKeys\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"setKeys\"),t.prototype),(0,n.default)(t.prototype,\"sendKey\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendKey\"),t.prototype),(0,n.default)(t.prototype,\"controllerDel\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"controllerDel\"),t.prototype),(0,n.default)(t.prototype,\"controllerUpdate\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"controllerUpdate\"),t.prototype),(0,n.default)(t.prototype,\"getKeys\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getKeys\"),t.prototype),(0,n.default)(t.prototype,\"keyUpdate\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"keyUpdate\"),t.prototype),(0,n.default)(t.prototype,\"keyDel\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"keyDel\"),t.prototype),(0,n.default)(t.prototype,\"keyClick\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"keyClick\"),t.prototype),(0,n.default)(t.prototype,\"getIrCodeFunctions\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIrCodeFunctions\"),t.prototype),(0,n.default)(t.prototype,\"getIrCodeKeys\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIrCodeKeys\"),t.prototype),(0,n.default)(t.prototype,\"getIrCodeInfo\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIrCodeInfo\"),t.prototype),(0,n.default)(t.prototype,\"getIrCodeBrand\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIrCodeBrand\"),t.prototype),t);exports.default=u;","miot-sdk/service/ircontroller.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.IMHRoom=void 0;var r,o,a,i=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/classCallCheck\")),u=e(require(\"@babel/runtime/helpers/createClass\")),s=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),p=t(require(\"../native\")),l=require(\"../decorator/ReportDecorator\"),c=(r=(function(){function e(){(0,n.default)(this,e)}return(0,u.default)(e,[{key:\"updateName\",value:function(e){var t=p.Properties.of(this),r=(0,i.default)({},t);return r.name=e,new Promise(function(o,a){p.default.MHRoom.editRoom(r,function(r,i){r?(t.name=e,o({code:0,data:'update success'})):a({code:-1,message:i})})})}},{key:\"homeID\",get:function(){return p.Properties.of(this).homeId}},{key:\"roomID\",get:function(){return p.Properties.of(this).roomId}},{key:\"name\",get:function(){return p.Properties.of(this).name}},{key:\"shareFlag\",get:function(){return p.Properties.of(this).shareFlag}}]),e})(),(0,s.default)(r.prototype,\"updateName\",[l.report],Object.getOwnPropertyDescriptor(r.prototype,\"updateName\"),r.prototype),r);exports.IMHRoom=c;var m=new(o=(function(){function e(){(0,n.default)(this,e)}return(0,u.default)(e,[{key:\"loadAllRoom\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return a&&!e?Promise.resolve(a):new Promise(function(e,t){p.default.MHRoom.getRoomList(function(r,o){r?o?(a=o.map(function(e){return p.Properties.init(new c,(0,i.default)({},e))}),e(a)):e([]):t({code:401,message:'\\u5f53\\u524d\\u8bbe\\u5907\\u6ca1\\u6709\\u6743\\u9650\\u64cd\\u4f5c\\u623f\\u95f4\\u529f\\u80fd'})})})}},{key:\"createRoom\",value:function(e){return e?'string'!=typeof e?Promise.reject({code:-3,message:'\\u623f\\u95f4\\u540d\\u79f0\\u5fc5\\u987b\\u662f\\u5b57\\u7b26\\u4e32'}):new Promise(function(t,r){p.default.MHRoom.addNewRoomWithName(e,function(e,o){if(e)if(o){var n=p.Properties.init(new c,(0,i.default)({},o));a&&a.push(n),t(n)}else r({code:404,message:o});else r({code:-1,message:o})})}):Promise.reject({code:-2,message:'\\u623f\\u95f4\\u540d\\u79f0\\u4e0d\\u80fd\\u4e3a\\u7a7a'})}}]),e})(),(0,s.default)(o.prototype,\"loadAllRoom\",[l.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadAllRoom\"),o.prototype),(0,s.default)(o.prototype,\"createRoom\",[l.report],Object.getOwnPropertyDescriptor(o.prototype,\"createRoom\"),o.prototype),o);exports.default=m;","miot-sdk/service/room.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.ISecureKey=void 0;var r,i,o=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),u=e(require(\"@babel/runtime/helpers/objectSpread\")),s=t(require(\"../native\")),d=require(\"../decorator/ReportDecorator\");function p(e,t,r,i){s.default.MIOTRPC.standardCall(\"/share/bluetoothkeyshare\",(0,u.default)({type:e,did:t},r),i)}var f=(r=(function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,[{key:\"isOutOfDate\",value:function(){return(new Date).getTime()/1e3>this.expireTime}},{key:\"save\",value:function(){var e=this,t=s.Properties.of(this);return t.data.keyid?new Promise(function(r,i){p(\"update\",e.deviceID,t.data,function(e,t){if(e)return r(!0);i(t)})}):Promise.reject()}},{key:\"remove\",value:function(){var e=this,t=s.Properties.of(this);return t.data.keyid?new Promise(function(r,i){var o,a,n,d;o=\"bledelete\",a=e.deviceID,n={keyid:t.data.keyid},d=function(e,o){if(e)return t.data={},r(!0);i(o)},s.default.MIOTRPC.nativeCall(\"/share/bluetoothkeyshare\",(0,u.default)({type:o,did:a},n),d)}):Promise.reject()}},{key:\"deviceID\",get:function(){return s.Properties.of(this).did}},{key:\"keyID\",get:function(){return s.Properties.of(this).data.keyid}},{key:\"shareUserID\",get:function(){return s.Properties.of(this).data.shareuid}},{key:\"activeTime\",get:function(){return parseInt(s.Properties.of(this).data.active_time||0)},set:function(e){s.Properties.of(this).data.active_time=e}},{key:\"expireTime\",get:function(){return parseInt(s.Properties.of(this).data.expire_time||0)},set:function(e){s.Properties.of(this).data.expire_time=e}},{key:\"weekdays\",get:function(){var e=s.Properties.of(this);return e._weekdays||(e._weekdays=(e.data.weekdays||\"\").split(\",\").filter(function(e){return e&&e.length>0}).map(function(e){return parseInt(e)})),e._weekdays},set:function(e){if(e){Array.isArray(e)&&(e=e.join(\",\"));var t=s.Properties.of(this);t.data.weekdays=e,t._weekdays=null}}},{key:\"status\",get:function(){return s.Properties.of(this).data.status},set:function(e){return s.Properties.of(this).data.status=e}}]),e})(),(0,n.default)(r.prototype,\"isOutOfDate\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"isOutOfDate\"),r.prototype),(0,n.default)(r.prototype,\"save\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"save\"),r.prototype),(0,n.default)(r.prototype,\"remove\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"remove\"),r.prototype),r);exports.ISecureKey=f;var c=new(i=(function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,[{key:\"loadSecureKeys\",value:function(e){return new Promise(function(t,r){p(\"get\",e,{},function(i,o){if(!i||!o||!o.bleshare)return r(o);t(o.bleshare.map(function(t){return s.Properties.init(new f,{data:t,did:e})}))})})}},{key:\"shareSecureKey\",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i={status:r.status||0,active_time:r.activeTime,expire_time:r.expireTime,weekdays:Array.isArray(r.weekdays)?r.weekdays.join(\",\"):r.weekdays};return new Promise(function(e,r){s.default.MIOTRPC.nativeCall(\"/home/profile\",{id:t},function(t,i){return t?e(i):r(i)})}).then(function(o){if(o.result&&o.result.userid){var a=o.result.userid;return new Promise(function(t,n){p(\"bleshare\",e,(0,u.default)({userid:o.result.userid},i,{readonly:r.readonly}),function(r,o){if(console.log(\"shareSecureKey with response: \",r,o),r&&o.keyid){var d=(0,u.default)({shareuid:a},o,i);return console.log('elements uid:',a,' res:',o,' data:',i,\" all:\",d),t(s.Properties.init(new f,{data:d,did:e}))}if(r&&'ok'==o)return n({code:-101,message:'key already shared to target user'});n(o)})})}return Promise.reject(\"share user not found \",t)})}},{key:\"getLockBindInfo\",value:function(e){return new Promise(function(t,r){s.default.MIOTRPC.standardCall(\"/device/blelockbindinfo\",{did:e},function(e,i){if(e&&i)return t(i);r(i)})})}}]),e})(),(0,n.default)(i.prototype,\"loadSecureKeys\",[d.report],Object.getOwnPropertyDescriptor(i.prototype,\"loadSecureKeys\"),i.prototype),(0,n.default)(i.prototype,\"shareSecureKey\",[d.report],Object.getOwnPropertyDescriptor(i.prototype,\"shareSecureKey\"),i.prototype),(0,n.default)(i.prototype,\"getLockBindInfo\",[d.report],Object.getOwnPropertyDescriptor(i.prototype,\"getLockBindInfo\"),i.prototype),i);exports.default=c;","miot-sdk/service/security.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.MemberType=void 0;var r,o=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),p=t(require(\"../native\")),c=require(\"../decorator/ReportDecorator\"),u={Person:\"person\",Pet:'pet'};exports.MemberType=u,Object.freeze(u);var l=new(r=(function(){function e(){(0,n.default)(this,e)}return(0,i.default)(e,[{key:\"getUserInfo\",value:function(e){return __DEV__&&console.warn&&console.warn(\"getUserInfo deprecated \\u5df2\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.account.getAccountInfoById \\u65b9\\u6cd5\"),new Promise(function(t,r){p.default.MIOTService.loadAccountInfo(e,function(e,o){e&&o?(console.log(\"rep:\",o),t({nickName:o.nickname||o.nickName,avatarURL:o.avatarURL,uid:o.currentAccountID2||o.userid||o.id})):r({ok:!1,message:\"\"})})})}},{key:\"getUserInfoList\",value:function(e){return __DEV__&&console.warn&&console.warn(\"getUserInfoList deprecated \\u5df2\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.account.getAccountInfoList \\u65b9\\u6cd5\"),new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/home/profiles\",{uids:e},function(e,o){e?t(o):r(o)})})}},{key:\"reportGPSInfo\",value:function(e,t){return new Promise(function(r,n){p.default.MIOTRPC.standardCall(\"/location/set\",(0,o.default)({},t,{did:e}),function(e,t){e&&r(t||!0),!e&&n(t)})})}},{key:\"getWeatherInfo\",value:function(e){return new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/location/weather\",{did:e},function(e,o){if(e&&o.aqi)return t(o.aqi);r(o)})})}},{key:\"checkDeviceVersion\",value:function(e,t){return new Promise(function(r,o){p.default.MIOTRPC.standardCall(\"/home/checkversion\",{did:e,pid:t},function(e,t){if(!e)return o(t);var n=t.updating,i=t.isLatest,a=t.description,p=t.force,c=t.curr,u=t.latest,l=t.ota_start_time,s=t.ota_progress,f=t.ota_failed_code,d=t.ota_failed_reason,y=t.ota_status;r({isUpdating:n,isLatest:i,isForce:p,description:a,curVersion:c,newVersion:u,hasNewFirmware:!n&&!i,otaState:{state:y,startTime:l,progress:s,failedCode:f,failedReason:d}})})})}},{key:\"getProtocolUrls\",value:function(e){return new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/v2/plugin/get_protocol\",e,function(e,o){if(e)return t(o);r(o)})})}},{key:\"getAreaPropInfo\",value:function(e){return new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/location/area_prop_info\",e,function(e,o){if(e)return t(o);r(o)})})}},{key:\"getAvailableFirmwareForDids\",value:function(e){return new Promise(function(t,r){var o=function(e,o){if(console.log(\"res:\",o),!e||null==o)return r(o);if(o.list&&(o=o.list),o instanceof Array){for(var n=[],i=0;i.5?c:.5;var u=(c=(c*=Math.pow(2,r-1))>e.interval?e.interval:c)1&&void 0!==arguments[1]?arguments[1]:1;return new Promise(function(r,o){n.default.MIOTRPC.standardCall(\"/miotspec/prop/get\",{params:e,datasource:t},function(e,t){e?r(t):o(t)})})}},{key:\"setPropertiesValue\",value:function(e){return new Promise(function(t,r){n.default.MIOTRPC.standardCall(\"/miotspec/prop/set\",{params:e},function(e,o){e?t(o):r(o)})})}},{key:\"doAction\",value:function(e){return new Promise(function(t,r){n.default.MIOTRPC.standardCall(\"/miotspec/action\",{params:e},function(e,o){e?t(o):r(o)})})}},{key:\"getSpecString\",value:function(e){return new Promise(function(t,r){n.default.MIOTSpec.getSpecString(e,function(e,o){e&&o?t(o):r(o)})})}},{key:\"getCurrentSpecValue\",value:function(e){return n.default.MIOTSpec.getCurrentSpecValueWithDid(e)}}]),e})(),(0,p.default)(t.prototype,\"getPropertiesValue\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"getPropertiesValue\"),t.prototype),(0,p.default)(t.prototype,\"setPropertiesValue\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"setPropertiesValue\"),t.prototype),(0,p.default)(t.prototype,\"doAction\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"doAction\"),t.prototype),(0,p.default)(t.prototype,\"getSpecString\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"getSpecString\"),t.prototype),(0,p.default)(t.prototype,\"getCurrentSpecValue\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCurrentSpecValue\"),t.prototype),t);exports.default=a;","miot-sdk/service/spec.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,t=e(require(\"@babel/runtime/helpers/classCallCheck\")),o=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),s=e(require(\"../native\")),a=require(\"../decorator/ReportDecorator\"),i=new(r=(function(){function e(){(0,t.default)(this,e)}return(0,o.default)(e,[{key:\"getUserConfigs\",value:function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),o=1;o1?r-1:0),o=1;o0&&(i=i[0]),n(i))}else a(i)})})}},{key:\"_convertParamsForThirdUserConfig\",value:function(e,r,t){var o=r,n=[],s=[],a=1;\"string\"!=typeof t&&(t=JSON.stringify(t));var i=t.length;if(i<=2048)return n.push({model:e,key:o,data:t}),n;var u=parseInt(i/2048);if(i%2048!=0&&++u,u+1>1e3)return null;for(var p=0;p1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;'android'===c.Platform.OS?c.NativeModules.MHCameraSDK.startConnect(t,e):c.NativeModules.MHCameraSDK.connectToDeviceWithDid(t,a.Device.model,e)}},{key:\"disconnectToDevice\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;if('android'!==c.Platform.OS)return new Promise(function(t,o){c.NativeModules.MHCameraSDK.disconnectToDeviceWithDid(e,function(e,r){e?t(e):o(r)})});c.NativeModules.MHCameraSDK.release(e)}},{key:\"sendP2PCommandToDevice\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;return'android'===c.Platform.OS?new Promise(function(r,i){c.NativeModules.MHCameraSDK.sendServerCmd(o,e,JSON.stringify(t),function(e,t){e?r(t):i(t)})}):new Promise(function(r,i){c.NativeModules.MHCameraSDK.sendP2PCommandToDeviceWith(o,e,t,function(e,t){e?r(t):i(t)})})}},{key:\"bindP2PCommandReceiveCallback\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;c.NativeModules.MHCameraSDK.bindP2PCommandReceiveWithDid(t,e)}},{key:\"sendRDTJSONCommandToDevice\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;return'android'===c.Platform.OS?new Promise(function(o,r){c.NativeModules.MHCameraSDK.sendRDTCommandToDevice(t,JSON.stringify(e),function(e,t){e?o(t):r(t)})}):new Promise(function(o,r){c.NativeModules.MHCameraSDK.sendRDTCommandJSONToDeviceWith(t,e,function(e,t){e?o(t):r(t)})})}},{key:\"sendRDTCommandToDevice\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;return'android'===c.Platform.OS?new Promise(function(o,r){c.NativeModules.MHCameraSDK.sendRDTCommandToDevice(t,e,function(e,t){e?o(t):r(t)})}):new Promise(function(t,o){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;c.NativeModules.MHCameraSDK.sendRDTCommandToDeviceWith(r,e,function(e,r){e?t(r):o(r)})})}},{key:\"bindRDTDataReceiveCallback\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;'android'===c.Platform.OS?c.NativeModules.MHCameraSDK.bindRDTDataReceiveCallback(t,e):c.NativeModules.MHCameraSDK.bindRDTDataReceiveWithDid(t,e)}},{key:\"showAlarmVideos\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;c.NativeModules.MHCameraSDK.showAlarmVideos(t,e)}},{key:\"showCloudStorage\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;c.NativeModules.MHCameraSDK.showCloudStorage(o,e,t)}},{key:\"showCloudStorageSetting\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;c.NativeModules.MHCameraSDK.showCloudStorageSetting(e)}},{key:\"openAlarmVideoPlayer\",value:function(e){(0,o.default)({},e).did=a.Device.deviceID,\"android\"===c.Platform.OS?c.NativeModules.MHCameraSDK.openAlarmVideoPlayer(JSON.stringify(e)):c.NativeModules.MHCameraSDK.openAlarmVideoPlayer(e)}},{key:\"showFaceRecognize\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;c.NativeModules.MHCameraSDK.showFaceRecognize(t,e)}},{key:\"bindBPSReceiveCallback\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;c.NativeModules.MHCameraSDK.bindBpsDataCallback(t,e)}},{key:\"getCurrentFrameInfo\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return new Promise(function(t,o){c.NativeModules.MHCameraSDK.getCurrentFrameInfo(e,function(e,r){if(e)if(\"string\"==typeof r)try{var i=JSON.parse(r);t(i)}catch(e){o(\"invalid json str\")}else o(\"wrong result type\");else o(\"invalid return code\")})})}},{key:\"ffmpegCommand\",value:function(e,t,o){c.NativeModules.MHCameraSDK.ffmpegCommand(e,t,o)}},{key:\"downloadM3U8ToMP4\",value:function(e,t,o){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:'H265',n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:a.Device.deviceID;c.NativeModules.MHCameraSDK.downloadM3U8ToMP4(a.Device.model,n,e,r,i,t,o)}},{key:\"getVideoFileUrl\",value:function(e,t,o){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:a.Device.deviceID;return new Promise(function(i,n){c.NativeModules.MHCameraSDK.getVideoFileUrl(r,a.Device.model,e,t,o,function(e,t){e?i(t):n(\"getFileIdImage failed\")})})}},{key:\"getFileIdImage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;return new Promise(function(o,r){c.NativeModules.MHCameraSDK.getfileIdImage(t,a.Device.model,e,function(e,t){e?o(t):r(\"getFileIdImage failed\")})})}},{key:\"getFaceImgWithDid\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;return new Promise(function(o,r){c.NativeModules.MHCameraSDK.getFaceImgWithDid(t,a.Device.model,e,function(e,t){e?o(t):r(\"getFaceImgWithDid failed\")})})}},{key:\"setTimelinePlaybackMode\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;c.NativeModules.MHCameraSDK.setTimelinePlaybackMode(t,e)}},{key:\"bindTimelinePlaybackEndListener\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;c.NativeModules.MHCameraSDK.bindTimelinePlaybackEndListener(t,e)}},{key:\"getCurrentSpeakerVolumn\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return new Promise(function(t,o){c.NativeModules.MHCameraSDK.getCurrentSpeakerVolumn(e,function(e,r){e?t(r):o(\"get current speaker volume error\")})})}},{key:\"setCurrentDeviceIsMissFirmware\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;c.NativeModules.MHCameraSDK.setCurrentDeviceIsMissFirmware(t,e)}},{key:\"showNASSetting\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;c.NativeModules.MHCameraSDK.showNASSettingPage(e)}},{key:\"openFloatWindow\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return\"android\"==c.Platform.OS?new Promise(function(t,o){c.NativeModules.MHCameraSDK.openFloatWindow(e,function(e,r){e?t(r):o(r)})}):Promise.reject(\"unsupported operation for ios platform\")}},{key:\"closeFloatWindow\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;if(\"android\"!=c.Platform.OS)return Promise.reject(\"unsupported operation for ios platform\");c.NativeModules.MHCameraSDK.closeFloatWindow(e)}},{key:\"tryBindAlarmNotifyWithWechatMijia\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return\"android\"==c.Platform.OS?new Promise(function(t,o){c.NativeModules.MHCameraSDK.tryBindAlarmNotifyWithWechatMijia(e,function(e,r){e?t(r):o(r)})}):Promise.reject(\" ios platform did not implement this function yet.\")}}]),e})(),(0,n.default)(t.prototype,\"connectToDeviceWithStateChangeCallBack\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"connectToDeviceWithStateChangeCallBack\"),t.prototype),(0,n.default)(t.prototype,\"disconnectToDevice\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"disconnectToDevice\"),t.prototype),(0,n.default)(t.prototype,\"sendP2PCommandToDevice\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendP2PCommandToDevice\"),t.prototype),(0,n.default)(t.prototype,\"bindP2PCommandReceiveCallback\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"bindP2PCommandReceiveCallback\"),t.prototype),(0,n.default)(t.prototype,\"sendRDTJSONCommandToDevice\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendRDTJSONCommandToDevice\"),t.prototype),(0,n.default)(t.prototype,\"sendRDTCommandToDevice\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendRDTCommandToDevice\"),t.prototype),(0,n.default)(t.prototype,\"bindRDTDataReceiveCallback\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"bindRDTDataReceiveCallback\"),t.prototype),(0,n.default)(t.prototype,\"showAlarmVideos\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"showAlarmVideos\"),t.prototype),(0,n.default)(t.prototype,\"showCloudStorage\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"showCloudStorage\"),t.prototype),(0,n.default)(t.prototype,\"showCloudStorageSetting\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"showCloudStorageSetting\"),t.prototype),(0,n.default)(t.prototype,\"openAlarmVideoPlayer\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"openAlarmVideoPlayer\"),t.prototype),(0,n.default)(t.prototype,\"showFaceRecognize\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"showFaceRecognize\"),t.prototype),(0,n.default)(t.prototype,\"bindBPSReceiveCallback\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"bindBPSReceiveCallback\"),t.prototype),(0,n.default)(t.prototype,\"ffmpegCommand\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"ffmpegCommand\"),t.prototype),(0,n.default)(t.prototype,\"downloadM3U8ToMP4\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"downloadM3U8ToMP4\"),t.prototype),(0,n.default)(t.prototype,\"getVideoFileUrl\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"getVideoFileUrl\"),t.prototype),(0,n.default)(t.prototype,\"getFileIdImage\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"getFileIdImage\"),t.prototype),(0,n.default)(t.prototype,\"getFaceImgWithDid\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"getFaceImgWithDid\"),t.prototype),(0,n.default)(t.prototype,\"setTimelinePlaybackMode\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"setTimelinePlaybackMode\"),t.prototype),(0,n.default)(t.prototype,\"bindTimelinePlaybackEndListener\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"bindTimelinePlaybackEndListener\"),t.prototype),(0,n.default)(t.prototype,\"getCurrentSpeakerVolumn\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCurrentSpeakerVolumn\"),t.prototype),(0,n.default)(t.prototype,\"showNASSetting\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"showNASSetting\"),t.prototype),(0,n.default)(t.prototype,\"openFloatWindow\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"openFloatWindow\"),t.prototype),(0,n.default)(t.prototype,\"closeFloatWindow\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"closeFloatWindow\"),t.prototype),(0,n.default)(t.prototype,\"tryBindAlarmNotifyWithWechatMijia\",[d.report],Object.getOwnPropertyDescriptor(t.prototype,\"tryBindAlarmNotifyWithWechatMijia\"),t.prototype),t);exports.default=D;","miot-sdk/service/miotcamera.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.DarkMode=exports.AudioEvent=exports.FileEvent=exports.SceneType=exports.ClassicBluetoothEvent=exports.ClassicBluetooth=exports.BluetoothEvent=exports.Bluetooth=exports.Resources=exports.HostEvent=exports.Host=exports.Service=exports.DeviceProperties=exports.DeviceEvent=exports.Device=exports.PackageEvent=exports.Entrance=exports.Package=exports.API_LEVEL=void 0;var r=t(require(\"./device/BasicDevice\")),o=t(require(\"./device/bluetooth/ClassicDevice\")),s=e(require(\"./device/bluetooth\")),i=require(\"./device/bluetooth/BluetoothDevice\"),v=t(require(\"./Host\")),a=require(\"./host/audio\"),u=require(\"./host/file\"),c=t(require(\"./Package\")),l=require(\"./Properties\"),p=e(require(\"./resources\")),n=e(require(\"./Service\")),x=require(\"./service/scene\"),E=e(require(\"./darkmode\")),d=e(require(\"./device/\")),h=t(require(\"./utils\")),q=require(\"./package.json\").api_level;exports.API_LEVEL=q;var D=c.default;exports.Package=D;var P=c.Entrance;exports.Entrance=P;var B=c.PackageEvent;exports.PackageEvent=B;var f=r.default;exports.Device=f,console.log(d.default);var k=r.DeviceEvent;exports.DeviceEvent=k;var g=l.RootDeviceProperties;exports.DeviceProperties=g;var b=n.default;exports.Service=b;var C=v.default;exports.Host=C,console.log(v.default);var H=v.HostEvent;exports.HostEvent=H;var S=p.default;exports.Resources=S;var A=s.default;exports.Bluetooth=A;var L=i.BluetoothEvent;exports.BluetoothEvent=L;var R=o.default;exports.ClassicBluetooth=R;var _=o.ClassicBluetoothEvent;exports.ClassicBluetoothEvent=_;var y=x.SceneType;exports.SceneType=y;var F=u.FileEvent;exports.FileEvent=F;var M=a.AudioEvent;exports.AudioEvent=M;var T=E.default;exports.DarkMode=T;var m={Device:f,DeviceEvent:k,Bluetooth:A,BluetoothEvent:L,ClassicBluetooth:R,ClassicBluetoothEvent:_,API_LEVEL:q,Package:D,PackageEvent:B,Entrance:P,DeviceProperties:g,Service:b,Host:C,HostEvent:H,Resources:S,SceneType:y,FileEvent:F,AudioEvent:M,Utils:h,DarkMode:T};exports.default=m;","miot-sdk/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ClassicBluetoothEvent=exports.default=void 0;var t=e(require(\"../../native\")),o={create:function(){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(e,o){t.default.ClassicBluetooth.create(function(t,n){t?e(n):o(n)})})},connectSocket:function(e,o){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(n,i){t.default.ClassicBluetooth.connectSocket(e,o,function(e,t){e?n(t):i(t)})})},disconnectSocket:function(){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(e,o){t.default.ClassicBluetooth.disconnectSocket(function(t,n){t?e(n):o(n)})})},write:function(e){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(o,n){t.default.ClassicBluetooth.write(e,function(e,t){e?o(t):n(t)})})},prepareBluetoothProfile:function(e){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(o,n){t.default.ClassicBluetooth.prepareBluetoothProfile(e,function(e,t){e?o(t):n(t)})})},connectBluetoothProfile:function(e,o){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(n,i){t.default.ClassicBluetooth.connectBluetoothProfile(e,o,function(e,t){e?n(t):i(t)})})},disconnectBluetoothProfile:function(e,o){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(n,i){t.default.ClassicBluetooth.disconnectBluetoothProfile(e,o,function(e,t){e?n(t):i(t)})})},getBluetoothProfileState:function(e,o){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(n,i){t.default.ClassicBluetooth.getBluetoothProfileState(e,o,function(e,t){e?n(t):i(t)})})},destroy:function(){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(e,o){t.default.ClassicBluetooth.destroy(function(t,n){t?e(n):o(n)})})}};exports.default=o;var n={classicBlueBondStateChanged:{forever:function(e){return function(t){e.emit(t)}}},classicBlueConnectionStateChanged:{forever:function(e){return function(t){e.emit(t)}}},classicBlueReceivedData:{forever:function(e){return function(t){e.emit(t)}}}};exports.ClassicBluetoothEvent=n,(0,t.buildEvents)(n);","miot-sdk/device/bluetooth/ClassicDevice.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.HostEvent=exports.default=exports.LocationAuthStatus=exports.HOST_TYPE_ANDROID=exports.HOST_TYPE_IOS=void 0;var r=t(require(\"./host/audio\")),o=t(require(\"./host/crypto\")),n=t(require(\"./host/file\")),i=t(require(\"./host/locale\")),u=t(require(\"./host/storage\")),s=e(require(\"./native\")),a=require(\"buffer\"),d=t(require(\"merge\")),c=require('react-native/Libraries/Image/resolveAssetSource'),f=s.IOS;exports.HOST_TYPE_IOS=f;var p=s.ANDROID;exports.HOST_TYPE_ANDROID=p;var l={LocationAuthStatus_NotDetermined:0,LocationAuthStatus_Restricted:1,LocationAuthStatus_Denied:2,LocationAuthStatus_AuthorizedAlways:3,LocationAuthStatus_AuthorizedWhenInUse:4,LocationAuthStatus_Authorized:5};exports.LocationAuthStatus=l,Object.freeze(l);var g={get type(){return s.default.type},get systemInfo(){return s.default.MIOTHost.systemInfo},get isAndroid(){return s.isAndroid},get isIOS(){return s.isIOS},get version(){return s.default.MIOTHost.appVersion||s.default.MIOTHost.systemInfo.sysVersion},get apiLevel(){return s.isAndroid?s.default.MIOTHost.systemInfo.hostApiLevel:s.default.MIOTHost.apiLevel},get isDebug(){return s.default.MIOTHost.buildType===s.DEBUG},get applicationEdition(){return __DEV__&&console.warn&&console.warn(\"applicationEdition deprecated 10033\"),s.isAndroid?this.ui.checkStoreSupporttedOnAndroid()?1:2:s.default.MIOTHost.ApplicationEdition},get appConfigEnv(){return s.default.MIOTHost.appConfigEnv},get ui(){return require('./host/ui').default},get locale(){return i.default},get storage(){return u.default},get file(){return n.default},get audio(){return r.default},get crypto(){return o.default},getWifiInfo:function(){return new Promise(function(e,t){s.default.MIOTHost.getConnectedWifi(function(r,o){if(!r)return t(o);e(o)})})},getAppName:function(){return new Promise(function(e,t){s.default.MIOTHost.getAppName(function(t){e(t)})})},getPhoneScreenInfo:function(){return s.isAndroid?new Promise(function(e,t){s.default.MIOTHost.getPhoneScreenInfo(function(r,o){r?e(o):t(o)})}):Promise.reject(\"iOS not support\")},getCurrentCountry:function(){return __DEV__&&console.warn&&console.warn(\"getCurrentCountry deprecated 10011 \\u6539\\u7528 Service.getServerName\"),new Promise(function(e){s.default.MIOTHost.loadCurrentCountryCode(function(t){e(t)})})},getOperatorsInfo:function(){return new Promise(function(e,t){s.default.MIOTHost.loadOperatorsType(function(r,o){r?e(o):t(o)})})},createBackgroundExecutor:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(r,o){e=c(e),console.log(\"ready to run jx:\"+e),s.default.MIOTHost.createExecutor(e.uri,s.isAndroid?JSON.stringify(t||{}):t||{},function(e,t){if(e){var n={running:!1,ready:!0},i={get id(){return t},get isReady(){return n.ready},get isRunning(){return n.running},execute:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:'';return new Promise(function(t,o){l.default.MIOTFile.readFileListFrom(e,function(e,r){e?t(r):o(!1,r)})})}},{key:\"isFileExists\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.isFileExists(e,function(e,r){e?t(r):o(r)})})}},{key:\"readFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.readFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"readFileToHexString\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.readFileToHexString(e,function(e,r){e?t(r):o(r)})})}},{key:\"readFileToBase64\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.readFileToBase64(e,function(e,r){e?t(r):o(r)})})}},{key:\"writeFile\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.writeFile(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"writeFileThroughBase64\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.writeFileThroughBase64(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"appendFile\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.appendFile(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"appendFileThroughBase64\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.appendFileThroughBase64(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"deleteFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.deleteFile(e,function(e,r){e?t(!0):o(r)})})}},{key:\"generateObjNameAndUrlForFDSUpload\",value:function(e,t){return new Promise(function(o,r){var n={did:e,suffix:t};l.default.MIOTRPC.standardCall(\"/home/genpresignedurl\",n,function(e,t){if(!e)return r(t);o(t)})})}},{key:\"generateObjNameAndUrlForLogFileFDSUpload\",value:function(e,t){return new Promise(function(o,r){var n={did:e,suffix:t};l.default.MIOTRPC.standardCall(\"/home/genfilepresignedurl\",n,function(e,t){if(!e)return r(t);o(t)})})}},{key:\"getFDSFileInfoWithObjName\",value:function(e){return new Promise(function(t,o){l.default.MIOTRPC.standardCall(\"/home/getfileurl\",{obj_name:e},function(e,r){if(!e)return o(r);t(r)})})}},{key:\"uploadFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.uploadFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"uploadFileToFDS\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.uploadFileToFDS(e,function(e,r){e?t(r):o(r)})})}},{key:\"downloadFile\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return o?new Promise(function(r,n){l.default.MIOTFile.downloadFileWithParams(e,t,o,function(e,t){e?r(t):n(t)})}):new Promise(function(o,r){l.default.MIOTFile.downloadFile(e,t,function(e,t){e?o(t):r(t)})})}},{key:\"cancelDownloadFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.cancelDownloadFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"dataLengthOfBase64Data\",value:function(e){return new Promise(function(t){l.default.MIOTFile.dataLengthOfBase64Data(e,function(e){t(e)})})}},{key:\"subBase64DataOfBase64Data\",value:function(e,t,o){return new Promise(function(r,n){l.default.MIOTFile.subBase64DataOfBase64Data(e,t,o,function(e,t){e?r(t):n(!1)})})}},{key:\"unzipFile\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'';return new Promise(function(o,r){l.default.MIOTFile.unzipFile(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"ungzFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.ungzFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"ungzYunMiFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.ungzYunMiFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"saveImageToPhotosAlbum\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.saveImageToPhotosAlbum(e,function(e,r){e?t(!0):o(r)})})}},{key:\"saveFileToPhotosAlbum\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.saveFileToPhotosAlbum(e,function(e,r){e?t(!0):o(r)})})}},{key:\"saveImageToPhotosDidAlbum\",value:function(e){return new Promise(function(t,o){var r=u.default.deviceID;null!=r&&''!=r?l.default.MIOTFile.saveImageToPhotosDidAlbum(r,e,function(e,r){e?t(!0):o(r)}):o({code:-1,message:\"did cannot be empty\"})})}},{key:\"saveVideoToPhotosDidAlbum\",value:function(e){return new Promise(function(t,o){var r=u.default.deviceID;null!=r&&''!=r?l.default.MIOTFile.saveVideoToPhotosDidAlbum(r,e,function(e,r){e?t(!0):o(r)}):o({code:-1,message:\"did cannot be empty\"})})}},{key:\"fetchLocalVideoFilePathFromDidAlbumByUrl\",value:function(e){return new Promise(function(t,o){var r=u.default.deviceID;null!=r&&''!=r?l.default.MIOTFile.fetchLocalVideoFilePathFromDidAlbumByUrl(r,e,function(e,r){e?t(r):o(r)}):o({code:-1,message:\"did cannot be empty\"})})}},{key:\"getAllSourceFromPhotosDidAlbum\",value:function(){return new Promise(function(e,t){var o=u.default.deviceID;null!=o&&''!=o?l.default.MIOTFile.getAllSourceFromPhotosDidAlbum(o,function(o,r){o?e(r):t(r)}):t({code:-1,message:\"did cannot be empty\"})})}},{key:\"deleteAssetsFromAlbumByUrls\",value:function(e){return new Promise(function(t,o){var r=u.default.deviceID;null!=r&&''!=r?l.default.MIOTFile.deleteAssetsFromAlbumByUrls(r,e,function(e,r){e?t(!0):o(r)}):o({code:-1,message:\"did cannot be empty\"})})}},{key:\"screenShot\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.screenShot(e,function(e,r){e?t(r):o(r)})})}},{key:\"screenShotInRect\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.screenShotInRect(e,l.isIOS?{x:t.l,y:t.t,width:t.w,height:t.h}:t,function(e,t){e?o(t):r(t)})})}},{key:\"longScreenShot\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.longScreenShot(e,t,function(e,t){e?o(t):r(t)})})}},{key:\"amapScreenShot\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.amapScreenShot(e,t,function(e,t){e?o(t):r(t)})})}},{key:\"getRGBAValueFromImageAtPath\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.getRGBAValueFromImageAtPath(e,t,function(e,t){e?o(t):r(!1)})})}},{key:\"storageBasePath\",get:function(){return l.default.MIOTFile.storageBasePath}}]),e})(),(0,i.default)(o.prototype,\"readFileList\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"readFileList\"),o.prototype),(0,i.default)(o.prototype,\"isFileExists\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"isFileExists\"),o.prototype),(0,i.default)(o.prototype,\"readFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"readFile\"),o.prototype),(0,i.default)(o.prototype,\"readFileToHexString\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"readFileToHexString\"),o.prototype),(0,i.default)(o.prototype,\"readFileToBase64\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"readFileToBase64\"),o.prototype),(0,i.default)(o.prototype,\"writeFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"writeFile\"),o.prototype),(0,i.default)(o.prototype,\"writeFileThroughBase64\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"writeFileThroughBase64\"),o.prototype),(0,i.default)(o.prototype,\"appendFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"appendFile\"),o.prototype),(0,i.default)(o.prototype,\"appendFileThroughBase64\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"appendFileThroughBase64\"),o.prototype),(0,i.default)(o.prototype,\"deleteFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"deleteFile\"),o.prototype),(0,i.default)(o.prototype,\"generateObjNameAndUrlForFDSUpload\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"generateObjNameAndUrlForFDSUpload\"),o.prototype),(0,i.default)(o.prototype,\"generateObjNameAndUrlForLogFileFDSUpload\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"generateObjNameAndUrlForLogFileFDSUpload\"),o.prototype),(0,i.default)(o.prototype,\"getFDSFileInfoWithObjName\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"getFDSFileInfoWithObjName\"),o.prototype),(0,i.default)(o.prototype,\"uploadFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"uploadFile\"),o.prototype),(0,i.default)(o.prototype,\"uploadFileToFDS\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"uploadFileToFDS\"),o.prototype),(0,i.default)(o.prototype,\"downloadFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"downloadFile\"),o.prototype),(0,i.default)(o.prototype,\"dataLengthOfBase64Data\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"dataLengthOfBase64Data\"),o.prototype),(0,i.default)(o.prototype,\"subBase64DataOfBase64Data\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"subBase64DataOfBase64Data\"),o.prototype),(0,i.default)(o.prototype,\"unzipFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"unzipFile\"),o.prototype),(0,i.default)(o.prototype,\"ungzFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"ungzFile\"),o.prototype),(0,i.default)(o.prototype,\"ungzYunMiFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"ungzYunMiFile\"),o.prototype),(0,i.default)(o.prototype,\"saveImageToPhotosAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"saveImageToPhotosAlbum\"),o.prototype),(0,i.default)(o.prototype,\"saveFileToPhotosAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"saveFileToPhotosAlbum\"),o.prototype),(0,i.default)(o.prototype,\"saveImageToPhotosDidAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"saveImageToPhotosDidAlbum\"),o.prototype),(0,i.default)(o.prototype,\"saveVideoToPhotosDidAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"saveVideoToPhotosDidAlbum\"),o.prototype),(0,i.default)(o.prototype,\"fetchLocalVideoFilePathFromDidAlbumByUrl\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"fetchLocalVideoFilePathFromDidAlbumByUrl\"),o.prototype),(0,i.default)(o.prototype,\"getAllSourceFromPhotosDidAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"getAllSourceFromPhotosDidAlbum\"),o.prototype),(0,i.default)(o.prototype,\"deleteAssetsFromAlbumByUrls\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"deleteAssetsFromAlbumByUrls\"),o.prototype),(0,i.default)(o.prototype,\"screenShot\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"screenShot\"),o.prototype),(0,i.default)(o.prototype,\"screenShotInRect\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"screenShotInRect\"),o.prototype),(0,i.default)(o.prototype,\"longScreenShot\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"longScreenShot\"),o.prototype),(0,i.default)(o.prototype,\"amapScreenShot\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"amapScreenShot\"),o.prototype),(0,i.default)(o.prototype,\"getRGBAValueFromImageAtPath\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"getRGBAValueFromImageAtPath\"),o.prototype),o);exports.default=c;","miot-sdk/host/file.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,o=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),u=t(require(\"../native\")),s=require(\"../decorator/ReportDecorator\"),l=new(r=(function(){function e(){(0,n.default)(this,e)}return(0,i.default)(e,[{key:\"getLocation\",value:function(){return new Promise(function(e,t){u.isAndroid?u.default.MIOTHost.getLocation(function(r,n){r?e((0,o.default)({},n,{AOIName:n.aoiname})):t(n)}):u.default.MHMapLocation.reLocationWithReGeocode(!0,function(r,n,i){i&&i.code?(console.log(\"\\u8bf7\\u6c42\\u5730\\u7406\\u4f4d\\u7f6e\\u4fe1\\u606f\\u51fa\\u9519\\uff0c\\u9519\\u8bef\\u4fe1\\u606f\\uff1a\"+i),t(\"\\u8bf7\\u6c42\\u5730\\u7406\\u4f4d\\u7f6e\\u4fe1\\u606f\\u51fa\\u9519\\uff0c\\u9519\\u8bef\\u4fe1\\u606f\\uff1a\"+JSON.stringify(i))):(n.formattedAddress&&(n.address=n.formattedAddress,delete n.formattedAddress),e((0,o.default)({},r,n)))})})}},{key:\"getSystemTimeZone\",value:function(){return new Promise(function(e,t){u.default.MIOTHost.getSystemTimezoneNameWithCallback(function(r,o){r?e(o):t(o)})})}},{key:\"language\",get:function(){return u.default.language}},{key:\"systemLanguage\",get:function(){return u.default.MIOTHost.systemLanguage}},{key:\"timeZone\",get:function(){return u.default.MIOTHost.timeZone}},{key:\"is24HourTime\",get:function(){return u.default.MIOTHost.is24HourTime}}]),e})(),(0,a.default)(r.prototype,\"getLocation\",[s.report],Object.getOwnPropertyDescriptor(r.prototype,\"getLocation\"),r.prototype),(0,a.default)(r.prototype,\"getSystemTimeZone\",[s.report],Object.getOwnPropertyDescriptor(r.prototype,\"getSystemTimeZone\"),r.prototype),r);exports.default=l;","miot-sdk/host/locale.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,o=e(require(\"@babel/runtime/helpers/classCallCheck\")),p=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),i=r(require(\"../native\")),l=require(\"../decorator/ReportDecorator\"),u=new(t=(function(){function e(){(0,o.default)(this,e)}return(0,p.default)(e,[{key:\"get\",value:function(e){return new Promise(function(r,t){i.default.MIOTHost.loadInfoCallback(e,function(e){if(e){var o=JSON.parse(e);o.expire>0?o.expire+o.time>(new Date).getTime()?r(o.value):t(\"expired\"):r(o.value)}else r(e)})})}},{key:\"set\",value:function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{expire:0},o={value:r,expire:t?t.expire:0,time:(new Date).getTime()};i.default.MIOTHost.saveInfo(e,JSON.stringify(o))}},{key:\"load\",value:function(e){var r=this;if(\"array\"!==i.Utils.typeName(e))return Promise.reject(\"\\u4f20\\u5165\\u53c2\\u6570\\u4e0d\\u662f\\u6570\\u7ec4\");var t=e.map(function(e){return r.get(e)});return Promise.all(t)}},{key:\"save\",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{expire:0};for(var t in e)this.set(t,e[t],r)}}]),e})(),(0,a.default)(t.prototype,\"get\",[l.report],Object.getOwnPropertyDescriptor(t.prototype,\"get\"),t.prototype),(0,a.default)(t.prototype,\"set\",[l.report],Object.getOwnPropertyDescriptor(t.prototype,\"set\"),t.prototype),(0,a.default)(t.prototype,\"load\",[l.report],Object.getOwnPropertyDescriptor(t.prototype,\"load\"),t.prototype),(0,a.default)(t.prototype,\"save\",[l.report],Object.getOwnPropertyDescriptor(t.prototype,\"save\"),t.prototype),t);exports.default=u;","miot-sdk/host/storage.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var o,r=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/extends\")),p=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),c=require(\"react-native\"),u=e(require(\"../device/BasicDevice\")),l=t(require(\"../native\")),d=e(require(\"../utils/protocol-helper\")),s=require(\"../decorator/ReportDecorator\"),g=new(o=(function(){function e(){(0,p.default)(this,e)}return(0,i.default)(e,[{key:\"canOpenStorePage\",value:function(){return new Promise(function(e){l.default.MIOTHost.checkStoreSupportted(function(t){e(t)})})}},{key:\"checkStoreSupporttedOnAndroid\",value:function(){__DEV__&&console.warn&&console.warn(\"checkStoreSupporttedOnAndroid deprecated \\u65b9\\u6cd5\\u5b58\\u5728\\u95ee\\u9898\\uff0c\\u5e9f\\u5f03\");var e=l.default.MIOTService.currentServerName;return!(\"\"===e||\"cn\"===e||\"st\"===e)}},{key:\"openDeleteDevice\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;l.isAndroid?l.default.MIOTHost.openDeleteDevice(e):e?l.default.MIOTHost.openDeleteDeviceWithCustomMessage(e):l.default.MIOTHost.openDeleteDevice()}},{key:\"openDeleteDeviceWithCallback\",value:function(){return new Promise(function(e,t){l.isAndroid&&t(!1),l.default.MIOTHost.openDeleteDeviceWithCallback(function(o){o?e(!0):t(!1)})})}},{key:\"openShareDevicePage\",value:function(){l.default.MIOTHost.openShareDevicePage()}},{key:\"keepScreenNotLock\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];l.default.MIOTHost.keepScreenNotLock(e)}},{key:\"openRoomManagementPage\",value:function(){l.default.MIOTHost.openRoomManagementPage()}},{key:\"openVoiceCtrlDeviceAuthPage\",value:function(){l.default.MIOTHost.openVoiceCtrlDeviceAuthPage()}},{key:\"openIftttAutoPage\",value:function(){__DEV__&&console.warn&&console.warn(\"openIftttAutoPage deprecated sdk 10032\\u7248\\u672c\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.scene.openIftttAutoPage()\"),l.default.MIOTHost.openIftttAutoPage()}},{key:\"openFeedbackInput\",value:function(){l.default.MIOTHost.openFeedbackInput()}},{key:\"openSecuritySetting\",value:function(){l.default.MIOTHost.openSecuritySetting()}},{key:\"openHelpPage\",value:function(){l.isAndroid?l.default.MIOTHost.openHelpPage():l.default.MIOTHost.openFeedback()}},{key:\"openShareListBar\",value:function(e,t,o,r){o=d.default.resolveUrl(o),l.default.MIOTHost.openShareListBar(e,t,o,r)}},{key:\"openSystemShareWindow\",value:function(e){l.default.MIOTHost.openSystemShareWindow(e)}},{key:\"getDevicesWithModel\",value:function(e){return new Promise(function(t,o){l.default.MIOTHost.getDevicesWithModel(e,function(e,r){e?t(r):o(!1)})})}},{key:\"openBtGatewayPage\",value:function(){l.default.MIOTHost.openBtGatewayPage()}},{key:\"alertLegalInformationAuthorization\",value:function(e){var t=this;return 1==d.default.getLegalInfoAuthHasShowed()?Promise.resolve(!1):e.force||!u.default.isShared&&!u.default.isFamily?d.default.getLegalAuthInfoProtocol().then(function(o){var r=(0,n.default)({},e);return o&&o.privacyURL&&o.privacyURL.length>0&&(r=(0,n.default)(r,o)),t._alertDeclarationWithConfigOption(r)}).catch(function(){return t._alertDeclarationWithConfigOption(e)}):(__DEV__&&console.warn&&console.warn(\"\\u5206\\u4eab\\u8bbe\\u5907\\u4e0d\\u5efa\\u8bae\\u8fdb\\u884c\\u5f39\\u7a97\\u8bf7\\u6c42\\u9690\\u79c1\\u6388\\u6743\\u3002\"),Promise.resolve(!1))}},{key:\"_alertDeclarationWithConfigOption\",value:function(e){return new Promise(function(t,o){if(e.privacyURL&&(e.privacyURL=d.default.resolveUrlWithLink(e.privacyURL)),e.agreementURL&&(e.agreementURL=d.default.resolveUrlWithLink(e.agreementURL)),e.hideAgreement&&delete e.agreementURL,e.experiencePlanURL&&(e.experiencePlanURL=d.default.resolveUrlWithLink(e.experiencePlanURL)),e.hideUserExperiencePlan&&delete e.experiencePlanURL,1==d.default.getLegalInfoAuthHasShowed())return Promise.resolve(!1);c.DeviceEventEmitter.emit('MH_Event_ShowPrivacyLicenseDialog',{isShowingPrivacyLicenseDialog:!0}),d.default.setLegalInfoAuthHasShowed(!0),l.default.MIOTHost.showDeclarationWithConfig(e,function(e){'ok'===e||!0===e||'true'===e?t(!0):o(!1)})})}},{key:\"previewLegalInformationAuthorization\",value:function(e){var t=this,o=(0,n.default)({},e);return o.force||!u.default.isShared&&!u.default.isFamily?new Promise(function(e,r){d.default.getLegalAuthInfoProtocol().then(function(p){p&&p.privacyURL&&p.privacyURL.length>0&&(o=(0,n.default)(o,p)),t._openDeclarationWithConfigOption(o).then(function(t){e(t)}).catch(function(e){r(e)})}).catch(function(){t._openDeclarationWithConfigOption(o).then(function(t){e(t)}).catch(function(e){r(e)})})}):(__DEV__&&console.warn&&console.warn(\"\\u5206\\u4eab\\u8bbe\\u5907\\u4e0d\\u5efa\\u8bae\\u8fdb\\u884c\\u5f39\\u7a97\\u8bf7\\u6c42\\u9690\\u79c1\\u6388\\u6743\\u3002\"),Promise.reject(!1))}},{key:\"_openDeclarationWithConfigOption\",value:function(e){return new Promise(function(t,o){e.privacyURL&&(e.privacyURL=d.default.resolveUrlWithLink(e.privacyURL)),e.agreementURL&&(e.agreementURL=d.default.resolveUrlWithLink(e.agreementURL)),e.hideAgreement&&delete e.agreementURL,e.experiencePlanURL&&(e.experiencePlanURL=d.default.resolveUrlWithLink(e.experiencePlanURL)),e.hideUserExperiencePlan&&delete e.experiencePlanURL,l.default.MIOTHost.openDeclarationWithConfig((0,r.default)({},e),function(e){e?t(!0):o(!1)})})}},{key:\"privacyAndProtocolReview\",value:function(e,t,o,r){__DEV__&&console.warn&&console.warn(\"privacyAndProtocolReview deprecated 10023\\u5e9f\\u5f03\\uff0c \\u8bf7\\u4f7f\\u7528 previewLegalInformationAuthorization\"),t=d.default.resolveUrl(t),r=d.default.resolveUrl(r),l.default.MIOTHost.privacyAndProtocolReview(e,t,o,r)}},{key:\"openPrivacyLicense\",value:function(e,t,o,r){return __DEV__&&console.warn&&console.warn(\"openPrivacyLicense deprecated 10023\\u5e9f\\u5f03\\uff0c \\u8bf7\\u4f7f\\u7528 alertLegalInformationAuthorization \\u66ff\\u6362\"),c.DeviceEventEmitter.emit('MH_Event_ShowPrivacyLicenseDialog',{isShowingPrivacyLicenseDialog:!0}),t=d.default.resolveUrl(t),r=d.default.resolveUrl(r),new Promise(function(n){l.default.MIOTHost.openPrivacyLicense(e,t,o,r,function(e){n('ok'===e||!0===e||'true'===e)})})}},{key:\"openChangeDeviceName\",value:function(){l.default.MIOTHost.openChangeDeviceName()}},{key:\"openAddToDesktopPage\",value:function(){l.default.MIOTHost.openAddToDesktopPage()}},{key:\"openDeviceUpgradePage\",value:function(){l.default.MIOTHost.openDeviceUpgradePage()}},{key:\"openBleMeshDeviceUpgradePage\",value:function(){'16'===u.default.type?l.default.MIOTHost.openBleMeshDeviceUpgradePage():__DEV__&&console.warn&&console.warn('\\u53ea\\u6709mesh\\u8bbe\\u5907\\u652f\\u6301\\u8c03\\u7528\\u8be5\\u63a5\\u53e3')}},{key:\"openBleCommonDeviceUpgradePage\",value:function(e){l.default.MIOTHost.openBleOtaDeviceUpgradePage(e)}},{key:\"openLightGroupUpgradePage\",value:function(){l.default.MIOTHost.openLightGroupUpgradePage()}},{key:\"openDeviceTimeZoneSettingPage\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e||(e={sync_device:!1}),l.default.MIOTHost.openDeviceTimeZoneSettingPage(e)}},{key:\"openWebPage\",value:function(e){l.default.MIOTHost.openWebPage(e)}},{key:\"openShopPage\",value:function(e){var t=\"https://app.xiaomiyoupin.com/shop/detail?gid=\"+e;if(l.isIOS)return l.default.MIOTHost.openShopPage(t);this.openWebPage(t)}},{key:\"openShopSearchPage\",value:function(e){var t=\"https://app.xiaomiyoupin.com/searchfilter?keyword=\"+e;l.isIOS?l.default.MIOTHost.openShopPage(t):this.openWebPage(t)}},{key:\"openProductBaikeWebPage\",value:function(e){l.isIOS?l.default.MIOTHost.openProductBaikeWebPage(e):l.default.MIOTHost.openOperationUrl(e)}},{key:\"openMeshDeviceGroupPage\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;l.isAndroid?l.default.MIOTHost.openMeshDeviceGroupPage(e,t,o):'add'===e?c.NativeModules.MHDeviceGroup.create(t,o):'edit'===e&&c.NativeModules.MHDeviceGroup.edit(t,o)}},{key:\"openAddDeviceGroupPage\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";l.isAndroid&&e&&\"\"!==e?l.default.MIOTHost.openAddDeviceGroupPageWithGroupModel(e):l.default.MIOTHost.openAddDeviceGroupPage()}},{key:\"openEditDeviceGroupPage\",value:function(e){l.default.MIOTHost.openEditDeviceGroupPage(e)}},{key:\"openCountDownPage\",value:function(e,t){__DEV__&&console.warn&&console.warn(\"openCountDownPage deprecated sdk 10032\\u7248\\u672c\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.scene.openCountDownPage()\"),l.default.MIOTHost.launchCountDownWhenDevice(e,t)}},{key:\"openOneTimePassword\",value:function(e,t,o){l.default.MIOTHost.openOneTimePassword(e,t,o)}},{key:\"openTimerSettingPage\",value:function(e,t,o,r){__DEV__&&console.warn&&console.warn(\"openTimerSettingPage deprecated since 10004 use openTimerSettingPageWithVariousTypeParams instead\"),l.default.MIOTHost.openTimerSettingPage(e,t,o,r)}},{key:\"openTimerSettingPageWithCustomIdentifier\",value:function(e,t,o,r,n){__DEV__&&console.warn&&console.warn(\"openTimerSettingPageWithCustomIdentifier deprecated since 10004 use openTimerSettingPageWithVariousTypeParams instead\"),l.default.MIOTHost.openTimerSettingPageWithCustomIdentifier(e,t,o,r,n)}},{key:\"openTimerSettingPageWithVariousTypeParams\",value:function(e,t,o,r){l.isAndroid&&(\"string\"!=typeof t&&(t=JSON.stringify(t)),\"string\"!=typeof r&&(r=JSON.stringify(r))),l.default.MIOTHost.openTimerSettingPageWithVariousTypeParams(e,t,o,r)}},{key:\"openTimerSettingPageWithOptions\",value:function(e){__DEV__&&console.warn&&console.warn(\"openTimerSettingPageWithOptions deprecated sdk 10032\\u7248\\u672c\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.scene.openTimerSettingPageWithOptions()\"),l.default.MIOTHost.openTimerSettingPageWithOptions(e)}},{key:\"openPowerMultikeyPage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;l.isAndroid?t?l.default.MIOTHost.openPowerMultikeyPage(e,t):l.default.MIOTHost.openPowerMultikeyPage(e,u.default.mac):l.default.MIOTHost.openPowerMultikeyPage(e)}},{key:\"addOrCopyIR\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{create_device:!0};if(l.isAndroid)l.default.MIOTHost.openAddIRController(e,t,o,n);else{var p=(0,r.default)({type:1===t?'copy':'add',gatewayID:e||'',models:o||[]},n);l.default.MIOTHost.addOrCopyIR(p)}}},{key:\"openDevice\",value:function(e,t,o){return new Promise(function(r,n){l.default.MIOTHost.openDevice(e,t,o,function(e,t){e?n({error:e,info:t}):r(!0)})})}},{key:\"openPluginPage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'main',o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{isBackToMainPage:!0};return null===o&&(o={isBackToMainPage:!0}),null===o.isBackToMainPage&&(o.isBackToMainPage=!0),void 0===o.isBackToMainPage&&(o.isBackToMainPage=!0),new Promise(function(r,n){l.default.MIOTHost.openPluginPage(e,t,o,function(e,t){e?r(t):n(t)})})}},{key:\"openPageWithClassName\",value:function(e){l.isIOS?l.default.MIOTHost.openPageWithClassName(e):__DEV__&&console.warn&&console.warn('method [openPageWithClassName] can only be invoked on iOS, Android is not implemented. ')}},{key:\"openNewMorePage\",value:function(){__DEV__&&console.warn&&console.warn(\"openNewMorePage deprecated since10010 use 'miot/ui/CommonSetting' component instead. See example https://github.com/MiEcosystem/miot-plugin-sdk/blob/SDK_10004/projects/com.xiaomi.demo/Main/tutorial/Setting.js for more details\"),l.isIOS&&l.default.MIOTHost.openNewMorePage()}},{key:\"openPhoneBluSettingPage\",value:function(){l.isAndroid?l.default.MIOTHost.openPhoneBluSettingActivity():__DEV__&&console.warn&&console.warn('method [openPhoneBluSettingPage] can only be invoked on Android, iOS is not implemented. ')}},{key:\"openXiaoAiLearnPage\",value:function(e,t,o,r,n){l.default.MIOTHost.openXiaoAiLearnPage(e,t,o,r,n)}},{key:\"showBLESwitchGuide\",value:function(){l.isAndroid?__DEV__&&console.warn&&console.warn('method [showBLESwitchGuide] can only be invoked on iOS, Android is not implemented. '):l.default.MIOTHost.showBLESwitchGuide()}},{key:\"dismissBLESwitchGuide\",value:function(){l.isAndroid?__DEV__&&console.warn&&console.warn('method [dismissBLESwitchGuide] can only be invoked on iOS, Android is not implemented. '):l.default.MIOTHost.dismissBLESwitchGuide()}},{key:\"openConnectSucceedPage\",value:function(e,t){l.default.MIOTHost.openConnectSucceedPage(e,t)}},{key:\"openZigbeeConnectDeviceList\",value:function(e){l.default.MIOTHost.openZigbeeConnectDeviceList(e)}},{key:\"openDeviceNetworkInfoPage\",value:function(){l.default.MIOTHost.openDeviceNetworkInfoPage()}},{key:\"openMiPayPageForAndroid\",value:function(e){return l.isAndroid?new Promise(function(t,o){l.default.MIOTHost.openMiPayPage(e,function(e,r){e?t(r):o(r)})}):Promise.reject(\"not support ios yet\")}},{key:\"openPluginRecommendScene\",value:function(e,t){l.default.MIOTHost.openPluginRecommendScene(e,t)}},{key:\"refreshDeviceList\",value:function(){return new Promise(function(e,t){l.default.MIOTHost.refreshDeviceList(function(o,r){o?e(r):t(r)})})}},{key:\"openTerminalDeviceSettingPage\",value:function(e){l.default.MIOTHost.openDeviceSettingPageWithType(e)}},{key:\"openAndroidLocationServerSettingPage\",value:function(){l.isAndroid&&l.default.MIOTHost.openPhoneLocationServerSettingPage()}}]),e})(),(0,a.default)(o.prototype,\"canOpenStorePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"canOpenStorePage\"),o.prototype),(0,a.default)(o.prototype,\"checkStoreSupporttedOnAndroid\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"checkStoreSupporttedOnAndroid\"),o.prototype),(0,a.default)(o.prototype,\"openDeleteDevice\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeleteDevice\"),o.prototype),(0,a.default)(o.prototype,\"openDeleteDeviceWithCallback\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeleteDeviceWithCallback\"),o.prototype),(0,a.default)(o.prototype,\"openShareDevicePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openShareDevicePage\"),o.prototype),(0,a.default)(o.prototype,\"keepScreenNotLock\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"keepScreenNotLock\"),o.prototype),(0,a.default)(o.prototype,\"openRoomManagementPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openRoomManagementPage\"),o.prototype),(0,a.default)(o.prototype,\"openVoiceCtrlDeviceAuthPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openVoiceCtrlDeviceAuthPage\"),o.prototype),(0,a.default)(o.prototype,\"openIftttAutoPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openIftttAutoPage\"),o.prototype),(0,a.default)(o.prototype,\"openFeedbackInput\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openFeedbackInput\"),o.prototype),(0,a.default)(o.prototype,\"openSecuritySetting\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openSecuritySetting\"),o.prototype),(0,a.default)(o.prototype,\"openHelpPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openHelpPage\"),o.prototype),(0,a.default)(o.prototype,\"openShareListBar\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openShareListBar\"),o.prototype),(0,a.default)(o.prototype,\"openSystemShareWindow\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openSystemShareWindow\"),o.prototype),(0,a.default)(o.prototype,\"getDevicesWithModel\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"getDevicesWithModel\"),o.prototype),(0,a.default)(o.prototype,\"openBtGatewayPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openBtGatewayPage\"),o.prototype),(0,a.default)(o.prototype,\"alertLegalInformationAuthorization\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"alertLegalInformationAuthorization\"),o.prototype),(0,a.default)(o.prototype,\"previewLegalInformationAuthorization\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"previewLegalInformationAuthorization\"),o.prototype),(0,a.default)(o.prototype,\"privacyAndProtocolReview\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"privacyAndProtocolReview\"),o.prototype),(0,a.default)(o.prototype,\"openPrivacyLicense\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPrivacyLicense\"),o.prototype),(0,a.default)(o.prototype,\"openChangeDeviceName\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openChangeDeviceName\"),o.prototype),(0,a.default)(o.prototype,\"openAddToDesktopPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openAddToDesktopPage\"),o.prototype),(0,a.default)(o.prototype,\"openDeviceUpgradePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeviceUpgradePage\"),o.prototype),(0,a.default)(o.prototype,\"openBleMeshDeviceUpgradePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openBleMeshDeviceUpgradePage\"),o.prototype),(0,a.default)(o.prototype,\"openBleCommonDeviceUpgradePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openBleCommonDeviceUpgradePage\"),o.prototype),(0,a.default)(o.prototype,\"openLightGroupUpgradePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openLightGroupUpgradePage\"),o.prototype),(0,a.default)(o.prototype,\"openDeviceTimeZoneSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeviceTimeZoneSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openWebPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openWebPage\"),o.prototype),(0,a.default)(o.prototype,\"openShopPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openShopPage\"),o.prototype),(0,a.default)(o.prototype,\"openShopSearchPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openShopSearchPage\"),o.prototype),(0,a.default)(o.prototype,\"openProductBaikeWebPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openProductBaikeWebPage\"),o.prototype),(0,a.default)(o.prototype,\"openMeshDeviceGroupPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openMeshDeviceGroupPage\"),o.prototype),(0,a.default)(o.prototype,\"openAddDeviceGroupPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openAddDeviceGroupPage\"),o.prototype),(0,a.default)(o.prototype,\"openEditDeviceGroupPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openEditDeviceGroupPage\"),o.prototype),(0,a.default)(o.prototype,\"openCountDownPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openCountDownPage\"),o.prototype),(0,a.default)(o.prototype,\"openOneTimePassword\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openOneTimePassword\"),o.prototype),(0,a.default)(o.prototype,\"openTimerSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openTimerSettingPageWithCustomIdentifier\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPageWithCustomIdentifier\"),o.prototype),(0,a.default)(o.prototype,\"openTimerSettingPageWithVariousTypeParams\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPageWithVariousTypeParams\"),o.prototype),(0,a.default)(o.prototype,\"openTimerSettingPageWithOptions\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPageWithOptions\"),o.prototype),(0,a.default)(o.prototype,\"openPowerMultikeyPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPowerMultikeyPage\"),o.prototype),(0,a.default)(o.prototype,\"addOrCopyIR\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"addOrCopyIR\"),o.prototype),(0,a.default)(o.prototype,\"openDevice\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDevice\"),o.prototype),(0,a.default)(o.prototype,\"openPluginPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPluginPage\"),o.prototype),(0,a.default)(o.prototype,\"openPageWithClassName\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPageWithClassName\"),o.prototype),(0,a.default)(o.prototype,\"openNewMorePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openNewMorePage\"),o.prototype),(0,a.default)(o.prototype,\"openPhoneBluSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPhoneBluSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openXiaoAiLearnPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openXiaoAiLearnPage\"),o.prototype),(0,a.default)(o.prototype,\"showBLESwitchGuide\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"showBLESwitchGuide\"),o.prototype),(0,a.default)(o.prototype,\"dismissBLESwitchGuide\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"dismissBLESwitchGuide\"),o.prototype),(0,a.default)(o.prototype,\"openConnectSucceedPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openConnectSucceedPage\"),o.prototype),(0,a.default)(o.prototype,\"openZigbeeConnectDeviceList\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openZigbeeConnectDeviceList\"),o.prototype),(0,a.default)(o.prototype,\"openDeviceNetworkInfoPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeviceNetworkInfoPage\"),o.prototype),(0,a.default)(o.prototype,\"openMiPayPageForAndroid\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openMiPayPageForAndroid\"),o.prototype),(0,a.default)(o.prototype,\"openPluginRecommendScene\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPluginRecommendScene\"),o.prototype),(0,a.default)(o.prototype,\"refreshDeviceList\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"refreshDeviceList\"),o.prototype),(0,a.default)(o.prototype,\"openTerminalDeviceSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTerminalDeviceSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openAndroidLocationServerSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openAndroidLocationServerSettingPage\"),o.prototype),o);exports.default=g;","miot-sdk/host/ui.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/slicedToArray\")),i=r(require(\"@babel/runtime/helpers/objectSpread\")),n=r(require(\"@babel/runtime/helpers/classCallCheck\")),l=r(require(\"@babel/runtime/helpers/createClass\")),a=r(require(\"../device/BasicDevice\")),u=r(require(\"../Service\")),o=e(require(\"../native\")),s=require('react-native/Libraries/Image/resolveAssetSource'),c=(function(){function e(){(0,n.default)(this,e)}return(0,l.default)(e,null,[{key:\"getLegalAuthInfoProtocol\",value:function(){var e=this;return new Promise(function(r,n){var l=a.default.model,s=o.default.MIOTPackage.pluginID,c=o.default.MIOTPackage.version,h=o.default.language;u.default.getServerName().then(function(a){var o=a.countryCode,f={model:l,plugin_id:s,plugin_version:c,country:o,language:h},v=[1,2,3].map(function(e){return(0,i.default)({},f,{type_int:e})});Promise.all(v.map(function(e){return u.default.smarthome.getProtocolUrls(e)})).then(function(i){var n=(0,t.default)(i,3),l=n[0],a=n[1],u=n[2],o=l.html_url?e._resolveUniUrlV2(e._UniUrl,v[0]):'',s=a.html_url?e._resolveUniUrlV2(e._UniUrl,v[1]):'',c=u.html_url?e._resolveUniUrlV2(e._UniUrl,v[2]):'';r({privacyURL:o,agreementURL:s,hideAgreement:!s,experiencePlanURL:c,hideUserExperiencePlan:!c})}).catch(n)}).catch(n)})}},{key:\"setLegalInfoAuthHasShowed\",value:function(e){this._legalInfoAuthHasShowed=e}},{key:\"getLegalInfoAuthHasShowed\",value:function(){return this._legalInfoAuthHasShowed}},{key:\"_resolveUniParamsV2\",value:function(e){var r=[];for(var t in e)e.hasOwnProperty(t)&&r.push(t+\"=\"+e[t]);return r.join('&')}},{key:\"_resolveUniUrlV2\",value:function(e,r){return e?e+(e.indexOf('?')>-1?'&':'?')+this._resolveUniParamsV2(r):''}},{key:\"resolveUrl\",value:function(e){var r=s(e);if(r&&(r.uri||Array.isArray(r))&&'string'==typeof r.uri)return o.isAndroid?[{uri:r.uri}]:r.uri}},{key:\"resolveUrlWithLink\",value:function(e){return'string'==typeof e&&/https?:\\/\\//i.test(e)?o.isAndroid?[{uri:e}]:e:this.resolveUrl(e)}}]),e})();exports.default=c,c._legalInfoAuthHasShowed=!1,c._UniUrl='https://home.mi.com/miot/activity/privacy/index.html';","miot-sdk/utils/protocol-helper.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.PackageEvent=exports.Entrance=exports.RELEASE=exports.DEBUG=void 0;var a=t(require(\"@babel/runtime/helpers/classCallCheck\")),r=t(require(\"@babel/runtime/helpers/createClass\")),i=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=t(require(\"@babel/runtime/helpers/inherits\")),l=t(require(\"@babel/runtime/helpers/objectSpread\")),s=t(require(\"@babel/runtime/helpers/extends\")),d=require(\"miot/ui\"),u=t(require(\"react\")),c=require(\"react-native\"),p=t(require(\"./Service\")),f=e(require(\"./device/BasicDevice\")),g=t(require(\"./Host\")),h=e(require(\"./native\")),v=t(require(\"./native/common/node/resolve\")),m=require(\"./resources\"),k=t(require(\"./utils/protocol-helper\")),y=t(require(\"react-native/package.json\")),w=t(require(\"prop-types\")),I=require(\"miot/Device\"),P=require(\"miot/sdkContext\"),U={NAVIGATION_STATE_CHANGE:1};Object.freeze(U);exports.DEBUG=\"debug\";exports.RELEASE=\"release\";var E={Main:\"main\",Scene:\"scene\"};exports.Entrance=E,Object.freeze(E);var O,A={packageWillLoad:{local:!0},packageDidLoaded:{local:!0},packageWillPause:{always:!0},packageDidResume:{always:!0},packageAuthorizationAgreed:{always:!0},packageAuthorizationCancel:{always:function(e){return function(){e.emit(!0),h.isAndroid&&h.default.MIOTHost.closeCurrentPage()}},sameas:h.isIOS?'kMHPluginReceivingDeviceCancelAuthorization':'packageAuthorizationCancel'},packageReceivedInformation:{always:!0,sameas:h.isIOS?'kMHPluginReceivingForegroundPushEvent':void 0},packageWillExit:{always:!0},packageViewWillAppear:{always:!0,sameas:h.isIOS?'viewWillAppear':void 0},packageViewWillDisappearIOS:{always:!0,sameas:h.isIOS?'packageViewWillDisappearIOS':void 0}};exports.PackageEvent=A,(0,h.buildEvents)(A),c.DeviceEventEmitter.addListener('onPluginConfigUpdate',function(e){(0,s.default)(h.default.MIOTDevice,e.device),(0,s.default)(h.default.MIOTPackage,e.package),e.service&&(0,s.default)(h.default.MIOTService,e.service),e.host&&(0,s.default)(h.default.MIOTHost,e.host),e.file&&(0,s.default)(h.default.MIOTFile,e.file),e.audio&&(0,s.default)(h.default.MIOTAudio,e.audio),(0,v.default)(h.default.MIOTPackage.basePath,h.default.MIOTPackage.localFilePath,h.default.MIOTPackage.plugPath),h.Properties.init(f.default,(0,l.default)({},h.default.MIOTDevice.currentDevice,{_msgset:new Set,_pollMsgSet:new f.PollPropMap})),console.log(\"PluginStartTime\",'initPluginConfig',h.default.MIOTPackage.packageName,f.default.deviceID),O&&O(f.default.deviceID)});var D={};function L(e,t){h.default.MIOTPackage.onPackageLifecycle&&h.default.MIOTPackage.onPackageLifecycle(e,t||\"\")}function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};h.default.MIOTPackage.onDeventJs&&(h.isIOS?h.default.MIOTPackage.onDeventJs(e,t,function(){}):h.default.MIOTPackage.onDeventJs(e,t))}var T=(function(e){function t(){return(0,a.default)(this,t),(0,i.default)(this,(0,n.default)(t).apply(this,arguments))}return(0,o.default)(t,e),(0,r.default)(t,[{key:\"render\",value:function(){var e=D.App;return u.default.createElement(e,{key:this.props.did})}}]),t})(u.default.PureComponent);T.propTypes={did:w.default.any},T.defaultProps={did:''};var M=(function(e){function t(){var e;return(0,a.default)(this,t),(e=(0,i.default)(this,(0,n.default)(t).call(this))).darkModeListener=function(t){console.log(\"colorScheme from listener: \"+t.colorScheme),e.setState({currentMode:t.colorScheme})},e.state={did:'',currentMode:h.default.MIOTService.currentDarkMode?h.default.MIOTService.currentDarkMode:\"light\"},O=function(t){e.setState({did:t,showFirmwareUpdateAlert:!1,firmwareUpdateTitle:'',firmwareUpdateSure:'',firmwareUpdateCancel:'',packageExitOnFirmwareUpdateCancel:!1,isShowingPrivacyLicenseDialog:!1})},e}return(0,o.default)(t,e),(0,r.default)(t,[{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;D.willLoad||(D.willLoad=!0,L(\"willMount\"),D.afterPackageEntry&&(D.afterPackageEntry(),D.afterPackageEntry=null),A.packageWillLoad.emit(),this.ShowPrivacyLicenseDialogListener=c.DeviceEventEmitter.addListener('MH_Event_ShowPrivacyLicenseDialog',function(t){console.log(\"received MH_Event_ShowPrivacyLicenseDialog...\",t);var a=t.isShowingPrivacyLicenseDialog;a&&e.setState({showFirmwareUpdateAlert:!1,isShowingPrivacyLicenseDialog:a})}),this.onNavigationStateChange=c.DeviceEventEmitter.addListener('onNavigationStateChange',function(e){var t=e.action,a=e.prevNav,r=e.nav;'Navigation/NAVIGATE'!==t.type&&'Navigation/BACK'!==t.type&&'Navigation/PUSH'!==t.type&&'Navigation/POP'!==t.type&&'Navigation/REPLACE'!==t.type||S(U.NAVIGATION_STATE_CHANGE,{routeIndex:a.index,routeName:a.routes[a.index].routeName,event:'hide'}),'Navigation/COMPLETE_TRANSITION'===t.type&&S(U.NAVIGATION_STATE_CHANGE,{routeIndex:r.index,routeName:r.routes[r.index].routeName,event:'show'})}))}},{key:\"componentDidMount\",value:function(){var e=this;if(!D.didLoaded){D.didLoaded=!0,I.DarkMode.addChangeListener(this.darkModeListener),L(\"didMount\"),S(U.NAVIGATION_STATE_CHANGE,{routeIndex:0,routeName:'',event:'show'}),A.packageDidLoaded.emit(),this.checkLegalInformationAuthorization().then(function(e){console.log('resolve yes',e)}).catch(function(e){console.log('resolve false',e)});var t=function(t,a,r,i){e.state.isShowingPrivacyLicenseDialog||g.default.storage.get(\"mh_firmware_last_op_time\"+f.default.deviceID).then(function(e){if(e){var t=(new Date).getTime()-e;return Promise.resolve(t<6e5)}return Promise.resolve(!1)}).then(function(n){n&&!a||(a?r?e.setState({firmwareUpdateTitle:m.strings.firmwareUpgradeForceUpdating,firmwareUpdateSure:m.strings.firmwareUpgradeLook,firmwareUpdateCancel:m.strings.firmwareUpgradeExit,packageExitOnFirmwareUpdateCancel:!0,showFirmwareUpdateAlert:!0}):t&&e.setState({firmwareUpdateTitle:m.strings.firmwareUpgradeForceUpdate,firmwareUpdateSure:m.strings.firmwareUpgradeUpdate,firmwareUpdateCancel:m.strings.firmwareUpgradeExit,packageExitOnFirmwareUpdateCancel:!0,showFirmwareUpdateAlert:!0}):r||t&&i&&e.setState({firmwareUpdateTitle:m.strings.firmwareUpgradeNew_pre+i+m.strings.firmwareUpgradeNew_sub,firmwareUpdateSure:m.strings.firmwareUpgradeUpdate,firmwareUpdateCancel:m.strings.cancel,packageExitOnFirmwareUpdateCancel:!1,showFirmwareUpdateAlert:!0}))})};if(this.listener=c.DeviceEventEmitter.addListener('MH_FirmwareNeedUpdateAlert',function(e){f.default.needUpgrade=e.needUpgrade;var a=e.needUpgrade,r=e.force,i=e.upgrading,n=e.latestVersion;t(a,r,i,n)}),D.package&&D.package._bleAutoCheckUpgradeOptions&&D.package._bleAutoCheckUpgradeOptions.enable){var a=D.package._bleAutoCheckUpgradeOptions.redPoint,r=D.package._bleAutoCheckUpgradeOptions.alertDialog;if(!f.default.isShared&&(a||r)&&(6==f.default.type||16==f.default.type)){var i=!1;p.default.smarthome.getLatestVersionV2(f.default.deviceID).then(function(e){e&&e.version&&typeof e.force==typeof!0&&(i=e.force,a&&(f.default.needUpgrade=e.version!==f.default.lastVersion))}),this.bleUpgradeObserver=f.DeviceEvent.bleDeviceFirmwareNeedUpgrade.addListener(function(e){e===f.default&&(a&&(f.default.needUpgrade=!0),r&&t(!0,i,!1,f.default.latestVersion))})}}!D.package||D.package.disableAutoCheckUpgrade||this.state.isShowingPrivacyLicenseDialog||f.default.checkFirmwareUpdateAndAlert().then(function(){}).catch(function(){})}}},{key:\"componentWillUnmount\",value:function(){D.willLoad=!1,D.didLoaded=!1,L(\"willUnmount\"),h.PackageExitAction.execute(),h.isAndroid&&A.packageWillExit.emit(),this.listener&&this.listener.remove(),this.ShowPrivacyLicenseDialogListener&&this.ShowPrivacyLicenseDialogListener.remove(),this.bleUpgradeObserver&&this.bleUpgradeObserver.remove(),k.default.setLegalInfoAuthHasShowed(!1),I.DarkMode.removeChangeListener(this.darkModeListener)}},{key:\"checkLegalInformationAuthorization\",value:function(){return 1==k.default.getLegalInfoAuthHasShowed()?Promise.reject(\"\\u9690\\u79c1\\u6388\\u6743\\u5df2\\u786e\\u8ba4\"):0==f.default.isOnline?Promise.reject(\"\\u8bbe\\u5907\\u79bb\\u7ebf\"):f.default.isShared||f.default.isFamily?Promise.reject(\"\\u5206\\u4eab\\u8bbe\\u5907\\u4e0d\\u5efa\\u8bae\\u8fdb\\u884c\\u5f39\\u7a97\\u8bf7\\u6c42\\u9690\\u79c1\\u6388\\u6743\\u3002\"):new Promise(function(e,t){p.default.smarthome.batchGetDeviceDatas([{did:f.default.deviceID,props:[\"prop.s_auth_config\"]}]).then(function(a){var r=!0;if(a){var i=a[f.default.deviceID];if(i){var n=i['prop.s_auth_config'];if(n)try{r=JSON.parse(n).privacyAuthed&&!0}catch(e){return void t(\"json parse error\")}else r=!1;r?t(\"\\u5df2\\u7ecf\\u6388\\u6743\"):k.default.getLegalAuthInfoProtocol().then(function(a){a&&a.privacyURL?(a.privacyURL&&(a.privacyURL=k.default.resolveUrlWithLink(a.privacyURL)),a.agreementURL&&(a.agreementURL=k.default.resolveUrlWithLink(a.agreementURL)),a.hideAgreement&&delete a.agreementURL,a.experiencePlanURL&&(a.experiencePlanURL=k.default.resolveUrlWithLink(a.experiencePlanURL)),a.hideUserExperiencePlan&&delete a.experiencePlanURL,1!=k.default.getLegalInfoAuthHasShowed()?(c.DeviceEventEmitter.emit('MH_Event_ShowPrivacyLicenseDialog',{isShowingPrivacyLicenseDialog:!0}),k.default.setLegalInfoAuthHasShowed(!0),h.default.MIOTHost.showDeclarationWithConfig(a,function(a){if('ok'!==a&&!0!==a&&'true'!==a)return t(\"\\u4e0d\\u540c\\u610f\\u534f\\u8bae\\uff0c\\u63d2\\u4ef6\\u9000\\u51fa\"),void h.default.MIOTHost.closeCurrentPage();p.default.smarthome.batchSetDeviceDatas([{did:f.default.deviceID,props:{\"prop.s_auth_config\":JSON.stringify({privacyAuthed:!0})}}]),A.packageAuthorizationAgreed.emit(),e('ok')})):t('\\u9690\\u79c1\\u6388\\u6743\\u5df2\\u786e\\u8ba4')):t(\"\\u83b7\\u53d6url\\u5931\\u8d25\")}).catch(function(e){t(e)})}else t(\"data error result null\")}else t(\"data error res null\")}).catch(function(e){t(e)})})}},{key:\"render\",value:function(){var e=this;return u.default.createElement(c.View,{style:{flex:1}},u.default.createElement(P.SDKContextProvider,{value:{colorScheme:this.state.currentMode}},u.default.createElement(T,{did:this.state.did})),u.default.createElement(d.MessageDialog,{title:\"\",message:this.state.firmwareUpdateTitle,cancelable:!0,cancel:this.state.firmwareUpdateCancel,confirm:this.state.firmwareUpdateSure,onCancel:function(){e.state.packageExitOnFirmwareUpdateCancel&&h.default.MIOTHost.closeCurrentPage()},onConfirm:function(){if(f.default.needUpgrade=!1,(6==f.default.type||16==f.default.type)&&D.package&&D.package._bleAutoCheckUpgradeOptions&&D.package._bleAutoCheckUpgradeOptions.enable){var e=D.package._bleAutoCheckUpgradeOptions.authType;g.default.ui.openBleCommonDeviceUpgradePage({auth_type:e})}else g.default.ui.openDeviceUpgradePage()},onDismiss:function(){var e=(new Date).getTime();g.default.storage.set(\"mh_firmware_last_op_time\"+f.default.deviceID,e)},visible:this.state.showFirmwareUpdateAlert}))}}]),t})(u.default.Component),x={get extraEntry(){if(!D.entry){var e=h.default.MIOTPackage.entryInfo||{};D.entry=\"string\"==typeof e?JSON.parse(e):e}return D.entry},get entrance(){return this.extraEntry.entrance||E.Main},get pageParams(){return this.entryInfo&&this.entryInfo.pageParams&&'string'==typeof this.entryInfo.pageParams&&(this.entryInfo.pageParams=JSON.parse(this.entryInfo.pageParams)),this.entryInfo.pageParams||{}},get entryInfo(){return this.extraEntry.info&&this.extraEntry.info.payload&&this.extraEntry.info.payload.androidData&&(this.extraEntry.info.payload.androidData=JSON.parse(this.extraEntry.info.payload.androidData),this.extraEntry.info.payload.id=this.extraEntry.info.payload.id||this.extraEntry.info.payload.androidData.actionId),this.extraEntry.info||{}},get exitInfo(){return D.exitInfo},set exitInfo(e){D.exitInfo=e,h.default.MIOTPackage.setExitInfo(this.entrance,JSON.stringify(e||{}))},get packageID(){return h.default.MIOTPackage.packageID},get pluginID(){return h.default.MIOTPackage.pluginID},get version(){return h.default.MIOTPackage.version},get rnVersion(){return y.default.version},get packageName(){return h.default.MIOTPackage.packageName},get minApiLevel(){return h.isAndroid?h.default.MIOTHost.systemInfo.hostApiLevel:h.default.MIOTHost.apiLevel},get buildType(){return h.default.MIOTPackage.buildType},get isDebug(){return\"debug\"===this.buildType.toLowerCase()},get models(){return h.default.MIOTPackage.models},set BLEAutoCheckUpgradeOptions(e){this._bleAutoCheckUpgradeOptions=e},entry:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;D.App=e,D.afterPackageEntry=t,D.package=this;var a=this.packageName;c.AppRegistry.registerComponent(a,function(){return M}),console.log(\"PluginStartTime \"+Date.now(),a)},exit:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&(this.exitInfo=e),h.default.MIOTHost.closeCurrentPage()}};exports.default=x;","miot-sdk/Package.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"BigNumber\",{enumerable:!0,get:function(){return q.default}}),Object.defineProperty(exports,\"CardButton\",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(exports,\"CircleButton\",{enumerable:!0,get:function(){return B.default}}),Object.defineProperty(exports,\"ContainerWithGap\",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(exports,\"ContainerWithShadowAndSeparator\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(exports,\"DeviceWithInfo\",{enumerable:!0,get:function(){return D.default}}),Object.defineProperty(exports,\"Fan\",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(exports,\"HeaterHeader\",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(exports,\"LightControl\",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(exports,\"PageWithNormalNavigator\",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(exports,\"SelectorWithButton\",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(exports,\"SliderWithHeader\",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(exports,\"SmallNumbers\",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(exports,\"WallSwitch\",{enumerable:!0,get:function(){return W.default}}),Object.defineProperty(exports,\"Airer\",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(exports,\"DoubleSelectors\",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(exports,\"Curtain\",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(exports,\"CurtainStyle\",{enumerable:!0,get:function(){return V.default}}),Object.defineProperty(exports,\"PrimeButton\",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(exports,\"QAList\",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(exports,\"MultiButtons\",{enumerable:!0,get:function(){return R.default}}),Object.defineProperty(exports,\"Consumable\",{enumerable:!0,get:function(){return H.default}}),Object.defineProperty(exports,\"ImageHeader\",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(exports,\"RTSPRenderView\",{enumerable:!0,get:function(){return z.default}}),exports.default=exports.BTInterconnection=exports.MiotAndroidScrollView=exports.RobotMapView=exports.StringSpinner=exports.NumberSpinner=exports.AMapView=exports.LocalizedStrings=exports.TitleBarWhite=exports.TitleBarBlack=exports.TitleBar=exports.InputDialog=exports.SingleChoseDialog=exports.MultiChoseDialog=exports.ProgressDialog=exports.MessageDialog=exports.LoadingDialog=exports.ImageButton=void 0;var r=e(require(\"./AMapView\")),t=e(require(\"./android/scrollview/MiotAndroidScrollView\")),i=e(require(\"./ImageButton\")),o=e(require(\"./InputDialog\")),n=e(require(\"./LoadingDialog\")),u=e(require(\"./LocalizedStrings\")),a=e(require(\"./MessageDialog\")),l=e(require(\"./MultiChoseDialog\")),p=e(require(\"./NumberSpinner\")),d=e(require(\"./StringSpinner\")),s=e(require(\"./RobotMapView\")),f=e(require(\"./ProgressDialog\")),g=e(require(\"./SingleChoseDialog\")),c=e(require(\"./TitleBar\")),b=e(require(\"./TitleBarBlack\")),x=e(require(\"./TitleBarWhite\")),m=e(require(\"./BTInterconnection\")),q=e(require(\"./BigNumber\")),S=e(require(\"./CardButton\")),B=e(require(\"./CircleButton\")),P=e(require(\"./ContainerWithGap\")),h=e(require(\"./ContainerWithShadowAndSeparator\")),D=e(require(\"./DeviceWithInfo\")),y=e(require(\"./Fan\")),v=e(require(\"./HeaterHeader\")),j=e(require(\"./LightControl\")),O=e(require(\"./PageWithNormalNavigator\")),C=e(require(\"./SelectorWithButton\")),M=e(require(\"./SliderWithHeader\")),w=e(require(\"./SmallNumbers\")),W=e(require(\"./WallSwitch\")),T=e(require(\"./Airer\")),I=e(require(\"./DoubleSelectors\")),A=e(require(\"./Curtain\")),V=e(require(\"./CurtainStyle\")),L=e(require(\"./PrimeButton\")),N=e(require(\"./QAList\")),R=e(require(\"./MultiButtons\")),H=e(require(\"./Consumable\")),k=e(require(\"./ImageHeader\")),z=e(require(\"./RTSPRenderView\")),F=i.default;exports.ImageButton=F;var G=n.default;exports.LoadingDialog=G;var Q=a.default;exports.MessageDialog=Q;var _=f.default;exports.ProgressDialog=_;var E=l.default;exports.MultiChoseDialog=E;var J=g.default;exports.SingleChoseDialog=J;var K=o.default;exports.InputDialog=K;var U=c.default;exports.TitleBar=U;var X=b.default;exports.TitleBarBlack=X;var Y=x.default;exports.TitleBarWhite=Y;var Z=u.default;exports.LocalizedStrings=Z;var $=r.default;exports.AMapView=$;var ee=p.default;exports.NumberSpinner=ee;var re=d.default;exports.StringSpinner=re;var te=s.default;exports.RobotMapView=te;var ie=t.default;exports.MiotAndroidScrollView=ie;var oe=m.default;exports.BTInterconnection=oe;var ne={ImageButton:F,LoadingDialog:G,MessageDialog:Q,MultiChoseDialog:E,ProgressDialog:_,SingleChoseDialog:J,InputDialog:K,TitleBar:U,TitleBarBlack:X,TitleBarWhite:Y,NumberSpinner:ee,StringSpinner:re,RobotMapView:te,LocalizedStrings:Z,AMapView:$,MiotAndroidScrollView:ie};exports.default=ne;","miot-sdk/ui/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),a=r(require(\"@babel/runtime/helpers/extends\")),o=r(require(\"@babel/runtime/helpers/classCallCheck\")),n=r(require(\"@babel/runtime/helpers/createClass\")),i=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=r(require(\"@babel/runtime/helpers/inherits\")),s=r(require(\"prop-types\")),c=e(require(\"react\")),d=require(\"react-native\"),f=r(require(\"../Host\")),p=require(\"../decorator/ReportDecorator\"),b=require('react-native/Libraries/Image/resolveAssetSource'),m=(0,d.requireNativeComponent)('MHMapView',null),g=(function(e){function r(e,t){var a;return(0,o.default)(this,r),a=(0,i.default)(this,(0,u.default)(r).call(this,e,t)),(0,p.referenceReport)('AMapView'),a}return(0,l.default)(r,e),(0,n.default)(r,[{key:\"render\",value:function(){var e=JSON.parse(JSON.stringify(this.props));return console.log(\"AMapView reslove begin...\",e),e.userLocation&&(e.userLocation.image=r.resloveUri(e.userLocation.image)),e.userLocationRepresentation&&(e.userLocationRepresentation.image=r.resloveUri(e.userLocationRepresentation.image)),e.annotations&&Array.isArray(e.annotations)&&e.annotations.forEach(function(e){e.image=r.resloveUri(e.image)}),f.default.isDebug&&console.log(\"AMapView reslove end...\",e),c.default.createElement(m,(0,a.default)({},this.props,{userLocation:e.userLocation,userLocationRepresentation:e.userLocationRepresentation,annotations:e.annotations,centerCoordinate:e.centerCoordinate}))}}],[{key:\"resloveUri\",value:function(e){return(e=b(e))&&(e.uri||Array.isArray(e))&&e.uri&&(e=[{uri:e.uri}]),e}}]),r})(c.Component);exports.default=g,g.propTypes=(0,t.default)({showsUserLocation:s.default.bool,trafficEnabled:s.default.bool,showsScale:s.default.bool,showsCompass:s.default.bool,zoomEnabled:s.default.bool,pausesLocationUpdatesAutomatically:s.default.bool,allowsBackgroundLocationUpdates:s.default.bool,desiredAccuracy:s.default.number,distanceFilter:s.default.number,scaleOrigin:s.default.object,mapType:s.default.number,headingFilter:s.default.number,zoomLevel:s.default.number,centerCoordinate:s.default.object,userTrackingMode:s.default.string,compassOrigin:s.default.object,userLocation:s.default.object,language:s.default.number,logoPosition:s.default.number,userLocationRepresentation:s.default.object,annotations:s.default.array,circles:s.default.array,polylines:s.default.array,multiPolylines:s.default.array,onUpdateUserLocation:s.default.func,onSingleTappedAtCoordinate:s.default.func,onSelectAnnotationView:s.default.func,onMapWillZoomByUser:s.default.func,onMapDidZoomByUser:s.default.func},d.ViewPropTypes);","miot-sdk/ui/AMapView.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,o,n=e(require(\"@babel/runtime/helpers/extends\")),r=e(require(\"@babel/runtime/helpers/objectSpread\")),l=require(\"react-native\"),i=e(require(\"react-native/Libraries/Components/ScrollResponder\")),s=e(require(\"react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader\")),a=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType\")),c=e(require(\"react-native/Libraries/Components/View/View\")),d=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes\")),u=e(require(\"react-native/Libraries/Utilities/dismissKeyboard\")),p=e(require(\"react-native/Libraries/StyleSheet/flattenStyle\")),h=e(require(\"./DecelerationRate\")),m=e(require(\"react-native/Libraries/ReactNative/requireNativeComponent\")),f=e(require(\"react-native/Libraries/Image/resolveAssetSource\")),y=require(\"../../../decorator/ReportDecorator\"),S=require('prop-types'),v=require('react'),b=require('react-native'),R=require('create-react-class'),_=require('fbjs/lib/invariant'),g=R({displayName:'MiotAndroidScrollView',propTypes:(0,r.default)({},l.ViewPropTypes,{automaticallyAdjustContentInsets:S.bool,contentInset:l.EdgeInsetsPropType,contentOffset:l.PointPropType,bounces:S.bool,bouncesZoom:S.bool,alwaysBounceHorizontal:S.bool,alwaysBounceVertical:S.bool,centerContent:S.bool,contentContainerStyle:(0,a.default)(d.default),decelerationRate:S.oneOfType([S.oneOf(['fast','normal']),S.number]),horizontal:S.bool,indicatorStyle:S.oneOf(['default','black','white']),invertStickyHeaders:S.bool,directionalLockEnabled:S.bool,canCancelContentTouches:S.bool,keyboardDismissMode:S.oneOf(['none','on-drag','interactive']),keyboardShouldPersistTaps:S.oneOf(['always','never','handled',!1,!0]),maintainVisibleContentPosition:S.shape({minIndexForVisible:S.number.isRequired,autoscrollToTopThreshold:S.number}),maximumZoomScale:S.number,minimumZoomScale:S.number,onMomentumScrollBegin:S.func,onMomentumScrollEnd:S.func,onScroll:S.func,onScrollBeginDrag:S.func,onScrollEndDrag:S.func,onContentSizeChange:S.func,pagingEnabled:S.bool,pinchGestureEnabled:S.bool,scrollEnabled:S.bool,scrollEventThrottle:S.number,scrollIndicatorInsets:l.EdgeInsetsPropType,scrollsToTop:S.bool,showsHorizontalScrollIndicator:S.bool,showsVerticalScrollIndicator:S.bool,stickyHeaderIndices:S.arrayOf(S.number),snapToInterval:S.number,snapToAlignment:S.oneOf(['start','center','end']),removeClippedSubviews:S.bool,zoomScale:S.number,contentInsetAdjustmentBehavior:S.oneOf(['automatic','scrollableAxes','never','always']),refreshControl:S.element,endFillColor:l.ColorPropType,scrollPerfTag:S.string,overScrollMode:S.oneOf(['auto','always','never']),DEPRECATED_sendUpdatedChildFrames:S.bool,scrollBarThumbImage:S.oneOfType([S.shape({uri:S.string}),S.number]),snapHeight:S.number,scrollYDuration:S.number}),mixins:[i.default.Mixin],_scrollAnimatedValue:new l.Animated.Value(0),_scrollAnimatedValueAttachment:null,_stickyHeaderRefs:new Map,_headerLayoutYs:new Map,getInitialState:function(){return(0,r.default)({},this.scrollResponderMixinGetInitialState(),{layoutHeight:null})},UNSAFE_componentWillMount:function(){this._scrollAnimatedValue=new l.Animated.Value(this.props.contentOffset?this.props.contentOffset.y:0),this._scrollAnimatedValue.setOffset(this.props.contentInset?this.props.contentInset.top:0),this._stickyHeaderRefs=new Map,this._headerLayoutYs=new Map,(0,y.referenceReport)('MiotAndroidScrollView','componentWillMount')},componentDidMount:function(){this._updateAnimatedNodeAttachment()},componentDidUpdate:function(){this._updateAnimatedNodeAttachment()},componentWillUnmount:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach()},setNativeProps:function(e){this._scrollViewRef&&this._scrollViewRef.setNativeProps(e)},getScrollResponder:function(){return this},getScrollableNode:function(){return b.findNodeHandle(this._scrollViewRef)},getInnerViewNode:function(){return b.findNodeHandle(this._innerViewRef)},scrollTo:function(e,t,o){if('number'==typeof e)__DEV__&&console.warn&&console.warn(\"`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.\");else{var n=e||{};t=n.x,e=n.y,o=n.animated}this.getScrollResponder().scrollResponderScrollTo({x:t||0,y:e||0,animated:!1!==o})},scrollToEnd:function(e){var t=!1!==(e&&e.animated);this.getScrollResponder().scrollResponderScrollToEnd({animated:t})},scrollWithoutAnimationTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;__DEV__&&console.warn&&console.warn('`scrollWithoutAnimationTo` is deprecated. Use `scrollTo` instead'),this.scrollTo({x:t,y:e,animated:!1})},flashScrollIndicators:function(){this.getScrollResponder().scrollResponderFlashScrollIndicators()},_getKeyForIndex:function(e,t){var o=t[e];return o&&o.key},_updateAnimatedNodeAttachment:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach(),this.props.stickyHeaderIndices&&this.props.stickyHeaderIndices.length>0&&(this._scrollAnimatedValueAttachment=l.Animated.attachNativeEvent(this._scrollViewRef,'onScroll',[{nativeEvent:{contentOffset:{y:this._scrollAnimatedValue}}}]))},_setStickyHeaderRef:function(e,t){t?this._stickyHeaderRefs.set(e,t):this._stickyHeaderRefs.delete(e)},_onStickyHeaderLayout:function(e,t,o){if(this.props.stickyHeaderIndices){var n=v.Children.toArray(this.props.children);if(o===this._getKeyForIndex(e,n)){var r=t.nativeEvent.layout.y;this._headerLayoutYs.set(o,r);var l=this.props.stickyHeaderIndices.indexOf(e),i=this.props.stickyHeaderIndices[l-1];if(null!=i){var s=this._stickyHeaderRefs.get(this._getKeyForIndex(i,n));s&&s.setNextHeaderY(r)}}}},_handleScroll:function(e){__DEV__&&this.props.onScroll&&null==this.props.scrollEventThrottle&&'ios'===l.Platform.OS&&console.log(\"You specified `onScroll` on a but not `scrollEventThrottle`. You will only receive one event. Using `16` you get all the events but be aware that it may cause frame drops, use a bigger number if you don't need as much precision.\"),'android'===l.Platform.OS&&'on-drag'===this.props.keyboardDismissMode&&(0,u.default)(),this.scrollResponderHandleScroll(e)},_handleLayout:function(e){this.props.invertStickyHeaders&&this.setState({layoutHeight:e.nativeEvent.layout.height}),this.props.onLayout&&this.props.onLayout(e)},_handleContentOnLayout:function(e){var t=e.nativeEvent.layout,o=t.width,n=t.height;this.props.onContentSizeChange&&this.props.onContentSizeChange(o,n)},_scrollViewRef:null,_setScrollViewRef:function(e){this._scrollViewRef=e},_innerViewRef:null,_setInnerViewRef:function(e){this._innerViewRef=e},render:function(){var e=this,t=!1;if('android'===l.Platform.OS&&(this.props.horizontal||(t=!!this.props.snapHeight)),t){var i,a,d=[this.props.contentContainerStyle];__DEV__&&this.props.style&&(i=(0,p.default)(this.props.style),a=['alignItems','justifyContent'].filter(function(e){return i&&void 0!==i[e]}),_(0===a.length,\"ScrollView child layout (\"+JSON.stringify(a)+\") must be applied through the contentContainerStyle prop.\"));var u={};this.props.onContentSizeChange&&(u={onLayout:this._handleContentOnLayout});var m=this.props.stickyHeaderIndices,y=m&&m.length>0,S=y&&v.Children.toArray(this.props.children),b=y?S.map(function(t,o){var n=t?m.indexOf(o):-1;if(n>-1){var r=t.key,l=m[n+1];return v.createElement(s.default,{key:r,ref:function(t){return e._setStickyHeaderRef(r,t)},nextHeaderLayoutY:e._headerLayoutYs.get(e._getKeyForIndex(l,S)),onLayout:function(t){return e._onStickyHeaderLayout(o,t,r)},scrollAnimatedValue:e._scrollAnimatedValue,inverted:e.props.invertStickyHeaders,scrollViewHeight:e.state.layoutHeight},t)}return t}):this.props.children,R=v.createElement(c.default,(0,n.default)({},u,{ref:this._setInnerViewRef,style:d,removeClippedSubviews:('android'!==l.Platform.OS||!y)&&this.props.removeClippedSubviews,collapsable:!1}),b),g=void 0!==this.props.alwaysBounceVertical?this.props.alwaysBounceVertical:!this.props.horizontal,T=!!this.props.DEPRECATED_sendUpdatedChildFrames,V=w.baseVertical,H=(0,r.default)({},this.props,{alwaysBounceVertical:g,style:[V,this.props.style],onContentSizeChange:null,onLayout:this._handleLayout,onMomentumScrollBegin:this.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this.scrollResponderHandleMomentumScrollEnd,onResponderGrant:this.scrollResponderHandleResponderGrant,onResponderReject:this.scrollResponderHandleResponderReject,onResponderRelease:this.scrollResponderHandleResponderRelease,onResponderTerminate:this.scrollResponderHandleTerminate,onResponderTerminationRequest:this.scrollResponderHandleTerminationRequest,onScroll:this._handleScroll,onScrollBeginDrag:this.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this.scrollResponderHandleScrollEndDrag,onScrollShouldSetResponder:this.scrollResponderHandleScrollShouldSetResponder,onStartShouldSetResponder:this.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this.scrollResponderHandleStartShouldSetResponderCapture,onTouchEnd:this.scrollResponderHandleTouchEnd,onTouchMove:this.scrollResponderHandleTouchMove,onTouchStart:this.scrollResponderHandleTouchStart,onTouchCancel:this.scrollResponderHandleTouchCancel,scrollBarThumbImage:(0,f.default)(this.props.scrollBarThumbImage),scrollEventThrottle:y?1:this.props.scrollEventThrottle,sendMomentumEvents:!(!this.props.onMomentumScrollBegin&&!this.props.onMomentumScrollEnd),pagingEnabled:!0,DEPRECATED_sendUpdatedChildFrames:T}),E=this.props.decelerationRate;E&&(H.decelerationRate=(0,h.default)(E));var C=this.props.refreshControl;return C&&'android'===l.Platform.OS?v.cloneElement(C,{style:H.style},v.createElement(o,(0,n.default)({},H,{style:V,ref:this._setScrollViewRef}),R)):v.createElement(o,(0,n.default)({},H,{ref:this._setScrollViewRef}),R)}}}),w=l.StyleSheet.create({baseVertical:{flexGrow:1,flexShrink:1,flexDirection:'column',overflow:'scroll'},baseHorizontal:{flexGrow:1,flexShrink:1,flexDirection:'row',overflow:'scroll'},contentContainerHorizontal:{flexDirection:'row'}});'android'===l.Platform.OS&&(t={nativeOnly:{sendMomentumEvents:!0}},o=(0,m.default)('MIOTAndroidScrollView',o,t));var T=g;exports.default=T;","miot-sdk/ui/android/scrollview/MiotAndroidScrollView.js"],["'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"react-native\");var r=function(r){return'normal'===r?e.Platform.select({ios:.998,android:.985}):'fast'===r?e.Platform.select({ios:.99,android:.9}):r};exports.default=r;","miot-sdk/ui/android/scrollview/DecelerationRate.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),s=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),r=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/inherits\")),a=e(require(\"react\")),o=require(\"react-native\"),n=e(require(\"prop-types\")),c=require(\"../utils/accessibility-helper\"),b=require(\"../decorator/ReportDecorator\"),p=(function(e){function n(e){var t;return(0,s.default)(this,n),t=(0,r.default)(this,(0,l.default)(n).call(this,e)),(0,b.referenceReport)('ImageButton'),t.state={buttonPressed:!1},t}return(0,u.default)(n,e),(0,i.default)(n,[{key:\"_buttonPressIn\",value:function(){this.setState({buttonPressed:!0})}},{key:\"_buttonPressOut\",value:function(){this.setState({buttonPressed:!1})}},{key:\"_isButtonPressed\",value:function(){return this.state.buttonPressed}},{key:\"render\",value:function(){var e=this.props.source;return this._isButtonPressed()&&this.props.highlightedSource&&(e=this.props.highlightedSource),a.default.createElement(o.TouchableWithoutFeedback,(0,t.default)({disabled:this.props.disabled,onPress:this.props.onPress,onPressIn:this._buttonPressIn.bind(this),onPressOut:this._buttonPressOut.bind(this)},(0,c.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:c.AccessibilityRoles.imagebutton,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:{disabled:!!this.props.disabled}})),a.default.createElement(o.Image,{style:this.props.style,source:e}))}}]),n})(a.default.Component);exports.default=p,p.initialState={buttonPressed:!1},p.propTypes={source:n.default.any,highlightedSource:n.default.any,onPress:n.default.func,disabled:n.default.bool,style:n.default.any,accessible:c.AccessibilityPropTypes.accessible,accessibilityLabel:c.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:c.AccessibilityPropTypes.accessibilityHint},p.defaultProps={source:null,highlightedSource:null,onPress:null};","miot-sdk/ui/ImageButton.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.getAccessibilityConfig=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.accessible,l=e.accessibilityRole,s=e.accessibilityLabel,c=e.accessibilityHint,o=e.accessibilityState,b=e.accessibilityValue,r={accessible:!1!==t};if(!r.accessible)return i.isAndroid&&(r.focusable=!1),r;r.accessibilityRole=String(l||a.none),void 0!==s&&null!==s?r.accessibilityLabel=String(s):-1!==[a.image,a.imagebutton].indexOf(r.accessibilityRole)&&(r.accessibilityLabel=' ');void 0!==c&&null!==c&&(r.accessibilityHint=String(c));o&&'object'==typeof o&&(r.accessibilityState=o);b&&'object'==typeof b&&(r.accessibilityValue=b);return r},exports.AccessibilityPropTypes=exports.AccessibilityRoles=void 0;var i=require(\"../native/\"),t=e(require(\"prop-types\")),l=['none','button','link','search','image','keyboardkey','text','adjustable','imagebutton','header','summary','alert','checkbox','combobox','menu','menubar','menuitem','progressbar','radio','radiogroup','scrollbar','spinbutton','switch','tab','tablist','timer','toolbar'],a=l.reduce(function(e,i){return e[i]=i,e},{});exports.AccessibilityRoles=a;var s={accessible:t.default.bool,accessibilityRole:t.default.oneOf(l),accessibilityLabel:t.default.oneOfType([t.default.string,t.default.number]),accessibilityHint:t.default.oneOfType([t.default.string,t.default.number]),accessibilityState:t.default.shape({disabled:t.default.bool,selected:t.default.bool,checked:t.default.bool,busy:t.default.bool,expanded:t.default.bool}),accessibilityValue:t.default.shape({min:t.default.number,max:t.default.number,now:t.default.number,text:t.default.oneOfType([t.default.number,t.default.string])})};exports.AccessibilityPropTypes=s;","miot-sdk/utils/accessibility-helper.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),n=r(require(\"@babel/runtime/helpers/extends\")),i=r(require(\"@babel/runtime/helpers/classCallCheck\")),l=r(require(\"@babel/runtime/helpers/createClass\")),u=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=r(require(\"@babel/runtime/helpers/inherits\")),s=r(require(\"prop-types\")),p=e(require(\"react\")),f=require(\"react-native\"),d=require(\"../decorator/ReportDecorator\"),c=(0,f.requireNativeComponent)('RCTInputDialog',null),b=(function(e){function r(e,t){var n;return(0,i.default)(this,r),n=(0,u.default)(this,(0,a.default)(r).call(this,e,t)),(0,d.referenceReport)('InputDialog'),n}return(0,o.default)(r,e),(0,l.default)(r,[{key:\"render\",value:function(){var e=this;return p.default.createElement(c,(0,n.default)({},this.props,{onDismiss:function(r){e.props.onDismiss&&e.props.onDismiss(r.nativeEvent)},onCancel:function(r){e.props.onCancel&&e.props.onCancel(r.nativeEvent)},onConfirm:function(r){e.props.onConfirm&&e.props.onConfirm(r.nativeEvent)}}))}}]),r})(p.Component);exports.default=b,b.propTypes=(0,t.default)({visible:s.default.bool,cancelable:s.default.bool,title:s.default.string,message:s.default.string,placeholder:s.default.string,defaultText:s.default.string,timeout:s.default.number,cancel:s.default.string,confirm:s.default.string,singleLine:s.default.bool,onConfirm:s.default.func,onCancel:s.default.func,onDismiss:s.default.func},f.ViewPropTypes);","miot-sdk/ui/InputDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),i=r(require(\"@babel/runtime/helpers/extends\")),s=r(require(\"@babel/runtime/helpers/classCallCheck\")),l=r(require(\"@babel/runtime/helpers/createClass\")),u=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=r(require(\"@babel/runtime/helpers/inherits\")),o=r(require(\"prop-types\")),p=e(require(\"react\")),d=require(\"react-native\"),b=require(\".././native\"),f=require(\"../decorator/ReportDecorator\"),m=(0,d.requireNativeComponent)('RCTLoadingDialog',null),c=(function(e){function r(e,t){var i;return(0,s.default)(this,r),i=(0,u.default)(this,(0,a.default)(r).call(this,e,t)),(0,f.referenceReport)('LoadingDialog'),i}return(0,n.default)(r,e),(0,l.default)(r,[{key:\"render\",value:function(){var e=this,r=this.props.message?this.props.message:this.props.title;return p.default.createElement(m,(0,i.default)({},this.props,{message:b.isAndroid?r:\"\",title:b.isIOS?r:\"\",onDismiss:function(r){e.props.onDismiss&&e.props.onDismiss(r.nativeEvent)}}))}}]),r})(p.Component);exports.default=c,c.propTypes=(0,t.default)({visible:o.default.bool,cancelable:o.default.bool,title:o.default.string,message:o.default.string,timeout:o.default.number,onDismiss:o.default.func},d.ViewPropTypes);","miot-sdk/ui/LoadingDialog.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),a=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"miot/host/locale\")).default.language;i||console.error(\"Something went wrong initializing the native ReactLocalization module.\\nPlease check your configuration.\\nDid you run 'react-native link'?\");var r=i.replace(/_/g,'-'),l=(function(){function e(a){(0,t.default)(this,e),this.props=a,this.setLanguage(r)}return(0,n.default)(e,[{key:\"_getBestMatchingLanguage\",value:function(e,a){if(a[e])return e;var t=e.lastIndexOf(\"-\");return t>=0?(e=e.substring(0,t),this._getBestMatchingLanguage(e,a)):Object.keys(a)[0]}}]),(0,n.default)(e,[{key:\"setContent\",value:function(e){this.props=e,this.setLanguage(this.language)}},{key:\"setLanguage\",value:function(e){var t=this._getBestMatchingLanguage(e,this.props),n=Object.keys(this.props)[0];if(this.language=t,this.props[t]){var i=(0,a.default)({},this.props[n],this.props[this.language]);for(var r in i)i.hasOwnProperty(r)&&(this[r]=i[r]);n!==this.language&&(i=this.props[n],this._fallbackValues(i,this))}}},{key:\"_fallbackValues\",value:function(e,a){for(var t in e)e.hasOwnProperty(t)&&!a[t]?(a[t]=e[t],console.log(\"Missing localization for language '\"+this.language+\"' and key '\"+t+\"'.\")):\"string\"!=typeof a[t]&&this._fallbackValues(e[t],a[t])}},{key:\"getLanguage\",value:function(){return this.language}},{key:\"getInterfaceLanguage\",value:function(){return r}},{key:\"getLocaleObject\",value:function(){return this.props}},{key:\"getAvailableLanguages\",value:function(){if(!this.availableLanguages)for(var e in this.availableLanguages=[],this.props)this.availableLanguages.push(e);return this.availableLanguages}},{key:\"formatString\",value:function(e){for(var a=e,t=0;t<(arguments.length<=1?0:arguments.length-1);t++)a=this._replaceAll(\"{\"+t+\"}\",t+1<1||arguments.length<=t+1?void 0:arguments[t+1],a);return a}},{key:\"getString\",value:function(e,a){try{return this.props[a][e]}catch(t){console.log(\"No localization found for key \"+e+\" and language \"+a)}return null}},{key:\"_replaceAll\",value:function(e,a,t){return e=e.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g,\"\\\\$1\"),a=(\"\"+a).replace(/([$])/g,'$$$$'),t.replace(new RegExp(e,'g'),a)}}]),e})();module.exports=l;","miot-sdk/ui/LocalizedStrings.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),n=r(require(\"@babel/runtime/helpers/extends\")),i=r(require(\"@babel/runtime/helpers/classCallCheck\")),l=r(require(\"@babel/runtime/helpers/createClass\")),a=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=r(require(\"@babel/runtime/helpers/inherits\")),s=r(require(\"prop-types\")),p=e(require(\"react\")),f=require(\"react-native\"),c=require(\"../decorator/ReportDecorator\"),d=(0,f.requireNativeComponent)('RCTMessageDialog',null),b=(function(e){function r(e,t){var n;return(0,i.default)(this,r),n=(0,a.default)(this,(0,o.default)(r).call(this,e,t)),(0,c.referenceReport)('MessageDialog'),n}return(0,u.default)(r,e),(0,l.default)(r,[{key:\"render\",value:function(){var e=this;return p.default.createElement(d,(0,n.default)({},this.props,{onDismiss:function(r){e.props.onDismiss&&e.props.onDismiss(r.nativeEvent)},onCancel:function(r){e.props.onCancel&&e.props.onCancel(r.nativeEvent)},onConfirm:function(r){e.props.onConfirm&&e.props.onConfirm(r.nativeEvent)}}))}}]),r})(p.Component);exports.default=b,b.defaultProps={title:'',message:''},b.propTypes=(0,t.default)({visible:s.default.bool,cancelable:s.default.bool,title:s.default.string,message:s.default.string,cancel:s.default.string,confirm:s.default.string,onConfirm:s.default.func,onCancel:s.default.func,onDismiss:s.default.func},f.ViewPropTypes);","miot-sdk/ui/MessageDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),n=r(require(\"@babel/runtime/helpers/extends\")),i=r(require(\"@babel/runtime/helpers/classCallCheck\")),o=r(require(\"@babel/runtime/helpers/createClass\")),u=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=r(require(\"@babel/runtime/helpers/inherits\")),s=r(require(\"prop-types\")),p=e(require(\"react\")),f=require(\"react-native\"),c=require(\"../decorator/ReportDecorator\"),d=(0,f.requireNativeComponent)('RCTMultiChoseDialog',null),b=(function(e){function r(e,t){var n;return(0,i.default)(this,r),n=(0,u.default)(this,(0,a.default)(r).call(this,e,t)),(0,c.referenceReport)('MultiChoseDialog'),n}return(0,l.default)(r,e),(0,o.default)(r,[{key:\"render\",value:function(){var e=this;return p.default.createElement(d,(0,n.default)({},this.props,{onDismiss:function(r){e.props.onDismiss&&e.props.onDismiss(r.nativeEvent)},onCancel:function(r){e.props.onCancel&&e.props.onCancel(r.nativeEvent)},onCheck:function(r){e.props.onCheck&&e.props.onCheck(r.nativeEvent)},onConfirm:function(r){e.props.onConfirm&&e.props.onConfirm(r.nativeEvent)}}))}}]),r})(p.Component);exports.default=b,b.propTypes=(0,t.default)({visible:s.default.bool,cancelable:s.default.bool,title:s.default.string,timeout:s.default.number,dataSource:s.default.array,dataKey:s.default.string,checkKey:s.default.string,cancel:s.default.string,confirm:s.default.string,onConfirm:s.default.func,onCancel:s.default.func,onCheck:s.default.func,onDismiss:s.default.func},f.ViewPropTypes);","miot-sdk/ui/MultiChoseDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/objectSpread\")),t=e(require(\"@babel/runtime/helpers/extends\")),u=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),i=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=e(require(\"@babel/runtime/helpers/inherits\")),o=require(\"miot/native\"),s=require(\"miot/ui\"),p=e(require(\"prop-types\")),d=e(require(\"react\")),f=require(\"react-native\"),b=require(\"../decorator/ReportDecorator\"),m=o.isAndroid?(0,f.requireNativeComponent)('MIOTNumberPicker'):null,h=(function(e){function r(e,t){var a;return(0,u.default)(this,r),a=(0,l.default)(this,(0,i.default)(r).call(this,e,t)),(0,b.referenceReport)('MiotNumberPicker'),a}return(0,n.default)(r,e),(0,a.default)(r,[{key:\"render\",value:function(){var e=this;return o.isAndroid?d.default.createElement(m,(0,t.default)({},this.props,this.props.pickerInnerStyle,{lineStyle:this.props.lineStyle||\"default\",onValueChanged:function(r){if(e.props.onNumberChanged){var t=r.nativeEvent||{},u={newValue:parseFloat(\"\"+t.newValue),oldValue:parseFloat(\"\"+t.oldValue)};e.props.onNumberChanged(u)}}})):d.default.createElement(s.StringSpinner,(0,t.default)({type:1},this.props,{defaultValue:\"\"+this.props.defaultValue,onValueChanged:this.props.onNumberChanged}))}}]),r})(d.default.Component);exports.default=h,h.defaultProps={valueFormat:f.Platform.select({ios:'%0.0f'})},h.propTypes=(0,r.default)({visible:p.default.bool,unit:p.default.string,maxValue:p.default.number,minValue:p.default.number,interval:p.default.number,defaultValue:p.default.number,valueFormat:p.default.string,onNumberChanged:p.default.func},f.ViewPropTypes);","miot-sdk/ui/NumberSpinner.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/objectSpread\")),l=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"prop-types\")),s=e(require(\"react\")),p=require(\"react-native\"),c=require(\"../utils/accessibility-helper\"),d=require(\"../decorator/ReportDecorator\"),f=(0,p.requireNativeComponent)('MHStringPicker'),b=(function(e){function n(e,r){var t;return(0,l.default)(this,n),t=(0,a.default)(this,(0,u.default)(n).call(this,e,r)),(0,d.referenceReport)('StringSpinner'),t}return(0,o.default)(n,e),(0,i.default)(n,[{key:\"render\",value:function(){var e=this,l=this.props.pickerInnerStyle;return l&&l.textColor&&(l.textColor=l.textColor+\"text\"),l&&l.selectTextColor&&(l.selectTextColor=l.selectTextColor+\"text\"),l&&l.unitTextColor&&(l.unitTextColor=l.unitTextColor+\"text\"),s.default.createElement(f,(0,r.default)({},this.props,l,(0,c.getAccessibilityConfig)({accessible:!1}),{onValueChanged:function(r){e.props.onValueChanged&&e.props.onValueChanged((0,t.default)({},r.nativeEvent))}}))}}]),n})(s.default.Component);exports.default=b,b.propTypes=(0,t.default)({visible:n.default.bool,dataSource:n.default.array,defaultValue:n.default.oneOfType([n.default.string,n.default.array]),onValueChanged:n.default.func,pickerInnerStyle:n.default.object},p.ViewPropTypes,{accessible:c.AccessibilityPropTypes.accessible});","miot-sdk/ui/StringSpinner.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),a=e(require(\"@babel/runtime/helpers/objectSpread\")),o=e(require(\"@babel/runtime/helpers/classCallCheck\")),t=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/inherits\")),l=e(require(\"prop-types\")),s=e(require(\"react\")),p=require(\"react-native\"),d=require(\"../decorator/ReportDecorator\"),c=require('react-native/Libraries/Image/resolveAssetSource'),f=require('merge'),b=(0,p.requireNativeComponent)('MHSweepingMap'),m=p.NativeModules.MHSweepingMapManager,h=(function(e){function l(e,r){var a;return(0,o.default)(this,l),a=(0,i.default)(this,(0,n.default)(l).call(this,e,r)),(0,d.referenceReport)('RobotMapView'),a}return(0,u.default)(l,e),(0,t.default)(l,[{key:\"render\",value:function(){var e=this.props.mapStyle||{},o=this.props.imageSources,t=[];if(o)for(var i=o.length,n=0;nt.length&&t.unshift({});var i=f.StatusBar.currentHeight||0;i+=this.props.subtitle?65:52;var l=this.props.backgroundColor?this.props.backgroundColor:this.isDarkStyle?'xm#000000':'xm#ffffff';this.shouldKeepColor&&this.props.backgroundColor&&(l=\"xm\"+this.props.backgroundColor);var r={backgroundColor:l,minHeight:i};return c.default.createElement(d.SafeAreaView,{style:[I.container,r,{paddingTop:f.StatusBar.currentHeight}]},this.renderIcons(e),this.renderTitle(),this.renderIcons(t))}}]),t})(c.Component);exports.default=O,O.propTypes={type:u.default.oneOf([T.DARK,T.LIGHT]),style:u.default.object,left:u.default.arrayOf(u.default.shape({key:u.default.string,onPress:u.default.func,disable:u.default.bool,accessible:m.AccessibilityPropTypes.accessible,accessibilityLabel:m.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:m.AccessibilityPropTypes.accessibilityHint})),right:u.default.array,title:u.default.string,subtitle:u.default.string,subtitleStyle:u.default.shape({fontSize:u.default.number,colorType:u.default.oneOf(['normal','warning','exception'])}),titleNumberOfLines:u.default.number,subtitleNumberOfLines:u.default.number,titleStyle:u.default.shape({fontSize:u.default.number}),allowFontScaling:u.default.bool,backgroundColor:u.default.any,onPressTitle:u.default.func,accessible:m.AccessibilityPropTypes.accessible},O.defaultProps={type:T.LIGHT,left:[],right:[],subtitleStyle:{colorType:'normal',fontSize:14},allowFontScaling:!0,titleNumberOfLines:1,subtitleNumberOfLines:1,titleStyle:{fontSize:18}},O.TYPE=T,O.ICON=C;var I=f.StyleSheet.create({container:{width:w,paddingHorizontal:9,flexDirection:'row',alignItems:'center'},titleContainer:{flex:1,alignSelf:'stretch',justifyContent:'center',alignItems:'stretch',marginHorizontal:5},title:{fontSize:18,lineHeight:24,fontFamily:'D-DINCondensed-Bold',textAlignVertical:'center',textAlign:'center'},titleView:{fontSize:16,fontFamily:'D-DINCondensed-Bold',flexDirection:'row',alignItems:'center',justifyContent:'center'},subtitle:{fontSize:14,lineHeight:18,fontFamily:'MI-LANTING--GBK1-Light',textAlignVertical:'center',textAlign:'center'},icon:{position:'absolute',width:40,height:40},dot:{width:40,height:40}});","miot-sdk/ui/NavigationBar.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i={common:{right_arrow:require('./images/right_arrow.png'),close:require('./images/close.png'),mihome:require('./images/mihome.png'),selectIcon:require('./images/select_icon.png')},navigation:{dot:require('./images/navigation/dot.png'),dark:{add:{normal:require('./images/navigation/dark/add_n_dark.png'),press:require('./images/navigation/dark/add_p_dark.png'),disable:require('./images/navigation/dark/add_d_dark.png')},back:{normal:require('./images/navigation/dark/back_n_dark.png'),press:require('./images/navigation/dark/back_p_dark.png'),disable:require('./images/navigation/dark/back_d_dark.png')},close:{normal:require('./images/navigation/dark/close_n_dark.png'),press:require('./images/navigation/dark/close_p_dark.png'),disable:require('./images/navigation/dark/close_d_dark.png')},collect:{normal:require('./images/navigation/dark/collect_n_dark.png'),press:require('./images/navigation/dark/collect_p_dark.png'),disable:require('./images/navigation/dark/collect_d_dark.png')},complete:{normal:require('./images/navigation/dark/complete_n_dark.png'),press:require('./images/navigation/dark/complete_p_dark.png'),disable:require('./images/navigation/dark/complete_d_dark.png')},delete:{normal:require('./images/navigation/dark/delete_n_dark.png'),press:require('./images/navigation/dark/delete_p_dark.png'),disable:require('./images/navigation/dark/delete_d_dark.png')},detail:{normal:require('./images/navigation/dark/detail_n_dark.png'),press:require('./images/navigation/dark/detail_p_dark.png'),disable:require('./images/navigation/dark/detail_d_dark.png')},more:{normal:require('./images/navigation/dark/more_n_dark.png'),press:require('./images/navigation/dark/more_p_dark.png'),disable:require('./images/navigation/dark/more_d_dark.png')},next:{normal:require('./images/navigation/dark/next_n_dark.png'),press:require('./images/navigation/dark/next_p_dark.png'),disable:require('./images/navigation/dark/next_d_dark.png')},profile:{normal:require('./images/navigation/dark/profile_n_dark.png'),press:require('./images/navigation/dark/profile_p_dark.png'),disable:require('./images/navigation/dark/profile_d_dark.png')},qr:{normal:require('./images/navigation/dark/qr_n_dark.png'),press:require('./images/navigation/dark/qr_p_dark.png'),disable:require('./images/navigation/dark/qr_d_dark.png')},search:{normal:require('./images/navigation/dark/search_n_dark.png'),press:require('./images/navigation/dark/search_p_dark.png'),disable:require('./images/navigation/dark/search_d_dark.png')},select_all:{normal:require('./images/navigation/dark/select_all_n_dark.png'),press:require('./images/navigation/dark/select_all_p_dark.png'),disable:require('./images/navigation/dark/select_all_d_dark.png')},selected_all:{normal:require('./images/navigation/dark/selected_all_n_dark.png'),press:require('./images/navigation/dark/selected_all_p_dark.png'),disable:require('./images/navigation/dark/selected_all_d_dark.png')},setting:{normal:require('./images/navigation/dark/setting_n_dark.png'),press:require('./images/navigation/dark/setting_p_dark.png'),disable:require('./images/navigation/dark/setting_d_dark.png')},share:{normal:require('./images/navigation/dark/share_n_dark.png'),press:require('./images/navigation/dark/share_p_dark.png'),disable:require('./images/navigation/dark/share_d_dark.png')},edit:{normal:require('./images/navigation/dark/edit_n_dark.png'),press:require('./images/navigation/dark/edit_p_dark.png'),disable:require('./images/navigation/dark/edit_d_dark.png')}},light:{add:{normal:require('./images/navigation/light/add_n_light.png'),press:require('./images/navigation/light/add_p_light.png'),disable:require('./images/navigation/light/add_d_light.png')},back:{normal:require('./images/navigation/light/back_n_light.png'),press:require('./images/navigation/light/back_p_light.png'),disable:require('./images/navigation/light/back_d_light.png')},close:{normal:require('./images/navigation/light/close_n_light.png'),press:require('./images/navigation/light/close_p_light.png'),disable:require('./images/navigation/light/close_d_light.png')},collect:{normal:require('./images/navigation/light/collect_n_light.png'),press:require('./images/navigation/light/collect_p_light.png'),disable:require('./images/navigation/light/collect_d_light.png')},complete:{normal:require('./images/navigation/light/complete_n_light.png'),press:require('./images/navigation/light/complete_p_light.png'),disable:require('./images/navigation/light/complete_d_light.png')},delete:{normal:require('./images/navigation/light/delete_n_light.png'),press:require('./images/navigation/light/delete_p_light.png'),disable:require('./images/navigation/light/delete_d_light.png')},detail:{normal:require('./images/navigation/light/detail_n_light.png'),press:require('./images/navigation/light/detail_p_light.png'),disable:require('./images/navigation/light/detail_d_light.png')},more:{normal:require('./images/navigation/light/more_n_light.png'),press:require('./images/navigation/light/more_p_light.png'),disable:require('./images/navigation/light/more_d_light.png')},next:{normal:require('./images/navigation/light/next_n_light.png'),press:require('./images/navigation/light/next_p_light.png'),disable:require('./images/navigation/light/next_d_light.png')},profile:{normal:require('./images/navigation/light/profile_n_light.png'),press:require('./images/navigation/light/profile_p_light.png'),disable:require('./images/navigation/light/profile_d_light.png')},qr:{normal:require('./images/navigation/light/qr_n_light.png'),press:require('./images/navigation/light/qr_p_light.png'),disable:require('./images/navigation/light/qr_d_light.png')},search:{normal:require('./images/navigation/light/search_n_light.png'),press:require('./images/navigation/light/search_p_light.png'),disable:require('./images/navigation/light/search_d_light.png')},select_all:{normal:require('./images/navigation/light/select_all_n_light.png'),press:require('./images/navigation/light/select_all_p_light.png'),disable:require('./images/navigation/light/select_all_d_light.png')},selected_all:{normal:require('./images/navigation/light/selected_all_n_light.png'),press:require('./images/navigation/light/selected_all_p_light.png'),disable:require('./images/navigation/light/selected_all_d_light.png')},setting:{normal:require('./images/navigation/light/setting_n_light.png'),press:require('./images/navigation/light/setting_p_light.png'),disable:require('./images/navigation/light/setting_d_light.png')},share:{normal:require('./images/navigation/light/share_n_light.png'),press:require('./images/navigation/light/share_p_light.png'),disable:require('./images/navigation/light/share_d_light.png')},edit:{normal:require('./images/navigation/light/edit_n_light.png'),press:require('./images/navigation/light/edit_p_light.png'),disable:require('./images/navigation/light/edit_d_light.png')}}}};exports.default=i;","miot-sdk/resources/Images.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.dynamicColor=function(e,r){var t=new a(e,r),l=i.default.getColorScheme();return t[l||'light']},exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/classCallCheck\")),t=require(\"react-native\"),i=e(require(\"miot/darkmode\")),a=function e(i,a){(0,r.default)(this,e),'ios'===t.Platform.OS?(this.light=\"xm\"+i,this.dark=\"xm\"+a):(this.light=i,this.dark=a)};var l=a;exports.default=l;","miot-sdk/ui/Style/DynamicColor.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i=t(require(\"@babel/runtime/helpers/extends\")),s=t(require(\"@babel/runtime/helpers/classCallCheck\")),r=t(require(\"@babel/runtime/helpers/createClass\")),l=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=t(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"prop-types\")),c=t(require(\"react\")),p=require(\"react-native\"),u=require(\"../../resources\"),d=t(require(\"../Checkbox/Checkbox\")),b=t(require(\"../Separator\")),h=t(require(\"./AbstractDialog\")),f=require(\"../../utils/accessibility-helper\"),y=require(\"../../decorator/ReportDecorator\"),g={SIMPLE:'simple',UNDERLINE:'underline',CHECKBOX:'checkbox'};Object.freeze(g);var x=(function(e){function t(e,i){var r;return(0,s.default)(this,t),r=(0,l.default)(this,(0,a.default)(t).call(this,e,i)),(0,y.referenceReport)('Dialog/MessageDialog'),r.state={checked:e.extra.checked||!1},r.process(e),r}return(0,o.default)(t,e),(0,r.default)(t,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){this.setState({checked:e.extra.checked||!1}),this.process(e)}},{key:\"process\",value:function(e){var t=this;this.hasPressUnderlineText=!1;var i=e.buttons;if(i instanceof Array){var s=i[i.length-1];if(s&&s.callback){var r=s.callback;s.callback=function(){e.type===g.UNDERLINE?r({hasPressUnderlineText:t.hasPressUnderlineText}):e.type===g.CHECKBOX?r({checked:t.state.checked}):r({})}}}this.buttons=i}},{key:\"renderExtra\",value:function(){var e=this,t=1;switch(this.props.dialogStyle&&this.props.dialogStyle.hasOwnProperty('extraTextNumberOfLines')&&(t=this.props.dialogStyle.extraTextNumberOfLines),this.props.type){case g.SIMPLE:return null;case g.UNDERLINE:return c.default.createElement(p.View,(0,i.default)({style:[m.extraContainer,{paddingTop:13}]},(0,f.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:f.AccessibilityRoles.link,accessibilityLabel:this.props.accessibilityLabel||this.props.extraText,accessibilityHint:this.props.accessibilityHint})),c.default.createElement(p.Text,{numberOfLines:t,allowFontScaling:this.props.dialogStyle.allowFontScaling,style:[m.underlineText,{color:this.props.color},this.props.dialogStyle.extraTextStyle],onPress:function(){return e.onPressUnderlineText()}},this.props.extraText||''));case g.CHECKBOX:return c.default.createElement(p.TouchableOpacity,(0,i.default)({onPress:function(){return e.onPressCheckbox()},activeOpacity:1,style:{paddingTop:13}},(0,f.getAccessibilityConfig)({accessible:!1})),c.default.createElement(p.View,(0,i.default)({style:m.extraContainer},(0,f.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:f.AccessibilityRoles.checkbox,accessibilityLabel:this.props.accessibilityLabel||this.props.extraText,accessibilityHint:this.props.accessibilityHint,accessibilityState:{disabled:!1,checked:this.state.checked}})),c.default.createElement(d.default,{checked:this.state.checked,checkedColor:this.props.color,style:{width:20,height:20,borderRadius:10},onValueChange:function(t){e.setState({checked:t})}}),c.default.createElement(p.Text,{style:[m.checkboxText,this.props.dialogStyle.extraTextStyle],numberOfLines:t,allowFontScaling:this.props.dialogStyle.allowFontScaling},this.props.extraText||'')));default:return null}}},{key:\"render\",value:function(){var e=this;if(!this.props.visible)return null;var t=!!this.props.title,s=t?{paddingTop:0}:{},r=15;return this.props.dialogStyle&&this.props.dialogStyle.hasOwnProperty('messageNumberOfLines')&&(r=this.props.dialogStyle.messageNumberOfLines),c.default.createElement(h.default,(0,i.default)({animationType:this.props.animationType,visible:this.props.visible,title:this.props.title,showTitle:t,buttons:this.buttons,dialogStyle:this.props.dialogStyle,onDismiss:function(){return e._onDismiss()}},(0,f.getAccessibilityConfig)({accessible:this.props.accessible})),c.default.createElement(p.View,{style:[m.container,s]},c.default.createElement(p.Text,(0,i.default)({numberOfLines:r,allowFontScaling:this.props.dialogStyle.allowFontScaling,style:[m.message,this.props.messageStyle]},(0,f.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:f.AccessibilityRoles.text})),this.props.message||''),this.renderExtra()),c.default.createElement(b.default,null))}},{key:\"_onDismiss\",value:function(){this.props.onDismiss&&this.props.onDismiss()}},{key:\"onPressUnderlineText\",value:function(){this.hasPressUnderlineText=!0;var e=this.props.extra.onPress;e&&e()}},{key:\"onPressCheckbox\",value:function(){this.setState({checked:!this.state.checked})}}]),t})(c.default.Component);exports.default=x,x.propTypes={animationType:n.default.string,visible:n.default.bool,type:n.default.oneOf([g.SIMPLE,g.UNDERLINE,g.CHECKBOX]),color:n.default.string,title:n.default.string,message:n.default.string,messageStyle:p.Text.propTypes.style,extraText:n.default.string,extra:n.default.object,buttons:n.default.arrayOf(n.default.object),dialogStyle:n.default.object,onDismiss:n.default.func,accessible:f.AccessibilityPropTypes.accessible,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint},x.defaultProps={type:g.SIMPLE,color:u.Styles.common.MHGreen,message:\"\\u8bf7\\u81ea\\u5b9a\\u4e49\\u63d0\\u793a\\u6587\\u6848\",messageStyle:{},dialogStyle:{allowFontScaling:!0,unlimitedHeightEnable:!1,titleNumberOfLines:1,messageNumberOfLines:15,extraTextNumberOfLines:1,titleStyle:{},extraTextStyle:{}},extra:{}},x.TYPE=g;var m=p.StyleSheet.create({container:{paddingHorizontal:29,paddingVertical:27,backgroundColor:'#fff',borderRadius:u.Styles.dialog.modal.borderRadius},message:{fontSize:15,color:'#666',lineHeight:22,fontFamily:'MI-LANTING--GBK1-Light',fontWeight:'400'},underlineText:{flex:1,textDecorationLine:'underline',fontSize:14},extraContainer:{flexDirection:'row',alignItems:'center'},checkboxText:{flex:1,marginLeft:8,fontSize:14,color:'#999'}});","miot-sdk/ui/Dialog/MessageDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"Images\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(exports,\"strings\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(exports,\"Styles\",{enumerable:!0,get:function(){return k.default}}),exports.default=exports.Language=void 0;var t=r(require(\"../native\")),n=e(require(\"./Images\")),u=e(require(\"./images/logo.png\")),i=e(require(\"./Strings\")),s=e(require(\"./strings/de\")),a=e(require(\"./strings/en\")),g=e(require(\"./strings/es\")),l=e(require(\"./strings/fr\")),f=e(require(\"./strings/id\")),o=e(require(\"./strings/it\")),d=e(require(\"./strings/ja\")),p=e(require(\"./strings/ko\")),h=e(require(\"./strings/pl\")),q=e(require(\"./strings/ru\")),c=e(require(\"./strings/th\")),m=e(require(\"./strings/vi\")),y=e(require(\"./strings/zh\")),z=e(require(\"./strings/zh_bo\")),b=e(require(\"./strings/zh_hk\")),_=e(require(\"./strings/zh_tw\")),v=e(require(\"./strings/tr\")),S=e(require(\"./strings/nl\")),j=e(require(\"./strings/pt\")),k=e(require(\"./Styles\")),x={zh:\"zh\",zh_tw:\"zh_tw\",zh_hk:\"zh_hk\",zh_bo:\"zh_bo\",en:\"en\",es:\"es\",ko:\"ko\",ru:\"ru\",it:\"it\",fr:\"fr\",de:\"de\",id:\"id\",pl:\"pl\",vi:\"vi\",ja:\"ja\",th:\"th\",pt:\"pt\",nl:\"nl\",ar:\"ar\",tr:\"tr\"};exports.Language=x,Object.freeze(x);var w={system:(0,t.createI18n)({zh:y.default,en:a.default,zh_tw:_.default,zh_hk:b.default,zh_bo:z.default,es:g.default,ko:p.default,ru:q.default,it:o.default,fr:l.default,de:s.default,id:f.default,pl:h.default,vi:m.default,ja:d.default,th:c.default,tr:v.default,nl:S.default,pt:j.default},t.default.language),custom:!1,lang:!1},I={logo:u.default,registerStrings:function(e){e&&(w.custom=(0,t.createI18n)(e,t.default.language),w.lang&&(w.language=w.lang))},getLanguage:function(){return w.system.language},setLanguage:function(e){w.lang=e,w.system.language=e,(w.custom||{}).language=e},get systemStrings(){return w.system.strings},getSystemString:function(e){for(var r,t=arguments.length,n=new Array(t>1?t-1:0),u=1;u1?t-1:0),u=1;u1?i-1:0),a=1;a1&&(r={height:1}),e={backgroundColor:'transparent',height:1,justifyContent:'center'},t=o.StyleSheet.flatten([u.Styles.common.separator,this.props.style,r])}else{var l={};this.props.style&&this.props.style.width&&this.props.style.width>1&&(l={width:1}),e={backgroundColor:'transparent',width:1,alignItems:'center'},t=o.StyleSheet.flatten([{width:o.StyleSheet.hairlineWidth,backgroundColor:u.Styles.common.hairlineColor},this.props.style,l])}return o.Platform.select({android:a.default.createElement(o.View,{style:e},a.default.createElement(o.View,{style:t})),ios:a.default.createElement(o.View,{style:t})})}}]),n})(a.default.PureComponent);exports.default=h,h.propTypes={type:n.default.string,style:n.default.any},h.defaultProps={type:p};","miot-sdk/ui/Separator.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),l=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),s=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=e(require(\"@babel/runtime/helpers/inherits\")),a=require(\"miot\"),r=e(require(\"prop-types\")),u=e(require(\"react\")),c=require(\"react-native\"),d=require(\"../../resources\"),b=e(require(\"../Separator\")),h=require(\"../../utils/accessibility-helper\"),y=require(\"../../decorator/ReportDecorator\"),f=c.Dimensions.get('window'),p=f.width,g=f.height,m=(function(e){function r(e,t){var i;return(0,l.default)(this,r),i=(0,s.default)(this,(0,n.default)(r).call(this,e,t)),(0,y.referenceReport)('Dialog/AbstractDialog'),i.state={visible:i.props.visible},i}return(0,o.default)(r,e),(0,i.default)(r,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){e.visible!==this.state.visible&&this.setState({visible:e.visible})}},{key:\"_checkUnlimitedHeightEnable\",value:function(){var e=!1;return this.props.dialogStyle&&this.props.dialogStyle.hasOwnProperty('unlimitedHeightEnable')&&(e=this.props.dialogStyle.unlimitedHeightEnable),e}},{key:\"renderTitle\",value:function(){if(!this.props.showTitle)return null;var e=d.Styles.dialog.title,l=e.titleHeightFat,i=e.titleHeightThin,s={height:this.props.showSubtitle?l:i},n=this.props.showSubtitle?{marginBottom:6}:{},o=1;'zh'!==a.Host.locale.language&&(o=3,s.maxHeight=86);var r={};'android'===c.Platform.OS&&(r.fontFamily='');var b=o,y=1;return this.props.dialogStyle&&(this.props.dialogStyle.hasOwnProperty('titleNumberOfLines')&&this.props.dialogStyle.titleNumberOfLines>1&&(b=this.props.dialogStyle.titleNumberOfLines,s=null),this.props.dialogStyle.hasOwnProperty('subTitleNumberOfLines')&&this.props.dialogStyle.subTitleNumberOfLines>1&&(y=this.props.dialogStyle.subTitleNumberOfLines,s=null),this._checkUnlimitedHeightEnable()&&(s=null)),u.default.createElement(c.View,(0,t.default)({style:[S.titleContainer,s]},(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.text})),u.default.createElement(c.Text,{numberOfLines:b,allowFontScaling:this.props.dialogStyle.allowFontScaling,style:[{width:.75*d.Styles.dialog.modal.width,textAlign:'center',fontSize:15,fontWeight:'bold',color:'#000',marginTop:s?0:10},n,r,this.props.dialogStyle.titleStyle]},this.props.title||''),this.props.showSubtitle?u.default.createElement(c.Text,{numberOfLines:y,allowFontScaling:this.props.dialogStyle.allowFontScaling,style:[d.Styles.dialog.subtitle,this.props.dialogStyle.subTitleStyle]},this.props.subtitle):null)}},{key:\"renderContent\",value:function(){return this.props.children?this.props.children:u.default.createElement(c.View,(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.text}),u.default.createElement(b.default,null),u.default.createElement(c.View,{style:S.content},u.default.createElement(c.Text,null,\"\\u2b06\\ufe0f\\u53ef\\u81ea\\u5b9a\\u4e49\\u6807\\u9898\\u548c\\u526f\\u6807\\u9898\\u2b06\\ufe0f\"),u.default.createElement(c.Text,null,\"\\u53ef\\u81ea\\u5b9a\\u4e49\\u5185\\u5bb9\"),u.default.createElement(c.Text,null,\"\\u2b07\\ufe0f\\u53ef\\u81ea\\u5b9a\\u4e49\\u6309\\u94ae\\u6587\\u5b57\\u548c\\u6837\\u5f0f\\u2b07\\ufe0f\")),u.default.createElement(b.default,null))}},{key:\"renderButtonGroup\",value:function(){if(!this.props.showButton)return null;var e=this.props.buttons;return e instanceof Array?1===e.length?this.renderOneButton(e):2===e.length?this.renderTwoButtons(e):(__DEV__&&console.warn&&console.warn('\\u53ea\\u5141\\u8bb8\\u8bbe\\u7f6e1\\uff5e2\\u4e2a\\u6309\\u94ae'),null):null}},{key:\"renderOneButton\",value:function(e){var l=this,i=e[0];if('object'!=typeof i)return null;var s=i.callback;void 0!==s&&s instanceof Function||(s=function(){return l.dismiss()});var n,o=d.Styles.dialog.buttons.height;i.hasOwnProperty('numberOfLines')&&(n=i.numberOfLines)>1&&(o=null);var a=this.props.dialogStyle.allowFontScaling;return i.hasOwnProperty('allowFontScaling')&&(a=i.allowFontScaling),this._checkUnlimitedHeightEnable()&&(o=null),u.default.createElement(c.View,{style:[d.Styles.dialog.buttons,{height:o}]},u.default.createElement(c.TouchableHighlight,(0,t.default)({style:[d.Styles.dialog.button,{borderBottomLeftRadius:d.Styles.dialog.modal.borderRadius}],onPress:s,underlayColor:\"rgba(0,0,0,.05)\"},(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.button,accessibilityHint:i.accessibilityHint})),u.default.createElement(c.Text,{style:[d.Styles.dialog.buttonText,i.style],numberOfLines:n,allowFontScaling:a},i.text||d.strings.ok)))}},{key:\"renderTwoButtons\",value:function(e){var l=this,i=e[0],s=e[1];if('object'!=typeof i||'object'!=typeof s)return null;var n=i.callback,o=s.callback;void 0!==n&&n instanceof Function||(n=function(){return l.dismiss()}),void 0!==o&&o instanceof Function||(o=function(){return l.dismiss()});var a,r,y=d.Styles.dialog.buttons.height;i.hasOwnProperty('numberOfLines')&&(a=i.numberOfLines)>1&&(y=null),s.hasOwnProperty('numberOfLines')&&(r=s.numberOfLines)>1&&(y=null),this._checkUnlimitedHeightEnable()&&(y=null);var f=this.props.dialogStyle.allowFontScaling,p=f;return i.hasOwnProperty('allowFontScaling')&&(f=i.allowFontScaling),s.hasOwnProperty('allowFontScaling')&&(p=i.allowFontScaling),u.default.createElement(c.View,{style:[d.Styles.dialog.buttons,{height:y}]},u.default.createElement(c.TouchableHighlight,(0,t.default)({style:[d.Styles.dialog.button,{borderBottomLeftRadius:d.Styles.dialog.modal.borderRadius}],onPress:n,underlayColor:\"rgba(0,0,0,.05)\"},(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.button,accessibilityHint:i.accessibilityHint})),u.default.createElement(c.Text,{style:[d.Styles.dialog.buttonText,i.style],numberOfLines:a,allowFontScaling:f},i.text||d.strings.cancel)),c.Platform.select({android:u.default.createElement(b.default,{type:\"column\",style:{flex:1}}),ios:u.default.createElement(b.default,{type:\"column\",style:{height:'100%'}})}),u.default.createElement(c.TouchableHighlight,(0,t.default)({style:[d.Styles.dialog.button,{borderBottomRightRadius:d.Styles.dialog.modal.borderRadius}],onPress:o,underlayColor:\"rgba(0,0,0,.05)\"},(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.button,accessibilityHint:s.accessibilityHint})),u.default.createElement(c.Text,{style:[d.Styles.dialog.buttonText,{color:d.Styles.common.MHGreen},s.style],numberOfLines:r,allowFontScaling:p},s.text||d.strings.ok)))}},{key:\"render\",value:function(){var e=this;return u.default.createElement(c.Modal,{animationType:this.props.animationType,transparent:!0,visible:this.state.visible,onRequestClose:function(){return e.dismiss()}},u.default.createElement(c.View,{style:d.Styles.dialog.background},u.default.createElement(c.TouchableWithoutFeedback,{onPress:function(){return e.dismiss()}},u.default.createElement(c.View,{style:{width:p,height:g}})),u.default.createElement(c.View,{style:[d.Styles.dialog.modal,this.props.style]},this.renderTitle(),this.renderContent(),this.renderButtonGroup())))}},{key:\"dismiss\",value:function(){this.props.canDismiss&&(this.setState({visible:!1}),this.props.onDismiss&&this.props.onDismiss())}}]),r})(u.default.Component);exports.default=m,m.propTypes={animationType:r.default.string,visible:r.default.bool,style:r.default.oneOfType([r.default.object,r.default.number]),title:r.default.string,subtitle:r.default.string,showTitle:r.default.bool,showSubtitle:r.default.bool,canDismiss:r.default.bool,buttons:r.default.arrayOf(r.default.shape({text:r.default.string,style:r.default.any,callback:r.default.func,accessibilityHint:h.AccessibilityPropTypes.accessibilityHint})),showButton:r.default.bool,dialogStyle:r.default.object,onDismiss:r.default.func,accessible:h.AccessibilityPropTypes.accessible},m.defaultProps={animationType:'fade',visible:!1,showTitle:!0,showSubtitle:!1,dialogStyle:{unlimitedHeightEnable:!1,allowFontScaling:!0,titleNumberOfLines:1,subTitleNumberOfLines:1,titleStyle:{},subTitleStyle:{}},canDismiss:!0,buttons:[{text:d.strings.cancel},{text:d.strings.ok,style:{color:d.Styles.common.MHGreen}}],showButton:!0};var S=c.StyleSheet.create({titleContainer:{justifyContent:'center',alignItems:'center'},content:{width:d.Styles.dialog.modal.width,height:150,justifyContent:'center',alignItems:'center'}});","miot-sdk/ui/Dialog/AbstractDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/createClass\")),r=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=e(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"prop-types\")),n=e(require(\"react\")),u=require(\"react-native\"),c=require(\"react-native-indicators\"),p=require(\"../../resources\"),h=e(require(\"./AbstractDialog\")),b=require(\"../../utils/accessibility-helper\"),d=require(\"../../decorator/ReportDecorator\"),m=(function(e){function o(e,t){var s;return(0,i.default)(this,o),s=(0,r.default)(this,(0,l.default)(o).call(this,e,t)),(0,d.referenceReport)('Dialog/LoadingDialog'),s.state={visible:s.props.visible},s}return(0,a.default)(o,e),(0,s.default)(o,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){e.visible!==this.state.visible&&this.setState({visible:e.visible})}},{key:\"render\",value:function(){var e=this,i=this.props.timeout;i&&\"number\"==typeof parseInt(i)&&(this.state.visible?this.timer||(this.timer=setTimeout(function(){e.setState({visible:!1}),e.props.onDismiss&&e.props.onDismiss()},parseInt(i))):(this.timer=null,clearTimeout(this.timer)));var s={height:f.container.height,minHeight:f.container.height};return this.props.dialogStyle&&this.props.dialogStyle.hasOwnProperty('textNumberOfLines')&&this.props.dialogStyle.textNumberOfLines>1&&(s.height=null),this.props.dialogStyle&&this.props.dialogStyle.unlimitedHeightEnable&&(s.height=null),n.default.createElement(h.default,{animationType:this.props.animationType,visible:this.state.visible,showTitle:!1,canDismiss:!1,showButton:!1,accessible:this.props.accessible},n.default.createElement(u.View,(0,t.default)({style:[f.container,s]},(0,b.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:b.AccessibilityRoles.text})),n.default.createElement(c.BallIndicator,{style:f.indicator,color:\"rgba(0,0,0,0.6)\",size:20}),n.default.createElement(u.Text,{style:[f.message,this.props.dialogStyle.messageStyle],allowFontScaling:this.props.dialogStyle.allowFontScaling,numberOfLines:this.props.dialogStyle.textNumberOfLines},this.props.message||'')))}},{key:\"componentWillUnmount\",value:function(){this.timer=null,clearTimeout(this.timer)}}]),o})(n.default.Component);exports.default=m,m.propTypes={animationType:o.default.string,visible:o.default.bool,message:o.default.string,timeout:o.default.number,dialogStyle:o.default.object,onDismiss:o.default.func,accessible:b.AccessibilityPropTypes.accessible},m.defaultProps={dialogStyle:{allowFontScaling:!0,unlimitedHeightEnable:!1,messageStyle:{}}};var f=u.StyleSheet.create({container:{height:74,flexDirection:'row',alignItems:'center',backgroundColor:'#fff',paddingHorizontal:27,borderRadius:p.Styles.dialog.modal.borderRadius},indicator:{position:'absolute',left:27,height:20},message:{marginLeft:35,flex:1,fontSize:15,color:'rgba(0,0,0,0.8)'}});","miot-sdk/ui/Dialog/LoadingDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),n=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.getSupportedDevices=C,exports.scan=V,exports.getLinkage=j,exports.getSupportedDevicesWithLinkage=B,exports.addLinkage=J,exports.removeLinkage=U,exports.setEnable=G,exports.default=void 0;var t=n(require(\"@babel/runtime/helpers/slicedToArray\")),i=n(require(\"@babel/runtime/helpers/objectSpread\")),r=n(require(\"@babel/runtime/helpers/toArray\")),o=n(require(\"@babel/runtime/helpers/toConsumableArray\")),a=require(\"react-native\"),c=e(require(\"./BasicDevice\")),u=n(require(\"../Service\")),d=n(require(\"../Host\")),l=n(require(\"./../native\")),f=require(\"../utils/fns\"),m=c.default.getDeviceWifi(),s=c.default.deviceID,v='combo_ble_local_automation',h='/v2/device/blt_get_beaconkey',p='miIO.ble_scan',g='event.ble_scan_result',b='miIO.ble_get_linkage',_='miIO.ble_add_linkage',k='miIO.ble_del_linkage',y='miIO.ble_enable_linkage',I='F'.repeat(32),P={code:-4,message:'empty'};function S(e,n,t){console.log(\"interconnection \"+n+\" \"+(0===t?'success':'fail'),e)}var D=null;function E(e,n){for(var t=String(e).split(/[\\.\\_]/),i=String(n).split(/[\\.\\_]/),r=!0,o=0,a=i.length;o0&&void 0!==arguments[0]?arguments[0]:{},u=a.categories,l=a.mainDevices,f=(l&&l[c.default.model]?l[c.default.model]:[]).reduce(function(e,n){return[].concat((0,o.default)(e),(0,o.default)(u&&u[n]&&u[n].devices?u[n].devices.map(function(e){return{model:e.model,pdid:e.pdid,minFwVersion:e.minFwVersion,rule:u[n].objectIds,category:n}}):[]))},[]);Promise.all(f.map(function(e){var n=e.model;return d.default.ui.getDevicesWithModel(n)})).then(function(a){var u=a.reduce(function(e,n){return[].concat((0,o.default)(e),(0,o.default)(n?n.map(function(e){var n=f.find(function(n){return n.model===e.model}),t=n.pdid,i=n.rule,r=n.category;return{model:e.model,mac:e.mac,did:e.did,pdid:t,rule:i,category:r,device:e}}):[]))},[]).filter(function(e){return e&&e.did!==s});if(!u.length)return L=[],void t([]);Promise.all([s].concat((0,o.default)(u.map(function(e){return e.did}))).map(function(e){return c.default.getRoomInfoForCurrentHome(e)})).then(function(i){var a,d=(0,r.default)(i),l=d[0],f=d.slice(1);(a=console).log.apply(a,['roomInfo',l].concat((0,o.default)(f))),c.default.homeId=l&&l.data?l.data.homeId:s,c.default.roomId=l&&l.data?l.data.roomId:s,c.default.roomName=l&&l.data?l.data.roomName:s,f.forEach(function(e,n){u[n]&&e&&(u[n].homeId=e&&e.data?e.data.homeId:u[n].did,u[n].roomId=e&&e.data?e.data.roomId:u[n].did,u[n].roomName=e&&e.data?e.data.roomName:u[n].did)}),L=u,t(w(e,n))}).catch(i)}).catch(function(e){i(e)})}).catch(i)})}function C(e,n){return q(e,n)}function M(e){return new Promise(function(n,t){A(e).then(function(i){var r=i.beacon_key,o=i.pdid;r?n(r):l.default.MIOTRPC.standardCall(h,{pdid:o,did:e},function(e,r){if(e)return i.beacon_key=r.beaconkey||I,void n(i.beacon_key);t(r)})}).catch(t)})}function x(e){return new Promise(function(n,t){q().then(function(i){var r=i.find(function(n){return n.mac===e});if(r)return S(r,'getDeviceByMac',0),void n(r);t()}).catch(t)})}function A(e){return new Promise(function(n,t){q().then(function(i){var r=i.find(function(n){return n.did===e});r?n(r):t()}).catch(t)})}function N(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return new Promise(function(t,i){if(!e||!e.length)return S(P,'startScan',1),void i(P);m.callMethod(p,{list:e,timeout:n}).then(function(e){S(e,'startScan',0),t(e)}).catch(function(e){S(e,'startScan',1),i(e)})})}var O=null,R=!1,F=0,W='interconnection-BLESCANRESULTEVENT';function T(e,n){var t=a.DeviceEventEmitter.addListener(W,e);return F+=1,O?t:(m.subscribeMessages(g).then(function(e){S(null,'listenScan',0),O=e}).catch(function(t){S(t,'listenScan',1),a.DeviceEventEmitter.removeListener(W,e),F-=1,n(t)}),R?t:(c.DeviceEvent.deviceReceivedMessages.addListener(function(e,n){if(O){var t=n.get(g);t&&(t=JSON.parse(t[0]),a.DeviceEventEmitter.emit(W,t))}}),R=!0,t))}function V(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.list,t=void 0===n?[]:n,r=e.timeout,o=e.category,a=e.sameRoom,c=arguments.length>1?arguments[1]:void 0,u=arguments.length>2?arguments[2]:void 0,d=!1;function l(e){d||(d=!0,u(e))}var m=T(function(e){var n=e.list;q(o,a).then(function(e){if(t.length){var r=t.map(function(t){var r=t.mac,o=t.pdid,a=n.find(function(e){return e.mac===r})||{mac:r,pdid:o};return(0,i.default)({},e.find(function(e){return e.mac===a.mac})||{},a)});c(r)}else c(n)}).catch(l)},u);return t&&t.length?N(t,r).then(f.log).catch(l):q(o,a).then(function(e){N((e||[]).map(function(e){return{mac:e.mac,pdid:e.pdid}}),r).then(f.log).catch(l)}).catch(l),{remove:function(){m&&m.remove(),0===(F-=1)&&(O&&O.remove(),O=null)}}}function j(e){return new Promise(function(n,t){(e?x(e):Promise.resolve()).then(function(r){m.callMethod(b,e?{op:1,mac:e,pdid:r.pdid}:{op:0}).then(function(e){S(e,'getLinkage',0),e&&e.result&&e.result.device?n(e.result.device.map(function(e){return(0,i.default)({},e,{enabled:!!e.enabled})})):t(e)}).catch(function(e){S(e,'getLinkage',1),t(e)})}).catch(t)})}function B(e,n){return new Promise(function(r,o){Promise.all([C(e,n),j()]).then(function(e){var n=(0,t.default)(e,2),o=n[0],a=n[1],c=o.map(function(e){var n=a.find(function(n){return n.mac===e.mac});return(0,i.default)({},e,n||{},{linked:!!n,enabled:!(!n||!n.enabled)})});r(c)}).catch(o)})}function H(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.mac,t=e.pdid,i=e.beacon_key,r=void 0===i?I:i,o=e.intvl,a=void 0===o?10:o,c=e.fun_type,u=void 0===c?1:c,d=e.rule,l=void 0===d?[]:d;return new Promise(function(e,i){m.callMethod(_,{mac:n,pdid:t,beacon_key:r,intvl:a||10,fun_type:u,rule:l}).then(function(n){S(n,'add',0),e(n)}).catch(function(e){S(e,'add',1),i(e)})})}function J(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return new Promise(function(t,i){x(e).then(function(r){var o=r.did,a=r.pdid,c=r.beacon_key,u=r.rule;c?H({mac:e,pdid:a,beacon_key:c,intvl:n,fun_type:1,rule:u}).then(t).catch(i):M(o).then(function(r){H({mac:e,pdid:a,beacon_key:r,intvl:n,fun_type:1,rule:u}).then(t).catch(i)}).catch(i)}).catch(i)})}function z(e){return new Promise(function(n,t){(e?x(e):Promise.resolve()).then(function(i){m.callMethod(k,e?{op:1,mac:e,pdid:i.pdid}:{op:0}).then(function(e){S(e,'remove',0),n(e)}).catch(function(e){S(e,'remove',1),t(e)})}).catch(t)})}function U(e){return z(e)}function G(e,n){return new Promise(function(t,i){(e?x(e):Promise.resolve()).then(function(r){m.callMethod(y,e?{op:1,enabled:n?1:0,mac:e,pdid:r.pdid}:{op:0,enabled:n?1:0}).then(function(e){S(e,'setEnable',0),t(e)}).catch(function(e){S(e,'setEnable',1),i(e)})}).catch(i)})}var K={getSupportedDevices:C,scan:V,getLinkage:j,getSupportedDevicesWithLinkage:B,addLinkage:J,removeLinkage:U,setEnable:G};exports.default=K;","miot-sdk/device/interconnection.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.NOOP=function(){},exports.log=function(){var e;(e=console).log.apply(e,arguments)},exports.isSameArrayElements=function(e,r){if(e===r)return!0;if(!e&&r||e&&!r)return!1;if(e&&r&&e.length!==r.length)return!1;for(var n=function(n,t){var o=e[n];if(void 0===r.find(function(e){return e===o}))return{v:!1}},t=0,o=e.length;t1&&void 0!==arguments[1]?arguments[1]:0,n=(0,t.default)(e),o=n[0],i=n.slice(1);if(r)return l(e,r);switch(o){case u.oneByOne:return f(i);case u.compare:return c(i);case u.normal:default:return l(e,r)}}function l(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return function(){for(var t=arguments.length,u=new Array(t),i=0;i1&&void 0!==arguments[1]?arguments[1]:0;if(!e)return function(){return''};switch(o(e)){case'String':return i(e);case'Array':return a(e,r);case'Function':return e;default:return function(){return''}}}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;if('Array'!==o(n))return n;for(var u=(0,t.default)(n),i=u[0],a=u.slice(1),l=i,f=0,c=a.length;f0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;if('Array'!==o(n))return n;for(var u=(0,t.default)(n),i=u[0],a=u.slice(1),l=i,f=0,c=a.length;f=g||'gt'===p&&s>g))})&&0!==s.length){l=p;break}}return l}","miot-sdk/utils/fns.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.adjustSize=function(e){return e/1080*d.width},exports.window=void 0;var t=require(\"react-native\"),r=e(require(\"../Host\")),i=require(\"./fns\"),n=t.Dimensions.get('window'),o=n.width,u=n.height;r.default.isAndroid&&r.default.getPhoneScreenInfo().then(function(e){o=e.viewWidth,u=e.viewHeight}).catch(i.NOOP);var d={get width(){return o},get height(){return u}};exports.window=d;","miot-sdk/utils/sizes.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.FontDefault=exports.FontDsDigital=exports.FontLantingLight=exports.FontKmedium=void 0;var t=require(\"react-native\");exports.FontKmedium=\"KMedium\";exports.FontLantingLight='MI-LANTING--GBK1-Light';exports.FontDsDigital='DS-Digital';var e='ios'===t.Platform.OS?null:\"KMedium\";exports.FontDefault=e;","miot-sdk/utils/fonts.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/extends\")),i=t(require(\"@babel/runtime/helpers/classCallCheck\")),l=t(require(\"@babel/runtime/helpers/createClass\")),s=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=t(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"react\")),o=require(\"react-native\"),c=t(require(\"prop-types\")),b=require(\"../utils/sizes\"),p=require(\"../utils/fonts\"),f=require(\"../utils/colors\"),d=require(\"../utils/accessibility-helper\"),y=(function(e){function t(){return(0,i.default)(this,t),(0,s.default)(this,(0,u.default)(t).apply(this,arguments))}return(0,a.default)(t,e),(0,l.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.title,i=e.number,l=e.themeColor;return void 0===t||void 0===i?null:n.default.createElement(o.View,(0,r.default)({style:m.container},(0,d.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:d.AccessibilityRoles.text,accessibilityLabel:this.props.accessibilityLabel})),n.default.createElement(o.Text,{style:m.title},t),n.default.createElement(o.Text,{style:[m.number,l?{color:l}:null]},i))}}]),t})(n.PureComponent);exports.default=y,y.propTypes={title:c.default.string,number:c.default.oneOfType([c.default.number,c.default.string]),themeColor:c.default.any,accessible:d.AccessibilityPropTypes.accessible,accessibilityLabel:d.AccessibilityPropTypes.accessibilityLabel};var m=o.StyleSheet.create({container:{alignItems:'center'},title:{fontSize:(0,b.adjustSize)(42),fontFamily:p.FontDefault,color:'rgba(0, 0, 0, 0.9)'},number:{fontSize:(0,b.adjustSize)(196),fontFamily:p.FontKmedium,color:f.ColorGreen}});","miot-sdk/ui/BigNumber.js"],["var r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.fixHex=t,exports.transformHexToDigtal=function(r){return r=t(r).slice(1),parseInt(r,16)},exports.transformDigtalToHex=function(r){return(\"#\"+(\"000000\"+r.toString(16)).slice(-6)).toUpperCase()},exports.colorGetterforRange=function(r){var e=(function(r){var e=[];for(var n in r)if(r.hasOwnProperty(n)){var o=parseFloat(n),a=t(r[n]);'number'==typeof o&&o>=0&&o<=1&&e.push([o,a])}e.sort(function(r,e){return r[0]>e[0]?1:-1}),e.length<1&&(e=[[0,'#000000'],[1,'#ffffff']]);e[0][0]>0&&(e[0]=[0,e[0][1]]);e[e.length-1][0]<1&&(e[e.length-1]=[1,e[e.length-1][1]]);return e})(r);function o(r){r=Math.max(0,Math.min(1,r/100));for(var t=null,o=null,a=1,s=e.length;a=r){t=l,o=i;break}}if(t[0]>=o[0])return t[1];var p=(r-t[0])/(o[0]-t[0]),u=n(t[1]),f=u.r,c=u.g,g=u.b,x=n(o[1]),b=x.r,h=x.g,v=x.b,C=parseInt(p*b+(1-p)*f,10),m=parseInt(p*h+(1-p)*c,10),F=parseInt(p*v+(1-p)*g,10);return\"#\"+(\"00\"+C.toString(16)).slice(-2)+(\"00\"+m.toString(16)).slice(-2)+(\"00\"+F.toString(16)).slice(-2)}return{getColorFromPercent:o,getPercentFromColor:function(r){for(var e=n(r),t=e.r,a=e.g,s=e.b,i=0;i<1e3;i++){var l=o(i/10),p=n(l),u=p.r,f=p.g,c=p.b;if(Math.abs(t-u)<=5&&Math.abs(a-f)<=5&&Math.abs(s-c)<=5)return i/10}return 50}}},exports.ColorRed=exports.ColorOrange=exports.ColorGreen=void 0;var e=r(require(\"@babel/runtime/helpers/slicedToArray\"));exports.ColorGreen='#00B7A2';exports.ColorOrange='#FFA943';function t(r){return(r=r.replace(/[^0-9a-fA-F]/,'').split('')).length<6&&(r=[r[0]||0,r[0]||0,r[1]||0,r[1]||0,r[2]||0,r[2]||0]),(r=\"#\"+r.slice(0,6).join('')).toUpperCase()}function n(r){var n=(r=t(r)).slice(1).split(''),o=(0,e.default)(n,6),a=o[0],s=o[1],i=o[2],l=o[3],p=o[4],u=o[5];return{r:parseInt(a+s,16),g:parseInt(i+l,16),b:parseInt(p+u,16)}}exports.ColorRed='#FC675F';","miot-sdk/utils/colors.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/classCallCheck\")),l=t(require(\"@babel/runtime/helpers/createClass\")),n=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),i=t(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"react\")),u=require(\"react-native\"),s=t(require(\"prop-types\")),d=t(require(\"./Switch\")),c=t(require(\"./ContainerWithShadowAndSeparator\")),f=require(\"../utils/sizes\"),h=require(\"../utils/fonts\"),g=require(\"../utils/colors\"),m=require(\"../decorator/ReportDecorator\"),y=require('../resources/images/right_arrow.png'),p=(function(e){function t(e,l){var i;return(0,r.default)(this,t),(i=(0,n.default)(this,(0,a.default)(t).call(this,e,l))).onPress=function(){var e=i.props,t=e.disabled,r=e.onPress;'function'!=typeof r||t||r()},(0,m.referenceReport)('CardButton'),i}return(0,i.default)(t,e),(0,l.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.containerStyle,r=e.themeColor,l=e.themeBackgroundColor,n=e.underlayColor,a=e.hasShadow,i=e.iconContainerStyle,s=e.iconStyle,f=e.icon,h=e.iconText,m=e.title,p=e.subtitle,b=e.onSwitch,C=e.switchOn,z=e.disabled,w=e.onPress,q=e.rightText,j=e.rightArrow,x=z?.3:1;if(!(f||h||m||p||b))return null;var T=a?c.default:o.Fragment;return o.default.createElement(T,null,o.default.createElement(u.TouchableHighlight,{style:[S.container,t,l?{backgroundColor:l}:null],underlayColor:z||!w?l||'#fff':n,onPress:this.onPress},o.default.createElement(o.Fragment,null,f||h?o.default.createElement(u.View,{style:[S.iconContainer,i,{backgroundColor:r||g.ColorGreen,opacity:x}]},f?o.default.createElement(u.Image,{style:[S.icon,s],source:f}):o.default.createElement(u.Text,{style:S.iconText},h)):null,o.default.createElement(u.View,{style:[S.titleContainer,{opacity:x}]},m?o.default.createElement(u.Text,{style:S.title},m):null,p?o.default.createElement(u.Text,{style:S.subtitle},p):null),b?o.default.createElement(u.View,{style:S.switchContainer},o.default.createElement(d.default,{value:C,onValueChange:b,onTintColor:r||g.ColorGreen,disabled:z})):q||j?o.default.createElement(o.Fragment,null,q?o.default.createElement(u.Text,{style:S.rightText},q):null,j?o.default.createElement(u.Image,{style:S.rightArrow,source:y}):null):null)))}}]),t})(o.PureComponent);exports.default=p,p.propTypes={containerStyle:s.default.any,disabled:s.default.bool,themeColor:s.default.string,themeBackgroundColor:s.default.string,underlayColor:s.default.string,hasShadow:s.default.bool,iconContainerStyle:s.default.any,iconStyle:s.default.any,icon:s.default.any,iconText:s.default.string,title:s.default.string,subtitle:s.default.string,onPress:s.default.func,onSwitch:s.default.func,switchOn:s.default.bool,rightText:s.default.string,rightArrow:s.default.bool},p.defaultProps={underlayColor:'rgba(0, 0, 0, 0.05)',hasShadow:!0};var S=u.StyleSheet.create({container:{height:(0,f.adjustSize)(240),paddingHorizontal:(0,f.adjustSize)(60),flexDirection:'row',alignItems:'center',backgroundColor:'#fff'},iconContainer:{marginRight:(0,f.adjustSize)(39),width:(0,f.adjustSize)(120),height:(0,f.adjustSize)(120),borderRadius:(0,f.adjustSize)(60),justifyContent:'center',alignItems:'center'},icon:{width:(0,f.adjustSize)(72),height:(0,f.adjustSize)(72),resizeMode:'contain'},iconText:{fontFamily:h.FontKmedium,fontSize:(0,f.adjustSize)(60),color:'#fff'},titleContainer:{flex:1},title:{fontFamily:h.FontDefault,fontSize:(0,f.adjustSize)(45),color:'#000'},subtitle:{fontFamily:h.FontDefault,fontSize:(0,f.adjustSize)(36),lineHeight:(0,f.adjustSize)(42),color:'#999'},switchContainer:{marginLeft:(0,f.adjustSize)(30)},rightText:{fontFamily:h.FontDefault,fontSize:(0,f.adjustSize)(36),color:'#999',marginLeft:(0,f.adjustSize)(30)}});","miot-sdk/ui/CardButton.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),r=e(require(\"@babel/runtime/helpers/objectSpread\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),s=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"prop-types\")),u=e(require(\"react\")),c=require(\"react-native\"),d=require(\"../resources\"),h=require(\"miot/sdkContext\"),p=require(\"../utils/accessibility-helper\"),f=require(\"../decorator/ReportDecorator\"),b=44,y=24,m=c.StyleSheet.hairlineWidth,v=6.5,C=2.5,g=(function(e){function n(e){var t;(0,i.default)(this,n),(t=(0,s.default)(this,(0,l.default)(n).call(this,e))).offsetX=new c.Animated.Value(0),(0,f.referenceReport)('Switch'),t.state={value:t.props.value};var r=t.props.style,a=r.width,o=r.height,u=a||b,d=o||y,h=d/v(0,p.adjustSize)(3.1)})},a}return(0,o.default)(t,e),(0,a.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.hasSeparator,r=e.separatorStyle,a=e.children,i=this.state.shown;return a?l.default.createElement(u.View,{onLayout:this.onLayout},t&&i?l.default.createElement(d.default,{style:[{height:Math.min((0,p.adjustSize)(3),1),opacity:.35,marginHorizontal:(0,p.adjustSize)(60)},r]}):null,a):null}}]),t})(l.Component);c.propTypes={hasSeparator:s.default.bool,separatorStyle:s.default.any};var f=(function(e){function t(){var e,a;(0,r.default)(this,t);for(var o=arguments.length,l=new Array(o),u=0;u0,horizontal:a,separatorStyle:r},e)}):null}},{key:\"render\",value:function(){var e=this.getContents(),t=this.props,r=t.containerStyle,a=t.horizontal,i=this.state,n=i.width,o=i.height;return e?l.default.createElement(u.View,{style:[y.box,{height:o<=1?0:o+(0,p.adjustSize)(9),overflow:'visible'}]},l.default.createElement(h.BoxShadow,{setting:{width:n,height:o,color:'#000',border:(0,p.adjustSize)(9),radius:(0,p.adjustSize)(30),opacity:.015,x:0,y:(0,p.adjustSize)(9),style:{position:'absolute',top:0,left:0}}},l.default.createElement(u.View,{style:{}})),l.default.createElement(u.View,{style:[y.container,a?y.containerHorizontal:y.containerVertical,r],onLayout:this.onLayout},e)):null}}]),t})(l.Component);exports.default=f,f.propTypes={containerStyle:s.default.any,separatorStyle:s.default.any,horizontal:s.default.bool},f.defaultProps={containerStyle:{},separatorStyle:{},horizontal:!1};var y=u.StyleSheet.create({box:{position:'relative'},container:{borderRadius:(0,p.adjustSize)(30),overflow:'hidden',backgroundColor:'#fff'},containerHorizontal:{flexDirection:'row'}});","miot-sdk/ui/ContainerWithShadowAndSeparator.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var n=t(require(\"@babel/runtime/helpers/classCallCheck\")),r=t(require(\"@babel/runtime/helpers/createClass\")),i=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=t(require(\"@babel/runtime/helpers/inherits\")),a=e(require(\"react\")),s=require(\"react-native\"),u=t(require(\"prop-types\")),c=require(\"../utils/colors\"),d=require(\"../utils/sizes\"),h=require(\"../utils/fonts\"),f=require(\"../utils/fns\"),b=require(\"../decorator/ReportDecorator\"),p=(0,d.adjustSize)(72),C=(0,d.adjustSize)(120),g=(0,d.adjustSize)(168),S=(0,d.adjustSize)(150),m=(0,d.adjustSize)(138),y=(function(e){function t(e,r){var l;return(0,n.default)(this,t),(l=(0,i.default)(this,(0,o.default)(t).call(this,e,r))).state={isPressing:!1},l.onPress=function(){var e=l.props,t=e.disabled,n=e.onPress;t||n()},l.onPressIn=function(){l.props.showHighlight&&l.setState({isPressing:!0})},l.onPressOut=function(){l.setState({isPressing:!1})},(0,b.referenceReport)('CircleButton'),l}return(0,l.default)(t,e),(0,r.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.sizeLevel,n=e.selected,r=e.title,i=e.icon,o=e.iconSelected,l=e.iconText,u=e.themeColor,d=e.disabled,h=e.horizontal,f=this.state.isPressing,b=z[['container0','container1','container2','container3'][t||0]]||z.container0,p=z[['iconContainer0','iconContainer1','iconContainer2','iconContainer3'][t||0]]||z.iconContainer0;return n=n||f,a.default.createElement(s.View,{style:s.StyleSheet.flatten([z.container,b,h?z.containerHorizontal:null,d?{opacity:.3}:null])},a.default.createElement(s.TouchableOpacity,{disabled:d,style:s.StyleSheet.flatten([z.iconContainer,p,n?{backgroundColor:u||c.ColorGreen,borderColor:u||c.ColorGreen}:null,d?z.iconContainerDisabled:null,d&&n?z.iconContainerDisabledSelected:null]),activeOpacity:1,onPress:this.onPress,onPressIn:this.onPressIn,onPressOut:this.onPressOut},i?a.default.createElement(s.Image,{style:s.StyleSheet.flatten([z.icon]),source:n&&!d?o||o:i}):a.default.createElement(s.Text,{style:[z.iconText,n&&!d?z.iconTextSelected:null]},l)),r?a.default.createElement(s.Text,{style:s.StyleSheet.flatten([z.title,n?{color:u||c.ColorGreen}:null,d?z.titleDisabled:null,h?z.titleHorizontal:null]),numberOfLines:h?2:1},r):null)}}]),t})(a.Component);exports.default=y,y.propTypes={sizeLevel:u.default.oneOf([0,1,2,3]),themeColor:u.default.any,disabled:u.default.bool,showHighlight:u.default.bool,selected:u.default.bool,horizontal:u.default.bool,onPress:u.default.func,title:u.default.string,icon:u.default.any,iconSelected:u.default.any,iconText:u.default.oneOfType([u.default.number,u.default.string])},y.defaultProps={sizeLevel:0,themeColor:'',disabled:!1,showHighlight:!1,selected:!1,horizontal:!1,onPress:f.NOOP,title:'',icon:null,iconSelected:null,iconText:''};var z=s.StyleSheet.create({container:{alignItems:'center'},container0:{width:C},container1:{width:g},container2:{width:S},container3:{width:m},containerHorizontal:{width:'auto',flex:1,flexDirection:'row'},iconContainer:{justifyContent:'center',alignItems:'center',borderWidth:1,borderColor:'rgba(176, 182, 184, 0.4)'},iconContainer0:{width:C,height:C,borderRadius:C/2},iconContainer1:{width:g,height:g,borderRadius:g/2},iconContainer2:{width:S,height:S,borderRadius:S/2},iconContainer3:{width:m,height:m,borderRadius:m/2},iconContainerDisabled:{backgroundColor:'transparent',borderColor:'rgba(197, 201, 203, 1)'},iconContainerDisabledSelected:{backgroundColor:'rgba(197, 201, 203, 0.3)',borderColor:'rgba(197, 201, 203, 1)'},icon:{resizeMode:'contain',width:p,height:p},iconText:{fontFamily:h.FontDefault,fontSize:(0,d.adjustSize)(36),color:'#000'},iconTextSelected:{color:'#FFF'},title:{marginTop:(0,d.adjustSize)(27),textAlign:'center',fontSize:(0,d.adjustSize)(42),fontFamily:h.FontDefault,color:'#7F7F7F'},title3:{display:'none'},titleDisabled:{color:'#7F7F7F'},titleHorizontal:{marginTop:0,flex:1,textAlign:'left',marginLeft:(0,d.adjustSize)(39)}});","miot-sdk/ui/CircleButton.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/defineProperty\")),a=t(require(\"@babel/runtime/helpers/classCallCheck\")),n=t(require(\"@babel/runtime/helpers/createClass\")),l=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),i=t(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"react\")),p=require(\"react-native\"),s=t(require(\"prop-types\")),f=(function(e){function t(){var e,r;(0,a.default)(this,t);for(var n=arguments.length,i=new Array(n),o=0;o0})},r}return(0,i.default)(t,e),(0,n.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.gap,a=e.horizontal,n=e.children,l=this.state.shown;if(!n)return null;var u=l?t:0;return o.default.createElement(o.Fragment,null,o.default.createElement(p.View,{style:a?{flex:1}:null,onLayout:this.onLayout},n),o.default.createElement(p.View,{style:[d.gap,(0,r.default)({},a?'width':'height',u)]}))}}]),t})(o.PureComponent);f.propTypes={gap:s.default.number,horizontal:s.default.bool};var h=(function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(0,u.default)(t).apply(this,arguments))}return(0,i.default)(t,e),(0,n.default)(t,[{key:\"getContents\",value:function(){var e=this.props,t=e.children,r=e.horizontal,a=e.gap;if(!t)return null;var n=t.length-1;return t.map(function(e,t){return o.default.createElement(f,{key:t,gap:t=.5&&w.arcTo(v,q,c,c,!1,!1),w.arcTo(C,A,c,c,!1,!1);var x=(new S).moveTo(C,A-h).arcTo(C,A+h,h,h,!1,!1).arcTo(C,A-h,h,h,!1,!1);return o.default.createElement(u.View,(0,i.default)({style:j.container},(0,b.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:b.AccessibilityRoles.text,accessibilityLabel:this.props.accessibilityLabel})),o.default.createElement(u.View,{style:j.deviceContainer},o.default.createElement(p,{width:2*c,height:2*c,style:{position:'absolute',left:0,top:(0,f.adjustSize)(7.5)}},o.default.createElement(y,{d:E,strokeWidth:1,stroke:n?((0,d.fixHex)(n)+\"33\").slice(0,9):'#33ABF233'}),s>0?o.default.createElement(m,null,o.default.createElement(y,{d:w,strokeWidth:1,stroke:n||'#33ABF2'}),o.default.createElement(y,{d:x,strokeWidth:1,fill:n||'#33ABF2'})):null),o.default.createElement(u.View,{style:[j.deviceInner,n?{backgroundColor:n}:null]},o.default.createElement(u.Image,{style:j.deviceIcon,source:t}))),o.default.createElement(u.View,{style:j.infoContainer},o.default.createElement(u.Text,{style:j.infoTitle},r||(l?' ':'')),o.default.createElement(u.Text,{style:j.infoSubtitle},a||(l?' ':''))))}}]),t})(o.PureComponent);exports.default=T,T.propTypes={icon:c.default.any,title:c.default.string,subtitle:c.default.string,holdPlace:c.default.bool,progress:c.default.number,themeColor:c.default.any,accessible:b.AccessibilityPropTypes.accessible,accessibilityLabel:b.AccessibilityPropTypes.accessibilityLabel};var j=u.StyleSheet.create({container:{alignItems:'center',marginTop:(0,f.adjustSize)(300)},deviceContainer:{width:(0,f.adjustSize)(663),height:(0,f.adjustSize)(663),justifyContent:'center',alignItems:'center'},deviceInner:{width:(0,f.adjustSize)(558),height:(0,f.adjustSize)(558),borderRadius:(0,f.adjustSize)(279),justifyContent:'center',alignItems:'center',backgroundColor:'#43C2FA'},deviceIcon:{width:(0,f.adjustSize)(264),height:(0,f.adjustSize)(228)},infoContainer:{marginTop:(0,f.adjustSize)(33),alignItems:'center'},infoTitle:{fontFamily:h.FontDefault,fontSize:(0,f.adjustSize)(45),lineHeight:(0,f.adjustSize)(60),color:'#000'},infoSubtitle:{marginTop:(0,f.adjustSize)(9),fontFamily:h.FontDefault,fontSize:(0,f.adjustSize)(36),lineHeight:(0,f.adjustSize)(48),color:'#B2B2B2'}});","miot-sdk/ui/DeviceWithInfo.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/extends\")),n=t(require(\"@babel/runtime/helpers/classCallCheck\")),a=t(require(\"@babel/runtime/helpers/createClass\")),i=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=t(require(\"@babel/runtime/helpers/inherits\")),u=e(require(\"react\")),s=require(\"react-native\"),c=require(\"react-native-svg\"),d=t(require(\"prop-types\")),p=require(\"../utils/sizes\"),f=require(\"../utils/accessibility-helper\"),F=(0,p.adjustSize)(708);function h(e,t){switch(e){case 0:case 1:return{x:0,y:0};case 2:return{x:[3,-2,-1,2][t]||0,y:0};case 3:return{x:[2,-2,-1,0][t]||0,y:0};case-1:default:return{x:0,y:0}}}function y(e,t){switch(e){case 0:return[['#475154'],['#475154','#4A5867'],['#2D3947'],['#F7F7F7']][t]||'#475154';case 1:return[['#00AEFF'],['#00AEFF','#5BCCFF'],['#007DFF'],['#F7F7F7']][t]||'#00AEFF';case 2:return[['#00B7AF'],['#00B7AF','#0BCEB7'],['#05CFC6'],['#F7F7F7']][t]||'#00B7AF';case 3:return[['#7538F7'],['#7538F7','#B88CFF'],['#7231FB'],['#F7F7F7']][t]||'#7538F7';case 4:return[['#5067F9'],['#5067F9','#589BFB'],['#2240F7'],['#F7F7F7']][t]||'#5067F9';default:return[['#FFFFFF'],['#FFFFFF','#FFFFFF'],['#FFFFFF'],['#F7F7F7']][t]||'#FFFFFF'}}function b(e,t){switch(e){case 0:case 1:case 2:case 3:case 4:return[.2,1,1,1][t]||1;case-1:default:return[.2,.6,1,1][t]||1}}var m=(function(e){function t(){var e,r;(0,n.default)(this,t);for(var a=arguments.length,l=new Array(a),u=0;u0&&void 0!==arguments[0]?arguments[0]:4e3,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.stopRotation(),this.aniRotation=s.Animated.timing(this.state.rotation,{toValue:1,duration:r?t:t*(1-this.currentValue||.01),easing:s.Easing.inOut(s.Easing.linear)}).start(function(t){if(t.finished){if(e.props.disabled)return;e.state.rotation.setValue(0),e.startRotation(e.props.duration,!0)}})}},{key:\"stopRotation\",value:function(){var e=this;this.state.rotation.stopAnimation(function(t){e.currentValue=t}),this.aniRotation=null}},{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){e&&e.disabled?this.stopRotation():e&&this.props&&e.duration===this.props.duration&&e.disabled===this.props.disabled||this.rotate(e||{})}},{key:\"componentDidMount\",value:function(){this.inited=!0,this.rotate(this.props)}},{key:\"componentWillUnmount\",value:function(){this.stopRotation()}},{key:\"render\",value:function(){var e=this.props,t=e.color,n=e.opacity,a=e.rx,i=e.ry,o=e.center,l=o.x,d=o.y,p=e.counterClock,h=e.centerInner,y=h.x,b=h.y,m=e.rxInner,v=e.ryInner,x=this.state.rotation.interpolate({inputRange:[0,1],outputRange:p?['360deg','0deg']:['0deg','360deg']}),C=\"\\n M\"+(118+l-a)+\" \"+(118+d)+\"\\n A\"+a+\" \"+i+\" 0 0 1 \"+(118+l+a)+\" \"+(118+d)+\"\\n L\"+(118+y+m)+\" \"+(118+b)+\"\\n A\"+m+\" \"+v+\" 0 0 0 \"+(118+y-m)+\" \"+(118+b)+\"\\n A\"+m+\" \"+v+\" 0 0 0 \"+(118+y+m)+\" \"+(118+b)+\"\\n L\"+(118+l+a)+\" \"+(118+d)+\"\\n A\"+a+\" \"+i+\" 0 0 1 \"+(118+l-a)+\" \"+(118+d)+\"\\n \";return u.default.createElement(s.Animated.View,(0,r.default)({style:[g.circleWrap,{transform:[{rotate:x}]}]},(0,f.getAccessibilityConfig)({accessible:!1})),u.default.createElement(c.Svg,{width:F,height:F,viewBox:\"0 0 236 236\"},u.default.createElement(c.Defs,null,u.default.createElement(c.LinearGradient,{id:\"circleGradient\",x1:\"0\",y1:\"0\",x2:\"236\",y2:\"236\"},u.default.createElement(c.Stop,{offset:\"0\",stopColor:t[1]||t[0],stopOpacity:n}),u.default.createElement(c.Stop,{offset:\"1\",stopColor:t[0],stopOpacity:n}))),u.default.createElement(c.Path,{rotation:0,origin:118,d:C,fill:\"url(#circleGradient)\"})))}}]),t})(u.Component);m.propTypes={disabled:d.default.bool,duration:d.default.number,color:d.default.string,opacity:d.default.number,rx:d.default.number,ry:d.default.number,center:d.default.shape({x:d.default.number,y:d.default.number}),centerInner:d.default.shape({x:d.default.number,y:d.default.number}),counterClock:d.default.bool,rxInner:d.default.number,ryInner:d.default.number};var v=(function(e){function t(){return(0,n.default)(this,t),(0,i.default)(this,(0,o.default)(t).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.disabled,r=e.type,n=e.speedLevel,a=e.noDisableColor,i=h(r,3);return u.default.createElement(s.View,{style:g.container},u.default.createElement(m,{disabled:t,initRotation:-15,counterClock:!0,opacity:b(t?0:r,0),color:y(t&&!a?0:r,0),duration:6e3/n,type:r,rx:113,ry:107,center:h(r,0),centerInner:i,rxInner:91,ryInner:91}),u.default.createElement(m,{disabled:t,initRotation:0,counterClock:!1,opacity:b(t?0:r,1),color:y(t&&!a?0:r,1),duration:5200/n,type:r,rx:105,ry:105,center:h(r,1),centerInner:i,rxInner:91,ryInner:91}),u.default.createElement(m,{disabled:t,initRotation:45,counterClock:!1,opacity:b(t?0:r,2),color:y(t&&!a?0:r,2),duration:4e3/n,type:r,rx:102,ry:95,center:h(r,2),centerInner:i,rxInner:91,ryInner:91}))}}]),t})(u.Component);exports.default=v,v.propTypes={disabled:d.default.bool,noDisableColor:d.default.bool,speedLevel:d.default.number,type:d.default.oneOf([-1,0,1,2,3,4])},v.defaultProps={disabled:!1,noDisableColor:!1,speedLevel:1,type:-1};var g=s.StyleSheet.create({container:{marginVertical:(0,p.adjustSize)(165),width:F,height:F,alignSelf:'center'},circleWrap:{position:'absolute',width:'100%',height:'100%',left:0,top:0}});","miot-sdk/ui/Fan.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Background=exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/extends\")),n=t(require(\"@babel/runtime/helpers/classCallCheck\")),i=t(require(\"@babel/runtime/helpers/createClass\")),u=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=t(require(\"@babel/runtime/helpers/inherits\")),s=e(require(\"react\")),o=require(\"react-native\"),f=t(require(\"prop-types\")),c=require(\"../utils/sizes\"),d=require(\"../utils/fonts\"),h=require(\"../utils/accessibility-helper\"),p=require('../resources/images/heater-dot0.png'),m=require('../resources/images/heater-dot1.png'),y=require('../resources/images/heater-dot2.png'),g=require('../resources/images/heater-dot3.png'),b=require('../resources/images/heater-dot4.png'),v=require('../resources/images/heater-dot5.png'),q=require('../resources/images/heater-dot6.png');function k(e,t){return Math.random()*(t-e)+e}var C=(function(e){function t(){return(0,n.default)(this,t),(0,u.default)(this,(0,a.default)(t).apply(this,arguments))}return(0,l.default)(t,e),(0,i.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.title,n=e.disabled,i=e.themeColor,u=n?'#47525F':i||'#FA9E19';return t?s.default.createElement(o.View,(0,r.default)({style:V.container},(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.text,accessibilityLabel:this.props.accessibilityLabel})),s.default.createElement(o.Text,{style:[V.title,{color:u}]},t)):null}}]),t})(s.PureComponent);exports.default=C,C.propTypes={title:f.default.string,disabled:f.default.bool,themeColor:f.default.any,accessible:h.AccessibilityPropTypes.accessible,accessibilityLabel:h.AccessibilityPropTypes.accessibilityLabel};var A=(function(e){function t(){var e,r;(0,n.default)(this,t);for(var i=arguments.length,l=new Array(i),s=0;s=0&&r-1<=0&&t.push(s.default.createElement(g.Stop,{key:r,offset:r,stopColor:e[r],stopOpacity:\"1\"}));return t}var z=T(y),R=T(w),j=(0,f.colorGetterforRange)(y),B=(0,f.colorGetterforRange)(w);function E(e,t){var r=(0,u.default)(t,2),o=r[0],n=r[1];return 100-(en?100:o===n?50:(e-o)/(n-o)*100)}function F(e,t){var r=(0,u.default)(t,2),o=r[0],n=r[1];return o===n?o:Math.round((n-o)*(100-e)/100)+o}function P(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1;return t>=r||o>=n||e>=r?n:e<=t?o:(e-t)/(r-t)*(n-o)+o}function V(e,t){var r=(0,u.default)(t,3),o=r[0],n=r[1],a=r[2];return B.getColorFromPercent(E(e,[o,n,a]))}var k=(function(e){function t(){return(0,o.default)(this,t),(0,a.default)(this,(0,i.default)(t).apply(this,arguments))}return(0,l.default)(t,e),(0,n.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.disabled,r=e.brightness,o=e.supportBrightness,n=e.color,a=e.supportColor,i=e.colorTemperature,l=e.supportColorTemperature,u=e.colorTemperatureRange,p=e.pos,h=e.SourceBgOff,m=a?(0,f.transformDigtalToHex)(n):l?V(i,u):'#FFEFCB',b=c.window.width,C=c.window.height;return s.default.createElement(d.View,{style:O.container},t?s.default.createElement(d.Image,{style:O.disabledContainer,source:h}):s.default.createElement(s.Fragment,null,s.default.createElement(d.View,{style:[O.colorOrColorTemperatureContainer,{backgroundColor:m}]}),s.default.createElement(g.Svg,{width:b,height:C},s.default.createElement(g.Defs,null,s.default.createElement(g.RadialGradient,{id:\"radialGradient\",cx:b/2,cy:314/780*C,rx:(1-314/780)*C,ry:(1-314/780)*C,fx:b/2,fy:314/780*C},s.default.createElement(g.Stop,{offset:\"0\",stopColor:\"#fff\",stopOpacity:\"0.6\"}),s.default.createElement(g.Stop,{offset:\"1\",stopColor:\"#fff\",stopOpacity:\"0\"}))),s.default.createElement(g.Rect,{x:\"0\",y:\"0\",width:b,height:C,fill:\"url(#radialGradient)\"}))),t||!o?null:s.default.createElement(d.View,{style:[O.brightness,{opacity:v(r)}]}),t||!p?null:s.default.createElement(d.Image,{style:{position:'absolute',left:p.pageX,top:p.pageY,width:(0,c.adjustSize)(192),height:(0,c.adjustSize)(192),marginLeft:(0,c.adjustSize)(-96),marginTop:(0,c.adjustSize)(-96),resizeMode:'contain'},source:S}))}}]),t})(s.PureComponent);exports.Background=k,k.propTypes={disabled:p.default.bool,brightness:p.default.number,supportBrightness:p.default.bool,color:p.default.string,supportColor:p.default.bool,colorTemperature:p.default.number,supportColorTemperature:p.default.bool,colorTemperatureRange:p.default.arrayOf(p.default.number),pos:p.default.shape({pageX:p.default.number,pageY:p.default.number}),SourceBgOff:p.default.any};var x=(function(e){function t(){var e,r;(0,o.default)(this,t);for(var n=arguments.length,l=new Array(n),u=0;u5||B>5)&&(v=R0&&void 0!==arguments[0]?arguments[0]:{message:u.default.error,timeout:2e3},t=e.message,i=void 0===t?u.default.error:t,a=e.timeout,n=void 0===a?2e3:a,s=v[(0,c.getNavigationEventKey)()];s&&s.setState({type:p.loading,visible:!0,message:i,timeout:n})},exports.showLoading=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:u.default.handling}).message,t=void 0===e?u.default.handling:e,i=v[(0,c.getNavigationEventKey)()];i&&i.setState({type:p.loading,visible:!0,message:t})},exports.showMessage=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:'',buttons:[{text:u.default.ok,callback:g.NOOP}]},t=e.message,a=void 0===t?'':t,n=e.buttons,s=void 0===n?[{text:u.default.ok,callback:g.NOOP}]:n;if(!a)return;var l=v[(0,c.getNavigationEventKey)()];l&&l.setState({type:p.message,visible:!0,message:a,buttons:s.map(function(e){return(0,i.default)({},e,{callback:function(){b(),e.callback()}})})})},exports.showInput=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:'',inputs:[{placeholder:'',defaultValue:''}],buttons:[{text:u.default.cancel,callback:b},{text:u.default.ok,callback:g.log}],onConfirm:g.log},t=e.message,i=void 0===t?'':t,a=e.inputs,n=void 0===a?[{placeholder:'',defaultValue:''}]:a,s=e.onConfirm,l=void 0===s?g.log:s;if(!i)return;var o=v[(0,c.getNavigationEventKey)()];o&&o.setState({type:p.input,visible:!0,message:i,inputs:n,buttons:[{text:u.default.cancel,callback:b},{text:u.default.ok,callback:function(e){b(),l&&l(e&&e.textInputArray?e.textInputArray[0]:'')}}]})},exports.showSelector=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:'',selectedIndexs:[],options:[],onSelect:g.log},t=e.message,i=void 0===t?'':t,a=e.selectedIndexs,n=void 0===a?[]:a,s=e.options,l=void 0===s?[]:s,o=e.onSelect,r=void 0===o?g.log:o;if(!l||!l.length)return;var u=v[(0,c.getNavigationEventKey)()];u&&u.setState({type:p.selector,visible:!0,message:i,selectedIndexs:n,options:l,onSelect:r})},exports.DialogComponent=exports.TYPES=void 0;var i=t(require(\"@babel/runtime/helpers/objectSpread\")),a=t(require(\"@babel/runtime/helpers/classCallCheck\")),n=t(require(\"@babel/runtime/helpers/createClass\")),s=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=t(require(\"@babel/runtime/helpers/inherits\")),r=e(require(\"react\")),u=t(require(\"../resources/Strings\")),d=require(\"../ui/Dialog\"),c=require(\"../ui/PageWithNormalNavigator\"),g=require(\"./fns\"),v={},p={loading:'loading',message:'message',input:'input',selector:'selector'};exports.TYPES=p;var m=(function(e){function t(){var e,i;(0,a.default)(this,t);for(var n=arguments.length,o=new Array(n),r=0;r=1&&(this.timer=setTimeout(function(){e.setState({visible:!1}),e.props.onDismiss&&e.props.onDismiss()},100));var t=Math.round(100*this.props.progress)+\"%\",s=1;return this.props.dialogStyle&&this.props.dialogStyle.hasOwnProperty('messageNumberOfLines')&&this.props.dialogStyle.messageNumberOfLines>1&&(s=this.props.dialogStyle.messageNumberOfLines),u.default.createElement(d.default,(0,i.default)({animationType:this.props.animationType,visible:this.state.visible,showTitle:!1,canDismiss:!1,showButton:!1},(0,m.getAccessibilityConfig)({accessible:!1})),u.default.createElement(c.View,(0,i.default)({style:y.container},(0,m.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:m.AccessibilityRoles.progressbar,accessibilityLabel:this.props.accessibilityLabel,accessibilityValue:this.props.accessibilityValue||{text:t}})),u.default.createElement(c.View,{style:y.messageContainer},u.default.createElement(c.Text,{numberOfLines:s,style:[y.message,{flex:1},this.props.dialogStyle.messageStyle],allowFontScaling:this.props.dialogStyle.allowFontScaling},this.props.message||''),u.default.createElement(c.Text,{style:[y.message,{minWidth:45,textAlign:'right'},{color:this.props.textColor},this.props.dialogStyle.progressTextStyle],numberOfLines:1,allowFontScaling:this.props.dialogStyle.allowFontScaling},t)),u.default.createElement(p.Bar,{style:{marginBottom:s>1?10:0},progress:this.props.progress,color:this.props.color,unfilledColor:this.props.unfilledColor,width:b.Styles.dialog.modal.width-74,height:3,borderRadius:2.5,borderWidth:.3,borderColor:\"#e5e5e5\",useNativeDriver:!0})))}},{key:\"componentWillUnmount\",value:function(){this.timer=null,clearTimeout(this.timer)}}]),t})(u.default.Component);exports.default=f,f.propTypes={animationType:n.default.string,visible:n.default.bool,message:n.default.string,progress:n.default.number,color:n.default.string,unfilledColor:n.default.string,textColor:n.default.string,autoDismiss:n.default.bool,dialogStyle:n.default.object,onDismiss:n.default.func,accessible:m.AccessibilityPropTypes.accessible,accessibilityLabel:m.AccessibilityPropTypes.accessibilityLabel,accessibilityValue:m.AccessibilityPropTypes.accessibilityValue},f.defaultProps={progress:0,color:b.Styles.common.MHGreen,unfilledColor:'#f1f1f1',textColor:b.Styles.common.MHGreen,autoDismiss:!1,dialogStyle:{allowFontScaling:!0,messageNumberOfLines:1,messageStyle:{},progressTextStyle:{}}};var y=c.StyleSheet.create({container:{minHeight:86,backgroundColor:'#fff',paddingHorizontal:37,justifyContent:'center',borderRadius:b.Styles.dialog.modal.borderRadius},messageContainer:{flexDirection:'row',justifyContent:'center',alignItems:'center',marginBottom:12},message:{fontSize:15,color:'rgba(0,0,0,0.8)'}});","miot-sdk/ui/Dialog/ProgressDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),r=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"prop-types\")),c=e(require(\"react\")),o=require(\"react-native\"),u=require(\"react-native-ui-kitten\"),p=require(\"../../resources\"),d=e(require(\"../Checkbox/Checkbox\")),b=e(require(\"../Separator\")),h=e(require(\"./AbstractDialog\")),f=require(\"../../utils/accessibility-helper\"),y=require(\"../../decorator/ReportDecorator\"),x=o.Dimensions.get('window').height,g={SIMPLE:'simple',UNDERLINE:'underline',CHECKBOX:'checkbox',BOTH:'both'};Object.freeze(g);var m=(function(e){function n(e,t){var s;return(0,i.default)(this,n),s=(0,l.default)(this,(0,a.default)(n).call(this,e,t)),(0,y.referenceReport)('Dialog/InputDialog'),s.state={checked:e.checkboxData.checked||!1},u.RkTheme.setType('RkTextInput','mhtextinput',{input:{marginVertical:0,color:'#000000',marginLeft:16,fontSize:14},underlineWidth:.3,marginVertical:0,placeholderTextColor:'#999999',minHeight:40,backgroundColor:'#f9f9f9',borderRadius:6,borderWidth:.3,borderColor:'#e5e5e5'}),s.process(e),s}return(0,r.default)(n,e),(0,s.default)(n,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){this.setState({checked:e.checkboxData.checked||!1}),this.process(e)}},{key:\"process\",value:function(e){var t=this;this.textInputArray=[],this.inputs=e.inputs||[{placeholder:'\\u81ea\\u5b9a\\u4e49\\u5360\\u4f4d\\u5b57\\u7b26',defaultValue:'\\u81ea\\u5b9a\\u4e49\\u9ed8\\u8ba4\\u503c',textInputProps:{autoFocus:!0}}];for(var i=function(e){var i=t.inputs[e];if(void 0!==i){t.textInputArray.push(i.defaultValue||'');var s=i.onChangeText;i.onChangeText=function(i){t._onChangeText(i,e),s instanceof Function&&s(i)}}},s=0;s6||a.digit<3)&&(a.digit=6,__DEV__&&console.warn&&console.warn('digit should range within [3, 6]'));var l=Array.from({length:a.digit},function(){});return a.state={numArr:l,value:'',checked:(e.checkboxData||{}).checked||!1},a.process(e),a}return(0,l.default)(o,e),(0,a.default)(o,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){!0===e.visible&&this.setState({numArr:Array.from({length:this.digit},function(){}),value:''}),this.setState({checked:(e.checkboxData||{}).checked||!1}),this.process(e)}}]),(0,a.default)(o,[{key:\"process\",value:function(e){var t=this,i=e.buttons;if(i instanceof Array){var s=i[i.length-1];if(s&&s.callback){var r=s.callback;s.callback=function(){r({checked:t.state.checked,numArr:t.state.numArr})}}}this.buttons=i}},{key:\"_onChangeText\",value:function(e){if(console.log(e),/^\\d*$/.test(e)){if(e.length<=this.digit){var t=this.state.numArr.map(function(t,i){return e[i]});this.setState({numArr:t})}this.setState({value:e.slice(0,this.digit)})}else{var i=e.match(/\\d*/)[0];this.setState({value:i})}}},{key:\"renderUpExtra\",value:function(){if(!this.props.message)return null;var e=15;return this.props.dialogStyle&&this.props.dialogStyle.hasOwnProperty('messageNumberOfLines')&&(e=this.props.dialogStyle.messageNumberOfLines),n.default.createElement(c.Text,(0,t.default)({style:[m.message,this.props.dialogStyle.messageStyle],allowFontScaling:this.props.dialogStyle.allowFontScaling,numberOfLines:e},(0,p.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:p.AccessibilityRoles.text})),this.props.message||'')}},{key:\"renderTextGroup\",value:function(){var e=this;return Array.from({length:this.digit},function(e,t){return t}).map(function(i,s){var r=0===s?{}:{marginLeft:66/e.digit},a=s===e.state.numArr.indexOf(void 0)?{borderColor:e.props.color}:{};return n.default.createElement(c.View,(0,t.default)({key:s,style:[m.blockContainer,r,a]},(0,p.getAccessibilityConfig)({accessible:e.props.accessible})),n.default.createElement(c.Text,{style:[m.blockText,e.props.dialogStyle.digitStyle],allowFontScaling:e.props.dialogStyle.allowFontScaling},e.state.numArr[s]||''))})}},{key:\"renderDownExtra\",value:function(){var e=this;if(!(this.props.checkboxData instanceof Object))return null;var i=1;this.props.checkboxData&&this.props.checkboxData.hasOwnProperty('numberOfLines')&&(i=this.props.checkboxData.numberOfLines);var s=this.props.checkboxData,r=s.text,a=s.accessibilityLabel,l=s.accessibilityHint;return n.default.createElement(c.TouchableOpacity,(0,t.default)({onPress:function(){return e.onPressCheckbox()},activeOpacity:1},(0,p.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:p.AccessibilityRoles.checkbox,accessibilityLabel:a,accessibilityHint:l,accessibilityState:{disabled:!1,checked:this.state.checked}})),n.default.createElement(c.View,{style:m.checkboxContainer},n.default.createElement(d.default,{checked:this.state.checked,checkedColor:this.props.color,style:{width:20,height:20,borderRadius:10},onValueChange:function(t){e.setState({checked:t})}}),n.default.createElement(c.Text,{style:[m.checkboxText,this.props.checkboxData.textStyle],numberOfLines:i,allowFontScaling:this.props.dialogStyle.allowFontScaling},r||'')))}},{key:\"render\",value:function(){var e=this;if(!this.props.visible)return null;var i='ios'===c.Platform.OS?{bottom:~~(.38*y)}:{};return n.default.createElement(h.default,(0,t.default)({animationType:this.props.animationType,visible:this.props.visible,title:this.props.title,buttons:this.buttons,dialogStyle:this.props.dialogStyle,onDismiss:function(){return e._onDismiss()},style:i},(0,p.getAccessibilityConfig)({accessible:this.props.accessible})),n.default.createElement(c.View,{style:[m.container]},this.renderUpExtra(),n.default.createElement(c.View,{style:m.pinCodeContainer},n.default.createElement(c.View,{style:m.textGroup},this.renderTextGroup()),n.default.createElement(c.TextInput,{autoFocus:!0,caretHidden:!0,style:m.textinput,value:this.state.value,selectionColor:\"#ffffff\",underlineColorAndroid:\"transparent\",onChangeText:function(t){return e._onChangeText(t)},keyboardType:\"numeric\"})),this.renderDownExtra()),n.default.createElement(f.default,null))}},{key:\"_onDismiss\",value:function(){this.props.onDismiss&&this.props.onDismiss()}},{key:\"onPressCheckbox\",value:function(){this.setState({checked:!this.state.checked})}}]),o})(n.default.Component);exports.default=g,g.propTypes={animationType:o.default.string,visible:o.default.bool,title:o.default.string,message:o.default.string,digit:o.default.oneOf([3,4,5,6]),color:o.default.any,dialogStyle:o.default.object,checkboxData:o.default.shape({checked:o.default.bool,text:o.default.string,accessibilityLabel:p.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:p.AccessibilityPropTypes.accessibilityHint}),buttons:o.default.arrayOf(o.default.shape({text:o.default.string,style:o.default.any,callback:o.default.func,accessibilityLabel:p.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:p.AccessibilityPropTypes.accessibilityHint})),onDismiss:o.default.func,accessible:p.AccessibilityPropTypes.accessible},g.defaultProps={digit:6,color:u.Styles.common.MHGreen,checkboxData:{},dialogStyle:{unlimitedHeightEnable:!1,allowFontScaling:!0,titleNumberOfLines:1,messageNumberOfLines:15,titleStyle:{},messageStyle:{},digitStyle:{}}};var m=c.StyleSheet.create({container:{paddingHorizontal:29,paddingBottom:26,backgroundColor:'#fff',borderRadius:u.Styles.dialog.modal.borderRadius},message:{fontSize:15,color:'#666666',lineHeight:18,flex:1},pinCodeContainer:{marginVertical:30,alignItems:'center',justifyContent:'center'},textinput:{position:'absolute',width:u.Styles.dialog.modal.width-58,height:105,backgroundColor:'transparent',color:'transparent'},textGroup:{flexDirection:'row',alignItems:'center',backgroundColor:'#fff'},blockContainer:{height:45,width:45,backgroundColor:'#ffffff',borderRadius:2,borderWidth:.8,borderColor:'#cccccc',alignItems:'center',justifyContent:'center'},blockText:{color:'#000000',fontSize:30},checkboxContainer:{flexDirection:'row',alignItems:'center'},checkboxText:{flex:1,marginLeft:8,fontSize:14,color:'#999'}});","miot-sdk/ui/Dialog/PinCodeDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),r=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"prop-types\")),n=e(require(\"react\")),c=require(\"react-native\"),u=e(require(\"react-native-swiper\")),p=require(\"../../resources\"),d=e(require(\"../Separator\")),b=e(require(\"./AbstractDialog\")),f=require(\"../../utils/accessibility-helper\"),y=require(\"../../decorator/ReportDecorator\"),m=~~((p.Styles.dialog.modal.width-80-220)/3),h=p.Images.common.mihome,g=(function(e){function o(e,t){var a;return(0,i.default)(this,o),a=(0,s.default)(this,(0,r.default)(o).call(this,e,t)),(0,y.referenceReport)('Dialog/ShareDialog'),a.state={swiperVisible:!1,pressed:-1},a.pages=Array.from({length:Math.ceil(e.options.length/8)},function(t,i){return e.options.slice(8*i,8*i+8)}),a}return(0,l.default)(o,e),(0,a.default)(o,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){var t=this;!0===e.visible?setTimeout(function(){return t.setState({swiperVisible:!0})}):this.setState({swiperVisible:!1})}}]),(0,a.default)(o,[{key:\"renderIcons\",value:function(e,i){var s=this,r=1;return this.props.dialogStyle&&this.props.dialogStyle.hasOwnProperty('itemTextNumberOfLines')&&(r=this.props.dialogStyle.itemTextNumberOfLines),n.default.createElement(c.View,{key:i+\"0\",style:S.optionsPage},e.map(function(e,i){if(void 0===e)return null;var a=i%4==0?{}:{marginLeft:m},l=s.state.pressed===i?.95:1,o=s.state.pressed===i?.88:1;return n.default.createElement(c.TouchableWithoutFeedback,(0,t.default)({key:i+(e.text||''),onPress:e.callback,onPressIn:function(){return s.setState({pressed:i})},onPressOut:function(){return s.setState({pressed:-1})}},(0,f.getAccessibilityConfig)({accessible:s.props.accessible,accessibilityRole:f.AccessibilityRoles.button,accessibilityLabel:e.accessibilityLabel,accessibilityHint:e.accessibilityHint})),n.default.createElement(c.View,{style:[S.optionContainer,a]},n.default.createElement(c.Image,{style:[S.icon,{transform:[{scale:l}]}],source:e.icon,resizeMode:\"center\"}),n.default.createElement(c.Text,{style:[S.optionText,{opacity:o},s.props.dialogStyle.itemTextStyle],numberOfLines:r,allowFontScaling:s.props.dialogStyle.allowFontScaling},e.text||'')))}))}},{key:\"renderIconsPages\",value:function(e){var i=this;return e.length<9?this.renderIcons(e,0):this.state.swiperVisible?n.default.createElement(u.default,(0,t.default)({style:S.swiper,autoplay:!1,loop:!1,paginationStyle:S.paginationStyle,dotColor:\"rgba(0,0,0,0.2)\",activeDotColor:\"#32bac0\",dotStyle:S.dot,activeDotStyle:S.dot},(0,f.getAccessibilityConfig)({accessible:!1})),this.pages.map(function(e,t){return i.renderIcons(e,t)})):n.default.createElement(c.View,{style:S.swiper})}},{key:\"render\",value:function(){var e=this,t=this.props.options.length>8?{paddingBottom:28}:{paddingBottom:20};return n.default.createElement(b.default,{animationType:this.props.animationType,visible:this.props.visible,title:this.props.title,dialogStyle:this.props.dialogStyle,buttons:this.props.buttons,onDismiss:function(){return e._onDismiss()}},n.default.createElement(c.View,{style:[S.container,t]},this.renderIconsPages(this.props.options)),n.default.createElement(d.default,null))}},{key:\"_onDismiss\",value:function(){this.setState({swiperVisible:!1}),this.props.onDismiss&&this.props.onDismiss()}}]),o})(n.default.Component);exports.default=g,g.propTypes={animationType:o.default.string,visible:o.default.bool,title:o.default.string,dialogStyle:o.default.object,options:o.default.arrayOf(o.default.shape({icon:o.default.any,text:o.default.string,callback:o.default.func,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint})),buttons:o.default.arrayOf(o.default.shape({text:o.default.string,style:o.default.any,callback:o.default.func,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint})),onDismiss:o.default.func,accessible:f.AccessibilityPropTypes.accessible},g.defaultProps={options:Array.from({length:6},function(){return{icon:h,text:[\"\\u7c73\\u5bb6\",\"\\u5fae\\u4fe1\",\"QQ\",\"\\u5fae\\u535a\",\"\\u670b\\u53cb\\u5708\",\"\\u6536\\u85cf\",\"\\u5373\\u523b\"][~~(7*Math.random())],callback:function(){return console.log('\\u5206\\u4eab\\u6210\\u529f')}}}),dialogStyle:{unlimitedHeightEnable:!1,allowFontScaling:!0,titleNumberOfLines:1,itemTextNumberOfLines:1}};var S=c.StyleSheet.create({container:{paddingHorizontal:40,backgroundColor:'#fff',borderRadius:p.Styles.dialog.modal.borderRadius},swiper:{minHeight:209,paddingBottom:19},optionsPage:{flexDirection:'row',flexWrap:'wrap'},optionContainer:{minHeight:95,alignItems:'center'},icon:{width:55,height:55},optionText:{marginTop:4,marginBottom:10,width:55,textAlign:'center',fontSize:12,color:'#333'},paginationStyle:{position:'absolute',bottom:0},dot:{width:6,height:6}});","miot-sdk/ui/Dialog/ShareDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),r=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"prop-types\")),o=e(require(\"react\")),u=require(\"react-native\"),c=e(require(\"../ListItem/ChoiceItem\")),b=e(require(\"../Separator\")),p=e(require(\"./AbstractDialog\")),f=(e(require(\"../../resources/strings/tr\")),require(\"../../utils/accessibility-helper\")),y=require(\"../../decorator/ReportDecorator\"),d=(function(e){function n(e,i){var r;return(0,t.default)(this,n),r=(0,s.default)(this,(0,l.default)(n).call(this,e,i)),(0,y.referenceReport)('ActionSheet'),r.state={visible:e.visible},r}return(0,a.default)(n,e),(0,r.default)(n,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){e.visible!==this.state.visible&&this.setState({visible:e.visible})}}]),(0,r.default)(n,[{key:\"render\",value:function(){var e=this;return o.default.createElement(p.default,(0,i.default)({animationType:this.props.animationType,visible:this.state.visible,dialogStyle:this.props.dialogStyle,showTitle:!1,buttons:this.props.buttons,onDismiss:function(){return e._onDismiss()},canDismiss:this.props.canDismiss},(0,f.getAccessibilityConfig)({accessible:this.props.accessible})),this.props.options.map(function(t,s){return o.default.createElement(u.View,{key:(t.title||'')+s},o.default.createElement(c.default,(0,i.default)({title:t.title||'',titleStyle:e.props.dialogStyle.itemTitleStyle,subtitle:t.subtitle||'',subtitleStyle:e.props.dialogStyle.itemSubtitleStyle,allowFontScaling:e.props.dialogStyle.allowFontScaling,unlimitedHeightEnable:e.props.dialogStyle.unlimitedHeightEnable,titleNumberOfLines:e.props.dialogStyle.itemTitleNumberOfLines,subtitleNumberOfLines:e.props.dialogStyle.itemSubtitleNumberOfLines,onPress:function(){return e._onPress(t.onPress)}},(0,f.getAccessibilityConfig)({accessible:e.props.accessible,accessibilityRole:f.AccessibilityRoles.button,accessibilityLabel:t.accessibilityLabel,accessibilityHint:t.accessibilityHint}))),o.default.createElement(b.default,null))}))}},{key:\"_onPress\",value:function(e){e&&e(),this.setState({visible:!1}),this._onDismiss()}},{key:\"_onDismiss\",value:function(){this.props.onDismiss&&this.props.onDismiss()}}]),n})(o.default.Component);exports.default=d,d.propTypes={animationType:n.default.string,visible:n.default.bool,dialogStyle:n.default.object,options:n.default.arrayOf(n.default.shape({title:n.default.string,subtitle:n.default.string,onPress:n.default.func,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint})),buttons:n.default.arrayOf(n.default.shape({text:n.default.string,style:n.default.any,callback:n.default.func,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint})),onDismiss:n.default.func,canDismiss:n.default.bool,accessible:f.AccessibilityPropTypes.accessible},d.defaultProps={options:[],canDismiss:!0,dialogStyle:{allowFontScaling:!0,unlimitedHeightEnable:!1,itemTitleStyle:{},itemSubtitleStyle:{},itemTitleNumberOfLines:1,itemSubtitleNumberOfLines:1}};","miot-sdk/ui/Dialog/ActionSheet.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),r=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=e(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"prop-types\")),a=e(require(\"react\")),c=require(\"react-native\"),u=require(\"../../resources\"),h=e(require(\"../Checkbox/Checkbox\")),p=require(\"../../utils/accessibility-helper\"),d=require(\"../../decorator/ReportDecorator\"),b={STATELESS:'stateless',SINGLE:'single',MULTIPLE:'multiple'};Object.freeze(b);var f=(function(e){function o(e,t){var s;return(0,i.default)(this,o),s=(0,l.default)(this,(0,r.default)(o).call(this,e,t)),(0,d.referenceReport)('ChoiceItem'),s.state={selected:e.selected},s}return(0,n.default)(o,e),(0,s.default)(o,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){e.selected!==this.state.selected&&this.setState({selected:e.selected})}},{key:\"renderIcon\",value:function(){if(this.props.type===b.STATELESS)return null;if(!this.state.selected||this.props.type===b.MULTIPLE)return a.default.createElement(c.View,{style:{width:38,height:60}});var e={paddingTop:20};return this.props.subtitle&&(e.paddingTop=16),a.default.createElement(c.View,{style:[y.iconContainer,e]},a.default.createElement(c.Image,{source:this.props.icon,resizeMode:\"contain\",style:y.icon}))}},{key:\"renderText\",value:function(){var e={color:\"#000000\"},t={};this.state.selected&&(e.color=this.props.color),this.props.type===b.STATELESS&&(t.textAlign='center');var i={};return this.props.unlimitedHeightEnable||(i={height:void 0,lineHeight:void 0}),a.default.createElement(c.View,{style:y.textContainer},a.default.createElement(c.Text,{style:[y.title,e,t,i,this.props.titleStyle],numberOfLines:this.props.titleNumberOfLines,allowFontScaling:this.props.allowFontScaling},this.props.title),this.props.subtitle?a.default.createElement(c.Text,{style:[y.subtitle,t,i,this.props.subtitleStyle],numberOfLines:this.props.subtitleNumberOfLines,allowFontScaling:this.props.allowFontScaling},this.props.subtitle):null)}},{key:\"renderCheckbox\",value:function(){var e=this;return this.props.type!==b.MULTIPLE?null:a.default.createElement(h.default,{style:{width:20,height:20,borderRadius:10,marginRight:20},checked:this.state.selected,checkedColor:this.props.color,onValueChange:function(t){return e._onValueChange(t)}})}},{key:\"render\",value:function(){var e=this,i={height:50};this.props.subtitle&&(i.height=60);var s={minHeight:i.height,height:i.height};return this.props.unlimitedHeightEnable&&(s.height=null),a.default.createElement(c.TouchableHighlight,(0,t.default)({underlayColor:\"rgba(0,0,0,0.05)\",onPress:function(){return e._onPress()}},(0,p.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:p.AccessibilityRoles.radio,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:{selected:this.state.selected,checked:this.state.selected}})),a.default.createElement(c.View,{style:[y.container,s]},this.renderIcon(),this.renderText(),this.renderCheckbox()))}},{key:\"_onValueChange\",value:function(e){this.setState({selected:e}),this.props.onPress&&this.props.onPress(e)}},{key:\"_onPress\",value:function(){var e=this.props.type,t=this.state.selected;e!==b.STATELESS&&(e===b.MULTIPLE&&(t=!t),e===b.SINGLE&&(t=!0),this.setState({selected:t})),this.props.onPress&&this.props.onPress(t)}}]),o})(a.default.Component);exports.default=f,f.propTypes={type:o.default.oneOf([b.STATELESS,b.SINGLE,b.MULTIPLE]),title:o.default.string,subtitle:o.default.string,selected:o.default.bool,color:o.default.string,icon:o.default.number,onPress:o.default.func,unlimitedHeightEnable:o.default.bool,allowFontScaling:o.default.bool,titleNumberOfLines:o.default.number,subtitleNumberOfLines:o.default.number,titleStyle:c.Text.propTypes.style,subtitleStyle:c.Text.propTypes.style,accessible:p.AccessibilityPropTypes.accessible,accessibilityLabel:p.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:p.AccessibilityPropTypes.accessibilityHint},f.defaultProps={type:b.STATELESS,selected:!1,color:u.Styles.common.MHGreen,icon:u.Images.common.selectIcon,unlimitedHeightEnable:!1,allowFontScaling:!0,titleNumberOfLines:1,subtitleNumberOfLines:1,titleStyle:{},subtitleStyle:{}},f.TYPE=b;var y=c.StyleSheet.create({container:{flexDirection:'row',alignItems:'center'},iconContainer:{width:38,alignSelf:'stretch',alignItems:'center'},icon:{width:10,height:10},textContainer:{flex:1,justifyContent:'center'},title:{alignSelf:'stretch',fontSize:15,lineHeight:20},subtitle:{alignSelf:'stretch',fontSize:12,color:\"#666666\",lineHeight:16}});","miot-sdk/ui/ListItem/ChoiceItem.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),r=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"prop-types\")),o=e(require(\"react\")),u=require(\"react-native\"),c=e(require(\"../ListItem/ChoiceItem\")),p=e(require(\"../Separator\")),b=e(require(\"./AbstractDialog\")),f=require(\"../../utils/accessibility-helper\"),d=require(\"../../decorator/ReportDecorator\"),y={SINGLE:'single',MULTIPLE:'multiple'};Object.freeze(y);var h=(function(e){function n(e,t){var r;(0,i.default)(this,n),r=(0,l.default)(this,(0,s.default)(n).call(this,e,t)),(0,d.referenceReport)('Dialog/ChoiceDialog');var a=e.buttons;if(a instanceof Array){var o=a[a.length-1];if(o&&o.callback){var u=o.callback;o.callback=function(){for(var e=[],t=0;t=u&&s.shift(),s.push(e),f=!0):s.length>d&&(s.splice(c,1),f=!0):-1===c&&(f=!0,s=[e]),f&&o(s),null}},i.getSelectors=function(){var e=i.props,t=e.items,l=e.themeColor,r=e.disabled,a=e.switchDisabled,n=i.state.selectedIndexs,o=t.length,s=i.getSizeLevel(t);return t.map(function(e,c){var h=-1!==n.indexOf(c),m=2===o,b=m,S=o>=5||-1===t.findIndex(function(e){return e&&e.icon})||o>=3&&'zh'!==p.default.locale.language;return d.default.createElement(d.Fragment,{key:c},b&&c>0?d.default.createElement(u.View,{style:y.separator}):null,d.default.createElement(f.default,{sizeLevel:s,horizontal:m,themeColor:l,disabled:r||a,selected:h,title:S?'':e.title,icon:e.icon,iconSelected:e.iconSelected,iconText:e.title||'',onPress:function(){i.select(c)}}))})},i}return(0,o.default)(t,e),(0,i.default)(t,[{key:\"getSizeLevel\",value:function(e){var t=e.length;return t<=2?0:3===t?1:4===t?2:3}},{key:\"render\",value:function(){var e=this.props,t=e.title,l=e.subtitle,r=e.items,i=e.hasShadow,a=e.showSwitch,n=e.disabled,o=e.switchOn,s=e.themeColor,f=e.onSwitch;if(!r||!r.length)return null;var p=i?h.default:d.Fragment,m=this.getSizeLevel(r);return d.default.createElement(p,null,d.default.createElement(u.View,{style:y.container},t||l||a?d.default.createElement(u.View,{style:[y.header,n?{opacity:.3}:null]},t||l?d.default.createElement(u.View,{style:y.titleContainer},t?d.default.createElement(u.Text,{style:y.title},t):null,t&&l?d.default.createElement(u.View,{style:y.titleSeparator}):null,l?d.default.createElement(u.Text,{style:y.subtitle},l):null):null,a?d.default.createElement(c.default,{disabled:n,value:o,onTintColor:s||g.ColorGreen,onValueChange:f}):null):null,a&&!o?null:d.default.createElement(u.View,{style:[y.selectors,t||l||a?y.selectorsWithHeader:null,r.length>=4?null:[y.selectorsPadding0,y.selectorsPadding1,y.selectorsPadding2,y.selectorsPadding3][m]]},this.getSelectors())))}}],[{key:\"getDerivedStateFromProps\",value:function(e,t){var l=e.initSelectedIndexs,r=t.initSelectedIndexs;return(0,b.isSameArrayElements)(l,r)?null:{selectedIndexs:l}}}]),t})(d.Component);exports.default=w,w.propTypes={title:s.default.string,subtitle:s.default.string,items:s.default.arrayOf(s.default.shape({icon:s.default.oneOf([s.default.number,s.default.object]).required,iconSelected:s.default.oneOf([s.default.number,s.default.object]).required,title:s.default.string})),initSelectedIndexs:s.default.array,onSelected:s.default.func,disabled:s.default.bool,switchDisabled:s.default.bool,themeColor:s.default.any,multiple:s.default.bool,minSelected:s.default.number,maxSelected:s.default.number,showSwitch:s.default.bool,switchOn:s.default.bool,onSwitch:s.default.func,hasShadow:s.default.bool},w.defaultProps={title:'',subtitle:'',items:[],initSelectedIndexs:[0],onSelected:b.NOOP,disabled:!1,switchDisabled:!1,themeColor:'',multiple:!1,minSelected:1,maxSelected:1/0,showSwitch:!1,switchOn:!0,onSwitch:b.log,hasShadow:!0};var y=u.StyleSheet.create({container:{backgroundColor:'#fff',paddingHorizontal:(0,m.adjustSize)(60)},header:{flexDirection:'row',justifyContent:'space-between'},titleContainer:{flex:1,height:(0,m.adjustSize)(156),flexDirection:'row',alignItems:'center'},title:{fontSize:(0,m.adjustSize)(42),fontFamily:S.FontDefault,color:'#000'},titleSeparator:{width:1,height:(0,m.adjustSize)(42),backgroundColor:'rgba(0, 0, 0, 0.3)',marginHorizontal:(0,m.adjustSize)(18)},subtitle:{fontSize:(0,m.adjustSize)(36),fontFamily:S.FontDefault,color:'rgba(0, 0, 0, 0.6)'},selectors:{paddingVertical:(0,m.adjustSize)(60),flexDirection:'row',justifyContent:'space-between',alignItems:'center'},selectorsWithHeader:{paddingTop:0},selectorsPadding0:{paddingHorizontal:(0,m.adjustSize)(0)},selectorsPadding1:{paddingHorizontal:(0,m.adjustSize)(78)},selectorsPadding2:{paddingHorizontal:(0,m.adjustSize)(0)},selectorsPadding3:{paddingHorizontal:(0,m.adjustSize)(0)},selectorWithHeader:{paddingTop:0},separator:{width:1,height:(0,m.adjustSize)(120),backgroundColor:'rgba(0, 0, 0, 0.15)',marginHorizontal:(0,m.adjustSize)(60)}});","miot-sdk/ui/SelectorWithButton.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var l=t(require(\"@babel/runtime/helpers/classCallCheck\")),i=t(require(\"@babel/runtime/helpers/createClass\")),n=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),r=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=t(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"react\")),u=require(\"react-native\"),d=t(require(\"prop-types\")),s=t(require(\"./Switch\")),f=t(require(\"./Gear/SlideGear\")),h=t(require(\"./ContainerWithShadowAndSeparator\")),p=require(\"../utils/fns\"),c=require(\"../utils/sizes\"),m=require(\"../utils/fonts\"),b=require(\"../utils/colors\"),g=(function(e){function t(){var e,i;(0,l.default)(this,t);for(var a=arguments.length,o=new Array(a),u=0;u=this.length?(__DEV__&&console.warn&&console.warn(\"value \\u4e0d\\u5728 options \\u8303\\u56f4\\u5185 value=\"+e+\" length=\"+this.length),this.value=0):this.value=e)}this.calculateCoord(this.containerLayout)}}},{key:\"isSameArray\",value:function(t,e){if(!(t instanceof Array&&e instanceof Array))return!1;if(t.length!==e.length)return!1;for(var o=0;o=i&&e.value<=n?t.translateX=e.value:t.translateX=e.value=this.endCoord)i=this.optionMax;else{(i=Math.round((o-this.firstCoord)/this.d)*this.optionStep+this.optionMin)>this.optionMax&&(i=this.optionMax)}return i}var n=this.coords.map(function(t){return Math.abs(t-o)});return n.indexOf(Math.min.apply(Math,(0,e.default)(n)))}},{key:\"getColorFromValue\",value:function(t){var e=(0,d.colorGetterforRange)(this.props.colorRangeObject).getColorFromPercent((t-this.props.optionMin)/(this.props.optionMax-this.props.optionMin)*100);return(0,d.transformHexToDigtal)(e)}},{key:\"getValueFromColor\",value:function(t){var e=(0,d.colorGetterforRange)(this.props.colorRangeObject).getPercentFromColor((0,d.transformDigtalToHex)(t));return this.props.optionMin+(this.props.optionMax-this.props.optionMin)*(e/100)}},{key:\"_onPanResponderGrant\",value:function(t){this.sliding=!0,this.state.pan.setOffset(this.translateX),this.state.pan.setValue(0);var e=t.nativeEvent.pageX;this.offset=e-this.currentCoord}},{key:\"_onPanResponderRelease\",value:function(t,e){var o=e.moveX-this.offset;if(this.optionStep)o>=this.firstCoord&&o<=this.endCoord?this.currentCoord=o:(console.log(\"coord\\u8d8a\\u754c\"),this.currentCoord=o=i&&o<=n?o:o10?10:o)<5?5:o);return{margin:o,blockWidth:this.props.type===m.CIRCLE?i:e,blockHeight:i,containerHeight:t}}},{key:\"_onLayout\",value:function(){var t=this;this._container.measure(function(e,o,i,n,r,s){t.calculateCoord({x:e,y:o,w:i,h:n,px:r,py:s})})}},{key:\"calculateCoord\",value:function(t){if(t){var e=t.x,o=t.w;this.containerLayout=t;var i=2*this.margin+this.blockWidth,n=e+i/2,r=this.optionStep?(o-i)/this.length:(o-i)/(this.length-1);if(this.d=r,r<=0&&__DEV__&&console.warn&&console.warn('\\u5bb9\\u5668\\u5b9e\\u9645\\u5bbd\\u5ea6 < \\u6ed1\\u5757\\u5bbd\\u5ea6\\uff0c\\u6ed1\\u5757\\u65e0\\u6cd5\\u79fb\\u52a8\\uff0c\\u8bf7\\u4ed4\\u7ec6\\u68c0\\u67e5 containerStyle \\u6216\\u8005\\u589e\\u52a0\\u5bb9\\u5668\\u7684\\u5bbd\\u5ea6'),this.optionStep)if(this.firstCoord=n,this.endCoord=n+r*this.length,this.props.contentType!==b.COLOR)this.currentCoord=n+r*((this.value-this.optionMin)/this.optionStep);else{var s=this.getValueFromColor(this.value);this.currentCoord=n+r*Math.round((s-this.optionMin)/this.optionStep)}else this.coords=this.options.map(function(t,e){return r>0?n+r*e:0}),this.currentCoord=this.coords[this.value];this.totalWidth=o,this.getDragRange()}}},{key:\"getDragRange\",value:function(t){var e=this;this.optionStep?this.setState({dragToValueMin:this.firstCoord-this.currentCoord||0,dragToValueMax:this.endCoord-this.currentCoord||0},function(){t&&t(),e.state.pan.setOffset(0),e.state.pan.setValue(0)}):this.setState({dragToValueMin:this.coords[0]-this.currentCoord||0,dragToValueMax:this.coords[this.length-1]-this.currentCoord||0},function(){t&&t(),e.state.pan.setOffset(0),e.state.pan.setValue(0)})}},{key:\"renderDraggable\",value:function(){var t=this.state,e=t.dragToValueMin,o=t.dragToValueMax;if(void 0===e)return null;var i={position:'absolute',left:-e-this.margin,top:-this.margin},n=this.props.type===m.CIRCLE?{width:this.blockHeight,height:this.blockHeight,borderRadius:this.blockHeight/2}:{width:this.blockWidth,height:this.blockHeight,borderRadius:0},r={width:this.blockWidth+4*this.margin,height:this.containerHeight+2*this.margin,backgroundColor:'transparent',alignItems:'center',justifyContent:'center'},s={transform:[{translateX:this.state.pan.interpolate({inputRange:[e-1,e,o,o+1],outputRange:[e,e,o,o]})}]};return l.default.createElement(u.default,{panHandlers:this.panResponder.panHandlers,style:[i,s]},l.default.createElement(h.View,{style:r},l.default.createElement(h.View,{style:[{backgroundColor:\"#fff\"},this.props.blockStyle,n]})))}},{key:\"renderBackground\",value:function(){var t=this,e=this.state,o=e.dragToValueMin,i=e.dragToValueMax;return void 0===o?null:l.default.createElement(h.Animated.View,{ref:function(e){return t._background=e},style:{position:'absolute',width:this.state.pan.interpolate({inputRange:[o-1,o,i,i+1],outputRange:[2*this.margin+this.blockWidth,2*this.margin+this.blockWidth,this.totalWidth,this.totalWidth]}),height:this.containerHeight,borderRadius:this.props.type===m.CIRCLE?this.containerHeight/2:0,backgroundColor:this.props.contentType===b.NUM?this.props.minimumTrackTintColor:''}},this.props.showEndText?l.default.createElement(h.View,{style:[C.textContainer,{margin:this.margin,alignSelf:'flex-start',minWidth:this.blockWidth+2*this.margin,height:this.blockHeight}]},l.default.createElement(h.Text,{style:[C.text,{color:this.props.leftTextColor},this.props.leftTextStyle],allowFontScaling:this.props.allowFontScaling,numberOfLines:this.props.numberOfLines},this.optionStep?this.optionMin:this.options[0])):null)}},{key:\"renderRightText\",value:function(){var t=this.blockWidth+2*this.margin;return this.optionStep&&this.optionMax>999999&&(t+=20),l.default.createElement(h.View,{style:[C.textContainer,{margin:this.margin,alignSelf:'flex-end',minWidth:t,height:this.blockHeight}]},this.props.showEndText?l.default.createElement(h.Text,{style:[C.text,{color:this.props.rightTextColor},this.props.rightTextStyle],allowFontScaling:this.props.allowFontScaling,numberOfLines:this.props.numberOfLines},this.optionStep?this.optionMax:this.options[this.length-1]):null)}},{key:\"render\",value:function(){var t=this;if(this.showNothing)return null;var e={height:this.containerHeight,borderRadius:this.props.type===m.CIRCLE?this.containerHeight/2:0,backgroundColor:this.props.contentType===b.NUM?this.props.maximumTrackTintColor:''},o=this.props.disabled?.3:1;return l.default.createElement(h.View,{onLayout:function(){return t._onLayout()},ref:function(e){return t._container=e},style:[this.props.containerStyle,e,{opacity:o}]},this.props.contentType===b.NUM?l.default.createElement(h.View,null,this.renderRightText(),this.renderBackground(),this.renderDraggable()):l.default.createElement(c.default,{start:{x:0,y:0},end:{x:1,y:0},locations:this.props.contentType===b.COLOR?Object.keys(this.props.colorRangeObject).map(function(t){return Number(t)}):Object.keys(this.props.colorTemRangeObject).map(function(t){return Number(t)}),colors:this.props.contentType===b.COLOR?Object.values(this.props.colorRangeObject):Object.values(this.props.colorTemRangeObject),style:{borderRadius:this.props.type===m.CIRCLE?this.containerHeight/2:0}},this.renderRightText(),this.renderBackground(),this.renderDraggable()))}}]),a})(l.default.Component);exports.default=y,y.propTypes={type:a.default.oneOf([m.CIRCLE,m.RECTANGLE]),options:a.default.array.isRequired,showEndText:a.default.bool,containerStyle:a.default.object,blockStyle:a.default.object,minimumTrackTintColor:a.default.string,leftTextColor:a.default.string,leftTextStyle:h.Text.propTypes.style,maximumTrackTintColor:a.default.string,rightTextColor:a.default.string,rightTextStyle:h.Text.propTypes.style,value:a.default.number,disabled:a.default.bool,onValueChange:a.default.func,onSlidingComplete:a.default.func.isRequired,optionMin:a.default.number,optionMax:a.default.number,optionStep:a.default.number,contentType:a.default.oneOf([b.NUM,b.COLOR,b.COLORTEM]),colorRangeObject:a.default.object,colorTemRangeObject:a.default.object,allowFontScaling:a.default.bool,numberOfLines:a.default.number,accessible:f.AccessibilityPropTypes.accessible,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint},y.defaultProps={type:m.CIRCLE,options:[],showEndText:!0,containerStyle:{},blockStyle:{},minimumTrackTintColor:p.default.common.MHGreen,leftTextColor:'#eee',leftTextStyle:{},maximumTrackTintColor:'#dfe2e3',rightTextColor:'#999',rightTextStyle:{},value:0,disabled:!1,optionMin:0,optionMax:0,optionStep:0,contentType:b.NUM,colorRangeObject:{\"0.00\":'#FFA100',\"0.10\":'#FFFA00',\"0.20\":'#9AFF00',\"0.30\":'#01FF00',\"0.40\":'#00FDA4',\"0.50\":'#00EEFF',\"0.60\":'#007CFF',\"0.70\":'#0600F9',\"0.80\":'#BF00FC',\"0.90\":'#FF0081',\"1.00\":'#FF0000'},colorTemRangeObject:{\"0.00\":'#FFAE00',\"0.50\":'#F6EFD6',\"1.00\":'#8AB2D4'},allowFontScaling:!0},y.TYPE=m,y.CONTENTTYPE=b;var C=h.StyleSheet.create({textContainer:{justifyContent:'center',alignItems:'center'},text:{fontSize:15,width:'100%',textAlign:'center'}});","miot-sdk/ui/Gear/SlideGear.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=e(require(\"@babel/runtime/helpers/inherits\")),u=e(require(\"react\")),n=require(\"react-native\"),p=e(require(\"prop-types\")),c=require(\"../../utils/accessibility-helper\"),o=(function(e){function p(){return(0,t.default)(this,p),(0,i.default)(this,(0,l.default)(p).apply(this,arguments))}return(0,a.default)(p,e),(0,s.default)(p,[{key:\"render\",value:function(){return u.default.createElement(n.Animated.View,(0,r.default)({style:this.props.style},this.props.panHandlers),u.default.createElement(n.TouchableWithoutFeedback,(0,r.default)({onLongPress:this.props.onLongPress},(0,c.getAccessibilityConfig)({accessible:!1})),this.props.children))}}]),p})(u.default.Component);exports.default=o,o.propTypes={style:p.default.any,panHandlers:p.default.object,onLongPress:p.default.func,accessible:c.AccessibilityPropTypes.accessible,accessibilityLabel:c.AccessibilityPropTypes.accessibilityLabel};","miot-sdk/ui/Gear/Block.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/extends\")),i=t(require(\"@babel/runtime/helpers/classCallCheck\")),l=t(require(\"@babel/runtime/helpers/createClass\")),a=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=t(require(\"@babel/runtime/helpers/inherits\")),u=e(require(\"react\")),s=require(\"react-native\"),c=t(require(\"prop-types\")),f=require(\"../utils/sizes\"),d=require(\"../utils/fonts\"),y=require(\"../utils/accessibility-helper\"),h=(function(e){function t(){var e,l;(0,i.default)(this,t);for(var o=arguments.length,c=new Array(o),d=0;d0?u.default.createElement(s.View,{style:[b.separator,m?{backgroundColor:m}:null],onLayout:d!==t||c?null:l.onLayoutCenter}):null,u.default.createElement(s.View,(0,r.default)({style:b.item,onLayout:d===t&&c?l.onLayoutCenter:null},(0,y.getAccessibilityConfig)({accessible:l.props.accessible,accessibilityRole:y.AccessibilityRoles.text,accessibilityLabel:e.accessibilityLabel})),u.default.createElement(s.Text,{style:[b.number,h?{color:h}:null,isNaN(o)?{fontSize:(0,f.adjustSize)(88)}:null]},o),u.default.createElement(s.Text,{style:[b.title,m?{color:m}:null]},n)))})},l}return(0,o.default)(t,e),(0,l.default)(t,[{key:\"render\",value:function(){var e=this.props.list;if(!e||!e.length)return null;var t=this.getItems(),r=this.offsetX;return u.default.createElement(s.View,{style:b.container,onLayout:this.onLayoutContainer},u.default.createElement(s.Animated.View,{style:[b.containerInner,{transform:[{translateX:r}]}]},t))}}]),t})(u.PureComponent);exports.default=h,h.propTypes={list:c.default.arrayOf(c.default.shape({title:c.default.string,number:c.default.oneOfType([c.default.number,c.default.string]),themeColor:c.default.any,titleThemeColor:c.default.any,accessibilityLabel:y.AccessibilityPropTypes.accessibilityLabel})),themeColor:c.default.any,titleThemeColor:c.default.any,accessible:y.AccessibilityPropTypes.accessible};var b=s.StyleSheet.create({containerInner:{alignItems:'center',flexDirection:'row',justifyContent:'center'},separator:{width:(0,f.adjustSize)(2.1),height:(0,f.adjustSize)(135),marginHorizontal:(0,f.adjustSize)(45),marginTop:(0,f.adjustSize)(12),backgroundColor:'rgba(0, 0, 0, 1)',opacity:.2},item:{alignItems:'center'},title:{fontSize:(0,f.adjustSize)(36),fontFamily:d.FontDefault,lineHeight:(0,f.adjustSize)(48),color:'#1C2229',opacity:1},number:{fontSize:(0,f.adjustSize)(102),fontFamily:'Helvetica',lineHeight:(0,f.adjustSize)(123),color:'#1C2229',opacity:.8}});","miot-sdk/ui/SmallNumbers.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i=t(require(\"@babel/runtime/helpers/extends\")),r=t(require(\"@babel/runtime/helpers/classCallCheck\")),a=t(require(\"@babel/runtime/helpers/createClass\")),s=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=t(require(\"@babel/runtime/helpers/inherits\")),u=e(require(\"react\")),n=require(\"react-native\"),c=t(require(\"prop-types\")),d=t(require(\"react-native-linear-gradient\")),f=require(\"../utils/sizes\"),p=require(\"../utils/fns\"),b=require(\"../utils/accessibility-helper\"),m=[\"#fff\",\"#f1f1f2\"],h=[\"#f1f1f2\",\"#fff\"],g=[0,(0,f.adjustSize)(240),(0,f.adjustSize)(180),(0,f.adjustSize)(105),(0,f.adjustSize)(90)],y=[0,(0,f.adjustSize)(990),(0,f.adjustSize)(852),(0,f.adjustSize)(720),(0,f.adjustSize)(516)],S=(function(e){function t(){var e,a;(0,r.default)(this,t);for(var o=arguments.length,c=new Array(o),f=0;f2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,a=e-100/y*t;return Math.min(n,Math.max(i,a))}var z=(function(e){function t(){var e,i;(0,n.default)(this,t);for(var a=arguments.length,o=new Array(a),l=0;l1&&void 0!==arguments[1]?arguments[1]:30;if(!isNaN(e)&&isFinite(e)){this.stopAnimation();var i=this.currValue;this.aniPosition=u.Animated.timing(this.value,{toValue:e,duration:Math.abs(i-e)*t,easing:u.Easing.inOut(u.Easing.linear)}).start()}}},{key:\"stopAnimation\",value:function(){this.aniPosition&&this.aniPosition.stop()}},{key:\"initPanResponder\",value:function(){var e=this;this.panResponder=u.PanResponder.create({onStartShouldSetPanResponder:function(){return!0},onMoveShouldSetPanResponder:function(){return!0},onShouldBlockNativeResponder:function(){return!1},onPanResponderTerminationRequest:function(){return!1},onPanResponderGrant:function(){u.DeviceEventEmitter.emit(e.contentEventKey,{scrollEnabled:!1})},onPanResponderMove:u.Animated.event([null,{dy:this.moveY}]),onPanResponderRelease:this.touchEnd.bind(this),onPanResponderTerminate:this.touchEnd.bind(this)})}},{key:\"touchEnd\",value:function(){this.lastValue=this.currValue,this.props.onValueChange(this.lastValue),u.DeviceEventEmitter.emit(this.contentEventKey,{scrollEnabled:!0})}},{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){var t=this.props;this.lastValue=e.position,e&&t&&e.position===t.position||this.animateToPosition(e.position)}},{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;this.moveY.addListener(function(t){var i=S(e.lastValue,t.value);e.animateToPosition(i,0),e.props.onValueChanging(i)}),this.initPanResponder()}},{key:\"componentDidMount\",value:function(){var e=this;this.value.addListener(function(t){var i=t.value;e.currValue=i})}},{key:\"componentWillUnmount\",value:function(){this.stopAnimation()}},{key:\"render\",value:function(){var e=this.props,t=e.lightOn,n=e.controlable,a=this.value.interpolate({inputRange:[0,100],outputRange:[y,0]}),r=n?this.panResponder.panHandlers:{};return l.default.createElement(u.View,(0,i.default)({style:E.container},r,(0,m.getAccessibilityConfig)({accessible:!!n&&this.props.accessible,accessibilityRole:m.AccessibilityRoles.adjustable,accessibilityHint:this.props.accessibilityHint}),{accessibilityActions:[{name:'increment'},{name:'decrement'}],onAccessibilityAction:this.onAccessibilityAction}),l.default.createElement(u.Image,{style:E.upper,source:g}),l.default.createElement(u.Animated.Image,{style:[E.center,{height:a}],source:b}),l.default.createElement(u.Animated.Image,{style:[E.light,t?{height:a}:{display:'none',height:0}],source:f}),l.default.createElement(u.Image,{style:E.lower,source:v}),l.default.createElement(u.Animated.View,{style:[E.btnWrap,{top:a,opacity:n?1:0}]},l.default.createElement(u.View,{style:E.btn},l.default.createElement(u.View,{style:E.btnInner}))))}}]),t})(l.Component);exports.default=z,z.propTypes={position:c.default.number,lightOn:c.default.bool,controlable:c.default.bool,onValueChanging:c.default.func,onValueChange:c.default.func,accessible:m.AccessibilityPropTypes.accessible,accessibilityHint:m.AccessibilityPropTypes.accessibilityHint},z.defaultProps={position:0,lightOn:!1,controlable:!1,onValueChanging:h.log,onValueChange:h.log};var E=u.StyleSheet.create({container:{alignItems:'center',paddingTop:(0,d.adjustSize)(90),paddingBottom:(0,d.adjustSize)(222),height:(0,d.adjustSize)(1035)},upper:{zIndex:40,width:(0,d.adjustSize)(738),height:(0,d.adjustSize)(93),resizeMode:'stretch'},center:{zIndex:30,width:(0,d.adjustSize)(636),height:y,marginTop:(0,d.adjustSize)(-9),resizeMode:'stretch'},light:{zIndex:20,width:(0,d.adjustSize)(858),height:(0,d.adjustSize)(369),resizeMode:'stretch',position:'absolute',top:(0,d.adjustSize)(183)},lower:{zIndex:10,width:(0,d.adjustSize)(984),height:(0,d.adjustSize)(132),marginTop:(0,d.adjustSize)(-78),resizeMode:'stretch'},btnWrap:{zIndex:31,position:'absolute',marginTop:(0,d.adjustSize)(195),alignSelf:'center',overflow:'hidden'},btn:{width:(0,d.adjustSize)(120),height:(0,d.adjustSize)(120),marginTop:(0,d.adjustSize)(-60),borderRadius:(0,d.adjustSize)(60),alignItems:'center',backgroundColor:'#fff'},btnInner:{width:(0,d.adjustSize)(48),height:(0,d.adjustSize)(9),borderRadius:(0,d.adjustSize)(6),backgroundColor:'#3daeff',marginTop:(0,d.adjustSize)(81)}});","miot-sdk/ui/Airer.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/objectSpread\")),a=t(require(\"@babel/runtime/helpers/extends\")),l=t(require(\"@babel/runtime/helpers/classCallCheck\")),u=t(require(\"@babel/runtime/helpers/createClass\")),i=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=t(require(\"@babel/runtime/helpers/inherits\")),d=e(require(\"react\")),n=require(\"react-native\"),p=t(require(\"prop-types\")),f=t(require(\"./SelectorWithButton\")),h=t(require(\"./ContainerWithShadowAndSeparator\")),b=require(\"miot/utils/sizes\"),c=(function(e){function t(){return(0,l.default)(this,t),(0,i.default)(this,(0,s.default)(t).apply(this,arguments))}return(0,o.default)(t,e),(0,u.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.title,r=e.subtitle,l=e.themeColor,u=e.disabled,i=e.secondShow,s=e.secondDisabled,o=e.first,n=e.second,p=e.hasShadow?h.default:d.Fragment;return d.default.createElement(p,{separatorStyle:m.separator},d.default.createElement(f.default,(0,a.default)({hasShadow:!1,themeColor:l,title:t,subtitle:r,disabled:u},o)),i?d.default.createElement(f.default,(0,a.default)({hasShadow:!1,themeColor:l,disabled:s||u},n)):null)}}]),t})(d.Component);exports.default=c,c.propTypes={title:p.default.string,subtitle:p.default.string,disabled:p.default.bool,secondShow:p.default.bool,secondDisabled:p.default.bool,themeColor:p.default.any,first:p.default.shape((0,r.default)({},f.default.propTypes)),second:p.default.shape((0,r.default)({},f.default.propTypes)),hasShadow:p.default.bool},c.defaultProps={title:'',subtitle:'',disabled:!1,secondShow:!0,secondDisabled:!0,first:{items:[]},second:{items:[]},hasShadow:!0};var m=n.StyleSheet.create({separator:{marginHorizontal:(0,b.adjustSize)(60)}});","miot-sdk/ui/DoubleSelectors.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i=t(require(\"@babel/runtime/helpers/extends\")),n=t(require(\"@babel/runtime/helpers/classCallCheck\")),a=t(require(\"@babel/runtime/helpers/createClass\")),s=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),r=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=t(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"react\")),l=require(\"react-native\"),c=t(require(\"prop-types\")),d=require(\"../utils/sizes\"),p=require(\"../utils/fns\"),h=require(\"../utils/accessibility-helper\"),f=require('../resources/images/curtain-pole.png'),g=require('../resources/images/curtain-light.png'),m=require('../resources/images/curtain-dark.png'),y=require('../resources/images/curtain-bg.png'),b=(0,d.adjustSize)(858),v=(0,d.adjustSize)(429),S=(0,d.adjustSize)(108);function R(e,t,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:100,r=i+(t?-1:1)*(100/(0===e?v:b)*n);return Math.min(s,Math.max(a,r))}var V=(function(e){function t(){var e,i;(0,n.default)(this,t);for(var a=arguments.length,u=new Array(a),o=0;o1&&void 0!==arguments[1]?arguments[1]:30;if(!isNaN(e)&&isFinite(e)){this.stopAnimation();var i=this.currValue;this.aniPosition=l.Animated.timing(this.value,{toValue:e,duration:Math.abs(i-e)*t,easing:l.Easing.inOut(l.Easing.linear)}).start()}}},{key:\"stopAnimation\",value:function(){this.aniPosition&&this.aniPosition.stop()}},{key:\"initPanResponder\",value:function(){this.panResponderLeft=l.PanResponder.create({onStartShouldSetPanResponder:function(){return!0},onMoveShouldSetPanResponder:function(){return!0},onPanResponderGrant:p.log,onPanResponderMove:l.Animated.event([null,{dx:this.leftX}]),onPanResponderRelease:this.touchEnd.bind(this),onPanResponderTerminate:this.touchEnd.bind(this)}),this.panResponderRight=l.PanResponder.create({onStartShouldSetPanResponder:function(){return!0},onMoveShouldSetPanResponder:function(){return!0},onPanResponderGrant:p.log,onPanResponderMove:l.Animated.event([null,{dx:this.rightX}]),onPanResponderRelease:this.touchEnd.bind(this),onPanResponderTerminate:this.touchEnd.bind(this)})}},{key:\"touchEnd\",value:function(){this.lastValue=this.currValue,this.props.onValueChange(this.lastValue)}},{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){var t=this.props;this.lastValue=e.position,e.type!==t.type&&this.initPanResponder(e.type),e.position!==t.position&&this.animateToPosition(e.position)}},{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;this.leftX.addListener(function(t){var i=R(e.props.type,!0,e.lastValue,t.value);e.animateToPosition(i,0),e.props.onValueChanging(i)}),this.rightX.addListener(function(t){var i=R(e.props.type,!1,e.lastValue,t.value);e.animateToPosition(i,0),e.props.onValueChanging(i)}),this.initPanResponder(this.props.type)}},{key:\"componentDidMount\",value:function(){var e=this;this.value.addListener(function(t){var i=t.value;e.currValue=i})}},{key:\"componentWillUnmount\",value:function(){this.stopAnimation()}},{key:\"getCurtains\",value:function(){for(var e=[],t=0===this.props.type?7:13,i=0;i=5||-1===t.findIndex(function(e){return e&&e.icon})||n>=3&&'zh'!==h.default.locale.language;return c.default.createElement(c.Fragment,{key:d},p&&d>0?c.default.createElement(o.View,{style:C.separator}):null,c.default.createElement(b.default,(0,i.default)({sizeLevel:u,horizontal:f,themeColor:l,disabled:s||r,showHighlight:!0,title:y?'':e.title,icon:e.icon,iconSelected:e.iconSelected,iconText:e.title||'',onPress:function(){a.onClick(d)}},(0,w.getAccessibilityConfig)({accessible:a.props.accessible,accessibilityLabel:e.accessibilityLabel,accessibilityHint:e.accessibilityHint}))))})},a}return(0,n.default)(t,e),(0,a.default)(t,[{key:\"getSizeLevel\",value:function(e){var t=e.length;return t<=2?0:3===t?1:4===t?2:3}},{key:\"render\",value:function(){var e=this.props,t=e.title,l=e.items,a=e.hasShadow,s=e.showSwitch,r=e.disabled,n=e.switchOn,u=e.themeColor,b=e.onSwitch;if(!l||!l.length)return null;var h=a?f.default:c.Fragment,p=this.getSizeLevel(l);return c.default.createElement(h,null,c.default.createElement(o.View,{style:C.container},t||s?c.default.createElement(o.View,(0,i.default)({style:[C.header,r?{opacity:.3}:null]},(0,w.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:s?w.AccessibilityRoles.switch:w.AccessibilityPropTypes.text,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:s?{disabled:r,checked:n}:{disabled:r}})),t?c.default.createElement(o.View,{style:C.titleContainer},c.default.createElement(o.Text,{style:C.title},t)):null,s?c.default.createElement(d.default,(0,i.default)({disabled:r,value:n,onTintColor:u||m.ColorGreen,onValueChange:b},(0,w.getAccessibilityConfig)({accessible:!1}))):null):null,c.default.createElement(o.View,{style:[C.selectors,t||s?C.selectorsWithHeader:null,l.length>=4?null:[C.selectorsPadding0,C.selectorsPadding1,C.selectorsPadding2,C.selectorsPadding3][p]]},this.getSelectors())))}}]),t})(c.Component);exports.default=S,S.propTypes={title:u.default.string,items:u.default.arrayOf(u.default.shape({icon:u.default.oneOf([u.default.number,u.default.object]).required,iconSelected:u.default.oneOf([u.default.number,u.default.object]).required,title:u.default.string,accessibilityLabel:w.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:w.AccessibilityPropTypes.accessibilityHint})),onClick:u.default.func,disabled:u.default.bool,switchDisabled:u.default.bool,themeColor:u.default.any,showSwitch:u.default.bool,switchOn:u.default.bool,onSwitch:u.default.func,hasShadow:u.default.bool,accessible:w.AccessibilityPropTypes.accessible,accessibilityLabel:w.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:w.AccessibilityPropTypes.accessibilityHint},S.defaultProps={title:'',items:[],onClick:y.NOOP,disabled:!1,switchDisabled:!1,themeColor:'',showSwitch:!1,switchOn:!0,onSwitch:y.log,hasShadow:!0};var C=o.StyleSheet.create({container:{backgroundColor:'#fff',paddingHorizontal:(0,p.adjustSize)(60)},header:{flexDirection:'row',justifyContent:'space-between'},titleContainer:{flex:1,height:(0,p.adjustSize)(156),flexDirection:'row',alignItems:'center'},title:{fontSize:(0,p.adjustSize)(42),fontFamily:g.FontDefault,color:'#000'},selectors:{paddingVertical:(0,p.adjustSize)(60),flexDirection:'row',justifyContent:'space-between',alignItems:'center'},selectorsWithHeader:{paddingTop:0},selectorsPadding0:{paddingHorizontal:(0,p.adjustSize)(0)},selectorsPadding1:{paddingHorizontal:(0,p.adjustSize)(78)},selectorsPadding2:{paddingHorizontal:(0,p.adjustSize)(0)},selectorsPadding3:{paddingHorizontal:(0,p.adjustSize)(0)},selectorWithHeader:{paddingTop:0},separator:{width:1,height:(0,p.adjustSize)(120),backgroundColor:'rgba(0, 0, 0, 0.15)',marginHorizontal:(0,p.adjustSize)(60)}});","miot-sdk/ui/MultiButtons.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=b;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"react\")),l=require(\"react-native\"),s=e(require(\"prop-types\")),a=e(require(\"./PrimeButton\")),r=require(\"../utils/colors\"),o=require(\"../utils/fonts\"),c=require(\"../utils/sizes\"),n=require(\"../utils/fns\"),u=require(\"../utils/accessibility-helper\");function b(e){var s=e.title,o=e.titleColor,c=e.subtitle,n=e.subtitleColor,b=e.reset,f=e.buy,d=e.icon,m=e.onBuy,g=e.onReset;return i.default.createElement(l.View,{style:y.container},i.default.createElement(l.View,(0,t.default)({style:y.content},(0,u.getAccessibilityConfig)({accessible:e.accessible,accessibilityRole:u.AccessibilityRoles.text})),d?i.default.createElement(l.Image,{style:y.imageWrap,source:d}):null,s?i.default.createElement(l.Text,{style:[y.title,o?{color:o}:null]},s):null,c?i.default.createElement(l.Text,{style:[y.subtitle,n?{color:n}:null]},c):null),f&&b?i.default.createElement(l.View,{style:y.buttons},i.default.createElement(l.TouchableOpacity,(0,t.default)({style:y.buttonWrap,activeOpacity:.8,onPress:m},(0,u.getAccessibilityConfig)({accessible:e.accessible,accessibilityRole:u.AccessibilityRoles.button,accessibilityHint:e.buyAccessibilityHint})),i.default.createElement(l.Text,{style:y.button},f)),i.default.createElement(l.TouchableOpacity,(0,t.default)({style:[y.buttonWrap,{borderLeftWidth:l.StyleSheet.hairlineWidth}],activeOpacity:.8,onPress:g},(0,u.getAccessibilityConfig)({accessible:e.accessible,accessibilityRole:u.AccessibilityRoles.button,accessibilityHint:e.resetAccessibilityHint})),i.default.createElement(l.Text,{style:y.button},b))):f?i.default.createElement(a.default,(0,t.default)({title:f,themeColor:r.ColorGreen,textColor:\"#fff\",onClick:m},(0,u.getAccessibilityConfig)({accessible:e.accessible,accessibilityRole:u.AccessibilityRoles.button,accessibilityHint:e.buyAccessibilityHint}))):b?i.default.createElement(a.default,(0,t.default)({title:b,themeColor:r.ColorGreen,textColor:\"#fff\",onClick:g},(0,u.getAccessibilityConfig)({accessible:e.accessible,accessibilityRole:u.AccessibilityRoles.button,accessibilityHint:e.resetAccessibilityHint}))):null)}b.propTypes={title:s.default.string,titleColor:s.default.any,subtitle:s.default.string,subtitleColor:s.default.any,reset:s.default.string,buy:s.default.string,icon:s.default.any,onBuy:s.default.func,onReset:s.default.func,accessible:u.AccessibilityPropTypes.accessible,resetAccessibilityHint:u.AccessibilityPropTypes.accessibilityHint,buyAccessibilityHint:u.AccessibilityPropTypes.accessibilityHint},b.defaultProps={title:'',titleColor:'',subtitle:'',subtitleColor:'',reset:'',buy:'',icon:null,onBuy:n.NOOP,onReset:n.NOOP};var y=l.StyleSheet.create({container:{flex:1},content:{flex:1,marginTop:(0,c.adjustSize)(144)},imageWrap:{width:(0,c.adjustSize)(684),height:(0,c.adjustSize)(1056),alignSelf:'center',resizeMode:'contain',marginBottom:(0,c.adjustSize)(75)},title:{fontFamily:o.FontDefault,fontSize:(0,c.adjustSize)(60),fontWeight:'700',color:'#000',alignSelf:'center',marginHorizontal:(0,c.adjustSize)(72),marginBottom:(0,c.adjustSize)(6)},subtitle:{fontFamily:o.FontDefault,fontSize:(0,c.adjustSize)(54),color:'#000',alignSelf:'center',marginHorizontal:(0,c.adjustSize)(72)},buttons:{flexDirection:'row',marginHorizontal:(0,c.adjustSize)(72),borderWidth:l.StyleSheet.hairlineWidth,borderColor:'rgba(0, 0, 0, 0.2)',borderRadius:(0,c.adjustSize)(15)},buttonWrap:{flex:1,height:(0,c.adjustSize)(144),justifyContent:'center',alignItems:'center',borderWidth:0,borderColor:'rgba(0, 0, 0, 0.2)'},button:{fontFamily:o.FontDefault,fontSize:(0,c.adjustSize)(39),color:'#4C4C4C'},normalButton:{marginHorizontal:0,flex:1}});","miot-sdk/ui/Consumable.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),i=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=i(require(\"@babel/runtime/helpers/extends\")),r=i(require(\"@babel/runtime/helpers/classCallCheck\")),l=i(require(\"@babel/runtime/helpers/createClass\")),s=i(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=i(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=i(require(\"@babel/runtime/helpers/inherits\")),c=e(require(\"react\")),n=require(\"react-native\"),o=i(require(\"prop-types\")),p=require(\"../utils/sizes\"),b=require(\"../utils/accessibility-helper\"),d=(function(e){function i(){return(0,r.default)(this,i),(0,s.default)(this,(0,a.default)(i).apply(this,arguments))}return(0,u.default)(i,e),(0,l.default)(i,[{key:\"render\",value:function(){var e=this.props,i=e.icon,r=e.iconStyle,l=e.containerStyle;return i?c.default.createElement(n.View,{style:[y.container,l]},c.default.createElement(n.Image,(0,t.default)({style:[y.icon,r],source:i},(0,b.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:b.AccessibilityRoles.image,accessibilityLabel:this.props.accessibilityLabel})))):null}}]),i})(c.Component);exports.default=d,d.propTypes={icon:o.default.any,iconStyle:o.default.any,containerStyle:o.default.any,accessible:b.AccessibilityPropTypes.accessible,accessibilityLabel:b.AccessibilityPropTypes.accessibilityLabel};var y=n.StyleSheet.create({container:{paddingTop:(0,p.adjustSize)(210),paddingBottom:(0,p.adjustSize)(63),alignSelf:'center',alignItems:'center'},icon:{width:(0,p.adjustSize)(540),height:(0,p.adjustSize)(540)}});","miot-sdk/ui/ImageHeader.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"react\")),s=require(\"react-native\"),o=require('merge'),d=(0,s.requireNativeComponent)('MHRTSPView'),p=(function(e){function p(){return(0,t.default)(this,p),(0,i.default)(this,(0,u.default)(p).apply(this,arguments))}return(0,l.default)(p,e),(0,a.default)(p,[{key:\"render\",value:function(){var e=o(this.props,{});return n.default.createElement(d,(0,r.default)({ref:\"rtspView\"},e))}},{key:\"stopPlay\",value:function(){'android'===s.Platform.OS?s.UIManager.dispatchViewManagerCommand((0,s.findNodeHandle)(this.refs.rtspView),s.UIManager.MHRTSPView.Commands.stopPlay,[]):s.NativeModules.MHRTSPViewManager.stopPlay((0,s.findNodeHandle)(this.refs.rtspView))}}]),p})(n.default.Component);exports.default=p;","miot-sdk/ui/RTSPRenderView.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.DarkMode=exports.IDevice=exports.IDeviceWifi=exports.DeviceEvent=exports.default=void 0;var i=r(require(\"./device/BasicDevice\")),t=e(require(\"./device/WifiDevice\")),v=e(require(\"./darkmode/index\")),a=i.default;exports.default=a;var o=i.DeviceEvent;exports.DeviceEvent=o;var d=t.default;exports.IDeviceWifi=d;var u=i.BasicDevice;exports.IDevice=u;var c=v.default;exports.DarkMode=c;","miot-sdk/Device.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.RootDeviceProperties=exports.createProperties=void 0;var r=e(require(\"@babel/runtime/helpers/toConsumableArray\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),i=(function(){function e(){(0,t.default)(this,e)}return(0,n.default)(e,[{key:\"getProperty\",value:function(e){return this._properties.get(e)}},{key:\"setProperty\",value:function(e,r){return this._properties.set(e,r),this._status.set(e,!0),this}},{key:\"getPropertyNames\",value:function(){return this._properties.keys()}},{key:\"hasProperty\",value:function(e){return this._properties.has(e)}},{key:\"removeProperty\",value:function(e){return e?\"*\"==e?this.removeAllProperties():(this._properties.delete(e),this._status.delete(e),this):this}},{key:\"removeProperties\",value:function(){for(var e=this,r=arguments.length,t=new Array(r),n=0;n1&&void 0!==arguments[1]?arguments[1]:null;if(!e)return this;switch(typeof t){case'function':break;case'string':var n=t;t=function(e){return e.startsWith(n)?e.substring(n.length):e};break;default:t=function(e){return e}}return'Map'==e.constructor.name?e.forEach(function(e,n){r.setProperty(t(n),e)}):Object.keys(e).forEach(function(n){r.setProperty(t(n),e[n])}),this}},{key:\"addListener\",value:function(e,r){if(!r){if('function'!=typeof e)return{remove:function(){}};r=e,e=\"*\"}var t=Array.isArray(e)?e:e?[e]:null;if(!t||t.length<1||!t[0])return{remove:function(){}};var n={props:t,isAny:\"*\"==t[0],callback:r};this._listeners.add(n);var i=this;return{remove:function(){i._listeners.delete(n)}}}},{key:\"notifyPropertiesChanged\",value:function(){var e=this;if(this._listeners.size<1)return this;for(var t=arguments.length,n=new Array(t),i=0;i=0}))&&u(e,{getChangeProps:function(){var e=[];return s?e=o?(0,r.default)(this._properties):i:o?e=n:i.forEach(function(r){return n.indexOf(r)>=0?e.push(r):null}),e}})})},0),this}},{key:\"removeListeners\",value:function(){for(var e=this,r=arguments.length,t=new Array(r),n=0;n1&&void 0!==arguments[1]?arguments[1]:-1;return new Promise(function(r,o){p.default.KooKong.canControlWithType(e,t,function(e,t){e?r(t):o(t)})})}},{key:\"getCurrentValueWithType\",value:function(e,t){return new Promise(function(r,o){p.default.KooKong.getCurrentValueWithType(e,t,function(e,t){e?r(t):o(t)})})}},{key:\"getAllSupportValueWithType\",value:function(e,t){return new Promise(function(r,o){p.default.KooKong.getAllSupportValueWithType(e,t,function(e,t){e?r(t):o(t)})})}},{key:\"changeStateValueForType\",value:function(e,t,r){return new Promise(function(o,n){p.default.KooKong.changeStateValueForType(e,t,r,function(e,t){e?o(t):n(t)})})}}]),e})(),(0,n.default)(t.prototype,\"registerWithKey\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"registerWithKey\"),t.prototype),(0,n.default)(t.prototype,\"createZipACManager\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"createZipACManager\"),t.prototype),(0,n.default)(t.prototype,\"createNonACManager\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"createNonACManager\"),t.prototype),(0,n.default)(t.prototype,\"removeACManager\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"removeACManager\"),t.prototype),(0,n.default)(t.prototype,\"canControlWithType\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"canControlWithType\"),t.prototype),(0,n.default)(t.prototype,\"getCurrentValueWithType\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCurrentValueWithType\"),t.prototype),(0,n.default)(t.prototype,\"getAllSupportValueWithType\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"getAllSupportValueWithType\"),t.prototype),(0,n.default)(t.prototype,\"changeStateValueForType\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"changeStateValueForType\"),t.prototype),t);exports.default=u;","miot-sdk/service/kookong.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.BleSpecOpCode=void 0;var r,o=e(require(\"@babel/runtime/helpers/createClass\")),p=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),u=t(require(\"../../native\")),n=require(\"../../decorator/ReportDecorator\"),a=function e(){(0,i.default)(this,e)};exports.BleSpecOpCode=a,a.set_properties=0,a.set_properties_rsp=1,a.get_properties=2,a.get_properties_rsp=3,a.properties_changed=4,a.action=5,a.action_rsp=6,a.event_occured=7;var s=new(r=(function(){function e(){(0,i.default)(this,e)}return(0,o.default)(e,[{key:\"doSpecOperation\",value:function(e,t,r){return new Promise(function(o,p){u.default.MIOTBluetooth.doSpecOperation(e,t,r,function(e,t){e?o(t):p(t)})})}},{key:\"setPropertiesValue\",value:function(e,t){return this.doSpecOperation(e,a.set_properties,t)}},{key:\"getPropertiesValue\",value:function(e,t){return this.doSpecOperation(e,a.get_properties,t)}},{key:\"doAction\",value:function(e,t){return this.doSpecOperation(e,a.action,t)}}]),e})(),(0,p.default)(r.prototype,\"setPropertiesValue\",[n.report],Object.getOwnPropertyDescriptor(r.prototype,\"setPropertiesValue\"),r.prototype),(0,p.default)(r.prototype,\"getPropertiesValue\",[n.report],Object.getOwnPropertyDescriptor(r.prototype,\"getPropertiesValue\"),r.prototype),(0,p.default)(r.prototype,\"doAction\",[n.report],Object.getOwnPropertyDescriptor(r.prototype,\"doAction\"),r.prototype),r);exports.default=s;","miot-sdk/device/bluetooth/blespec.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ClassicBluetoothEvent=exports.default=void 0;var t=e(require(\"./device/bluetooth/ClassicDevice\")),r=t.default;exports.default=r;var o=t.ClassicBluetoothEvent;exports.ClassicBluetoothEvent=o;","miot-sdk/ClassicBluetooth.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,i=e(require(\"@babel/runtime/helpers/objectSpread\")),o=e(require(\"@babel/runtime/helpers/classCallCheck\")),c=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),s=t(require(\"./../native\")),u=require(\"./BasicDevice\"),p=require(\"../decorator/ReportDecorator\"),l=(r=(function(){function e(t,r){(0,o.default)(this,e),s.Properties.of(this).did=t,s.Properties.of(this).originDevice=r}return(0,c.default)(e,[{key:\"getSubDevices\",value:function(){var e=this,t=(0,u._find_device)(this.deviceID).device,r=s.Properties.of(t);return r.parentDevice&&Object.keys(r.parentDevice).length>0?Promise.reject('parent device exist, current device is a sub device, can not load sub devices'):r._subDevices?Promise.resolve(r._subDevices):new Promise(function(t,o){s.isIOS?s.default.MIOTDevice.loadSubDevices(e.deviceID,function(c,n){c&&n?(console.log(\"devices:\",n),r._subDevices=n.map(function(t){return s.Properties.init(new u.BasicDevice,(0,i.default)({},t,{_parentDeviceID:e.deviceID,_parentDevice:e.originDevice,_msgset:new Set,_pollMsgSet:new u.PollPropMap}))}),t(r._subDevices)):o(n)}):s.default.MIOTDevice.loadSubDevices(e.deviceID,function(c){c&&c.ok&&c.result?(console.log(\"devices:\",c),r._subDevices=c.result.map(function(t){return s.Properties.init(new u.BasicDevice,(0,i.default)({},t,{_parentDeviceID:e.deviceID,_parentDevice:e,_msgset:new Set,_pollMsgSet:new u.PollPropMap}))}),t(r._subDevices)):o(c)})})}},{key:\"supportModelToConnect\",value:function(){}},{key:\"getLinkedBTDevices\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e=e||this.deviceID,new Promise(function(t,r){s.default.MIOTDevice.getLinkedBTDevices(e,function(e,i){if(!e||!i)return r({code:-1,error:i,extra:'fetch bledevice info failed'});t(i)})})}},{key:\"deviceID\",get:function(){return s.Properties.of(this).did}},{key:\"originDevice\",get:function(){return s.Properties.of(this).originDevice}}]),e})(),(0,n.default)(r.prototype,\"getSubDevices\",[p.report],Object.getOwnPropertyDescriptor(r.prototype,\"getSubDevices\"),r.prototype),(0,n.default)(r.prototype,\"supportModelToConnect\",[p.report],Object.getOwnPropertyDescriptor(r.prototype,\"supportModelToConnect\"),r.prototype),(0,n.default)(r.prototype,\"getLinkedBTDevices\",[p.report],Object.getOwnPropertyDescriptor(r.prototype,\"getLinkedBTDevices\"),r.prototype),r);exports.default=l;","miot-sdk/device/gateway.js"],["'use strict';var e=require('react-native/Libraries/Image/AssetRegistry'),t=require('react-native').NativeModules,r=require('./resolve');t.MIOTPackage&&r(t.MIOTPackage.basePath,t.MIOTPackage.localFilePath,t.MIOTPackage.plugPath),module.exports={registerAsset:function(t){return t._miot_base_bundle=!0,e.registerAsset(t)},getAssetByID:function(t){return e.getAssetByID(t)}};","miot-sdk/native/common/node/assets.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=e(require(\"@babel/runtime/helpers/classCallCheck\")),t=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=e(require(\"@babel/runtime/helpers/inherits\"));require(\"gl-react-native\"),require(\"react-navigation\"),require(\"react-native-ui-kitten\"),require(\"victory-native\"),require(\"react-native-svg\"),require(\"rmc-date-picker\");var u=require(\"react-native\"),l=e(require(\"react\"));require(\"deprecated-react-native-listview\"),require(\"react-native/Libraries/Components/StatusBar/StatusBar.js\"),require(\"react-native/Libraries/ART/ReactNativeART\"),require(\"react-native-orientation\"),require(\"intl\"),require(\"intl-messageformat\"),require(\"gl-react\"),require(\"react-native-safe-area-view\"),require(\"react-native/Libraries/ReactNative/I18nManager\"),require(\"react-native/Libraries/Components/Touchable/TouchableHighlight\"),require(\"react-native/Libraries/Linking/Linking\"),require(\"gl-react-blur\"),require(\"react-native-progress\"),require(\"react-native-swiper\"),require(\"react-navigation/src/routers/StackRouter\"),require(\"react-navigation/src/createNavigationContainer\"),require(\"react-navigation/src/navigators/createSwitchNavigator\"),require(\"react-navigation-stack/dist/navigators/createContainedStackNavigator\"),require(\"react-native-sqlite-storage\"),require(\"miot\"),require(\"miot/ui\"),require(\"intl/locale-data/jsonp/en\"),require(\"intl/locale-data/jsonp/zh-Hans\"),require(\"intl/locale-data/jsonp/zh-Hant\"),require(\"intl/locale-data/jsonp/ko-KR\"),console.log('PluginStartTime',Date.now(),'endParseJsSDK');var c=(function(e){function c(){return(0,r.default)(this,c),(0,i.default)(this,(0,a.default)(c).apply(this,arguments))}return(0,n.default)(c,e),(0,t.default)(c,[{key:\"render\",value:function(){return l.default.createElement(u.Text,{style:{color:\"#000\",fontSize:40,flex:1,justifyContent:'center',textAlign:\"center\",textAlignVertical:\"center\"}},\" loading \")}}]),c})(l.default.Component);u.AppRegistry.registerComponent(\"sdk\",function(){return c});","miot-sdk/native/plugin/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.XimalayaEvent=exports.XimalayaRequest=void 0;var a,r=e(require(\"@babel/runtime/helpers/classCallCheck\")),o=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),p=require(\"react-native\"),i=t(require(\"./index\")),y=require(\"../decorator/ReportDecorator\"),c={CategoriesList:0,TagsList:1,AlbumsList:2,AlbumsBrowse:3,AlbumsBatch:4,AlbumsUpdateBatch:5,TracksHot:6,TracksBatch:7,TrackGetLastPlay:8,MetadataList:9,MetadataAlbums:10,LiveProvince:11,LiveRadio:12,LiveSchedule:13,LiveProgram:14,LiveCity:15,LiveRadioOfCity:16,LiveRadioByID:17,LiveRadioCategories:18,LiveGetRadiosByCategory:19,SearchAlbums:20,SearchTracks:21,SearchHotWords:22,SearchSuggestWords:23,SearchRadios:24,SearchAll:25,SearchAnnouncers:26,AlbumsRelative:27,TracksRelativeAlbum:28,AlbumsRecommendDownload:29,AlbumsGuessLike:30,DiscoveryRecommendAlbums:31,CategoryRecommendAlbums:32,RankList:33,RankAlbum:34,RankTrack:35,RankRadio:36,ColumnList:37,ColumnDetail:38,RankBanner:39,DiscoveryBanner:40,CategoryBanner:41};exports.XimalayaRequest=c,Object.freeze(c);var u={TrackPlayerDelegate:{addListener:function(e){return p.DeviceEventEmitter.addListener('MHEventXimalayaTrackPlayerDelegate',e)}},LivePlayerDelegate:{addListener:function(e){return p.DeviceEventEmitter.addListener('MHEventXimalayaLivePlayerDelegate',e)}}};exports.XimalayaEvent=u,Object.freeze(u);var n=new(a=(function(){function e(){(0,r.default)(this,e)}return(0,o.default)(e,[{key:\"registry\",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"\";return i.isAndroid?new Promise(function(a){i.default.MIOTXimalaya.registry(e,t,r),a(\"finish\")}):new Promise(function(r,o){-1!=a?i.default.MIOTXimalaya.registerForMiHomeWithType(a,function(e){e.reqOK?r(e):o(e)}):i.default.MIOTXimalaya.registry(e,t,function(e){e.reqOK?r(e):o(e)})})}},{key:\"request\",value:function(e,t){return new Promise(function(a,r){i.default.MIOTXimalaya.requestXMData(e,t,function(e,t){t?r(t):a(e)})})}},{key:\"requestByAndroid\",value:function(e,t,a){return new Promise(function(r,o){i.default.MIOTXimalaya.requestXMData(e,t,a,function(e,t){t?o(t):r(e)})})}},{key:\"setPlayMode\",value:function(e){i.default.MIOTXimalaya.setPlayMode(e)}},{key:\"setVolume\",value:function(e){i.default.MIOTXimalaya.setVolume(e)}},{key:\"playWithTrack\",value:function(e,t){i.default.MIOTXimalaya.playWithTrack(e,t)}},{key:\"pauseTrackPlay\",value:function(){i.default.MIOTXimalaya.pauseTrackPlay()}},{key:\"resumeTrackPlay\",value:function(){i.default.MIOTXimalaya.resumeTrackPlay()}},{key:\"stopTrackPlay\",value:function(){i.default.MIOTXimalaya.stopTrackPlay()}},{key:\"replacePlayList\",value:function(e){i.default.MIOTXimalaya.replacePlayList(e)}},{key:\"playNextTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.playNextTrackWithCallback(e)}},{key:\"playPrevTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.playPrevTrackWithCallback(e)}},{key:\"setAutoNexTrack\",value:function(e){i.default.MIOTXimalaya.setAutoNexTrack(e)}},{key:\"playListWithCallback\",value:function(e){i.default.MIOTXimalaya.playListWithCallback(e)}},{key:\"nextTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.nextTrackWithCallback(e)}},{key:\"prevTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.prevTrackWithCallback(e)}},{key:\"seekToTime\",value:function(e){i.default.MIOTXimalaya.seekToTime(e)}},{key:\"clearCacheSafely\",value:function(){i.default.MIOTXimalaya.clearCacheSafely()}},{key:\"setTrackPlayMode\",value:function(e){i.default.MIOTXimalaya.setTrackPlayMode(e)}},{key:\"currentTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.currentTrackWithCallback(e)}},{key:\"startLivePlayWithRadio\",value:function(e){i.default.MIOTXimalaya.startLivePlayWithRadio(e)}},{key:\"pauseLivePlay\",value:function(){i.default.MIOTXimalaya.pauseLivePlay()}},{key:\"resumeLivePlay\",value:function(){i.default.MIOTXimalaya.resumeLivePlay()}},{key:\"stopLivePlay\",value:function(){i.default.MIOTXimalaya.stopLivePlay()}},{key:\"startHistoryLivePlayWithRadio\",value:function(e,t){i.default.MIOTXimalaya.startHistoryLivePlayWithRadio(e,t)}},{key:\"startHistoryLivePlayWithRadioInProgramList\",value:function(e,t,a){i.default.MIOTXimalaya.startHistoryLivePlayWithRadioInProgramList(e,t,a)}},{key:\"seekHistoryLivePlay\",value:function(e,t){i.default.MIOTXimalaya.seekHistoryLivePlay(e,t)}},{key:\"playNextProgram\",value:function(){i.default.MIOTXimalaya.playNextProgram()}},{key:\"playPreProgram\",value:function(){i.default.MIOTXimalaya.playPreProgram()}},{key:\"forceClearCacheDataForPath\",value:function(e,t){i.default.MIOTXimalaya.forceClearCacheDataForPath(e,t)}},{key:\"currentPlayingRadioWithCallback\",value:function(e){i.default.MIOTXimalaya.currentPlayingRadioWithCallback(e)}},{key:\"currentPlayingProgramWithCallback\",value:function(e){i.default.MIOTXimalaya.currentPlayingProgramWithCallback(e)}}]),e})(),(0,l.default)(a.prototype,\"registry\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"registry\"),a.prototype),(0,l.default)(a.prototype,\"request\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"request\"),a.prototype),(0,l.default)(a.prototype,\"requestByAndroid\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"requestByAndroid\"),a.prototype),(0,l.default)(a.prototype,\"setPlayMode\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"setPlayMode\"),a.prototype),(0,l.default)(a.prototype,\"setVolume\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"setVolume\"),a.prototype),(0,l.default)(a.prototype,\"playWithTrack\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playWithTrack\"),a.prototype),(0,l.default)(a.prototype,\"pauseTrackPlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"pauseTrackPlay\"),a.prototype),(0,l.default)(a.prototype,\"resumeTrackPlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"resumeTrackPlay\"),a.prototype),(0,l.default)(a.prototype,\"stopTrackPlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"stopTrackPlay\"),a.prototype),(0,l.default)(a.prototype,\"replacePlayList\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"replacePlayList\"),a.prototype),(0,l.default)(a.prototype,\"playNextTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playNextTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"playPrevTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playPrevTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"setAutoNexTrack\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"setAutoNexTrack\"),a.prototype),(0,l.default)(a.prototype,\"playListWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playListWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"nextTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"nextTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"prevTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"prevTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"seekToTime\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"seekToTime\"),a.prototype),(0,l.default)(a.prototype,\"clearCacheSafely\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"clearCacheSafely\"),a.prototype),(0,l.default)(a.prototype,\"setTrackPlayMode\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"setTrackPlayMode\"),a.prototype),(0,l.default)(a.prototype,\"currentTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"currentTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"startLivePlayWithRadio\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"startLivePlayWithRadio\"),a.prototype),(0,l.default)(a.prototype,\"pauseLivePlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"pauseLivePlay\"),a.prototype),(0,l.default)(a.prototype,\"resumeLivePlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"resumeLivePlay\"),a.prototype),(0,l.default)(a.prototype,\"stopLivePlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"stopLivePlay\"),a.prototype),(0,l.default)(a.prototype,\"startHistoryLivePlayWithRadio\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"startHistoryLivePlayWithRadio\"),a.prototype),(0,l.default)(a.prototype,\"startHistoryLivePlayWithRadioInProgramList\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"startHistoryLivePlayWithRadioInProgramList\"),a.prototype),(0,l.default)(a.prototype,\"seekHistoryLivePlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"seekHistoryLivePlay\"),a.prototype),(0,l.default)(a.prototype,\"playNextProgram\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playNextProgram\"),a.prototype),(0,l.default)(a.prototype,\"playPreProgram\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playPreProgram\"),a.prototype),(0,l.default)(a.prototype,\"forceClearCacheDataForPath\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"forceClearCacheDataForPath\"),a.prototype),(0,l.default)(a.prototype,\"currentPlayingRadioWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"currentPlayingRadioWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"currentPlayingProgramWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"currentPlayingProgramWithCallback\"),a.prototype),a);exports.default=n;","miot-sdk/native/xmly.js"],["","miot-sdk/service/alarmPhone.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),r=e(require(\"@babel/runtime/helpers/createClass\")),s=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=e(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"prop-types\")),a=e(require(\"react\")),c=require(\"react-native\"),u=require(\"react-native-ui-kitten\"),d=require(\"../resources\"),p=require(\"../utils/accessibility-helper\"),b=c.Dimensions.get('window'),f=b.width,y=.2*b.height,m=require('../resources/images/blank_page_icon.png'),h={BUTTON:'button',UNDERLINE:'underline'};Object.freeze(h);var g=(function(e){function o(){return(0,i.default)(this,o),(0,s.default)(this,(0,n.default)(o).apply(this,arguments))}return(0,l.default)(o,e),(0,r.default)(o,[{key:\"renderCenter\",value:function(){return a.default.createElement(c.View,{style:x.center},a.default.createElement(c.View,{style:x.imageContainer},a.default.createElement(c.Image,{source:this.props.icon,style:[x.image,this.props.iconStyle],resizeMode:\"contain\"})),a.default.createElement(c.Text,{numberOfLines:1,style:x.message||''},this.props.message),this.props.desc?a.default.createElement(c.Text,{numberOfLines:3,style:[x.desc,{marginTop:10}]},this.props.desc||''):null)}},{key:\"renderBottom\",value:function(){var e=this;if(this.props.type===h.UNDERLINE){var i=this.props.underline,r=i.text,s=i.callback,n=i.textStyle;return a.default.createElement(c.View,{style:[x.bottom,{marginBottom:40}]},a.default.createElement(c.Text,(0,t.default)({onPress:function(){return e.onPress(s)},numberOfLines:1,style:[x.desc,{textDecorationLine:'underline',color:d.Styles.common.MHGreen,textAlign:'center'},n]},(0,p.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:p.AccessibilityRoles.link,accessibilityLabel:r,accessibilityHint:this.props.accessibilityHint})),r))}var l={};'android'===c.Platform.OS&&(l={fontFamily:'Kmedium'});var o=this.props.button,b=o.text,f=o.callback,y=o.buttonStyle,m=o.textStyle;return a.default.createElement(c.View,{style:x.bottom},this.props.extraInfo?a.default.createElement(c.Text,(0,t.default)({numberOfLines:2,style:x.desc},(0,p.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:p.AccessibilityRoles.text,accessibilityLabel:this.props.extraInfo,accessibilityHint:this.props.accessibilityHint})),this.props.extraInfo):null,a.default.createElement(u.RkButton,(0,t.default)({style:[x.buttonContainer,y],onPress:function(){return e.onPress(f)},activeOpacity:.8},(0,p.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:p.AccessibilityRoles.button,accessibilityLabel:b,accessibilityHint:this.props.accessibilityHint})),a.default.createElement(c.Text,{style:[x.buttonText,l,m]},b)))}},{key:\"onPress\",value:function(e){'function'==typeof e?e():__DEV__&&console.warn&&console.warn('\\u8bf7\\u4f20\\u5165\\u6709\\u6548\\u7684\\u70b9\\u51fb\\u56de\\u8c03\\u51fd\\u6570')}},{key:\"render\",value:function(){return a.default.createElement(c.View,{style:x.container},this.renderCenter(),a.default.createElement(c.View,{style:{flex:1}}),this.renderBottom())}}]),o})(a.default.Component);exports.default=g,g.propTypes={type:o.default.oneOf([h.BUTTON,h.UNDERLINE]),icon:o.default.any,underline:o.default.object,button:o.default.object,iconStyle:c.ViewPropTypes.style,message:o.default.string.isRequired,desc:o.default.string,extraInfo:o.default.string,accessible:p.AccessibilityPropTypes.accessible,accessibilityHint:p.AccessibilityPropTypes.accessibilityHint},g.defaultProps={type:h.BUTTON,underline:{},button:{},icon:m},g.TYPE=h;var x=c.StyleSheet.create({container:{backgroundColor:'#f7f7f7',flex:1,width:f},center:{marginTop:y,width:f,alignItems:'center'},imageContainer:{width:138,height:138,alignItems:'center'},image:{width:84,height:114,marginTop:5},message:{width:f,fontSize:15,color:'#999',textAlign:'center'},desc:{width:f,paddingHorizontal:40,fontSize:13,color:'#999',lineHeight:18},bottom:{width:f,marginBottom:20},buttonContainer:{width:f-2*d.Styles.common.padding,height:42,borderRadius:5,marginTop:21,backgroundColor:d.Styles.common.MHGreen,marginHorizontal:d.Styles.common.padding},buttonText:{flex:1,fontSize:13,fontWeight:'bold',textAlign:'center',color:'#ffffff',lineHeight:18}});","miot-sdk/ui/BlankPage.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.MISSAudioChannel=exports.MISSDataBits=exports.MISSSampleRate=exports.MISSCodec=void 0;var a,r,t,o=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),d=e(require(\"@babel/runtime/helpers/createClass\")),u=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=e(require(\"@babel/runtime/helpers/inherits\")),c=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),p=e(require(\"prop-types\")),m=e(require(\"react\")),f=require(\"react-native\"),M=require(\"miot\"),O=require(\"../decorator/ReportDecorator\"),C=(0,f.requireNativeComponent)('MHCameraOpenGLView'),S={MISS_CODEC_VIDEO_H264:4,MISS_CODEC_VIDEO_H265:5,MISS_CODEC_AUDIO_G711A:1027,MISS_CODEC_AUDIO_AAC:1030};exports.MISSCodec=S,Object.freeze(S);var A={FLAG_AUDIO_SAMPLE_8K:0,FLAG_AUDIO_SAMPLE_16K:3};exports.MISSSampleRate=A,Object.freeze(A);var _={FLAG_AUDIO_DATABITS_8:0,FLAG_AUDIO_DATABITS_16:1};exports.MISSDataBits=_,Object.freeze(_);var I={FLAG_AUDIO_CHANNEL_MONO:0,FLAG_AUDIO_CHANNEL_STERO:1};exports.MISSAudioChannel=I,Object.freeze(I);var L=(t=r=(function(e){function a(){return(0,i.default)(this,a),(0,u.default)(this,(0,s.default)(a).apply(this,arguments))}return(0,l.default)(a,e),(0,d.default)(a,[{key:\"render\",value:function(){var e=this,a=this.props.did||M.Device.deviceID;return m.default.createElement(C,(0,n.default)({ref:function(a){e.cameraGLView=a},did:a},this.props))}},{key:\"startRender\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.startRender,[]):f.NativeModules.MHCameraOpenGLViewManager.startRender((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"stopRender\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.stopRender,[]):f.NativeModules.MHCameraOpenGLViewManager.stopRender((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"startAudioPlay\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.startAudioPlay,[]):f.NativeModules.MHCameraOpenGLViewManager.startAudioPlay((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"stopAudioPlay\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.stopAudioPlay,[]):f.NativeModules.MHCameraOpenGLViewManager.stopAudioPlay((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"startAudioRecord\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.startAudioRecord,[]):f.NativeModules.MHCameraOpenGLViewManager.startAudioRecord((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"stopAudioRecord\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.stopAudioRecord,[]):f.NativeModules.MHCameraOpenGLViewManager.stopAudioRecord((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"hidesSurfaceView\",value:function(){'android'===f.Platform.OS&&f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.hidesSurfaceView,[])}},{key:\"startRecord\",value:function(e,a){var r=this,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:M.Device.deviceID;return'android'===f.Platform.OS?new Promise(function(o,n){f.NativeModules.MHCameraSDK.startRecord(t,e,a,r.props.videoCodec,r.props.audioRecordSampleRate,function(e,a){e?o(a):n(a)})}):new Promise(function(t,o){f.NativeModules.MHCameraOpenGLViewManager.startRecord((0,f.findNodeHandle)(r.cameraGLView),e,a,function(e,a){e?t(a):o(a)})})}},{key:\"stopRecord\",value:function(){var e=this,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:M.Device.deviceID;return'android'===f.Platform.OS?new Promise(function(e,r){f.NativeModules.MHCameraSDK.stopRecord(a,function(a,t){a?e(t):r(t)})}):new Promise(function(a,r){f.NativeModules.MHCameraOpenGLViewManager.stopRecord((0,f.findNodeHandle)(e.cameraGLView),function(e,t){e?a(t):r(t)})})}},{key:\"snapShot\",value:function(e){var a=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:M.Device.deviceID;return'android'===f.Platform.OS?new Promise(function(a,t){f.NativeModules.MHCameraSDK.snapShot(r,e,function(e){e?(console.log('snapShot success!'),a()):(console.log('snapShot failed!'),t())})}):new Promise(function(r,t){f.NativeModules.MHCameraOpenGLViewManager.snapShot((0,f.findNodeHandle)(a.cameraGLView),e,function(e){e?r():t()})})}}]),a})(m.default.Component),r.propTypes=(0,o.default)({videoCodec:p.default.oneOf([S.MISS_CODEC_VIDEO_H264,S.MISS_CODEC_VIDEO_H265]),audioCodec:p.default.oneOf([S.MISS_CODEC_AUDIO_G711A,S.MISS_CODEC_AUDIO_AAC]),audioRecordSampleRate:p.default.oneOf([A.FLAG_AUDIO_SAMPLE_8K,A.FLAG_AUDIO_SAMPLE_16K]),audioRecordChannel:p.default.oneOf([I.FLAG_AUDIO_CHANNEL_MONO,I.FLAG_AUDIO_CHANNEL_STERO]),audioRecordDataBits:p.default.oneOf([_.FLAG_AUDIO_DATABITS_8,_.FLAG_AUDIO_DATABITS_16]),videoRate:p.default.number,maximumZoomScale:p.default.number,minimumZoomScale:p.default.number,scale:p.default.number,useLenCorrent:p.default.bool,correctRadius:p.default.number,osdx:p.default.number,osdy:p.default.number,fullscreenState:p.default.bool,forceSoftDecode:p.default.bool,onVideoClick:p.default.func},f.ViewPropTypes),a=t,(0,c.default)(a.prototype,\"startRecord\",[O.report],Object.getOwnPropertyDescriptor(a.prototype,\"startRecord\"),a.prototype),(0,c.default)(a.prototype,\"stopRecord\",[O.report],Object.getOwnPropertyDescriptor(a.prototype,\"stopRecord\"),a.prototype),a);exports.default=L;","miot-sdk/ui/CameraRenderView.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),r=e(require(\"@babel/runtime/helpers/createClass\")),s=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=e(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"prop-types\")),d=e(require(\"react\")),u=require(\"react-native\"),n=require(\"react-native-shadow\"),c=e(require(\"./CardBase\")),h=require(\"../../utils/accessibility-helper\"),p=require(\"../../decorator/ReportDecorator\"),b={HEIGHT:66,WIDTH:u.Dimensions.get('window').width-30,RADIUS:8,MARGIN_TOP:{marginTop:15}},f=(function(e){function o(e,t){var r;return(0,i.default)(this,o),r=(0,s.default)(this,(0,a.default)(o).call(this,e,t)),(0,p.referenceReport)('Card'),r.state={showShadow:r.props.visible&&r.props.showShadow},r}return(0,l.default)(o,e),(0,r.default)(o,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){var t=this;!1!==e.showShadow&&e.visible!==this.props.visible&&(!1===e.visible?this.setState({showShadow:!1}):!0===e.visible&&setTimeout(function(){return t.setState({showShadow:!0})},250))}},{key:\"renderCardIOS\",value:function(){var e=this.props.showShadow?{position:'relative',shadowColor:this.props.shadowColor,shadowOpacity:this.props.shadowOpacity,shadowOffset:{width:0,height:8}}:{},i=u.StyleSheet.flatten([{},b.MARGIN_TOP,this.props.cardStyle,e]);return d.default.createElement(c.default,(0,t.default)({},this.props,{cardStyle:i}))}},{key:\"renderCardAndroid\",value:function(){if(this.state.showShadow){var e=this.props.cardStyle,i=e.width,r=e.height,s=e.borderRadius,a=this.getCorrectStyle(),l=a.shadowAndroidStyle,o=a.cardStyle,h={width:i||b.WIDTH,height:r||b.HEIGHT,radius:s||b.RADIUS,color:this.props.shadowColor,border:10,opacity:this.props.shadowOpacity,x:0,y:6,style:l};return d.default.createElement(n.BoxShadow,{setting:h},d.default.createElement(c.default,(0,t.default)({},this.props,{cardStyle:o})))}var p=u.StyleSheet.flatten([{},b.MARGIN_TOP,this.props.cardStyle]);return d.default.createElement(c.default,(0,t.default)({},this.props,{cardStyle:p}))}},{key:\"getCorrectStyle\",value:function(){var e=this,i=(0,t.default)({},b.MARGIN_TOP),r={};return Object.keys(this.props.cardStyle).forEach(function(t){t.toString().startsWith('margin')?i[t]=e.props.cardStyle[t]:r[t]=e.props.cardStyle[t]}),{shadowAndroidStyle:i,cardStyle:r}}},{key:\"render\",value:function(){return u.Platform.select({android:this.renderCardAndroid(),ios:this.renderCardIOS()})}}]),o})(d.default.Component);exports.default=f,f.propTypes={innerView:o.default.object,icon:o.default.number,text:o.default.string,visible:o.default.bool,showDismiss:o.default.bool,disabled:o.default.bool,dismiss:o.default.func,showShadow:o.default.bool,onPress:o.default.func,cardStyle:o.default.object,iconStyle:o.default.object,textStyle:o.default.object,underlayColor:o.default.string,shadowColor:o.default.string,shadowOpacity:o.default.number,unlimitedHeightEnable:o.default.bool,allowFontScaling:o.default.bool,numberOfLines:o.default.number,accessible:h.AccessibilityPropTypes.accessible,accessibilityLabel:h.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:h.AccessibilityPropTypes.accessibilityHint,dismissAccessibilityLabel:h.AccessibilityPropTypes.accessibilityLabel,dismissAccessibilityHint:h.AccessibilityPropTypes.accessibilityHint},f.defaultProps={visible:!0,showDismiss:!1,disabled:!1,showShadow:!0,cardStyle:{},shadowColor:'#000',shadowOpacity:.03,unlimitedHeightEnable:!1,allowFontScaling:!0};","miot-sdk/ui/Card/Card.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),r=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"prop-types\")),o=e(require(\"react\")),c=require(\"react-native\"),u=require(\"../../resources\"),d=require(\"../../utils/accessibility-helper\"),p=require(\"../../decorator/ReportDecorator\"),b={MARGIN_H:15,HEIGHT:66,WIDTH:c.Dimensions.get('window').width-30,ICON_SIZE:35,CLOSE_AREA:30,CLOSE_SIZE:20},h=(function(e){function n(e,i){var s;(0,t.default)(this,n),(s=(0,l.default)(this,(0,a.default)(n).call(this,e,i))).onAccessibilityAction=function(e){var i=e.nativeEvent.actionName,t=s.props,l=t.disabled,a=t.onPress;l||a&&'activate'===i&&a()},(0,p.referenceReport)('CardBase');var r=s.props.cardStyle,o=r.height,u=r.marginTop;s.cardHeight=o||b.HEIGHT;var d=s.props.visible?1:0;return s.height=new c.Animated.Value(d),s.opacity=new c.Animated.Value(d),s.marginTop=u||0,s}return(0,r.default)(n,e),(0,s.default)(n,[{key:\"componentDidMount\",value:function(){var e=this;this.height.addListener(function(i){e.refCard&&e.refCard.setNativeProps({marginTop:e.marginTop*i.value})})}},{key:\"renderInner\",value:function(){if(void 0===this.props.innerView){var e=this.props,t=e.icon,s=e.text,l=e.iconStyle,a=e.textStyle,r=void 0==this.props.numberOfLines?1:this.props.numberOfLines;return r<0&&(r=0),o.default.createElement(c.Animated.View,(0,i.default)({style:[y.innerContainer,{opacity:this.opacity}]},(0,d.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:this.props.onPress?d.AccessibilityRoles.button:d.AccessibilityRoles.text,accessibilityHint:this.props.accessibilityHint||(this.props.onPress?s:''),accessibilityState:{disabled:!!this.props.disabled}}),{accessibilityActions:[{name:'activate'}],onAccessibilityAction:this.onAccessibilityAction}),t?o.default.createElement(c.Image,(0,i.default)({style:[y.innerIcon,l],source:t,resizeMode:\"contain\"},(0,d.getAccessibilityConfig)({accessible:!1}))):null,o.default.createElement(c.Text,(0,i.default)({style:[y.innerText,a],numberOfLines:r,ellipsizeMode:\"tail\",allowFontScaling:this.props.allowFontScaling},(0,d.getAccessibilityConfig)({accessible:!0})),s||''))}return o.default.createElement(c.Animated.View,{style:[{flex:1},{opacity:this.opacity}]},this.props.innerView)}},{key:\"renderClose\",value:function(){var e=this;return this.props.showDismiss?o.default.createElement(c.TouchableHighlight,(0,i.default)({style:y.closeArea,underlayColor:\"transparent\",onPress:function(){return e.dismiss()}},(0,d.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:d.AccessibilityRoles.button,accessibilityLabel:this.props.dismissAccessibilityLabel||'close',accessibilityHint:this.props.dismissAccessibilityHint||'close'})),o.default.createElement(c.Animated.Image,{style:[y.close,{opacity:this.opacity}],source:u.Images.common.close})):null}},{key:\"getCorrectStyle\",value:function(e){var i={},t={};return Object.keys(e).forEach(function(s){s.toString().startsWith('margin')||'width'===s.toString()?i[s]=e[s]:t[s]=e[s]}),{animatedViewStyle:i,containerStyle:t}}},{key:\"render\",value:function(){var e=this,t=this.props.visible?1:0;this.props.visible?c.Animated.parallel([c.Animated.timing(this.opacity,{toValue:t,duration:125,easing:c.Easing.ease,delay:125}),c.Animated.timing(this.height,{toValue:t,duration:250,easing:c.Easing.ease})]).start():c.Animated.parallel([c.Animated.timing(this.height,{toValue:t,duration:250,easing:c.Easing.ease}),c.Animated.timing(this.opacity,{toValue:t,duration:100,easing:c.Easing.ease})],{stopTogether:!1}).start();var s=c.StyleSheet.flatten([y.container,this.props.cardStyle]),l=this.getCorrectStyle(s),a=l.animatedViewStyle,r=l.containerStyle;return o.default.createElement(c.Animated.View,{ref:function(i){e.refCard=i},style:[a,{opacity:this.opacity,height:this.props.unlimitedHeightEnable?void 0:this.height.interpolate({inputRange:[0,1],outputRange:[0,this.cardHeight]})}]},o.default.createElement(c.TouchableHighlight,(0,i.default)({style:[r,{flex:1}],underlayColor:this.props.underlayColor,disabled:this.props.disabled,onPress:this.props.onPress},(0,d.getAccessibilityConfig)({accessible:!1})),o.default.createElement(c.View,{style:{flex:1}},this.renderInner(),this.renderClose())))}},{key:\"dismiss\",value:function(){this.props.dismiss&&this.props.dismiss()}}]),n})(o.default.Component);exports.default=h,h.propTypes={innerView:n.default.object,icon:n.default.number,text:n.default.string,showDismiss:n.default.bool,disabled:n.default.bool,dismiss:n.default.func,visible:n.default.bool,onPress:n.default.func,cardStyle:n.default.object,iconStyle:n.default.object,textStyle:n.default.object,underlayColor:n.default.string,unlimitedHeightEnable:n.default.bool,allowFontScaling:n.default.bool,numberOfLines:n.default.number,accessible:d.AccessibilityPropTypes.accessible,accessibilityLabel:d.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:d.AccessibilityPropTypes.accessibilityHint,dismissAccessibilityLabel:d.AccessibilityPropTypes.accessibilityLabel,dismissAccessibilityHint:d.AccessibilityPropTypes.accessibilityHint},h.defaultProps={showDismiss:!1,disabled:!1,visible:!0,underlayColor:u.Styles.common.underlayColor,unlimitedHeightEnable:!1,allowFontScaling:!0};var y=c.StyleSheet.create({container:{width:b.WIDTH,backgroundColor:'#fff'},innerContainer:{flex:1,alignItems:'center',flexDirection:'row',paddingHorizontal:b.MARGIN_H},innerIcon:{width:b.ICON_SIZE,height:b.ICON_SIZE,marginRight:b.MARGIN_H},innerText:{flex:1,fontSize:14,color:'#000'},closeArea:{width:b.CLOSE_AREA,height:b.CLOSE_AREA,position:'absolute',top:0,right:0,justifyContent:'center',alignItems:'center'},close:{width:b.CLOSE_SIZE,height:b.CLOSE_SIZE}});","miot-sdk/ui/Card/CardBase.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/defineProperty\")),r=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"prop-types\")),c=e(require(\"react\")),u=require(\"react-native\"),d=require(\"../../resources\"),p=e(require(\"../Card\")),b=e(require(\"../Switch\")),h=require(\"../../utils/accessibility-helper\"),f=require(\"../../decorator/ReportDecorator\"),y={NORMAL:'normal',SWITCH:'switch'};Object.freeze(y);var g={ALL:'all',NONE:'none',TOP:'top',BOTTOM:'bottom'};Object.freeze(g);var m=u.Dimensions.get('window').width-20,T=80,w=u.Platform.select({android:26,ios:24}),S=(function(e){function n(e){var t,s;return(0,r.default)(this,n),(s=(0,l.default)(this,(0,a.default)(n).call(this,e))).onAccessibilityAction=function(e){var t=e.nativeEvent.actionName,i=s.props,r=i.disabled,l=i.cardType,a=i.onPress,o=i.onValueChange,n=i.switchValue;r||('activate'===t&&l===y.SWITCH&&'function'==typeof o&&o(!n),'activate'===t&&l===y.NORMAL&&'function'==typeof a&&a())},(0,f.referenceReport)('MHCard'),s.radiusStyle=(t={},(0,i.default)(t,g.ALL,{borderRadius:10}),(0,i.default)(t,g.NONE,{borderRadius:0}),(0,i.default)(t,g.TOP,{borderTopLeftRadius:10,borderTopRightRadius:10}),(0,i.default)(t,g.BOTTOM,{borderBottomLeftRadius:10,borderBottomRightRadius:10}),t)[s.props.cardRadiusType],s.cardStyle=u.StyleSheet.flatten([s.radiusStyle,{width:m,height:T,marginTop:s.props.marginTop}]),s}return(0,o.default)(n,e),(0,s.default)(n,[{key:\"renderInnerView\",value:function(){var e={opacity:this.props.disabled?.35:1},i=void 0==this.props.titleNumberOfLines?1:this.props.titleNumberOfLines;i<0&&(i=0);var r=void 0==this.props.subtitleNumberOfLines?1:this.props.subtitleNumberOfLines;r<0&&(r=0);var s=void 0==this.props.rightTextNumberOfLines?2:this.props.rightTextNumberOfLines;return s<0&&(s=0),c.default.createElement(u.View,(0,t.default)({style:[C.container,this.radiusStyle,e,this.props.style]},(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:this.props.cardType===y.SWITCH?h.AccessibilityRoles.switch:this.props.onPress?h.AccessibilityRoles.button:h.AccessibilityRoles.text,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:this.props.cardType===y.SWITCH?{disabled:!!this.props.disabled,checked:this.props.switchValue}:{disabled:!!this.props.disabled}}),{accessibilityActions:[{name:'activate'}],onAccessibilityAction:this.onAccessibilityAction}),c.default.createElement(u.View,{style:[C.iconContainer,this.props.iconContainerStyle]},c.default.createElement(u.Image,(0,t.default)({style:[C.icon,this.props.iconStyle],source:this.props.icon,resizeMode:\"contain\"},(0,h.getAccessibilityConfig)({accessible:!1})))),c.default.createElement(u.View,{style:C.textContainer},c.default.createElement(u.View,{style:C.titleContainer},c.default.createElement(u.Text,(0,t.default)({style:[d.Styles.common.title,this.props.unlimitedHeightEnable?{height:void 0,lineHeight:void 0}:{},this.props.titleStyle],numberOfLines:i},(0,h.getAccessibilityConfig)({accessible:!1})),this.props.title||''),this.props.subtitle?c.default.createElement(u.Text,(0,t.default)({style:[C.subtitle,this.props.unlimitedHeightEnable?{height:void 0,lineHeight:void 0}:{},this.props.subtitleStyle],numberOfLines:r},(0,h.getAccessibilityConfig)({accessible:!1})),this.props.subtitle):null),this.props.rightText?c.default.createElement(u.View,{style:{maxWidth:'33%'}},c.default.createElement(u.Text,(0,t.default)({style:[C.rightText,this.props.unlimitedHeightEnable?{height:void 0,lineHeight:void 0}:{},this.props.rightTextStyle],allowFontScaling:this.props.allowFontScaling,numberOfLines:s},(0,h.getAccessibilityConfig)({accessible:!1})),this.props.rightText||'')):null),this.renderRight())}},{key:\"renderRight\",value:function(){return this.props.cardType===y.NORMAL?this.props.hideArrow?null:c.default.createElement(u.Image,(0,t.default)({style:C.arrow,source:d.Images.common.right_arrow,resizeMode:\"contain\"},(0,h.getAccessibilityConfig)({accessible:!1}))):this.props.cardType===y.SWITCH?c.default.createElement(b.default,(0,t.default)({value:this.props.switchValue},this.props,(0,h.getAccessibilityConfig)({accessible:!1}))):void(__DEV__&&console.warn&&console.warn('cardType must be one of CARD_TYPE'))}},{key:\"render\",value:function(){var e=u.StyleSheet.flatten([this.cardStyle,this.props.allowFontScaling?{}:{height:void 0}]);return c.default.createElement(p.default,(0,t.default)({innerView:this.renderInnerView(),cardStyle:e},this.props))}}]),n})(c.default.Component);exports.default=S,S.propTypes={cardType:n.default.oneOf([y.NORMAL,y.SWITCH]),cardRadiusType:n.default.oneOf([g.ALL,g.NONE,g.TOP,g.BOTTOM]),style:n.default.object,iconContainerStyle:n.default.object,icon:n.default.number.isRequired,iconStyle:n.default.object,title:n.default.string.isRequired,titleStyle:n.default.object,subtitle:n.default.string,subtitleStyle:n.default.object,rightText:n.default.string,rightTextStyle:n.default.object,hideArrow:n.default.bool,onPress:n.default.func,switchValue:n.default.bool,onTintColor:n.default.string,tintColor:n.default.string,onValueChange:n.default.func,disabled:n.default.bool,visible:n.default.bool,showShadow:n.default.bool,marginTop:n.default.number,unlimitedHeightEnable:n.default.bool,allowFontScaling:n.default.bool,titleNumberOfLines:n.default.number,subtitleNumberOfLines:n.default.number,rightTextNumberOfLines:n.default.number,accessible:h.AccessibilityPropTypes.accessible,accessibilityLabel:h.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:h.AccessibilityPropTypes.accessibilityHint},S.defaultProps={cardType:y.NORMAL,cardRadiusType:g.ALL,icon:d.Images.common.mihome,hideArrow:!1,switchValue:!1,disabled:!1,visible:!0,showShadow:!1,marginTop:0,unlimitedHeightEnable:!1,allowFontScaling:!0},S.CARD_TYPE=y,S.CARD_RADIUS_TYPE=g;var C=u.StyleSheet.create({container:{flex:1,paddingHorizontal:20,backgroundColor:'#fff',flexDirection:'row',alignItems:'center'},iconContainer:{width:40,height:40,justifyContent:'center',alignItems:'center'},icon:{width:40,height:40,borderRadius:20},textContainer:{flex:1,flexDirection:'row',alignItems:'center',marginLeft:14},titleContainer:{flex:1,justifyContent:'center'},subtitle:{fontSize:12,lineHeight:16,color:'#666'},rightText:{paddingLeft:10,textAlign:'right',fontSize:16,color:'#000'},arrow:{width:w,height:w}});","miot-sdk/ui/Card/MHCard.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"./Card\")).default;exports.default=r;","miot-sdk/ui/Card/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i=t(require(\"@babel/runtime/helpers/defineProperty\")),r=t(require(\"@babel/runtime/helpers/extends\")),a=t(require(\"@babel/runtime/helpers/classCallCheck\")),s=t(require(\"@babel/runtime/helpers/createClass\")),o=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=t(require(\"@babel/runtime/helpers/inherits\")),d=t(require(\"prop-types\")),u=e(require(\"react\")),c=require(\"react-native\"),p=require(\"../../resources\"),b=t(require(\"./Card\")),f=require(\"../../utils/accessibility-helper\"),h=require(\"../../decorator/ReportDecorator\"),m=10,y=56,g=28,v=20,S={ALL:'all',NONE:'none',TOP:'top',BOTTOM:'bottom'},w=c.Dimensions.get('window').width,O=(function(e){function t(e){var s,n;(0,a.default)(this,t),(n=(0,o.default)(this,(0,l.default)(t).call(this,e))).createModesRN=function(){var e=n.props,t=e.modes,i=e.descriptionStyle,a=e.activeDescriptionStyle,s=e.accessible,o=t.length,l={},d={};return 4===o?(l={width:y=50,marginRight:33},d={width:y,height:y}):5===o&&(l={width:y=46,marginRight:17},d={width:y,height:y}),t.map(function(e,t){var b=e.isDisabled,h=e.isActive,m=e.icon,y=e.description,g=e.isPressing,v=e.accessibilityLabel,S=e.accessibilityHint,w=-1,O=1,R=null,q={},L={},C=1;if(b&&h?w=m.activeDisabled:b?(w=m.normal,O=.3):h?(w=m.active,L={color:p.Styles.common.MHGreen},(0,r.default)(L,a)):w=g?m.press:m.normal,b&&(C=.3),y&&o<5){var E=c.StyleSheet.flatten([T.description,n.props.unlimitedHeightEnable?{fontSize:void 0,lineHeight:void 0}:{}]),P=void 0==n.props.numberOfLines?1:n.props.numberOfLines;P<0&&(P=0),R=u.default.createElement(c.Text,{style:[E,i,L,{opacity:C}],numberOfLines:P},\" \",y)}return t===o-1&&(q={marginRight:0}),u.default.createElement(c.TouchableWithoutFeedback,(0,r.default)({key:t,onPressIn:function(){n.pressInIcon(t)},onPressOut:function(){n.pressOutIcon(t)}},(0,f.getAccessibilityConfig)({accessible:s,accessibilityRole:f.AccessibilityRoles.radio,accessibilityLabel:v||y,accessibilityHint:S,accessibilityState:{disabled:!!b,selected:!!h}})),u.default.createElement(c.View,{style:[T.mode,l,q]},u.default.createElement(c.Image,{style:[T.icon,{opacity:O},d],resizeMode:\"contain\",source:w}),R))})},n.pressInIcon=function(e){var t=n.props,i=t.pressIn,r=t.modesKey;i&&r&&i(e,r)},n.pressOutIcon=function(e){var t=n.props,i=t.pressOut,r=t.modesKey;i&&r&&i(e,r)},n.renderModeCard=function(){var e=n.props.modes.length,t={};return 4===e?t={paddingTop:g,paddingBottom:g}:5===e&&(t={paddingTop:v,paddingBottom:v}),u.default.createElement(c.View,{style:[T.card,n.radius,t]},u.default.createElement(c.View,{style:T.main},n.createModesRN()))},(0,h.referenceReport)('ModeCard'),n.cardWrapStyle={};var d=e.modes,b=d.length,w={height:116},O=d.some(function(e){return e.description});return 3===b&&O?w={height:140}:4!==b||O?4===b&&O?w={height:130}:5===b&&(w={height:86}):w={height:106},n.cardWrapStyle=w,n.radius=(s={},(0,i.default)(s,S.ALL,{borderRadius:m}),(0,i.default)(s,S.NONE,{borderRadius:0}),(0,i.default)(s,S.TOP,{borderTopLeftRadius:m,borderTopRightRadius:m}),(0,i.default)(s,S.BOTTOM,{borderBottomLeftRadius:m,borderBottomRightRadius:m}),s)[e.radiusType],n}return(0,n.default)(t,e),(0,s.default)(t,[{key:\"componentDidMount\",value:function(){}},{key:\"render\",value:function(){var e=this.props,t=e.showShadow,i=e.modeCardStyle,a={marginTop:0,width:w-20},s=(0,r.default)({},a,i,this.cardWrapStyle,this.radius,this.props.allowFontScaling?{}:{height:void 0});return u.default.createElement(b.default,{showShadow:t,disabled:!0,innerView:this.renderModeCard(),cardStyle:s,allowFontScaling:this.props.allowFontScaling,unlimitedHeightEnable:this.props.unlimitedHeightEnable,numberOfLines:this.props.numberOfLines})}}]),t})(u.Component);O.defaultProps={radiusType:'all',modes:[{description:'',icon:{},isDisabled:!1,isActive:!1,isPressing:!1}],pressIn:function(){},pressOut:function(){},modesKey:'',descriptionStyle:{},activeDescriptionStyle:{},showShadow:!0,modeCardStyle:{},unlimitedHeightEnable:!1,allowFontScaling:!0},O.propTypes={radiusType:d.default.string,modesKey:d.default.string,modes:d.default.arrayOf(d.default.shape({isDisabled:d.default.bool,isActive:d.default.bool,icon:d.default.shape({normal:d.default.any,press:d.default.any,active:d.default.any,activeDisabled:d.default.any}),description:d.default.string,isPressing:d.default.bool,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint})),pressIn:d.default.func,pressOut:d.default.func,descriptionStyle:d.default.object,activeDescriptionStyle:d.default.object,showShadow:d.default.bool,modeCardStyle:d.default.object,allowFontScaling:d.default.bool,unlimitedHeightEnable:d.default.bool,numberOfLines:d.default.number,accessible:f.AccessibilityPropTypes.accessible};var T=c.StyleSheet.create({card:{paddingTop:30,paddingBottom:30,backgroundColor:'white'},main:{flexDirection:'row',justifyContent:'center'},mode:{width:y,marginRight:40},icon:{width:y,height:y},description:{fontSize:13,color:'#7F7F7F',marginTop:10,textAlign:'center',lineHeight:14}}),R=O;exports.default=R;","miot-sdk/ui/Card/ModeCard.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"./Checkbox\")).default;exports.default=r;","miot-sdk/ui/Checkbox/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.secondAllOptions=exports.firstAllOptions=exports.SETTING_KEYS=exports.AllOptions=void 0;var t,i,n,o=e(require(\"@babel/runtime/helpers/extends\")),l=e(require(\"@babel/runtime/helpers/toConsumableArray\")),r=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/createClass\")),c=e(require(\"@babel/runtime/helpers/inherits\")),p=e(require(\"@babel/runtime/helpers/defineProperty\")),d=e(require(\"@babel/runtime/helpers/objectSpread\")),f=require(\"miot\"),m=e(require(\"prop-types\")),E=e(require(\"react\")),S=require(\"react-native\"),g=require(\"react-native-ui-kitten\"),y=require(\"../../resources\"),h=e(require(\"../ListItem/ListItem\")),v=e(require(\"../Separator\")),R=require(\"../../utils/accessibility-helper\"),O=require(\"../../decorator/ReportDecorator\"),A='';function D(){return new Promise(function(e){A?e(A):f.Service.spec.getSpecString(f.Device.deviceID).then(function(t){if(t&&t.type)return A=t.type.split(':')[3],void e(A);e(f.Device.model?f.Device.model.split('.')[1]:'')}).catch(function(){e(f.Device.model?f.Device.model.split('.')[1]:'')})})}D().then(function(){}).catch(function(){});var b=(0,d.default)({},{MEMBER_SET:'memberSet',SHARE:'share',BTGATEWAY:'btGateway',VOICE_AUTH:'voiceAuth',IFTTT:'ifttt',FIRMWARE_UPGRADE:'firmwareUpgrade',CREATE_GROUP:'createGroup',MANAGE_GROUP:'manageGroup'},{NAME:'name',LOCATION:'location',HELP:'help',MORE:'more',SECURITY:'security',LEGAL_INFO:'legalInfo'}),T=(0,d.default)({},{AUTO_UPGRADE:'autoUpgrade',TIMEZONE:'timezone',USER_EXPERIENCE_PROGRAM:'userExperienceProgram'},{PLUGIN_VERSION:'pluginVersion',CHECK_UPGRADE:'checkUpgrade',SECURITY:'security',FEEDBACK:'feedback',ADD_TO_DESKTOP:'addToDesktop',USER_AGREEMENT:'userAgreement',PRIVACY_POLICY:'privacyPolicy'}),P=(0,d.default)({},b,T);exports.AllOptions=P;var _={first_options:P,second_options:P};exports.SETTING_KEYS=_;var C=P;exports.firstAllOptions=C;var U=P;exports.secondAllOptions=U;var w=(t={},(0,p.default)(t,P.NAME,0),(0,p.default)(t,P.MEMBER_SET,0),(0,p.default)(t,P.LOCATION,0),(0,p.default)(t,P.SHARE,0),(0,p.default)(t,P.BTGATEWAY,0),(0,p.default)(t,P.VOICE_AUTH,0),(0,p.default)(t,P.IFTTT,0),(0,p.default)(t,P.FIRMWARE_UPGRADE,0),(0,p.default)(t,P.CREATE_GROUP,0),(0,p.default)(t,P.MANAGE_GROUP,0),(0,p.default)(t,P.MORE,1),(0,p.default)(t,P.HELP,1),(0,p.default)(t,P.SECURITY,0),(0,p.default)(t,P.LEGAL_INFO,0),t),I=(i={},(0,p.default)(i,P.NAME,0),(0,p.default)(i,P.CREATE_GROUP,1),(0,p.default)(i,P.MANAGE_GROUP,1),(0,p.default)(i,P.MEMBER_SET,3),(0,p.default)(i,P.LOCATION,6),(0,p.default)(i,P.SHARE,9),(0,p.default)(i,P.IFTTT,18),(0,p.default)(i,P.FIRMWARE_UPGRADE,21),(0,p.default)(i,P.HELP,24),(0,p.default)(i,P.MORE,27),(0,p.default)(i,P.SECURITY,28),i),G=(n={},(0,p.default)(n,P.NAME,[]),(0,p.default)(n,P.MEMBER_SET,[]),(0,p.default)(n,P.LOCATION,[]),(0,p.default)(n,P.SHARE,[]),(0,p.default)(n,P.BTGATEWAY,[]),(0,p.default)(n,P.VOICE_AUTH,[]),(0,p.default)(n,P.IFTTT,[]),(0,p.default)(n,P.FIRMWARE_UPGRADE,[]),(0,p.default)(n,P.CREATE_GROUP,['17']),(0,p.default)(n,P.MANAGE_GROUP,[]),(0,p.default)(n,P.MORE,[]),(0,p.default)(n,P.HELP,[]),(0,p.default)(n,P.SECURITY,[]),(0,p.default)(n,P.LEGAL_INFO,['5','15','17']),n),M=(function(e){function t(e,i){var n;return(0,r.default)(this,t),n=(0,a.default)(this,(0,s.default)(t).call(this,e,i)),(0,O.referenceReport)('CommonSetting'),n.state={name:f.Device.name,showDot:Array.isArray(e.showDot)?e.showDot:[],modelType:A},console.log(\"Device.type: \"+f.Device.type),n.commonSetting=n.getCommonSetting(n.state),n}return(0,c.default)(t,e),(0,u.default)(t,[{key:\"getCommonSetting\",value:function(e){var t,i=this,n=(e||{}).modelType;n||(n=' ');var o=(t={},(0,p.default)(t,P.NAME,{title:y.strings.name,value:e.name,onPress:function(){return f.Host.ui.openChangeDeviceName()}}),(0,p.default)(t,P.LOCATION,{title:y.strings.location,onPress:function(){return f.Host.ui.openRoomManagementPage()}}),(0,p.default)(t,P.MEMBER_SET,{title:y.strings.memberSet,onPress:function(){return f.Host.ui.openPowerMultikeyPage(f.Device.deviceID,f.Device.mac)}}),(0,p.default)(t,P.SHARE,{title:y.strings.share,onPress:function(){return f.Host.ui.openShareDevicePage()}}),(0,p.default)(t,P.IFTTT,{title:y.strings.ifttt,onPress:function(){return f.Host.ui.openIftttAutoPage()}}),(0,p.default)(t,P.HELP,{title:y.strings.helpAndFeedback,onPress:function(){return f.Host.ui.openHelpPage()}}),(0,p.default)(t,P.FIRMWARE_UPGRADE,{title:y.strings.firmwareUpgrade,onPress:function(){return i.chooseFirmwareUpgrade()}}),(0,p.default)(t,P.CREATE_GROUP,{title:y.strings[\"create\"+n[0].toUpperCase()+n.slice(1)+\"Group\"],onPress:function(){return i.createGroup()}}),(0,p.default)(t,P.MANAGE_GROUP,{title:y.strings[\"manage\"+n[0].toUpperCase()+n.slice(1)+\"Group\"],onPress:function(){return i.manageGroup()}}),(0,p.default)(t,P.MORE,{title:y.strings.more,onPress:function(){return i.openSubPage('MoreSetting')}}),t);return-1!==['lock','safe-box'].indexOf(n)&&(o[P.SECURITY]={title:y.strings.security,onPress:function(){return f.Host.ui.openSecuritySetting()}}),o}}]),(0,u.default)(t,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){this.setState({showDot:e.showDot})}},{key:\"chooseFirmwareUpgrade\",value:function(){var e=this.props.extraOptions,t=e.showUpgrade,i=e.upgradePageKey,n=e.bleOtaAuthType,o=this.state.modelType;if(f.Device.needUpgrade=!1,!1===t){if(void 0===i)return void(__DEV__&&console.warn&&console.warn('\\u8bf7\\u5728 extraOptions.upgradePageKey \\u4e2d\\u586b\\u5199\\u4f60\\u60f3\\u8df3\\u8f6c\\u7684\\u56fa\\u4ef6\\u5347\\u7ea7\\u9875\\u9762, \\u4f20\\u7ed9 CommonSetting \\u7ec4\\u4ef6'));if('string'!=typeof i)return void(__DEV__&&console.warn&&console.warn('upgradePageKey \\u5fc5\\u987b\\u662f\\u5b57\\u7b26\\u4e32, \\u662f\\u4f60\\u5728 index.js \\u7684 RootStack \\u4e2d\\u5b9a\\u4e49\\u7684\\u9875\\u9762 key'));this.removeKeyFromShowDot(P.FIRMWARE_UPGRADE),this.openSubPage(i,{}),__DEV__&&console.warn&&console.warn('\\u84dd\\u7259\\u7edf\\u4e00OTA\\u754c\\u9762\\u6b63\\u5728\\u706b\\u70ed\\u5f00\\u53d1\\u4e2d')}else this.removeKeyFromShowDot(P.FIRMWARE_UPGRADE),'16'===f.Device.type?f.Host.ui.openBleMeshDeviceUpgradePage():'17'===f.Device.type&&-1!==['light'].indexOf(o)?f.Host.ui.openLightGroupUpgradePage():[0,1,4,5].includes(n)?f.Host.ui.openBleCommonDeviceUpgradePage({auth_type:n}):f.Host.ui.openDeviceUpgradePage()}},{key:\"createGroup\",value:function(){f.Host.ui.openMeshDeviceGroupPage('add',f.Device.deviceID,2)}},{key:\"manageGroup\",value:function(){f.Host.ui.openMeshDeviceGroupPage('edit',f.Device.deviceID,2)}},{key:\"removeKeyFromShowDot\",value:function(e){var t=(0,l.default)(this.state.showDot),i=t.indexOf(e);-1!==i?(t.splice(i,1),this.setState({showDot:t})):e===P.FIRMWARE_UPGRADE&&this.forceUpdate()}},{key:\"openSubPage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{networkInfoConfig:this.props.extraOptions.networkInfoConfig,syncDevice:this.props.extraOptions.syncDevice,secondOptions:[].concat((0,l.default)(this.props.firstOptions||[]),(0,l.default)(this.props.secondOptions||[])),excludeRequiredOptions:this.props.extraOptions.excludeRequiredOptions,extraOptions:this.props.extraOptions},i=t.excludeRequiredOptions||[];this.props.navigation?this.props.navigation.navigate(e,(0,d.default)({},t,{commonSettingStyle:this.props.commonSettingStyle,excludeRequiredOptions:-1!==['lock','safe-box'].indexOf(this.state.modelType)&&-1===i.indexOf(P.SECURITY)?[].concat((0,l.default)(i),[P.SECURITY]):i})):__DEV__&&console.warn&&console.warn(\"props 'navigation' is required for CommonSetting\")}},{key:\"openDeleteDevice\",value:function(){var e=this.props.extraOptions.deleteDeviceMessage;f.Host.ui.openDeleteDevice(e)}},{key:\"componentDidMount\",value:function(){var e=this;D().then(function(t){e.commonSetting=e.getCommonSetting((0,d.default)({},e.state,{modelType:t})),e.setState({modelType:t})}).catch(function(){})}},{key:\"render\",value:function(){var e=this,t=this.state.modelType,i={};'android'===S.Platform.OS&&(i={fontFamily:'Kmedium'});var n=[P.NAME,P.LOCATION];-1===['6','17'].indexOf(f.Device.type)&&-1!==['light'].indexOf(t)&&n.push(P.CREATE_GROUP),'17'===f.Device.type&&-1!==['light'].indexOf(t)&&n.push(P.MANAGE_GROUP);var r=[P.MORE,P.HELP],a=[].concat((0,l.default)(this.props.firstOptions||[]),(0,l.default)(this.props.secondOptions||[])).filter(function(e){return e&&Object.values(P).includes(e)});a=(0,l.default)(new Set(a));var s=[].concat(n,(0,l.default)(a),r);s=(0,l.default)(new Set(s)),!1===f.Device.isOwner&&(s=s.filter(function(e){return w[e]})),s=s.filter(function(e){return!(G[e]||[]).includes(f.Device.type)});var u=this.props.extraOptions.excludeRequiredOptions;u instanceof Array&&(s=s.filter(function(e){return!(u||[]).includes(e)})),s.sort(function(e,t){return(I[e]||0)-(I[t]||0)});var c=s.map(function(t){var i=e.commonSetting[t];return i&&(i.showDot=(e.state.showDot||[]).includes(t),t!==P.FIRMWARE_UPGRADE||i.showDot||(i.showDot=f.Device.needUpgrade)),i}).filter(function(e){return!!e}),p=this._getCommonSettingStyle();return E.default.createElement(S.View,{style:x.container},E.default.createElement(S.View,{style:x.titleContainer},E.default.createElement(S.Text,{style:[x.title,p.titleStyle],allowFontScaling:p.allowFontScaling},y.strings.commonSetting)),E.default.createElement(v.default,{style:{marginLeft:y.Styles.common.padding}}),c.map(function(t,i){if(!t||!t.title)return null;var n=i!==c.length-1;return E.default.createElement(h.default,(0,o.default)({key:t.title,title:t.title||'',allowFontScaling:p.itemStyle.allowFontScaling,unlimitedHeightEnable:p.itemStyle.unlimitedHeightEnable,titleStyle:p.itemStyle.titleStyle,subtitleStyle:p.itemStyle.subtitleStyle,valueStyle:p.itemStyle.valueStyle,dotStyle:p.itemStyle.dotStyle,titleNumberOfLines:p.itemStyle.titleNumberOfLines,subtitleNumberOfLines:p.itemStyle.subtitleNumberOfLines,valueNumberOfLines:p.itemStyle.valueNumberOfLines,showDot:t.showDot||!1,value:t.value,onPress:t.onPress,showSeparator:n},(0,R.getAccessibilityConfig)({accessible:e.props.accessible})))}),E.default.createElement(v.default,null),f.Device.isFamily?null:E.default.createElement(S.View,(0,o.default)({style:x.bottomContainer},(0,R.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:R.AccessibilityRoles.button})),E.default.createElement(g.RkButton,{style:x.buttonContainer,onPress:function(){return e.openDeleteDevice()},activeOpacity:.8},E.default.createElement(S.Text,{style:[x.buttonText,i,p.deleteTextStyle],allowFontScaling:p.allowFontScaling},'17'===f.Device.type&&f.Device.isOwner?y.strings[\"delete\"+(f.Device.model||'').split('.')[1][0].toUpperCase()+(f.Device.model||'').split('.')[1].slice(1)+\"Group\"]:y.strings.deleteDevice))))}},{key:\"_getCommonSettingStyle\",value:function(){var e={allowFontScaling:!0,unlimitedHeightEnable:!1,titleStyle:{},itemStyle:{allowFontScaling:!0,unlimitedHeightEnable:!1,titleStyle:null,subtitleStyle:null,valueStyle:null,dotStyle:null,titleNumberOfLines:1,subtitleNumberOfLines:2,valueNumberOfLines:2},deleteTextStyle:{}};return this.props.commonSettingStyle&&(this.props.commonSettingStyle.hasOwnProperty('allowFontScaling')&&(e.allowFontScaling=this.props.commonSettingStyle.allowFontScaling),this.props.commonSettingStyle.hasOwnProperty('unlimitedHeightEnable')&&(e.unlimitedHeightEnable=this.props.commonSettingStyle.unlimitedHeightEnable),this.props.commonSettingStyle.hasOwnProperty('titleStyle')&&(e.titleStyle=this.props.commonSettingStyle.titleStyle),this.props.commonSettingStyle.hasOwnProperty('itemStyle')&&(e.itemStyle=this.props.commonSettingStyle.itemStyle),this.props.commonSettingStyle.hasOwnProperty('deleteTextStyle')&&(e.deleteTextStyle=this.props.commonSettingStyle.deleteTextStyle)),e.itemStyle.allowFontScaling=e.allowFontScaling,e.itemStyle.unlimitedHeightEnable=e.unlimitedHeightEnable,e}},{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;this._deviceNameChangedListener=f.DeviceEvent.deviceNameChanged.addListener(function(t){e.commonSetting=e.getCommonSetting((0,d.default)({},e.state,{name:t.name})),e.setState({name:t.name})})}},{key:\"componentWillUnmount\",value:function(){this._deviceNameChangedListener.remove()}}]),t})(E.default.Component);exports.default=M,M.propTypes={firstOptions:m.default.array,secondOptions:m.default.array,showDot:m.default.array,extraOptions:m.default.object,navigation:m.default.object.isRequired,commonSettingStyle:m.default.object,accessible:R.AccessibilityPropTypes.accessible},M.defaultProps={firstOptions:[P.SHARE,P.IFTTT,P.FIRMWARE_UPGRADE,P.AUTO_UPGRADE,P.TIMEZONE,P.SECURITY,P.USER_EXPERIENCE_PROGRAM],secondOptions:[P.SHARE,P.IFTTT,P.FIRMWARE_UPGRADE,P.AUTO_UPGRADE,P.TIMEZONE,P.SECURITY,P.USER_EXPERIENCE_PROGRAM],showDot:[],extraOptions:{}};var x=S.StyleSheet.create({container:{flex:1},titleContainer:{minHeight:32,backgroundColor:'#fff',justifyContent:'center',paddingLeft:y.Styles.common.padding},title:{fontSize:11,color:'rgba(0,0,0,0.5)',lineHeight:14},bottomContainer:{minHeight:90,backgroundColor:y.Styles.common.backgroundColor,flexDirection:'row',justifyContent:'center',alignItems:'center'},buttonContainer:{flex:1,minHeight:55,borderRadius:5,borderWidth:.3,borderColor:'rgba(0,0,0,0.2)',backgroundColor:'#fff',marginHorizontal:y.Styles.common.padding},buttonText:{fontSize:13,fontWeight:'bold',flex:1,textAlign:'center',color:'#F43F31',lineHeight:18}});","miot-sdk/ui/CommonSetting/CommonSetting.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),l=e(require(\"@babel/runtime/helpers/createClass\")),r=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=e(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"prop-types\")),n=e(require(\"react\")),u=require(\"react-native\"),c=e(require(\"../TouchableView\")),d=require(\"../../resources\"),p=e(require(\"../Separator\")),b=require(\"../../utils/accessibility-helper\"),f=require(\"../../decorator/ReportDecorator\"),h=u.Dimensions.get('window').width,m=require('../../resources/title/dot.png'),y=u.Platform.select({android:26,ios:24}),g=(function(e){function o(e,t){var l;return(0,i.default)(this,o),l=(0,r.default)(this,(0,s.default)(o).call(this,e,t)),(0,f.referenceReport)('ListItem'),l}return(0,a.default)(o,e),(0,l.default)(o,[{key:\"render\",value:function(){var e={height:50};this.props.subtitle&&(e={paddingVertical:8,height:void 0});var i={marginRight:-7,textAlignVertical:'center',textAlign:'right'},l={};this.props.unlimitedHeightEnable&&(l={height:void 0,lineHeight:void 0});var r=void 0==this.props.titleNumberOfLines?1:this.props.titleNumberOfLines,s=void 0==this.props.subtitleNumberOfLines?2:this.props.subtitleNumberOfLines,a=void 0==this.props.valueNumberOfLines?2:this.props.valueNumberOfLines;r<0&&(r=0),s<0&&(s=0),a<0&&(a=0);var o={};return'android'===u.Platform.OS&&(o={fontFamily:'Kmedium'},i.height=50),n.default.createElement(u.View,{style:{backgroundColor:'#fff'}},n.default.createElement(c.default,(0,t.default)({disabled:this.props.disabled,underlayColor:d.Styles.common.underlayColor,onPress:this.props.onPress,viewStyle:[S.container,this.props.containerStyle,e,l]},(0,b.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:b.AccessibilityRoles.button,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:{disabled:this.props.disabled}})),n.default.createElement(u.View,{style:[S.left]},n.default.createElement(u.View,{style:{flexDirection:'row',paddingVertical:2}},n.default.createElement(u.Text,(0,t.default)({numberOfLines:r,allowFontScaling:this.props.allowFontScaling,style:[d.Styles.common.title,o,l,this.props.titleStyle]},(0,b.getAccessibilityConfig)({accessible:!1})),this.props.title),this.props.showDot?n.default.createElement(u.Image,{style:[S.dot,this.props.dotStyle],resizeMode:\"contain\",source:m}):null),this.props.subtitle?n.default.createElement(u.Text,(0,t.default)({numberOfLines:s,allowFontScaling:this.props.allowFontScaling,style:[d.Styles.common.subtitle,this.props.subtitleStyle,l]},(0,b.getAccessibilityConfig)({accessible:!1})),this.props.subtitle):null),n.default.createElement(u.View,{style:{width:5}}),n.default.createElement(u.View,{style:[S.right,{maxWidth:'40%'}]},this.props.value?n.default.createElement(u.Text,(0,t.default)({numberOfLines:a,allowFontScaling:this.props.allowFontScaling,ellipsizeMode:\"tail\",style:[d.Styles.common.subtitle,this.props.valueStyle,i,l]},(0,b.getAccessibilityConfig)({accessible:!1})),this.props.value):null),this.props.hideArrow?null:n.default.createElement(u.Image,{style:S.icon,source:d.Images.common.right_arrow})),this.renderSeparator())}},{key:\"renderSeparator\",value:function(){return this.props.showSeparator?this.props.separator||n.default.createElement(p.default,{style:{marginLeft:d.Styles.common.padding}}):null}}]),o})(n.default.Component);exports.default=g,g.propTypes={title:o.default.string.isRequired,subtitle:o.default.string,value:o.default.string,onPress:o.default.func.isRequired,disabled:o.default.bool,showSeparator:o.default.bool,hideArrow:o.default.bool,showDot:o.default.bool,separator:o.default.element,containerStyle:o.default.object,titleStyle:o.default.object,subtitleStyle:o.default.object,valueStyle:o.default.object,dotStyle:o.default.object,allowFontScaling:o.default.bool,unlimitedHeightEnable:o.default.bool,titleNumberOfLines:o.default.number,subtitleNumberOfLines:o.default.number,valueNumberOfLines:o.default.number,accessible:b.AccessibilityPropTypes.accessible,accessibilityLabel:b.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:b.AccessibilityPropTypes.accessibilityHint},g.defaultProps={title:'',subtitle:'',value:'',onPress:function(){},disabled:!1,showSeparator:!0,hideArrow:!1,showDot:!1,containerStyle:{},titleStyle:{},subtitleStyle:{},valueStyle:{},dotStyle:{},unlimitedHeightEnable:!1,allowFontScaling:!0};var S=u.StyleSheet.create({container:{width:h,backgroundColor:'#fff',paddingHorizontal:24,flexDirection:'row',alignItems:'center'},left:{flex:1},right:{flexDirection:'row',alignItems:'center',justifyContent:'flex-start'},icon:{width:y,height:y},dot:{marginTop:-1,marginLeft:1,width:8,height:8}});","miot-sdk/ui/ListItem/ListItem.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),s=e(require(\"@babel/runtime/helpers/classCallCheck\")),t=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=e(require(\"@babel/runtime/helpers/inherits\")),u=e(require(\"prop-types\")),n=e(require(\"react\")),i=require(\"react-native\"),d=require(\"../resources\"),p=require(\"../decorator/ReportDecorator\"),f=(function(e){function u(e,r){var t;return(0,s.default)(this,u),t=(0,l.default)(this,(0,o.default)(u).call(this,e,r)),(0,p.referenceReport)('TouchableView'),t.state={inPress:!1},t}return(0,a.default)(u,e),(0,t.default)(u,[{key:\"render\",value:function(){var e=this;return n.default.createElement(i.TouchableWithoutFeedback,(0,r.default)({},this.props,{delayLongPress:this.props.delayLongPress,delayPressIn:this.props.delayPressIn,delayPressOut:this.props.delayPressOut,disabled:this.props.disabled,onLongPress:this.props.onLongPress,onPress:this.props.onPress,onPressIn:function(){e.setState({inPress:!0})},onPressOut:function(){e.setState({inPress:!1})}}),n.default.createElement(i.View,{style:[{backgroundColor:'#fff'},this.props.viewStyle,this.state.inPress?{backgroundColor:this.props.underlayColor}:{}]},this.props.children))}}]),u})(n.default.Component);exports.default=f,f.propTypes={delayLongPress:u.default.number,delayPressIn:u.default.number,delayPressOut:u.default.number,disabled:u.default.bool,onLongPress:u.default.func,onPress:u.default.func,viewStyle:i.ViewPropTypes.style,underlayColor:u.default.string},f.defaultProps={delayLongPress:100,delayPressIn:100,delayPressOut:100,disabled:!1,viewStyle:{},underlayColor:d.Styles.common.underlayColor};","miot-sdk/ui/TouchableView.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/toConsumableArray\")),r=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/defineProperty\")),l=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/inherits\")),s=e(require(\"miot/Host\")),c=e(require(\"miot/ui/TitleBar\")),d=e(require(\"react\")),f=require(\"react-native\"),p=require(\"../../resources\"),h=require(\"../ListItem\"),m=e(require(\"../Separator\")),b=require(\"./CommonSetting\"),S=require(\"../../utils/accessibility-helper\"),g=require(\"../../decorator/ReportDecorator\"),I=b.SETTING_KEYS.second_options,T={LIST_ITEM:'ListItem',LIST_ITEM_WITH_SWITCH:'ListItemWithSwitch',LIST_ITEM_WITH_SLIDER:'ListItemWithSlider'},C=(function(e){function c(e,t){var r,n;return(0,l.default)(this,c),(n=(0,a.default)(this,(0,o.default)(c).call(this,e,t))).firmwareSetting=(r={},(0,i.default)(r,b.secondAllOptions.AUTO_UPGRADE,{type:T.LIST_ITEM_WITH_SWITCH,title:p.strings.autoUpgrade,value:!0,onValueChange:function(){__DEV__&&console.warn&&console.warn('\\u56fa\\u4ef6\\u81ea\\u52a8\\u5347\\u7ea7\\u63a5\\u53e3\\u6682\\u4e0d\\u652f\\u6301')}}),(0,i.default)(r,b.secondAllOptions.CHECK_UPGRADE,{type:T.LIST_ITEM,title:p.strings.checkUpgrade,onPress:function(){return s.default.ui.openDeviceUpgradePage()}}),r),(0,g.referenceReport)('FirmwareUpgrade'),n.secondOptions=n.props.navigation.state.params.secondOptions||[b.secondAllOptions.AUTO_UPGRADE],n}return(0,u.default)(c,e),(0,n.default)(c,[{key:\"renderList\",value:function(e){return e.map(function(t,i){var l=i!==e.length-1;switch(t.type){case T.LIST_ITEM:return d.default.createElement(h.ListItem,(0,r.default)({key:t.title+i,title:t.title||'',value:t.value,onPress:t.onPress,showSeparator:l},(0,S.getAccessibilityConfig)({accessible:t.accessible})));case T.LIST_ITEM_WITH_SWITCH:return d.default.createElement(h.ListItemWithSwitch,(0,r.default)({key:t.title+i,title:t.title||'',value:t.value,onValueChange:t.onValueChange,showSeparator:l},(0,S.getAccessibilityConfig)({accessible:t.accessible})))}})}},{key:\"render\",value:function(){var e=this,r=[b.secondAllOptions.CHECK_UPGRADE],i=this.secondOptions.filter(function(e){return e&&Object.values(I).includes(e)});i=(0,t.default)(new Set(i));var l=[].concat((0,t.default)(i),r).map(function(t){return e.firmwareSetting[t]}).filter(function(e){return e});return d.default.createElement(f.View,{style:_.container},d.default.createElement(m.default,null),d.default.createElement(f.ScrollView,{showsVerticalScrollIndicator:!1},d.default.createElement(f.View,{style:[_.blank,{borderTopWidth:0}]}),this.renderList(l),d.default.createElement(m.default,null)))}}]),c})(d.default.Component);exports.default=C,C.navigationOptions=function(e){var t=e.navigation;return{header:d.default.createElement(c.default,{type:\"dark\",title:p.strings.firmwareUpgrade,style:{backgroundColor:'#fff'},onPressLeft:function(){return t.goBack()}})}};var _=f.StyleSheet.create({container:{backgroundColor:p.Styles.common.backgroundColor,flex:1},blank:{height:8,backgroundColor:p.Styles.common.backgroundColor,borderTopColor:p.Styles.common.hairlineColor,borderTopWidth:f.StyleSheet.hairlineWidth,borderBottomColor:p.Styles.common.hairlineColor,borderBottomWidth:f.StyleSheet.hairlineWidth}});","miot-sdk/ui/CommonSetting/FirmwareUpgrade.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"ListItem\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(exports,\"ListItemWithSlider\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(exports,\"ListItemWithSwitch\",{enumerable:!0,get:function(){return i.default}});var t=e(require(\"./ListItem\")),r=e(require(\"./ListItemWithSlider\")),i=e(require(\"./ListItemWithSwitch\"));","miot-sdk/ui/ListItem/index.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),l=e(require(\"@babel/runtime/helpers/createClass\")),r=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=e(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"prop-types\")),n=e(require(\"react\")),u=require(\"react-native\"),c=e(require(\"react-native-slider\")),m=require(\"../../resources\"),d=e(require(\"../Separator\")),p=require(\"../../utils/fonts\"),h=require(\"../../utils/accessibility-helper\"),b=require(\"../../decorator/ReportDecorator\"),f=u.Dimensions.get('window').width,y={width:50,height:50},S=(function(e){function o(e,l){var a;return(0,i.default)(this,o),(a=(0,r.default)(this,(0,s.default)(o).call(this,e,l))).onAccessibilityAction=function(e){var t=e.nativeEvent.actionName,i=a.sliderProps,l=i.minimumValue,r=i.maximumValue,s=i.step;if(!a.props.disabled){var o=a.state.value,n=(r-l)/s,u=n>=10?Math.floor(n/10):1,c=(o-l)/s;switch(t){case'increment':c+=u;break;case'decrement':c-=u}var m=Math.min(r,Math.max(l,c*s+l));a._onValueChange(m,function(){a._onSlidingComplete(m)})}},(0,b.referenceReport)('ListItemWithSlider'),a.sliderProps=(0,t.default)({minimumValue:0,maximumValue:100,step:1,value:50},a.props.sliderProps),a.sliderStyle=(0,t.default)({minimumTrackTintColor:m.Styles.common.MHGreen,maximumTrackTintColor:\"rgba(0,0,0,0.15)\",thumbTintColor:m.Styles.common.MHGreen},a.props.sliderStyle),a.state={value:a.sliderProps.value,valueStr:a.format(a.sliderProps.value)},a}return(0,a.default)(o,e),(0,l.default)(o,[{key:\"render\",value:function(){var e=this,i={maxWidth:.7*(f-48),fontFamily:p.FontDefault};this.props.containerStyle.width&&(i={maxWidth:.7*(this.props.containerStyle.width-48)});var l={};this.props.unlimitedHeightEnable&&(l={height:void 0,lineHeight:void 0});var r=void 0==this.props.titleNumberOfLines?1:this.props.titleNumberOfLines,s=void 0==this.props.valueNumberOfLines?1:this.props.valueNumberOfLines;return r<0&&(r=0),s<0&&(s=0),n.default.createElement(u.View,{style:{backgroundColor:'#fff'}},n.default.createElement(u.View,(0,t.default)({style:[g.container,this.props.containerStyle,l]},(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.adjustable,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:{disabled:!!this.props.disabled},accessibilityValue:{min:this.sliderProps.minimumValue,max:this.sliderProps.maximumValue,now:this.state.value}}),{accessibilityActions:[{name:'increment'},{name:'decrement'}],onAccessibilityAction:this.onAccessibilityAction}),n.default.createElement(u.View,{style:[g.up]},n.default.createElement(u.Text,(0,t.default)({numberOfLines:r,ellipsizeMode:\"tail\",allowFontScaling:this.props.allowFontScaling,style:[m.Styles.common.title,this.props.titleStyle,i,l]},(0,h.getAccessibilityConfig)({accessible:!1})),this.props.title),n.default.createElement(u.View,{style:[g.separatorCol,this.props.unlimitedHeightEnable?{height:'80%'}:{}]}),n.default.createElement(u.Text,(0,t.default)({style:[g.value,this.props.valueStyle,l],numberOfLines:s,allowFontScaling:this.props.allowFontScaling},(0,h.getAccessibilityConfig)({accessible:!1})),this.props.subtitle||this.state.valueStr)),n.default.createElement(u.View,{style:g.down},n.default.createElement(c.default,(0,t.default)({disabled:this.props.disabled,style:[this.sliderStyle.style],maximumValue:this.sliderProps.maximumValue,minimumValue:this.sliderProps.minimumValue,step:this.sliderProps.step,minimumTrackTintColor:this.sliderStyle.minimumTrackTintColor,maximumTrackTintColor:this.sliderStyle.maximumTrackTintColor,thumbTintColor:this.sliderStyle.thumbTintColor,thumbTouchSize:y,trackStyle:[g.trackStyle,this.sliderStyle.trackStyle],thumbStyle:[g.thumbStyle,this.sliderStyle.thumbStyle],value:this.state.value,onValueChange:function(t){return e._onValueChange(t)},onSlidingComplete:function(t){return e._onSlidingComplete(t)}},(0,h.getAccessibilityConfig)({accessible:!1}))))),this.renderSeparator())}},{key:\"renderSeparator\",value:function(){return this.props.showSeparator?this.props.separator||n.default.createElement(d.default,{style:{marginLeft:m.Styles.common.padding}}):null}},{key:\"format\",value:function(e){if(this.props.showWithPercent){var t=this.sliderProps,i=t.minimumValue,l=t.maximumValue;return Math.round((e-i)/(l-i)*100)+\" %\"}return e+\" \"+this.props.unit}},{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){if(void 0!==e.sliderProps)if('number'==typeof e.sliderProps.value){var t=e.sliderProps,i=t.value,l=t.minimumValue,r=t.maximumValue;void 0!==l&&l!==this.sliderProps.minimumValue&&(this.sliderProps.minimumValue=l),void 0!==r&&r!==this.sliderProps.maximumValue&&(this.sliderProps.maximumValue=r),i!==this.state.value&&this.setState({value:i,valueStr:this.format(i)})}else __DEV__&&console.warn&&console.warn('sliderProps.value is not a number')}},{key:\"_onValueChange\",value:function(e){this.setState({value:e,valueStr:this.format(e)}),this.props.onValueChange&&this.props.onValueChange(e)}},{key:\"_onSlidingComplete\",value:function(e){this.props.onSlidingComplete&&this.props.onSlidingComplete(e)}}]),o})(n.default.Component);exports.default=S,S.propTypes={title:o.default.string.isRequired,subtitle:o.default.string,sliderProps:o.default.object,showWithPercent:o.default.bool,unit:o.default.string,sliderStyle:o.default.object,onValueChange:o.default.func,onSlidingComplete:o.default.func.isRequired,disabled:o.default.bool,containerStyle:o.default.object,titleStyle:o.default.object,valueStyle:o.default.object,showSeparator:o.default.bool,separator:o.default.element,allowFontScaling:o.default.bool,unlimitedHeightEnable:o.default.bool,titleNumberOfLines:o.default.number,valueNumberOfLines:o.default.number,accessible:h.AccessibilityPropTypes.accessible,accessibilityLabel:h.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:h.AccessibilityPropTypes.accessibilityHint},S.defaultProps={title:'',subtitle:'',showWithPercent:!0,unit:'',disabled:!1,containerStyle:{},titleStyle:{},valueStyle:{},showSeparator:!0,onSlidingComplete:function(){},unlimitedHeightEnable:!1,allowFontScaling:!0};var g=u.StyleSheet.create({container:{width:f,backgroundColor:'#fff',paddingHorizontal:24,height:77},up:{marginTop:11,flexDirection:'row',alignItems:'center'},down:{flex:1,justifyContent:'center'},separatorCol:{height:14,width:.5,marginHorizontal:5,backgroundColor:'rgba(0,0,0,0.2)'},value:{fontSize:12,color:m.Styles.common.MHGreen,lineHeight:16,flex:1},trackStyle:{height:2,borderRadius:1},thumbStyle:{width:24,height:24,borderRadius:12}});","miot-sdk/ui/ListItem/ListItemWithSlider.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),s=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),r=e(require(\"@babel/runtime/helpers/inherits\")),o=e(require(\"prop-types\")),n=e(require(\"react\")),c=require(\"react-native\"),u=require(\"../../resources\"),p=e(require(\"../TouchableView\")),b=e(require(\"../Separator\")),d=e(require(\"../Switch\")),h=require(\"../../utils/accessibility-helper\"),f=require(\"../../decorator/ReportDecorator\"),y=c.Dimensions.get('window').width,m=(function(e){function o(e,t){var s;return(0,i.default)(this,o),(s=(0,l.default)(this,(0,a.default)(o).call(this,e,t))).onAccessibilityAction=function(e){var t=e.nativeEvent.actionName,i=s.props,l=i.disabled,a=i.onValueChange,r=i.onPress,o=i.value;l||('activate'===t&&'function'==typeof a&&a(!o),'activate'===t&&'function'==typeof r&&r())},(0,f.referenceReport)('ListItemWithSwitch'),s}return(0,r.default)(o,e),(0,s.default)(o,[{key:\"render\",value:function(){var e=this,i={height:50};this.props.subtitle&&(i={paddingVertical:8,height:60});var s={};this.props.valueText&&(s.maxWidth=.4*(y-48),this.props.containerStyle.width&&(s.maxWidth=.4*(this.props.containerStyle.width-48))),'android'===c.Platform.OS&&(s.fontFamily='KMedium');var l={},a={};this.props.unlimitedHeightEnable&&(l={height:void 0,lineHeight:void 0},a={height:void 0,paddingVertical:10});var r=void 0==this.props.titleNumberOfLines?1:this.props.titleNumberOfLines,o=void 0==this.props.subtitleNumberOfLines?2:this.props.subtitleNumberOfLines,b=void 0==this.props.valueNumberOfLines?1:this.props.valueNumberOfLines;return r<0&&(r=0),o<0&&(o=0),b<0&&(b=0),n.default.createElement(c.View,{style:{backgroundColor:'#fff'}},n.default.createElement(p.default,(0,t.default)({disabled:!this.props.onPress,underlayColor:u.Styles.common.underlayColor,onPress:this.props.onPress,viewStyle:[g.container,this.props.containerStyle,i,a]},this.props.onPress?(0,h.getAccessibilityConfig)({accessible:!1}):(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.switch,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:{disabled:this.props.disabled,checked:this.props.value}}),{accessibilityActions:this.props.onPress?[]:[{name:'activate'}],onAccessibilityAction:this.props.onPress?null:this.onAccessibilityAction}),n.default.createElement(c.View,(0,t.default)({style:g.left},this.props.onPress?(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:h.AccessibilityRoles.button,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:{disabled:this.props.disabled}}):{},{accessibilityActions:this.props.onPress?[{name:'activate'}]:[],onAccessibilityAction:this.props.onPress?this.onAccessibilityAction:null}),n.default.createElement(c.View,{style:[g.up]},n.default.createElement(c.Text,(0,t.default)({numberOfLines:r,allowFontScaling:this.props.allowFontScaling,ellipsizeMode:\"tail\",style:[u.Styles.common.title,s,this.props.titleStyle,l]},(0,h.getAccessibilityConfig)({accessible:!1})),this.props.title),this.props.valueText?n.default.createElement(c.View,{style:[g.up]},n.default.createElement(c.View,{style:[g.separatorCol]}),n.default.createElement(c.Text,(0,t.default)({numberOfLines:b,ellipsizeMode:\"tail\",allowFontScaling:this.props.allowFontScaling,style:[u.Styles.common.subtitle,this.props.valueTextStyle,{flex:1},l]},(0,h.getAccessibilityConfig)({accessible:!1})),this.props.valueText)):null),this.props.subtitle?n.default.createElement(c.Text,(0,t.default)({numberOfLines:o,ellipsizeMode:\"tail\",allowFontScaling:this.props.allowFontScaling,style:[u.Styles.common.subtitle,this.props.subtitleStyle,l]},(0,h.getAccessibilityConfig)({accessible:!1})),this.props.subtitle):null),n.default.createElement(c.View,{style:g.right},n.default.createElement(d.default,(0,t.default)({style:this.props.switchStyle,value:this.props.value,disabled:this.props.disabled,tintColor:this.props.tintColor,onTintColor:this.props.onTintColor,onValueChange:function(t){return e._onValueChange(t)}},this.props.onPress?(0,h.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityLabel:this.props.accessibilityLabel||this.props.title,accessibilityHint:this.props.accessibilityHint}):{})))),this.renderSeparator())}},{key:\"renderSeparator\",value:function(){return this.props.showSeparator?this.props.separator||n.default.createElement(b.default,{style:{marginLeft:u.Styles.common.padding}}):null}},{key:\"_onValueChange\",value:function(e){this.props.onValueChange&&this.props.onValueChange(e)}}]),o})(n.default.Component);exports.default=m,m.propTypes={title:o.default.string.isRequired,subtitle:o.default.string,valueText:o.default.string,value:o.default.bool,disabled:o.default.bool,onPress:o.default.func,onValueChange:o.default.func.isRequired,showSeparator:o.default.bool,separator:o.default.element,containerStyle:o.default.object,titleStyle:o.default.object,subtitleStyle:o.default.object,valueTextStyle:o.default.object,switchStyle:o.default.object,tintColor:o.default.string,onTintColor:o.default.string,allowFontScaling:o.default.bool,unlimitedHeightEnable:o.default.bool,titleNumberOfLines:o.default.number,subtitleNumberOfLines:o.default.number,valueNumberOfLines:o.default.number,accessible:h.AccessibilityPropTypes.accessible,accessibilityLabel:h.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:h.AccessibilityPropTypes.accessibilityHint},m.defaultProps={title:'',subtitle:'',valueText:'',value:!1,disabled:!1,showSeparator:!0,containerStyle:{},titleStyle:{},subtitleStyle:{},valueTextStyle:{},switchStyle:{},tintColor:void 0,onTintColor:void 0,unlimitedHeightEnable:!1,allowFontScaling:!0};var g=c.StyleSheet.create({container:{width:y,paddingHorizontal:24,flexDirection:'row',alignItems:'center'},left:{flex:4},right:{flex:1,alignItems:'flex-end'},up:{flexDirection:'row',alignItems:'center',flex:1},separatorCol:{height:14,width:.5,marginHorizontal:5,backgroundColor:'rgba(0,0,0,0.2)'}});","miot-sdk/ui/ListItem/ListItemWithSwitch.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,n=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/toConsumableArray\")),o=e(require(\"@babel/runtime/helpers/objectSpread\")),r=e(require(\"@babel/runtime/helpers/classCallCheck\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),s=e(require(\"@babel/runtime/helpers/createClass\")),u=e(require(\"@babel/runtime/helpers/inherits\")),c=e(require(\"@babel/runtime/helpers/defineProperty\")),d=require(\"miot\"),p=e(require(\"miot/Host\")),f=e(require(\"react\")),m=require(\"react-native\"),g=require(\"../../resources\"),S=e(require(\"../ListItem/ListItem\")),v=e(require(\"../NavigationBar\")),O=e(require(\"../Separator\")),h=require(\"./CommonSetting\"),A=require(\"../../utils/accessibility-helper\"),y=require(\"../../decorator/ReportDecorator\"),b=(t={},(0,c.default)(t,h.secondAllOptions.PLUGIN_VERSION,1),(0,c.default)(t,h.secondAllOptions.ADD_TO_DESKTOP,1),(0,c.default)(t,h.secondAllOptions.AUTO_UPGRADE,1),(0,c.default)(t,h.secondAllOptions.CHECK_UPGRADE,1),(0,c.default)(t,h.secondAllOptions.PRIVACY_POLICY,1),(0,c.default)(t,h.secondAllOptions.SECURITY,0),(0,c.default)(t,h.secondAllOptions.TIMEZONE,1),(0,c.default)(t,h.secondAllOptions.VOICE_AUTH,0),(0,c.default)(t,h.secondAllOptions.BTGATEWAY,0),(0,c.default)(t,h.secondAllOptions.LEGAL_INFO,0),(0,c.default)(t,h.secondAllOptions.USER_AGREEMENT,1),(0,c.default)(t,h.secondAllOptions.USER_EXPERIENCE_PROGRAM,1),t),E=h.SETTING_KEYS.second_options,P=(function(e){function t(e,n){var i;return(0,r.default)(this,t),i=(0,l.default)(this,(0,a.default)(t).call(this,e,n)),(0,y.referenceReport)('MoreSetting'),i.state={timeZone:d.Device.timeZone||''},i.secondOptions=i.props.navigation.state.params.secondOptions||[h.secondAllOptions.SECURITY,h.secondAllOptions.VOICE_AUTH,h.secondAllOptions.BTGATEWAY,h.secondAllOptions.TIMEZONE],i.excludeRequiredOptions=i.props.navigation.state.params.excludeRequiredOptions||[],i.extraOptions=i.props.navigation.state.params.extraOptions||{},i.moreSetting=i.getMoreSetting(i.state),i}return(0,u.default)(t,e),(0,s.default)(t,[{key:\"getMoreSetting\",value:function(e){var t,n=this,i=!!this.props.navigation.state.params.syncDevice;return t={},(0,c.default)(t,h.secondAllOptions.PLUGIN_VERSION,{title:g.strings.pluginVersion,value:String(d.Package.version),hideArrow:!0}),(0,c.default)(t,\"networkInfo\",{title:g.strings.networkInfo,onPress:function(){return p.default.ui.openDeviceNetworkInfoPage()}}),(0,c.default)(t,h.secondAllOptions.SECURITY,{title:g.strings.security,onPress:function(){return p.default.ui.openSecuritySetting()}}),(0,c.default)(t,h.secondAllOptions.VOICE_AUTH,{title:g.strings.voiceAuth,onPress:p.default.ui.openVoiceCtrlDeviceAuthPage,hide:!d.Device.isVoiceDevice}),(0,c.default)(t,h.secondAllOptions.BTGATEWAY,{title:g.strings.btGateway,onPress:p.default.ui.openBtGatewayPage}),(0,c.default)(t,h.secondAllOptions.TIMEZONE,{title:g.strings.timezone,value:e.timeZone,onPress:function(){return p.default.ui.openDeviceTimeZoneSettingPage({sync_device:i})}}),(0,c.default)(t,h.secondAllOptions.LEGAL_INFO,{title:g.strings.legalInfo,onPress:function(){return n.privacyAndProtocolReview()}}),(0,c.default)(t,h.secondAllOptions.ADD_TO_DESKTOP,{title:g.strings.addToDesktop,onPress:function(){return p.default.ui.openAddToDesktopPage()}}),t}}]),(0,s.default)(t,[{key:\"privacyAndProtocolReview\",value:function(){var e=this.extraOptions,t=e.licenseUrl,n=e.policyUrl,i=e.option;void 0===i?p.default.ui.privacyAndProtocolReview('',t,'',n):p.default.ui.previewLegalInformationAuthorization(i)}},{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;this._deviceTimeZoneChangedListener=d.DeviceEvent.deviceTimeZoneChanged.addListener(function(t){e.moreSetting=e.getMoreSetting((0,o.default)({},e.state,{timeZone:t.timeZone})),e.setState({timeZone:t.timeZone})})}},{key:\"componentDidMount\",value:function(){var e=this;d.Device.getDeviceTimeZone().then(function(t){console.log(t),e.moreSetting=e.getMoreSetting((0,o.default)({},e.state,{timeZone:(t||{}).timeZone||''})),e.setState({timeZone:(t||{}).timeZone||''})}).catch(function(e){return console.log(\"\\u83b7\\u53d6\\u8bbe\\u5907\\u65f6\\u533a\\u5931\\u8d25\\uff0c\\u9519\\u8bef\\uff1a\",e)})}},{key:\"componentWillUnmount\",value:function(){this._deviceTimeZoneChangedListener.remove()}},{key:\"render\",value:function(){var e=this,t=[h.secondAllOptions.PLUGIN_VERSION,h.secondAllOptions.SECURITY],o=this.props.navigation.state.params.networkInfoConfig;1===o?t.push(\"networkInfo\"):-1!==o&&void 0!==o||['0','8'].includes(d.Device.type)&&t.push(\"networkInfo\");var r=[h.secondAllOptions.LEGAL_INFO,h.secondAllOptions.ADD_TO_DESKTOP],l=this.secondOptions.filter(function(e){return e&&Object.values(E).includes(e)});l=(0,i.default)(new Set(l));var a=[].concat(t,(0,i.default)(l),r);a=(0,i.default)(new Set(a)),!1===d.Device.isOwner&&(a=a.filter(function(e){return b[e]}));var s,u=(a=a.filter(function(t){return!e.excludeRequiredOptions.includes(t)})).map(function(t){return e.moreSetting[t]}).filter(function(e){return e&&!e.hide});return this.props.navigation.state.params.commonSettingStyle&&this.props.navigation.state.params.commonSettingStyle.moreSettingPageStyle&&(s=this.props.navigation.state.params.commonSettingStyle.moreSettingPageStyle.itemStyle),s||(s={}),f.default.createElement(m.View,{style:T.container},f.default.createElement(O.default,null),f.default.createElement(m.ScrollView,{showsVerticalScrollIndicator:!1},f.default.createElement(m.View,{style:[T.blank,{borderTopWidth:0}]}),u.map(function(e,t){var i=t!==u.length-1;return f.default.createElement(S.default,(0,n.default)({key:e.title+t,title:e.title||'',value:e.value,onPress:e.onPress,showSeparator:i,hideArrow:e.hideArrow,allowFontScaling:s.allowFontScaling,unlimitedHeightEnable:s.unlimitedHeightEnable,titleStyle:s.titleStyle,subtitleStyle:s.subtitleStyle,valueStyle:s.valueStyle,dotStyle:s.dotStyle,titleNumberOfLines:s.titleNumberOfLines,subtitleNumberOfLines:s.subtitleNumberOfLines,valueNumberOfLines:s.valueNumberOfLines},(0,A.getAccessibilityConfig)({accessible:e.accessible})))}),f.default.createElement(O.default,null)))}}]),t})(f.default.Component);exports.default=P,P.navigationOptions=function(e){var t,i=e.navigation;return i.state.params.commonSettingStyle&&i.state.params.commonSettingStyle.moreSettingPageStyle&&(t=i.state.params.commonSettingStyle.moreSettingPageStyle.navigationBarStyle),t||(t={}),{header:f.default.createElement(v.default,(0,n.default)({backgroundColor:\"#ffffff\",type:v.default.TYPE.LIGHT,left:[{key:v.default.ICON.BACK,onPress:function(){return i.goBack()}}],title:g.strings.more},t))}};var T=m.StyleSheet.create({container:{backgroundColor:g.Styles.common.backgroundColor,flex:1},blank:{height:8,backgroundColor:g.Styles.common.backgroundColor,borderTopColor:g.Styles.common.hairlineColor,borderTopWidth:m.StyleSheet.hairlineWidth,borderBottomColor:g.Styles.common.hairlineColor,borderBottomWidth:m.StyleSheet.hairlineWidth}});","miot-sdk/ui/CommonSetting/MoreSetting.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"CommonSetting\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(exports,\"SETTING_KEYS\",{enumerable:!0,get:function(){return t.SETTING_KEYS}}),Object.defineProperty(exports,\"FirmwareUpgrade\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(exports,\"MoreSetting\",{enumerable:!0,get:function(){return i.default}});var t=r(require(\"./CommonSetting\")),n=e(require(\"./FirmwareUpgrade\")),i=e(require(\"./MoreSetting\"));","miot-sdk/ui/CommonSetting/index.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/classCallCheck\")),i=t(require(\"@babel/runtime/helpers/createClass\")),a=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=t(require(\"@babel/runtime/helpers/inherits\")),l=t(require(\"prop-types\")),s=e(require(\"react\")),o=require(\"react-native\"),h=(function(e){function t(e){var i;(0,r.default)(this,t),(i=(0,a.default)(this,(0,n.default)(t).call(this,e))).changeStatus=function(e,t){var r=i.state,a=r.height,n=r.opacity;o.Animated.parallel([o.Animated.timing(a,{toValue:e,duration:250}),o.Animated.timing(n,{toValue:t,duration:250})]).start()};var u=e.isShown,l=e.childrenHeight,s=u?1:0,h=u?l:0;return i.state={height:new o.Animated.Value(h),opacity:new o.Animated.Value(s)},i}return(0,u.default)(t,e),(0,i.default)(t,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){var t=e.isShown,r=e.childrenHeight;t?this.changeStatus(r,1):this.changeStatus(0,0)}},{key:\"render\",value:function(){var e=this.state,t=e.opacity,r=e.height;return s.default.createElement(o.Animated.View,{style:{opacity:t,height:r}},this.props.children)}}]),t})(s.Component);exports.default=h,h.defaultProps={isShown:!1,childrenHeight:0},h.propTypes={isShown:l.default.bool,childrenHeight:l.default.number};","miot-sdk/ui/FadeSlide.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),r=e(require(\"@babel/runtime/helpers/createClass\")),s=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),a=e(require(\"@babel/runtime/helpers/inherits\")),c=e(require(\"prop-types\")),o=e(require(\"react\")),n=require(\"react-native\"),u=(e(require(\"../../resources/strings/tr\")),require(\"../../utils/accessibility-helper\")),p=(function(e){function c(){var e,t;(0,i.default)(this,c);for(var r=arguments.length,a=new Array(r),o=0;o=this.props.options.length)return;this.onPress(t)}}}},{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;this.state.pan.addListener(function(t){if(e.pressToChoose&&'ios'===d.Platform.OS){var n=e.currentCoord+t.value,r=e.getClosetIndex(n);e.setState({currentOption:e.props.options[r]})}}),'ios'===d.Platform.OS&&this.state.moveX.addListener(function(t){var n=e.getClosetIndex(t.value);e.setState({currentOption:e.props.options[n]})})}},{key:\"getClosetIndex\",value:function(e){var t=e-this.offset,r=this.coords.map(function(e){return Math.abs(e-t)});return r.indexOf(Math.min.apply(Math,(0,n.default)(r)))}},{key:\"_onPanResponderGrant\",value:function(e){d.Animated.timing(this.state.scale,b).start();var t=e.nativeEvent.pageX;this.offset=t-this.currentCoord,this.pressToChoose=!1,console.log('\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u62d6\\u62fd\\u5f00\\u59cb\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f\\u2b07\\ufe0f'),console.log(\"\\u88ab\\u9009\\u9879\\u4e2d\\u5fc3\\u5750\\u6807 \"+this.currentCoord),console.log(\"\\u89e6\\u6478\\u70b9\\u5750\\u6807 \"+t)}},{key:\"_onPanResponderRelease\",value:function(e,t){var n=this.getClosetIndex(t.moveX);this.animated2TargetIndex(n),this.props.onSelect&&this.props.onSelect(n)}},{key:\"animated2TargetIndex\",value:function(e){var t=this;console.log(\"\\u79fb\\u52a8\\u5230\\u7b2c\"+e+\"\\u4e2a\"),this.offset=0,this.setState({selectIndex:e},function(){t.getDragRange(function(){t.state.pan.setValue(0),d.Animated.timing(t.state.scale,y).start(function(){'android'==d.Platform.OS&&t.setState({currentOption:t.props.options[e]})}),console.log('\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u7ed3\\u675f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f\\u2b06\\ufe0f')})})}},{key:\"getCorrectLayout\",value:function(){var e=this.props.normalStyle.width||50,t=this.props,n=t.margin,r=t.maxWidth,i=this.props.options.length;this.length=i;var o=(e+n)*i+n;if(o<=r)return{optionWidth:e,margin:n,containerWidth:o};var a=Math.floor(r/(i+.5*(i+1))),s=a/2;return{optionWidth:a,margin:s,containerWidth:(3*i+1)*s}}},{key:\"calculateCoord\",value:function(){var e=this;this._container.measure(function(t,n,r,i,o,a){console.log(\"\\u5bb9\\u5668\\u8d77\\u59cb\\u5750\\u6807 \"+t+\"\\uff0c\\u5bbd\\u5ea6 \"+r);var s=t-e.optionWidth/2;e.coords=[];for(var l=0;l=this.props.options.length)return;this.onPress(t)}}}},{key:\"renderOptions\",value:function(){var e=this,r=c.StyleSheet.flatten([this.props.normalStyle,{width:this.optionWidth,height:this.optionWidth,borderRadius:this.optionWidth/2}]);return this.props.options.map(function(i,s){return a.default.createElement(u.default,(0,t.default)({key:i,allowFontScaling:e.props.allowFontScaling,numberOfLines:e.props.numberOfLines,select:e.state.selectArray[s],selectColor:e.props.selectColor,onPress:function(){return e.onPress(s)},text:i,style:r,textStyle:e.props.textStyle},(0,p.getAccessibilityConfig)({accessible:e.props.accessible,accessibilityLabel:e.props.clickAccessibilityLables[s]||i,accessibilityHint:e.props.clickAccessibilityHints[s]})))})}},{key:\"getCorrectLayout\",value:function(){var e=this.props.normalStyle.width||50,t=this.props,r=t.margin,i=t.maxWidth,s=this.props.options.length,n=(e+r)*s+r;if(n<=i)return{optionWidth:e,margin:r,containerWidth:n};var l=Math.floor(i/(s+.5*(s+1))),o=l/2;return{optionWidth:l,margin:o,containerWidth:(3*s+1)*o}}},{key:\"render\",value:function(){return this.showNothing?null:a.default.createElement(c.View,{style:[this.props.containerStyle,y.container,{width:this.containerWidth}]},this.renderOptions())}},{key:\"onPress\",value:function(e){var t=Array.from(this.selectArray);t[e]=!0,this.setState({selectArray:t}),this.props.onSelect&&this.props.onSelect(e)}}]),o})(a.default.Component);exports.default=f,f.propTypes={options:o.default.arrayOf(o.default.oneOfType([o.default.string,o.default.number])).isRequired,containerStyle:o.default.object,normalStyle:o.default.object,textStyle:o.default.object,margin:o.default.number,maxWidth:o.default.number,selectColor:o.default.string,selectIndex:o.default.number,onSelect:o.default.func.isRequired,allowFontScaling:o.default.bool,numberOfLines:o.default.number,accessible:p.AccessibilityPropTypes.accessible,clickAccessibilityLables:o.default.arrayOf(p.AccessibilityPropTypes.accessibilityLabel),clickAccessibilityHints:o.default.arrayOf(p.AccessibilityPropTypes.accessibilityHint)},f.defaultProps={options:[],normalStyle:{},margin:12,maxWidth:d,selectIndex:0,allowFontScaling:!0,clickAccessibilityLables:[],clickAccessibilityHints:[]};var y=c.StyleSheet.create({container:{flexDirection:'row',alignItems:'center',justifyContent:'space-evenly'}});","miot-sdk/ui/Gear/NormalGear.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"DragGear\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(exports,\"NormalGear\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(exports,\"SlideGear\",{enumerable:!0,get:function(){return a.default}});var r=e(require(\"./DragGear\")),t=e(require(\"./NormalGear\")),a=e(require(\"./SlideGear\"));","miot-sdk/ui/Gear/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i=t(require(\"@babel/runtime/helpers/extends\")),l=t(require(\"@babel/runtime/helpers/classCallCheck\")),a=t(require(\"@babel/runtime/helpers/createClass\")),r=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),c=t(require(\"@babel/runtime/helpers/inherits\")),n=t(require(\"prop-types\")),u=e(require(\"react\")),o=require(\"react-native\"),d=require(\"../resources\"),b=t(require(\"./Switch\")),f=require(\"../utils/accessibility-helper\"),p=require(\"../decorator/ReportDecorator\"),y=(function(e){function t(e){var i;return(0,l.default)(this,t),(i=(0,r.default)(this,(0,s.default)(t).call(this,e))).changeSwitchValue=function(){var e=i.props,t=e.value,l=e.changeValue,a=e.switchKey;l&&l(t,a)},i.onAccessibilityAction=function(e){var t=e.nativeEvent.actionName,l=i.props,a=l.disabled,r=l.disabledCard,s=l.changeValue,c=l.value,n=l.switchKey;a||r||'activate'===t&&'function'==typeof s&&s(c,n)},(0,p.referenceReport)('IndependentCard'),i.state={radius:{}},i}return(0,c.default)(t,e),(0,a.default)(t,[{key:\"componentDidMount\",value:function(){var e={};this.setState(function(t,i){switch(i.radiusType){case'none':e={};break;case'top':e={borderTopLeftRadius:10,borderTopRightRadius:10};break;case'bottom':e={borderBottomLeftRadius:10,borderBottomRightRadius:10};break;default:e={borderRadius:10}}return{radius:e}})}},{key:\"render\",value:function(){var e=this.props,t=e.picture,l=e.title1,a=e.title2,r=e.value,s=e.onTintColor,c=e.tintColor,n=e.switchStyle,d=e.disabled,p=e.disabledCard,y=e.accessible,g=e.accessibilityLabel,m=e.accessibilityHint,C=u.default.createElement(o.Text,(0,i.default)({style:h.title2,numberOfLines:1},(0,f.getAccessibilityConfig)({accessible:!1})),a),v=a?C:null,w=p?.3:1;return u.default.createElement(o.View,(0,i.default)({style:[h.card,{opacity:w}]},(0,f.getAccessibilityConfig)({accessible:y,accessibilityRole:f.AccessibilityRoles.switch,accessibilityLabel:g,accessibilityHint:m,accessibilityState:{disabled:d,checked:!!r}}),{accessibilityActions:[{name:'activate'}],onAccessibilityAction:this.onAccessibilityAction}),u.default.createElement(o.Image,(0,i.default)({source:t,style:h.picture},(0,f.getAccessibilityConfig)({accessible:!1}))),u.default.createElement(o.View,{style:h.title},u.default.createElement(o.Text,(0,i.default)({numberOfLines:1,style:h.title1},(0,f.getAccessibilityConfig)({accessible:!1})),l),v),u.default.createElement(o.View,{style:h.switchView},u.default.createElement(b.default,(0,i.default)({value:r,onValueChange:this.changeSwitchValue,onTintColor:s,tintColor:c,style:n,disabled:d},(0,f.getAccessibilityConfig)({accessible:!1})))))}}]),t})(u.Component);y.defaultProps={radiusType:'all',picture:-1,title1:'',title2:'',value:!1,switchKey:'',changeValue:function(){},onTintColor:d.Styles.common.MHGreen,tintColor:'#f0f0f0',switchStyle:{},disabled:!1,disabledCard:!1},y.propTypes={radiusType:n.default.string,picture:n.default.number,title1:n.default.string,title2:n.default.string,switchKey:n.default.string,value:n.default.bool,changeValue:n.default.func,onTintColor:n.default.string,tintColor:n.default.string,switchStyle:n.default.object,disabled:n.default.bool,disabledCard:n.default.bool,accessible:f.AccessibilityPropTypes.accessible,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint};var h=o.StyleSheet.create({card:{flex:1,height:80,paddingLeft:20,paddingRight:20,flexDirection:'row',alignItems:'center',justifyContent:'space-between'},picture:{width:40,height:40,borderRadius:20,marginRight:14},title:{flex:1},title1:{fontSize:15,color:'black'},title2:{fontSize:12,color:'#666'},switchView:{paddingLeft:30}}),g=y;exports.default=g;","miot-sdk/ui/IndependentCard.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,r=e(require(\"@babel/runtime/helpers/slicedToArray\")),i=e(require(\"@babel/runtime/helpers/extends\")),n=e(require(\"@babel/runtime/helpers/toConsumableArray\")),s=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=e(require(\"@babel/runtime/helpers/inherits\")),c=e(require(\"@babel/runtime/helpers/defineProperty\")),f=e(require(\"prop-types\")),h=e(require(\"react\")),p=require(\"react-native\"),y=require(\"../resources\"),d=require(\"../resources/Strings\"),b=e(require(\"./Separator\")),m=e(require(\"./StringSpinner\")),g=require(\"../utils/accessibility-helper\"),S=require(\"../decorator/ReportDecorator\"),v={SINGLE:'single',TIME24:'time24',TIME12:'time12',DATE:'date'};Object.freeze(v);var T={MONTH:'month',DAY:'day',HOUR:'hour',MINUTE:'minute',SECOND:'second'};function k(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=(e-(r?1:0)).toString().length;return Array.from({length:e},function(e,n){return((t?'0000000000000':'')+(n+(r?0:1))).slice(-i)})}Object.freeze(T);var E=p.Platform.select({android:260,ios:220}),O=p.Dimensions.get('window'),A=O.width,w=O.height,D=A-20,N={lineColor:y.Styles.common.hairlineColor,textColor:'#666666',fontSize:15,selectTextColor:\"#333333\",selectFontSize:20,unitTextColor:'#333333',unitFontSize:10,rowHeight:52,selectBgColor:\"#f3f3f3\"},P=k(12,1,0),I=k(31,1,0),L=k(24,1,1),C=[y.strings.am,y.strings.pm],H=L.slice(1,13),M=k(60,1,1),x=(t={},(0,c.default)(t,T.MONTH,P),(0,c.default)(t,T.DAY,I),(0,c.default)(t,T.HOUR,k(24,1,0)),(0,c.default)(t,T.MINUTE,k(60,1,0)),(0,c.default)(t,T.SECOND,k(60,1,0)),t);Object.freeze(x);var B=['01','03','05','07','08','10','12'],F=['04','06','09','11'],q=(function(e){function t(e,r){var i;(0,s.default)(this,t),i=(0,l.default)(this,(0,u.default)(t).call(this,e,r)),(0,S.referenceReport)('MHDatePicker');var n=i.init(e),a=n.currentArray,o=n.dataSourceArray,c=i.getSubtitle(a);return i.state={visible:i.props.visible,dataSourceArray:o,currentArray:a,subtitle:c},i}return(0,o.default)(t,e),(0,a.default)(t,[{key:\"getSubtitle\",value:function(e){var t;if(this.props.type===v.SINGLE){var r=parseInt(e[0]),i=r>1?y.strings[this.props.singleType+\"s\"]:y.strings[this.props.singleType];return(0,d.formatString)(y.strings.singleSubTitle,r,i)}return d.formatString.apply(void 0,[(t={},(0,c.default)(t,v.DATE,y.strings.dateSubTitle),(0,c.default)(t,v.TIME24,y.strings.time24SubTitle),(0,c.default)(t,v.TIME12,y.strings.time12SubTitle),t)[this.props.type]].concat((0,n.default)(e)))}},{key:\"convert\",value:function(e){var t=this.props.type;if(e instanceof Date)switch(t){case v.DATE:return this.convert([e.getFullYear(),e.getMonth()+1,e.getDate()]);case v.TIME24:return this.convert([e.getHours(),e.getMinutes()]);case v.TIME12:return this.convertTo12([e.getHours(),e.getMinutes()]);case v.SINGLE:default:return['01']}else{if(!(e instanceof Array))return'string'==typeof e||'number'==typeof e?[\"\"+e]:['01'];switch(t){case v.DATE:return e.slice(0,3).map(function(e,t){return 0===t?\"\"+e:(\"0\"+e).slice(-2)});case v.TIME24:return e.slice(0,2).map(function(e){return(\"0\"+e).slice(-2)});case v.TIME12:return this.convertTo12(e);case v.SINGLE:return e.slice(0,1).map(function(e){return(\"0\"+e).slice(-2)});default:return['01']}}}},{key:\"convertTo12\",value:function(e){if(2===e.length){var t=e.map(function(e){return parseInt(e)});if(t.every(function(){return Number.isInteger})){var r;if(0===t[0])r=[y.strings.am,12,t[1]];else r=[t[0]>11?y.strings.pm:y.strings.am,t[0]>12?\"\"+(t[0]-12):\"\"+t[0],\"\"+t[1]];return r.map(function(e,t){return t>0?(\"0\"+e).slice(-2):e})}}return this.convert(new Date)}},{key:\"slice\",value:function(e,t,r){if(void 0===t&&void 0===r)return e;var i=e.indexOf((\"0\"+t).slice(-2))||0,n=e.lastIndexOf((\"0\"+r).slice(-2))||e.length-1;return e.slice(i,n+1)}},{key:\"getYears\",value:function(e,t){this.min=this.convert(e),this.max=this.convert(t);var r=Number.parseInt(this.min[0]),i=Number.parseInt(this.max[0]);return this.generateArray(r,i)}},{key:\"generateArray\",value:function(e,t){return e>t?(__DEV__&&console.warn&&console.warn('max < min'),[]):Array.from({length:t-e+1},function(t,r){return r+e}).map(function(e){return\"\"+e})}},{key:\"init\",value:function(e){var t,r,i,n,s=e.type,a=e.singleType,l=e.current,u=e.min,o=e.max,c=this.convert(l||new Date);switch(s){case v.DATE:return t=(new Date).getFullYear(),(r=new Date).setFullYear(t-15),(i=new Date).setFullYear(t+15),n=[this.getYears(u||r,o||i),P,I],this.updateDays(c,n),this.unitArray=[y.strings.yearUnit,y.strings.monthUnit,y.strings.dayUnit],{currentArray:c,dataSourceArray:n};case v.TIME24:return this.unitArray=[y.strings.hourUnit,y.strings.minuteUnit],{currentArray:c,dataSourceArray:[L,M]};case v.TIME12:return this.unitArray=['',y.strings.hourUnit,y.strings.minuteUnit],{currentArray:c,dataSourceArray:[C,H,M]};case v.SINGLE:default:return this.unitArray=[y.strings[a+\"Unit\"]],{currentArray:c,dataSourceArray:[this.slice(x[a],u,o)]}}}},{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){if(e.visible!==this.state.visible&&this.setState({visible:e.visible}),void 0===e.current||e.current!==this.props.current){var t=this.convert(e.current||new Date);this.setState({currentArray:t,subtitle:this.getSubtitle(t)})}}},{key:\"_checkUnlimitedHeightEnable\",value:function(){var e=!1;return this.props.datePickerStyle&&this.props.datePickerStyle.hasOwnProperty('unlimitedHeightEnable')&&(e=this.props.datePickerStyle.unlimitedHeightEnable),e}},{key:\"renderTitle\",value:function(){var e={height:this.props.showSubtitle?85:66},t={height:e.height,minHeight:e.height};this._checkUnlimitedHeightEnable()&&(t.height=null);var r={titleNumberOfLines:1,subTitleNumberOfLines:1};return this.props.datePickerStyle&&(this.props.datePickerStyle.hasOwnProperty('titleNumberOfLines')&&(r.titleNumberOfLines=this.props.datePickerStyle.titleNumberOfLines),this.props.datePickerStyle.hasOwnProperty('subTitleNumberOfLines')&&(r.subTitleNumberOfLines=this.props.datePickerStyle.subTitleNumberOfLines)),h.default.createElement(p.View,(0,i.default)({style:[R.titleContainer,t]},(0,g.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:g.AccessibilityRoles.text,accessibilityLabel:this.props.accessibilityLabel})),h.default.createElement(p.Text,{numberOfLines:r.titleNumberOfLines,allowFontScaling:this.props.datePickerStyle.allowFontScaling,style:[y.Styles.common.title,R.title,this.props.datePickerStyle.titleStyle]},this.props.title||''),this.props.showSubtitle?h.default.createElement(p.Text,{numberOfLines:r.subTitleNumberOfLines,allowFontScaling:this.props.datePickerStyle.allowFontScaling,style:[R.subtitle,this.props.datePickerStyle.subTitleStyle]},this.state.subtitle):null)}},{key:\"renderContent\",value:function(){var e=this,t=this.state,r=t.currentArray,n=t.dataSourceArray,s=r.length,a=D-(s-1)*p.StyleSheet.hairlineWidth,l=a/s,u=l+10,o=(a-u)/2,c=N;return this.props.datePickerStyle&&this.props.datePickerStyle.hasOwnProperty('pickerInnerStyle')&&(c=this.props.datePickerStyle.pickerInnerStyle),c.allowFontScaling=this.props.datePickerStyle.allowFontScaling,h.default.createElement(p.View,{style:R.pickerContainer},n.map(function(t,n){var a={width:l};return e.props.type===v.DATE&&(a=0===n?{width:u}:{width:o}),h.default.createElement(p.View,{key:n+e.unitArray[n],style:[{flexDirection:'row'},a]},h.default.createElement(m.default,(0,i.default)({key:n+e.unitArray[n],style:a,unit:e.unitArray[n],dataSource:t,defaultValue:r[n],pickerInnerStyle:c,onValueChanged:function(t){return e._onValueChanged(n,t)}},(0,g.getAccessibilityConfig)({accessible:e.props.accessible,accessibilityHint:e.props.accessibilityHint}))),n0&&(i=r.max,e=!0),r.compareDateArray(i,r.min)<0&&(i=r.min,e=!0),r.updateDays(i,s),s[2].length!==r.state.dataSourceArray[2].length&&(e=!0),e&&r.setState({subtitle:r.getSubtitle(i),currentArray:i,dataSourceArray:s})}})}},{key:\"dismiss\",value:function(){this.setState({visible:!1}),this.props.onDismiss&&this.props.onDismiss()}},{key:\"array2Date\",value:function(){var e,t=this.state.currentArray,r=new Date;switch(this.props.type){case v.DATE:r.setFullYear(t[0]),r.setMonth(parseInt(t[1])-1),r.setDate(parseInt(t[2]));break;case v.TIME24:r.setHours(t[0]),r.setMinutes(t[1]);break;case v.TIME12:e=parseInt(t[1]),e=t[0]===y.strings.am?12===e?0:e:e<12?e+12:e,r.setHours(e),r.setMinutes(t[2]);break;case v.SINGLE:default:return null}return r}},{key:\"confirm\",value:function(){this.props.onSelect&&this.props.onSelect({rawArray:this.state.currentArray,rawString:this.state.subtitle,date:this.array2Date()}),this.dismiss()}}]),t})(h.default.Component);exports.default=q,q.propTypes={animationType:f.default.string,visible:f.default.bool,title:f.default.string,showSubtitle:f.default.bool,confirmColor:f.default.string,type:f.default.oneOf([v.DATE,v.SINGLE,v.TIME12,v.TIME24]),singleType:f.default.oneOf([T.MONTH,T.DAY,T.HOUR,T.MINUTE,T.SECOND]),current:f.default.oneOfType([f.default.arrayOf(f.default.string),f.default.arrayOf(f.default.number),f.default.instanceOf(Date)]),min:f.default.oneOfType([f.default.arrayOf(f.default.string),f.default.arrayOf(f.default.number),f.default.instanceOf(Date)]),max:f.default.oneOfType([f.default.arrayOf(f.default.string),f.default.arrayOf(f.default.number),f.default.instanceOf(Date)]),datePickerStyle:f.default.object,onSelect:f.default.func,onDismiss:f.default.func,accessible:g.AccessibilityPropTypes.accessible,accessibilityLabel:g.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:g.AccessibilityPropTypes.accessibilityHint},q.defaultProps={animationType:'fade',visible:!1,title:'\\u5f00\\u542f\\u65f6\\u95f4',showSubtitle:!0,confirmColor:y.Styles.common.MHGreen,type:v.TIME24,singleType:T.MINUTE,datePickerStyle:{pickerInnerStyle:N,unlimitedHeightEnable:!1,allowFontScaling:!0,titleNumberOfLines:1,subTitleNumberOfLines:1,titleStyle:null,subTitleStyle:null,leftButtonNumberOfLines:1,rightButtonNumberOfLines:1,leftButtonStyle:null,rightButtonStyle:null},onSelect:function(e){return console.log(e)}},q.TYPE=v,q.SINGLE_TYPE=T;var R=p.StyleSheet.create({background:{flex:1,backgroundColor:'rgba(0,0,0,0.4)'},modal:{position:'absolute',bottom:20,width:D,marginHorizontal:10,backgroundColor:'#fff',borderRadius:15},titleContainer:{justifyContent:'center',alignItems:'center'},title:{fontFamily:'D-DINCondensed-Bold'},subtitle:{width:D,textAlign:'center',fontSize:13,color:'#666'},pickerContainer:{flexDirection:'row',height:E,justifyContent:'space-between'},buttons:{minHeight:50,flexDirection:'row',backgroundColor:'transparent',justifyContent:'space-between'},button:{flex:1,backgroundColor:'transparent',justifyContent:'center',alignItems:'center'},buttonText:{fontSize:14,lineHeight:19,color:'#666',fontFamily:'D-DINCondensed-Bold'}});","miot-sdk/ui/MHDatePicker.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.dynamicStyleSheet=function(e){var r=l.default.getColorScheme();return new u(e)[r||'light']},exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/slicedToArray\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"./DynamicColor\")),l=e(require(\"miot/darkmode\")),u=(function(){function e(r){(0,t.default)(this,e),this.light=this._create(r,'light'),this.dark=this._create(r,'dark')}return(0,a.default)(e,[{key:\"_create\",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'light',a={},l=0,u=Object.entries(e);l component requires a `source` property rather than `src`.'),this.props.children)throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');if(e&&(e.uri||Array.isArray(e))){var t,a;if(e.uri){var n=e.width,o=e.height;t=(0,i.default)([{width:n,height:o},q.base,this.props.style]),a=[{uri:e.uri}]}else t=(0,i.default)([q.base,this.props.style]),a=e;var u=this.props,s=u.onLoadStart,l=u.onLoad,d=u.onLoadEnd,h=u.onError,b=y(this.props,{style:t,shouldNotifyLoadEvents:!!(s||l||d||h),src:a,headers:e.headers,loadingIndicatorSrc:r?r.uri:null});return this.context.isInAParentText?c.default.createElement(f.Image,b):c.default.createElement(S,b)}return null}}],[{key:\"getSize\",value:function(e,r,t){return g.getSize(e).then(function(e){r(e.width,e.height)}).catch(t||function(){__DEV__&&console.warn&&console.warn(\"Failed to get size for image: \"+e)})}},{key:\"prefetch\",value:function(e,r){var t=m++;return r&&r(t),g.prefetchImage(e,t)}},{key:\"abortPrefetch\",value:function(e){g.abortRequest(e)}}]),r})(c.default.Component);exports.default=v,v.propTypes=(0,r.default)({},f.ViewPropTypes,{style:(0,h.default)(l.default),source:d.default.oneOfType([d.default.shape({uri:d.default.string,headers:d.default.objectOf(d.default.string)}),d.default.number,d.default.arrayOf(d.default.shape({uri:d.default.string,width:d.default.number,height:d.default.number,headers:d.default.objectOf(d.default.string)}))]),blurRadius:d.default.number,loadingIndicatorSource:d.default.oneOfType([d.default.shape({uri:d.default.string}),d.default.number]),progressiveRenderingEnabled:d.default.bool,fadeDuration:d.default.number,onLoadStart:d.default.func,onError:d.default.func,onLoad:d.default.func,onLoadEnd:d.default.func,testID:d.default.string,resizeMethod:d.default.oneOf(['auto','resize','scale']),resizeMode:d.default.oneOf(['cover','contain','stretch','center'])}),v.resizeMode=s.default,v.resolveAssetSource=p.default,v.contextTypes=b.ViewContextTypes;var q=f.StyleSheet.create({base:{overflow:'hidden'}}),S=(0,f.requireNativeComponent)('MHImageView',v,{nativeOnly:{src:!0,headers:!0,loadingIndicatorSrc:!0,shouldNotifyLoadEvents:!0}});","miot-sdk/ui/image/index.android.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=e(require(\"@babel/runtime/helpers/inherits\")),u=e(require(\"react-native/Libraries/StyleSheet/EdgeInsetsPropType\")),s=e(require(\"react-native/Libraries/StyleSheet/flattenStyle\")),l=e(require(\"react-native/Libraries/Image/ImageResizeMode\")),d=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType\")),c=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes\")),p=e(require(\"prop-types\")),f=e(require(\"react\")),h=require(\"react-native\"),b=e(require(\"react-native/Libraries/Image/resolveAssetSource\")),y=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType\")),m=(function(e){function u(){return(0,t.default)(this,u),(0,i.default)(this,(0,o.default)(u).apply(this,arguments))}return(0,n.default)(u,e),(0,a.default)(u,[{key:\"render\",value:function(){var e,t,a=(0,b.default)(this.props.source)||{uri:void 0,width:void 0,height:void 0};if(Array.isArray(a))t=(0,s.default)([g.base,this.props.style])||{},e=a;else{var i=a.width,o=a.height,n=a.uri;t=(0,s.default)([{width:i,height:o},g.base,this.props.style])||{},e=[a],''===n&&__DEV__&&console.warn&&console.warn('source.uri should not be an empty string')}var u=this.props.resizeMode||(t||{}).resizeMode||'cover',l=(t||{}).tintColor;if(this.props.src&&__DEV__&&console.warn&&console.warn('The component requires a `source` property rather than `src`.'),this.props.children)throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');return f.default.createElement(v,(0,r.default)({},this.props,{style:t,resizeMode:u,tintColor:l,source:e}))}}],[{key:\"getSize\",value:function(e,r,t){ImageViewManager.getSize(e,r,t||function(){__DEV__&&console.warn&&console.warn(\"Failed to get size for image: \"+e)})}},{key:\"prefetch\",value:function(e){return ImageViewManager.prefetchImage(e)}}]),u})(f.default.Component);exports.default=m,m.propTypes={style:(0,y.default)(c.default),source:d.default,defaultSource:p.default.oneOfType([p.default.shape({uri:p.default.string,width:p.default.number,height:p.default.number,scale:p.default.number}),p.default.number]),layerScaleFilter:p.default.oneOf(['Nearest','Linear','Trilinear']),accessible:p.default.bool,accessibilityLabel:p.default.node,blurRadius:p.default.number,capInsets:u.default,resizeMethod:p.default.oneOf(['auto','resize','scale']),resizeMode:p.default.oneOf(['cover','contain','stretch','repeat','center']),testID:p.default.string,onLayout:p.default.func,onLoadStart:p.default.func,onProgress:p.default.func,onError:p.default.func,onPartialLoad:p.default.func,onLoad:p.default.func,onLoadEnd:p.default.func,src:p.default.any},m.resizeMode=l.default,m.resolveAssetSource=b.default;var g=h.StyleSheet.create({base:{overflow:'hidden'}}),v=(0,h.requireNativeComponent)('MHImageView',null);","miot-sdk/ui/image/index.ios.js"]]};function p(){if(!f.size&&c&&(l(c),c=null,f.size<1&&g())){var e=r.join(t,"bin","config","modules_sdk"),n=i.existsSync(e)?i.readFileSync(e):null;n&&(l(JSON.parse(n.toString()||"{}")),n=null)}}function g(){return!o||!a._miot_building}a.transform=function(e){p();var i=r.relative(t,e.filename),n=i.replace(/\\/g,"/");if(a._miot_fixbug){var o=a._miot_fixbug(n,e,s);if(o)return o}var l=u.findContent(n);if(l)return console.log("FIXBUG",i),e.src=l.toString(),s(e);if(g()){var c=i.replace(/\\/g,"/"),m=f.get(c);if(m)return e.src=m,e.options.dev=!1,e.options.hot=!1,e.options.minify=!0,e.options.enableBabelRCLookup=!1,e.options.inlineRequires=!0,s(e)}return s(e)},module.exports=a; +'use strict';require('../setupBabel')();var e=require('metro-react-native-babel-transformer/src/index.js'),i=require('path'),r=require("fs"),n=require("./common"),o=n.project_dir,t=n.DEV,u=require('../fixbug'),s=e.transform,l={getCacheKey:e.getCacheKey},a=new Map;function f(e){e&&'string'!=typeof e&&(e.modules||[]).forEach(function(e){a.set(e[1],e[0])})}var c={"modules":[["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"./service/Account\")).default;exports.default=r;","miot-sdk/Account.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,i=e(require(\"@babel/runtime/helpers/objectSpread\")),o=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),u=t(require(\"../native\")),s=require(\"../decorator/ReportDecorator\"),c=(r=(function(){function e(){(0,o.default)(this,e)}return(0,n.default)(e,[{key:\"load\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=u.Properties.of(this);return!t&&r.isLoaded?Promise.resolve(this):new Promise(function(t,o){u.default.MIOTService.loadAccountInfo(r.id,function(n,a){n?(a.nickName&&''!==a.nickName||(a.nickName=r.nickName||''),u.Properties.init(e,(0,i.default)({},a,{isLoaded:!0,id:r.id})),t(e)):o(a)})})}},{key:\"getAccountInfoById\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.loadAccountInfo(e,function(e,i){e&&i?t({ID:i.id||i.currentAccountID2||i.userid,avatarURL:i.avatarURL,birth:i.birth,email:i.email,nickName:i.nickname||i.nickName,phone:i.phone,sex:i.sex,shareTime:i.shareTime}):r(i)})})}},{key:\"getAccountInfoList\",value:function(e){return new Promise(function(t,r){u.default.MIOTRPC.standardCall('/home/profiles',{uids:e},function(e,i){if(e){var o=[];if(null===i||null===i.list||0===i.list.length)t(o);else{for(var n=i.list.length,a=0;a1&&void 0!==arguments[1]?arguments[1]:0;return setTimeout(e,t)};exports.SetTimeout=x;var g=function(e){return e&&clearTimeout(e)};exports.ClearTimeout=g;var E={current:0,funcs:[],timer:0},T={addListener:function(e,t){if(!t||t<1||!e)return{remove:function(){},get isValid(){return!1}};var r=E.funcs;if(!E.timer){E.timer=setTimeout(function e(){if(E.timer){var t=(new Date).getTime(),i=4999;r.forEach(function(e,a){if(e)if(e.expire<=t)\"continue\"==e.func()?e.expire=t+e.timeout:r[a]=0;else{var n=e.expire-t;n1?t-1:0),a=1;a1?i-1:0),l=1;l1?a-1:0),u=1;u0&&void 0!==arguments[0])||arguments[0],t=(new Date).getTime();t!=p.t&&(p.ts=p.rand((\"\"+(t+p.min)).split(\"\")),p.t=t,p.i=a(1e7,99999999),p.r=p.i%10,u(p.ts,p.r,p.ts.length-1-p.r));var r=\"\"+ ++p.i%1e8+p.r+a(1e7,99999999),n=Math.floor((r.length-p.ts.length)/2),o=p.ts.map(function(e,t){return t%2?e+r.charAt(n+t):r.charAt(n+t)+e}).join(\"\");for(o=r.substr(0,n)+o+r.substr(n+p.ts.length),o=p.rand(o.split(\"\")).join(\"\");o.length<32;)o=a(0,10)+o;return e?(e=\"function\"==typeof e?e:p.exchange)(o):o}function h(e,t,r){return((e<<16)+(t<<8)+r).toString(16).padStart(6,'0')}function d(e){return\"rgb(\"+e.slice(1).match(/.{2}/g).map(function(e){return parseInt(e,16)}).join()+\")\"}function v(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;no?e:void 0===n||null===n?'-':n})}function y(e){var t=Object.prototype.toString.call(e);return t.substr(8,t.length-9).toLowerCase()}function x(e){return void 0===e?'undefined':null===e?'null':e.constructor.name.toLowerCase()}function b(e){return e.match(/([^?=&]+)(=([^&]*))/g).reduce(function(e,t){return e[t.slice(0,t.indexOf('='))]=t.slice(t.indexOf('=')+1),e},{})}function m(e,t,r){return Object.defineProperty(e,t,{enumerable:!0,configurable:!1,get:function(){return r},set:function(){}})}function A(e){if(!e)return e;for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0?r:Object.keys(e)).forEach(function(t){m(e,t,e[t])}),e}function j(e){return e?(Object.keys(e).forEach(function(t){m(e,t,e[t]||t)}),e):{}}function E(e){if(e.length<1)return function(){return\"\"};var t=e[0];return\"function\"==typeof t?t:function(){for(var t=arguments.length,r=new Array(t),n=0;n0)for(var o=1;o()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;exports.REGEXP_EMAIL=M;var R={swap:u,randomInt:a,uniqueToken32:g,format:v,formats:O,createArrayFormater:E,typeName:y,className:x,setReadonly:m,setObjectReadonly:A,setObjectAsConstants:j,hexToRgb:d,rgbToHex:h,getUrlParameters:b,getStandardLanguageName:w,REGEXP_EMAIL:M};exports.default=R;","miot-sdk/native/utils.js"],["'use strict';var e=require(\"react-native/Libraries/Image/resolveAssetSource\");function t(e){return e&&(e.endsWith(\"/\")||(e+=\"/\"),e.startsWith(\"/\")&&(e=\"file://\"+e)),e}module.exports=function(s,r,o){if(console.log(\"resolveAssetSource\",s,r,o),s&&\"\"!=s&&o&&\"\"!=o&&r&&\"\"!=r){var i=(s=t(s)).startsWith(\"asset:/\")?\"file:///\":null;o=t(o),r=t(r),e.setMiotProcessor&&e.setMiotProcessor(function(e){e&&'object'==typeof e&&'string'==typeof e.local&&e.local.length>0&&(e.uri=r+e.local)}),e.setCustomSourceTransformer(function(e){var t=e.asset._miot_base_bundle;e.jsbundleUrl=t?i||s:o;var r=e.defaultAsset();return t&&i&&(r.uri=s+r.uri.substr(i.length)),r})}};","miot-sdk/native/common/node/resolve.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;exports.default=function(e,n){var t=function(n,t){var r=e[n]||{actions:new Set};return r.close?r.close():e[n]=r,r.emitter={get eventType(){return n},emit:function(){for(var e=arguments.length,n=new Array(e),t=0;t4&&void 0!==arguments[4]?arguments[4]:200404};t.default.MIOTPackage.apiReport(c)}function r(e,t,r,n,c){c&&'object'==typeof c&&'code'in c?o(e,t,r,n,c.code):o(e,t,r,n)}exports.referenceReport=function(e){o(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:'constructor',!0,0)};","miot-sdk/decorator/ReportDecorator.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.takeBluetooth=exports.getBluetoothUUID128=exports.IBluetoothLock=exports.IBluetoothCharacteristic=exports.IBluetoothService=exports.BluetoothEvent=exports.IBluetooth=exports.default=void 0;var o=t(require(\"./device/bluetooth\")),r=require(\"./device/bluetooth/BluetoothDevice\"),u=require(\"./device/bluetooth/CoreBluetooth\"),l=e(require(\"./device/bluetooth/LockDevice\")),h=o.default;exports.default=h;var i=r.IBluetooth;exports.IBluetooth=i;var a=r.BluetoothEvent;exports.BluetoothEvent=a;var s=u.IBluetoothService;exports.IBluetoothService=s;var v=u.IBluetoothCharacteristic;exports.IBluetoothCharacteristic=v;var p=l.default;exports.IBluetoothLock=p;var B=o.getBluetoothUUID128;exports.getBluetoothUUID128=B;var c=o.takeBluetooth;exports.takeBluetooth=c;","miot-sdk/Bluetooth.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.takeBluetooth=s,exports.default=exports.getBluetoothUUID128=void 0;var n=t(require(\"../../native\")),i=require(\"./BluetoothDevice\"),r=e(require(\"./LockDevice\")),o=e(require(\"../BasicDevice\")),u=e(require(\"./blespec\")),a=function(e){if(!e||''==e)return null;if((e=e.toUpperCase()).length>8)return e;switch(e.length){case 2:e=\"000000\"+e;break;case 4:e=\"0000\"+e;break;case 6:e=\"00\"+e;break;case 8:break;default:return null}return e+\"-0000-1000-8000-00805F9B34FB\"};exports.getBluetoothUUID128=a;var c=function(e,t){return{mac:e,deviceUUID:t,get id(){return n.isAndroid?this.mac:this.mac?this.mac:this.deviceUUID}}},l=n.default.LocalCache.bluetoothDevices;function s(e,t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e&&!t)return null;var u=(0,i.getMacUuid)();if(n.isAndroid)t=null;else if(u&&(t&&(t=a(t)),e)){var s=u.get(e);s?t=s:(0,i.setMacUuid)(e,t)}var f=l.get(t||e);if(!f&&t&&(f=l.get(e))&&l.set(t,f),f)n.Properties.of(f).isClassic=o;else{var d=c(e,t),h=new r.default;n.Properties.init(h,{fakemac:d}),f=n.Properties.init(new i.IBluetooth,{fakemac:d,services:new Map,securityChip:h,isClassic:o,_specMsgSet:new Set}),e&&l.set(e,f),t&&l.set(t,f)}return f}var f={UUID128:a,isSameUUID:function(e,t){return e==t||!(!e||!t)&&a(e)==a(t)},createBluetoothLE:function(e){return n.isAndroid?s(e,null,!1):s(null,e,!1)},createBluetoothClassic:function(e){return n.isAndroid?s(e,null,!0):s(null,e,!0)},checkBluetoothIsEnabled:function(){return n.isAndroid?new Promise(function(e){n.default.MIOTBluetooth.isBluetoothOpen(function(t){e(t)})}):new Promise(function(e){n.default.MIOTBluetooth.getBluetoothStateCallback(function(t){e(5==t)})})},startScan:function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r0&&void 0!==arguments[0]&&arguments[0];n.isAndroid&&n.default.MIOTBluetooth.openBluetooth(e)},isBleGatewayConnected:function(e){return new Promise(function(t){n.isAndroid?n.default.MIOTBluetooth.isBleGatewayConnected(e,function(e){t(e)}):n.default.MIOTHost.isBtGateWaySubDeviceWithMac(e,function(e){t(e)})})},isBleOrMeshGatewayConnected:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(i,r){n.default.MIOTBluetooth.isBleOrMeshGatewayConnected(e,t,function(t,n){if(t){if(n&&n.data&&!n.data.connected&&o.default.mac===e&&o.default.isShared)return void i({code:0,data:{connected:o.default.isOnline}});i(n)}else r(n)})})},getBtGateWaySubDeviceRSSI:function(e){return new Promise(function(t,i){n.default.MIOTHost.getBtGateWaySubDeviceRSSIWithMac(e,function(e,n){e?t(n):i(n)})})},bindDeviceforMIUI:function(e){n.isAndroid&&n.default.MIOTBluetooth.bindDevice(e)},unBindDeviceforMIUI:function(e){n.isAndroid&&n.default.MIOTBluetooth.unBindDevice(e)},setAlertConfigsOnMIUI:function(e,t,i){if(n.isAndroid)return new Promise(function(r){n.default.MIOTBluetooth.setAlertConfigs(e,t,i,function(e){return r(e)})});Promise.reject(\"not MIUI\")}};exports.default=f;","miot-sdk/device/bluetooth/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.setMacUuid=function(e,t){t&&v.set(e,t)},exports.getMacUuid=function(){return v},exports.BluetoothEvent=exports.IBluetooth=void 0;var r,o=e(require(\"@babel/runtime/helpers/toConsumableArray\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),c=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),s=t(require(\"../../native\")),a=require(\"./CoreBluetooth\"),u=t(require(\"./index\")),l=e(require(\"../BasicDevice\")),f=require(\"../../decorator/ReportDecorator\"),v=s.isIOS?new Map:null,d=s.default.LocalCache.bluetoothDevices;function p(e){for(var t=e.toString(),r='',o=0;o0&&void 0!==arguments[0]?arguments[0]:-1,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!Number.isInteger(t))return Promise.reject({code:101,msg:\"the first param type is error, param type must be an integer\"});var o=s.Properties.of(this);if(o._connecting&&!s.isIOS)return Promise.reject({code:100,msg:\"the bluetooth is connecting now, please waiting for a moment\"});if(r=r||{},o.isConnected&&!r.forceReconnect&&(r.forceReconnect=o._disconnect_timeout&&o._disconnect_timeout>=(new Date).getTime(),!r.forceReconnect))return Promise.resolve(this);var i=o.fakemac;if(r&&r.peripheralID&&(i.deviceUUID?i.deviceUUID!==r.peripheralID&&u.default.createBluetoothClassic(r.peripheralID):i.deviceUUID=r.peripheralID),v&&!i.deviceUUID){if(!i.mac)return Promise.reject({code:10,msg:\"invalid bluetooth on IOS\"});i.deviceUUID=v.get(i.mac),i.deviceUUID}return o._connecting=!0,new Promise(function(n,c){s.default.MIOTBluetooth.connect(i.id,t,r,function(t,r){if(o._connecting=!1,o._disconnect_timeout=0,t){o.isConnected=!0;var a=r.services;(a||[]).forEach(function(t){var r=e.getService(t.uuid);r&&(s.Properties.of(r).isDiscovered=!0,(t.chars||[]).forEach(function(e){var t=r.getCharacteristic(e);t&&(s.Properties.of(t).isDiscovered=!0)}))}),n(r),s.MIOTEventEmitter.emit('bluetoothSeviceDiscovered',{mac:i.id,foundUUIDs:(a||[]).map(function(e){return e.uuid})}),(a||[]).forEach(function(e){s.MIOTEventEmitter.emit('bluetoothCharacteristicDiscovered',{mac:i.id,serviceUUID:e.uuid,foundUUIDs:e.chars||[]})})}else{if(o.isConnected=!1,s.isIOS){var u={0:-6,1:-15,2:-7,3:-10,5:-1,6:-16,7:-18,8:-20,4:0};void 0!==r.code&&(console.log(r.code),void 0!==u[r.code]&&(r.code=u[r.code]))}c(r)}})})}},{key:\"readRSSI\",value:function(){var e=this;return new Promise(function(t,r){var o=s.Properties.of(e).fakemac;s.default.MIOTBluetooth.readRSSI(o.id,function(e,o){e?t(o):r(o)})})}},{key:\"disconnect\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=s.Properties.of(this);return!(t._connecting&&!s.isIOS)&&(t._disconnect_timeout=(new Date).getTime()+(e&&e>0?e:0)+1,s.default.MIOTBluetooth.disconnectDeviceWithDelay(t.fakemac.id,e),!0)}},{key:\"maximumWriteValueLength\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return __DEV__&&console.warn&&console.warn(\"maximumWriteValueLength deprecated Use {@readReliableMTU} \\u5efa\\u8bae\\u4f7f\\u7528readReliableMTU\"),new Promise(function(t,r){s.isIOS?s.default.MIOTBluetooth.maximumWriteValueLengthForType(e,function(e,o){e?t(o):r(o)}):(console.log(\"has no real methord,return default value 20 bytes.\"),t(160))})}},{key:\"readReliableMTU\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{timeout:2};return new Promise(function(t,r){if(s.isIOS)s.default.MIOTBluetooth.readReliableMTU(e,function(e,o,i){e?t({reliable:o,mtu:i}):r(i)});else{var o=l.default.mtu||23;t({reliable:23===o,mtu:o})}})}},{key:\"getVersion\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(o,i){function n(e){var t=(s.Properties.of(this).fakemac||{}).mac,r=l.default,o=s.Properties.of(r);o.mac!=t&&(r=(o._subDevices||[]).find(function(e){return t==e.mac})),r&&(r.version=e)}var c=s.Properties.of(e).fakemac;s.isIOS?t?s.default.MIOTBluetooth.readHexStringWithCallback(c.id,'0004','FE95',function(t,c){if(r||(c=p(c)),t)return n.call(e,c),void o(c);i(c)}):s.default.MIOTDevice.getVersion(!1,function(t,r){if(t)return n.call(e,r),void o(r);i(r)}):s.default.MIOTBluetooth.getVersion(c.id,!1,function(t,r){if(t)return n.call(e,r),void o(r);i(r)})})}},{key:\"subscribeMessages\",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&r.objects.forEach(function(e){var t=\"prop.\"+e.siid+\".\"+e.piid;c.has(t)&&(p.set(t,e.value),s.set(t,e))});break;case d.BleSpecOpCode.event_occured:if(r.objects&&r.objects.length>0){var u=\"event.\"+r.siid+\".\"+r.eiid;c.has(u)&&(p.set(u,r.objects),s.set(u,r.objects))}break;default:console.log('BLESpecNotifyActionEvent,unknown opcode:',r.opcode)}0!==p.size?e.emit(n,p,s):console.log('BLESpecNotifyActionEvent,data is empty.')}else console.log('BLESpecNotifyActionEvent,_specMsgSet is null')}else console.log('BLESpecNotifyActionEvent,bleDevice is null')}else console.log('BLESpecNotifyActionEvent error:result is null')}}},deviceReceivedMessages:{forever:function(e){return function(t){var r=t.did,o=t.data,i=t.subcribeId;if(console.log('listenMessage,deviceReceivedMessages',r,o,i,a.default.LocalCache.deviceUsingSubscribers),i){var n=a.default.LocalCache.deviceUsingSubscribers;if(n&&!n.has(i))return}var c=f(r).device;if(c){\"string\"==typeof o&&(o=JSON.parse(o));var s=new Map,p=a.Properties.of(c)._pollMsgSet,u=i&&p&&p.subscribeInfoMap.has(i);o.forEach(function(e){if(p&&(u||e._msg_source&&e._msg_source===y.MSG_SOURCE_POLL)){var t=e.value,r=p.propInfoMap.get(e.key);r&&(r.type===y.PROP_TYPE_MIOT_SPEC||r.type===y.PROP_TYPE_PROFILE?e.time>r.updateTime&&JSON.stringify(t)!==JSON.stringify(r.value)?(r.value=e.value,s.set(e.key,e.value),r.updateTime=e.time):console.log('listenMessage,deviceReceivedMessages,prop not changed,',e.key,e.value):s.set(e.key,e.value))}else s.set(e.key,e.value)}),e.emit(c,s,o)}}},sameas:(a.isIOS,\"deviceRecievedMessages\")},multiSwitchNameChanged:{forever:function(e){return function(t){a.isAndroid&&'string'==typeof t.value&&(t.value=JSON.parse(t.value)),e.emit(t.value,t.did)}}}};exports.DeviceEvent=g,(0,a.buildEvents)(g);var D=(r=(function(){function e(){(0,i.default)(this,e)}return(0,n.default)(e,[{key:\"getDeviceWifi\",value:function(){var e=a.Properties.of(this);return e._device_wifi||(e._device_wifi=a.Properties.init(new u.default,e),e._device_wifi.deviceID=this.deviceID),e._device_wifi}},{key:\"deleteDevices\",value:function(e){return new Promise(function(t,r){a.default.MIOTRPC.standardCall(\"/user/del_owner_device_batch\",{devList:e},function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getSubDevices\",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=a.Properties.of(this);return i.parentDevice&&Object.keys(i.parentDevice).length>0?Promise.reject('parent device exist, current device is a sub device, can not load sub devices'):r&&i._subDevices?Promise.resolve(i._subDevices):new Promise(function(r,n){a.default.MIOTDevice.loadSubDevices(t.deviceID,function(c,s){c&&s?(i._subDevices=s.map(function(r){return a.Properties.init(new e,(0,o.default)({},r,{_parentDeviceID:t.deviceID,_parentDevice:t,_msgset:new Set,_pollMsgSet:new y}))}),r(i._subDevices)):n(s)})})}},{key:\"getLinkedBTDevices\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e=e||this.deviceID,new Promise(function(t,r){a.default.MIOTDevice.getLinkedBTDevices(e,function(e,o){if(!e||!o)return r({code:-1,error:o,extra:'fetch bledevice info failed'});t(o)})})}},{key:\"loadRealDeviceConfig\",value:function(e){return new Promise(function(t,r){a.default.MIOTHost.loadRealDeviceConfig(e,function(e,o){e?t(o):r(o)})})}},{key:\"getBluetoothLE\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=a.Properties.of(this);if(!t.mac)throw new Error(\"the device is not initialized\");return(0,l.takeBluetooth)(t.mac,e,!1)}},{key:\"reportDeviceGPSInfo\",value:function(){var e=this;return new Promise(function(t,r){a.default.MIOTDevice.reportDeviceGPSInfo(function(o,i){if(o){var n=a.Properties.of(e);n.latitude=i.latitude||i.lat,n.longitude=i.longitude||i.lng,t(i)}else r(i)})})}},{key:\"getDeviceTimeZone\",value:function(){var e=this;if(a.isIOS){var t={timeZone:this.timeZone};return Promise.resolve(t)}return new Promise(function(t,r){a.default.MIOTDevice.getDeviceTimeZone(e.deviceID,function(e,o){e?t(o):r(o)})})}},{key:\"changeDeviceName\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new Promise(function(r,o){a.default.MIOTDevice.changeDeviceName(e,t,function(i,n){if(i){var c=f(t),s=c.device,a=c.props;s&&a&&(a.name=e),r(n)}else o(n)})})}},{key:\"getCurrentDeviceValue\",value:function(){return new Promise(function(e,t){a.default.MIOTDevice.getCurrentDeviceValue(function(r,o){r?e(o):t(o)})})}},{key:\"getVirtualDevices\",value:function(){return __DEV__&&console.warn&&console.warn(\"getVirtualDevices deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().getVirtualDevices()\\u4ee3\\u66ff\"),this.getDeviceWifi().getVirtualDevices()}},{key:\"getRecommendScenes\",value:function(e,t){return __DEV__&&console.warn&&console.warn(\"getRecommendScenes deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().getRecommendScenes()\\u4ee3\\u66ff\"),this.getDeviceWifi().getRecommendScenes(e,t)}},{key:\"requestAuthorizedDeviceListData\",value:function(e){return __DEV__&&console.warn&&console.warn(\"requestAuthorizedDeviceListData deprecated since 10032\\uff0c\\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().requestAuthorizedDeviceListData()\\u4ee3\\u66ff\"),new Promise(function(t,r){a.default.MIOTDevice.requestAuthorizedDeviceListData(e,function(e,o){e?t(o):r(o)})})}},{key:\"checkIsHomeKitDevice\",value:function(){return __DEV__&&console.warn&&console.warn(\"checkIsHomeKitDevice deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().checkIsHomeKitDevice()\"),this.getDeviceWifi().checkIsHomeKitDevice()}},{key:\"checkHomeKitConnected\",value:function(){return __DEV__&&console.warn&&console.warn(\"checkHomeKitConnected deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().checkHomeKitConnected()\"),this.getDeviceWifi().checkHomeKitConnected()}},{key:\"bindToHomeKit\",value:function(){return __DEV__&&console.warn&&console.warn(\"bindToHomeKit deprecated since 10032 \\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().bindToHomeKit()\"),this.getDeviceWifi().bindToHomeKit()}},{key:\"checkFirmwareUpdateAndAlert\",value:function(){return __DEV__&&console.warn&&console.warn(\"checkFirmwareUpdateAndAlert deprecated since 10032,\\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().checkFirmwareUpdateAndAlert()\"),this.getDeviceWifi().checkFirmwareUpdateAndAlert()}},{key:\"readDeviceNetWorkInfo\",value:function(e){return __DEV__&&console.warn&&console.warn(\"readDeviceNetWorkInfo deprecated since 10032 \\u5373\\u5c06\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528Device.getDeviceWifi().readDeviceNetWorkInfo()\\u3002\"),this.getDeviceWifi().readDeviceNetWorkInfo(e)}},{key:\"createScene\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return __DEV__&&console.warn&&console.warn(\"createScene deprecated since 10032 \\u8bf7\\u4f7f\\u7528Service.scene.createScene(BasicDevice.deviceID,sceneType,opt)\"),p.default.createScene(this.deviceID,e,t)}},{key:\"createTimerScene\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return __DEV__&&console.warn&&console.warn(\"createTimerScene deprecated since 10032 \\u8bf7\\u4f7f\\u7528Service.scene.createTimerScene(BasicDevice.deviceID,opt)\"),p.default.createTimerScene(this.deviceID,e)}},{key:\"loadScenes\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return __DEV__&&console.warn&&console.warn(\"loadScenes deprecated since 10032 \\u8bf7\\u4f7f\\u7528Service.scene.loadScenes(BasicDevice.deviceID,sceneType,opt)\"),p.default.loadScenes(this.deviceID,e,t)}},{key:\"loadTimerScenes\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return __DEV__&&console.warn&&console.warn(\"loadTimerScenes deprecated since 10032 \\u8bf7\\u4f7f\\u7528Service.scene.loadTimerScenes(BasicDevice.deviceID,opt)\"),p.default.loadTimerScenes(this.deviceID,e)}},{key:\"reportLog\",value:function(e){__DEV__&&console.warn&&console.warn(\"reportLog deprecated since 10032,\\u8bf7\\u4f7f\\u7528Service.smarthome.reportLog()\\u4ee3\\u66ff\\u3002\"),'[object String]'==Object.prototype.toString.call(e)?a.default.MIOTService.addLog(this.model,e):a.default.MIOTService.addLog(this.model,String(e))}},{key:\"getRoomInfoForCurrentHome\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e=e||this.deviceID,new Promise(function(t,r){a.default.MIOTDevice.getRoomInfoForCurrentHome(e,function(e,o){e?t(o):r(o)})})}},{key:\"needUpgrade\",get:function(){return a.Properties.of(this).needUpgrade},set:function(e){a.Properties.of(this).needUpgrade=e}},{key:\"deviceID\",get:function(){return a.Properties.of(this).did}},{key:\"model\",get:function(){return a.Properties.of(this).model}},{key:\"isReady\",get:function(){var e=a.Properties.of(this).did;return e&&''!=e}},{key:\"parentDevice\",get:function(){var t=a.Properties.of(this)._parentDevice;if(!t){var r=a.Properties.of(this).parentDevice;r&&r.did&&(t=new e,a.Properties.init(t,(0,o.default)({},r,{_msgset:new Set,_pollMsgSet:new y})),a.Properties.of(this)._parentDevice=t)}return t}},{key:\"isRootDevice\",get:function(){var e=a.Properties.of(this).parentDevice;return!(e&&Object.keys(e).length>0)}},{key:\"isVirtualDevice\",get:function(){return a.Properties.of(this).isVirtual||a.Properties.of(this)._is_virtual}},{key:\"owner\",get:function(){var e=a.Properties.of(this);return e._owner||(e._owner=a.Properties.init(new s.default,{id:a.Properties.of(this).ownerId,nickName:a.Properties.of(this).ownerName,isLoaded:!1})),e._owner}},{key:\"name\",get:function(){return a.Properties.of(this).name}},{key:\"session\",get:function(){return a.Properties.of(this).session}},{key:\"iconURL\",get:function(){return a.Properties.of(this).iconURL}},{key:\"permitLevel\",get:function(){return a.Properties.of(this).permitLevel}},{key:\"isSetPinCode\",get:function(){return a.Properties.of(this).isSetPinCode}},{key:\"showMode\",get:function(){return a.Properties.of(this).showMode}},{key:\"mac\",get:function(){return a.Properties.of(this).mac}},{key:\"lastVersion\",get:function(){if(a.isAndroid){if(this.extra&&\"string\"==typeof this.extra){var e=JSON.parse(this.extra);return e&&e.fw_version&&\"string\"==typeof e.fw_version&&e.fw_version.length>0?e.mcu_version&&\"string\"==typeof e.mcu_version&&e.mcu_version.length>0?e.fw_version+\".\"+e.mcu_version:e.fw_version:a.Properties.of(this).version}return a.Properties.of(this).version}return a.Properties.of(this).version}},{key:\"latestVersion\",get:function(){return a.Properties.of(this).latestVersion}},{key:\"IP\",get:function(){return a.Properties.of(this).ip}},{key:\"RSSI\",get:function(){return a.Properties.of(this).rssi}},{key:\"SSID\",get:function(){return a.Properties.of(this).ssid}},{key:\"BSSID\",get:function(){return a.Properties.of(this).bssid}},{key:\"type\",get:function(){return a.Properties.of(this).pid}},{key:\"lastModified\",get:function(){return a.Properties.of(this).lastModified}},{key:\"location\",get:function(){return a.Properties.of(this).location}},{key:\"latitude\",get:function(){return a.Properties.of(this).latitude}},{key:\"longitude\",get:function(){return a.Properties.of(this).longitude}},{key:\"isVoiceDevice\",get:function(){return a.Properties.of(this).isVoiceDevice}},{key:\"isOnline\",get:function(){return a.Properties.of(this).isOnline}},{key:\"mtu\",get:function(){return a.Properties.of(this).mtu}},{key:\"isOwner\",get:function(){return 0!=(16&a.Properties.of(this).permitLevel)}},{key:\"isFamily\",get:function(){var e=a.Properties.of(this).permitLevel;return 0!=(8&e)||68==e}},{key:\"isShared\",get:function(){return 0!=(4&a.Properties.of(this).permitLevel)&&!this.isFamily&&null!==a.Properties.of(this).ownerName}},{key:\"isBinded\",get:function(){return 0!=(30&a.Properties.of(this).permitLevel)}},{key:\"isBinded2\",get:function(){return this.isBinded}},{key:\"isReadonlyShared\",get:function(){return 0!=(32&a.Properties.of(this).permitLevel)&&null!==a.Properties.of(this).ownerName}},{key:\"extra\",get:function(){return __DEV__&&console.warn&&console.warn(\"extra deprecated since 10032 \\u6b64\\u5b57\\u6bb5\\u540e\\u53f0\\u65e0\\u4eba\\u7ef4\\u62a4\\uff0c\\u4e5f\\u65e0\\u4eba\\u77e5\\u9053\\u5b83\\u5b58\\u5728\\u7684\\u542b\\u4e49\\uff0c\\u6545\\u5e9f\\u5f03\\u3002\"),a.Properties.of(this).extrainfo||a.Properties.of(this).extra}},{key:\"parentModel\",get:function(){return __DEV__&&console.warn&&console.warn(\"parentModel deprecated 10023\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c10023\\u53ca\\u540e\\u7eed\\u7248\\u672c\\u5efa\\u8bae\\u4f7f\\u7528 Device.parentDevice.model\"),a.Properties.of(this).parentModel}},{key:\"timeZone\",get:function(){return __DEV__&&console.warn&&console.warn(\"timeZone deprecated 10021\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c10021\\u53ca\\u540e\\u7eed\\u7248\\u672c\\u5efa\\u8bae\\u4f7f\\u7528 Device.getDeviceTimeZone().then\"),a.Properties.of(this).timeZone}},{key:\"propInfo\",get:function(){return __DEV__&&console.warn&&console.warn(\"propInfo deprecated \\u56e0\\u6b64\\u5c5e\\u6027\\u6781\\u5927\\u9020\\u6210\\u7c73\\u5bb6\\u8bbe\\u5907\\u5217\\u8868\\u9875\\u63a5\\u53e3\\u54cd\\u5e94\\u65f6\\u957f\\u53d8\\u957f\\uff0c\\u73b0\\u5df2\\u5e9f\\u5f03\\uff0c\\u4e00\\u822c\\u90fd\\u4f1a\\u8fd4\\u56denull\\u3002\\u82e5\\u9700\\u8981\\u8fd9\\u91cc\\u9762\\u7684\\u5c5e\\u6027\\uff0c\\u8bf7\\u76f4\\u63a5\\u901a\\u8fc7callMethod\\u53bb\\u8bfb\\u53d6\\u3002\"),a.Properties.of(this).propInfo}},{key:\"resetFlag\",get:function(){return __DEV__&&console.warn&&console.warn(\"resetFlag deprecated 10023\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c\\u540e\\u7eed\\u4e0d\\u518d\\u63d0\\u4f9b\\u6b64\\u5b57\\u6bb5\\uff0c\\u6b64\\u65b9\\u6cd5\\u6c38\\u8fdc\\u8fd4\\u56de0\"),a.Properties.of(this).resetFlag}}]),e})(),(0,c.default)(r.prototype,\"deleteDevices\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"deleteDevices\"),r.prototype),(0,c.default)(r.prototype,\"getSubDevices\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getSubDevices\"),r.prototype),(0,c.default)(r.prototype,\"getLinkedBTDevices\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getLinkedBTDevices\"),r.prototype),(0,c.default)(r.prototype,\"loadRealDeviceConfig\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadRealDeviceConfig\"),r.prototype),(0,c.default)(r.prototype,\"reportDeviceGPSInfo\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"reportDeviceGPSInfo\"),r.prototype),(0,c.default)(r.prototype,\"getDeviceTimeZone\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getDeviceTimeZone\"),r.prototype),(0,c.default)(r.prototype,\"changeDeviceName\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"changeDeviceName\"),r.prototype),(0,c.default)(r.prototype,\"getCurrentDeviceValue\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getCurrentDeviceValue\"),r.prototype),(0,c.default)(r.prototype,\"getVirtualDevices\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getVirtualDevices\"),r.prototype),(0,c.default)(r.prototype,\"getRecommendScenes\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getRecommendScenes\"),r.prototype),(0,c.default)(r.prototype,\"requestAuthorizedDeviceListData\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"requestAuthorizedDeviceListData\"),r.prototype),(0,c.default)(r.prototype,\"checkIsHomeKitDevice\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkIsHomeKitDevice\"),r.prototype),(0,c.default)(r.prototype,\"checkHomeKitConnected\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkHomeKitConnected\"),r.prototype),(0,c.default)(r.prototype,\"bindToHomeKit\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"bindToHomeKit\"),r.prototype),(0,c.default)(r.prototype,\"checkFirmwareUpdateAndAlert\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkFirmwareUpdateAndAlert\"),r.prototype),(0,c.default)(r.prototype,\"readDeviceNetWorkInfo\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"readDeviceNetWorkInfo\"),r.prototype),(0,c.default)(r.prototype,\"createScene\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"createScene\"),r.prototype),(0,c.default)(r.prototype,\"createTimerScene\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"createTimerScene\"),r.prototype),(0,c.default)(r.prototype,\"loadScenes\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadScenes\"),r.prototype),(0,c.default)(r.prototype,\"loadTimerScenes\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadTimerScenes\"),r.prototype),(0,c.default)(r.prototype,\"reportLog\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"reportLog\"),r.prototype),(0,c.default)(r.prototype,\"getRoomInfoForCurrentHome\",[v.report],Object.getOwnPropertyDescriptor(r.prototype,\"getRoomInfoForCurrentHome\"),r.prototype),r);exports.BasicDevice=D;var y=function e(){(0,i.default)(this,e),this.propInfoMap=new Map,this.subscribeInfoMap=new Map};exports.PollPropMap=y,y.PROP_TYPE_UNKNOWN=0,y.PROP_TYPE_MIOT_SPEC=1,y.PROP_TYPE_PROFILE=2,y.MSG_SOURCE_POLL=1;var h=new D;a.default.MIOTDevice&&a.Properties.init(h,(0,o.default)({},a.default.MIOTDevice.currentDevice,{_msgset:new Set,_pollMsgSet:new y}));var m=h;exports.default=m;","miot-sdk/device/BasicDevice.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.IScene=exports.SceneType=void 0;var r,o,n=e(require(\"@babel/runtime/helpers/objectSpread\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),p=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),u=t(require(\"../native\")),c=require(\"../decorator/ReportDecorator\"),s={Timer:8,Artificial:30,Automatic:15};exports.SceneType=s,Object.freeze(s);var d=(r=(function(){function e(){(0,i.default)(this,e)}return(0,a.default)(e,[{key:\"save\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t&&(t.name&&(this.name=t.name),t.identify&&(this.identify=t.identify),t.setting&&(this.setting=t.setting),t.authed&&t.authed.length>0&&(this.authorizedDeviceIDs=t.authed)),new Promise(function(t,r){var o={us_id:e.sceneID,st_id:e.type,name:e.name||'',identify:e.identify,setting:e.setting,authed:e.authorizedDeviceIDs};u.default.MIOTRPC.standardCall(\"/scene/edit\",o,function(o,n){if(o){var i=u.Properties.of(e);return i.data.us_id=i.data.us_id||n.us_id,i.data.status=n.status,t(e,n)}return r(n)})})}},{key:\"reload\",value:function(){var e=this;if(this.isNew)return Promise.reject(!1);var t=u.Properties.of(this);return new Promise(function(r,o){u.default.MIOTRPC.standardCall(\"/scene/get\",{us_id:e.sceneID},function(n,i){if(n&&i.result)return t.data=i.result,r(e,i);o(i)})})}},{key:\"start\",value:function(){var e=this;return this.isNew?Promise.reject(!1):new Promise(function(t,r){u.default.MIOTRPC.standardCall(\"/scene/start\",{us_id:e.sceneID},function(o,n){o&&t(e,n),!o&&r(n)})})}},{key:\"remove\",value:function(){var e=this;return this.isNew?Promise.reject(this):new Promise(function(t,r){u.default.MIOTRPC.standardCall(\"/scene/delete\",{us_id:e.sceneID},function(o,n){if(o)return u.Properties.of(e).data.us_id=0,t(e,n);r(n)})})}},{key:\"sceneID\",get:function(){return console.log(u.Properties.of(this).data.us_id),u.Properties.of(this).data.us_id}},{key:\"isNew\",get:function(){return!this.sceneID}},{key:\"createTime\",get:function(){return u.Properties.of(this).data.create_time}},{key:\"status\",get:function(){return u.Properties.of(this).data.status||0}},{key:\"deviceID\",get:function(){return u.Properties.of(this).deviceID}},{key:\"name\",get:function(){return(u.Properties.of(this).data||{}).name},set:function(e){u.Properties.of(this).data.name=e}},{key:\"type\",get:function(){return u.Properties.of(this).data.st_id}},{key:\"isTimer\",get:function(){return\"\"+this.type==\"\"+s.Timer}},{key:\"isArtificial\",get:function(){return\"\"+this.type==\"\"+s.Artificial}},{key:\"isAutomatic\",get:function(){return\"\"+this.type==\"\"+s.Automatic}},{key:\"identify\",get:function(){return u.Properties.of(this).data.identify},set:function(e){u.Properties.of(this).data.identify=e}},{key:\"setting\",get:function(){return u.Properties.of(this).data.setting||{}},set:function(e){u.Properties.of(this).data.setting=e||{}}},{key:\"authorizedDeviceIDs\",get:function(){return u.Properties.of(this).data.authed||[this.deviceID]},set:function(e){u.Properties.of(this).data.authed=e.map(function(e){return\"\"+e})}}]),e})(),(0,p.default)(r.prototype,\"save\",[c.report],Object.getOwnPropertyDescriptor(r.prototype,\"save\"),r.prototype),(0,p.default)(r.prototype,\"reload\",[c.report],Object.getOwnPropertyDescriptor(r.prototype,\"reload\"),r.prototype),(0,p.default)(r.prototype,\"start\",[c.report],Object.getOwnPropertyDescriptor(r.prototype,\"start\"),r.prototype),(0,p.default)(r.prototype,\"remove\",[c.report],Object.getOwnPropertyDescriptor(r.prototype,\"remove\"),r.prototype),r);function l(e,t){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)||{},o=r.identify,n=r.us_id,i=r.name,a=r.setting;return u.Properties.init(new d,{data:{st_id:t,us_id:n,identify:o,name:i,authed:[\"\"+e],setting:a||{},deviceID:e}})}function f(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o={did:e,st_id:t,type:0},i=r||{},a=i.identify,p=i.name;return a&&(o.identify=a),p&&(o.name=p),new Promise(function(r,i){u.default.MIOTRPC.standardCall(\"/scene/list\",o,function(o,c){if(!o||!c)return i(c);r(Object.keys(c).map(function(r){return u.Properties.init(new d,{data:(0,n.default)({name:p,identify:a},c[r],{st_id:t}),deviceID:e})}))})})}exports.IScene=d;var y=new(o=(function(){function e(){(0,i.default)(this,e)}return(0,a.default)(e,[{key:\"createScene\",value:function(e,t,r){return l(e,t,r)}},{key:\"createTimerScene\",value:function(e,t){return l(e,s.Timer,t)}},{key:\"createArtificialScene\",value:function(e,t){return l(e,s.Artificial,t)}},{key:\"createAutomaticScene\",value:function(e,t){return l(e,s.Automatic,t)}},{key:\"loadScenes\",value:function(e,t){return f(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)}},{key:\"loadTimerScenes\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return f(e,s.Timer,t)}},{key:\"loadArtificialScenes\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return f(e,s.Artificial,t)}},{key:\"loadAutomaticScenes\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return f(e,s.Automatic,t)}},{key:\"loadScenesHistoryForDevice\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,r={did:e,limit:arguments.length>2&&void 0!==arguments[2]?arguments[2]:50,command:\"history\"};return-1!==t&&(r.timestamp=t),new Promise(function(e,t){u.default.MIOTRPC.standardCall(\"/scene/history\",r,function(r,o){r?e(o):t(o)})})}},{key:\"editSceneRecord\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.editSceneRecord(e,function(e,o){e?t(o):r(o)})})}},{key:\"deleteSceneRecords\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.deleteSceneRecords(e,function(e,o){e?t(o):r(o)})})}},{key:\"triggerTemplatesForQualified\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.triggerTemplatesForQualifiedDid(e,function(e,o){e?t(o):r(o)})})}},{key:\"actionTemplatesForQualified\",value:function(e){return new Promise(function(t,r){u.default.MIOTService.actionTemplatesForQualifiedDid(e,function(e,o){e?t(o):r(o)})})}},{key:\"loadSceneTemplate\",value:function(){return new Promise(function(e,t){u.default.MIOTRPC.standardCall(\"/scene/tplv2\",null,function(r,o){r?e(o):t(o)})})}},{key:\"openIftttAutoPage\",value:function(){u.default.MIOTHost.openIftttAutoPage()}},{key:\"openTimerSettingPageWithOptions\",value:function(e){u.default.MIOTHost.openTimerSettingPageWithOptions(e)}},{key:\"openCountDownPage\",value:function(e,t){u.default.MIOTHost.launchCountDownWhenDevice(e,t)}},{key:\"convertDateToCron\",value:function(e){return new Promise(function(t,r){u.default.MIOTHost.convertDateToCron(e,function(e,o){e?t(o):r(o)})})}},{key:\"convertCronToDate\",value:function(e){return new Promise(function(t,r){u.default.MIOTHost.convertCronToDate(e,function(e,o){e?t(o):r(o)})})}}]),e})(),(0,p.default)(o.prototype,\"createScene\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"createScene\"),o.prototype),(0,p.default)(o.prototype,\"createTimerScene\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"createTimerScene\"),o.prototype),(0,p.default)(o.prototype,\"createArtificialScene\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"createArtificialScene\"),o.prototype),(0,p.default)(o.prototype,\"createAutomaticScene\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"createAutomaticScene\"),o.prototype),(0,p.default)(o.prototype,\"loadScenes\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadScenes\"),o.prototype),(0,p.default)(o.prototype,\"loadTimerScenes\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadTimerScenes\"),o.prototype),(0,p.default)(o.prototype,\"loadArtificialScenes\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadArtificialScenes\"),o.prototype),(0,p.default)(o.prototype,\"loadAutomaticScenes\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadAutomaticScenes\"),o.prototype),(0,p.default)(o.prototype,\"loadScenesHistoryForDevice\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadScenesHistoryForDevice\"),o.prototype),(0,p.default)(o.prototype,\"editSceneRecord\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"editSceneRecord\"),o.prototype),(0,p.default)(o.prototype,\"deleteSceneRecords\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"deleteSceneRecords\"),o.prototype),(0,p.default)(o.prototype,\"triggerTemplatesForQualified\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"triggerTemplatesForQualified\"),o.prototype),(0,p.default)(o.prototype,\"actionTemplatesForQualified\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"actionTemplatesForQualified\"),o.prototype),(0,p.default)(o.prototype,\"loadSceneTemplate\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadSceneTemplate\"),o.prototype),(0,p.default)(o.prototype,\"openIftttAutoPage\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"openIftttAutoPage\"),o.prototype),(0,p.default)(o.prototype,\"openTimerSettingPageWithOptions\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPageWithOptions\"),o.prototype),(0,p.default)(o.prototype,\"openCountDownPage\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"openCountDownPage\"),o.prototype),(0,p.default)(o.prototype,\"convertDateToCron\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"convertDateToCron\"),o.prototype),(0,p.default)(o.prototype,\"convertCronToDate\",[c.report],Object.getOwnPropertyDescriptor(o.prototype,\"convertCronToDate\"),o.prototype),o);exports.default=y;","miot-sdk/service/scene.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,o=e(require(\"@babel/runtime/helpers/objectSpread\")),i=e(require(\"@babel/runtime/helpers/toConsumableArray\")),s=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),c=require(\"react-native\"),p=t(require(\"../native\")),u=require(\"./BasicDevice\"),d=require(\"../decorator/ReportDecorator\"),l=e(require(\"../Service\"));function f(e){return new RegExp(\"^[0-9]*$\").test(e)}var v=(r=(function(){function e(){(0,s.default)(this,e)}return(0,n.default)(e,[{key:\"readDeviceNetWorkInfo\",value:function(e){return new Promise(function(t,r){p.default.MIOTDevice.readDeviceNetWorkInfo(e,function(e,o){if(e){var i=0;(i=0==o.rssi||o.rssi<=-85?0:o.rssi>=-30?100:100*(Math.abs(-85)+o.rssi)/55)>100&&(i=100),o.wifiStrength=i,t(o)}else r(o)})})}},{key:\"loadProperties\",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(i,s){console.log(\"device--\\x3ecallMethod\",r.deviceID,r),p.default.MIOTDevice.callMethod(r.deviceID,e,p.isAndroid?\"string\"==typeof t?t:JSON.stringify(t):t,p.isAndroid?\"string\"==typeof o?o:JSON.stringify(o):o,function(e,t){e?i(t):s(t)})})}},{key:\"callMethodFromCloud\",value:function(e,t){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(i,s){p.isAndroid?p.default.MIOTDevice.callMethodFromCloud(r.deviceID,e,\"string\"==typeof t?t:JSON.stringify(t),\"string\"==typeof o?o:JSON.stringify(o),function(e,t){e?i(t):s(t)}):p.default.MIOTDevice.callMethodForceWay(e,t,2,o,function(e,t){e?i(t):s(t)})})}},{key:\"callMethodFromLocal\",value:function(e,t){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(i,s){p.isAndroid?p.default.MIOTDevice.callMethodFromLocal(r.deviceID,e,\"string\"==typeof t?t:JSON.stringify(t),\"string\"==typeof o?o:JSON.stringify(o),function(e,t){e?i(t):s(t)}):p.default.MIOTDevice.callMethodForceWay(e,t,1,o,function(e,t){e?i(t):s(t)})})}},{key:\"sendKeyFramePayLoad\",value:function(e,t,r){return new Promise(function(o,i){p.isAndroid?p.default.MIOTDevice.sendKeyFramePayLoad(\"string\"==typeof e?e:JSON.stringify(e),t,r,function(e,t){e?o(t):i(t)}):p.default.MIOTDevice.sendKeyFramePayLoad(e,t,r,function(e,t){e?o(t):i(t)})})}},{key:\"localPing\",value:function(){var e=this;return new Promise(function(t,r){var o=function(e){e?t(e):r(e)};p.isAndroid?p.default.MIOTDevice.localPingWithCallback(e.deviceID,o):p.default.MIOTHost.localPingWithCallback(o)})}},{key:\"subscribeMessages\",value:function(){for(var e=this,t=arguments.length,r=new Array(t),o=0;oa||a>0&&d===a)&&setTimeout(function(){n.listenMessages.apply(n,(0,i.default)(s.propInfoMap.keys()))},5e3),c.length>0)return new Promise(function(t,r){e.subscribeMessages.apply(e,c).then(function(e){c.forEach(function(t){s.propInfoMap.get(t).subscription=e}),s.subscribeInfoMap.set(e.subscribeId,new Set(c)),t({total_listen_props:d,message:'success'})}).catch(function(e){console.log('listenMessages, subscribe message failed,props:',JSON.stringify(c),JSON.stringify(e)),r({err_info:JSON.stringify(e),message:'subscribe messages error'})})});if(0===a||c.length>0)return Promise.resolve({total_listen_props:d,message:'success'});var v=[],g=[];if(s.propInfoMap.forEach(function(e){var t=Date.now();if(e&&t-1e3*e.updateTime>5e3)switch(e.type){case u.PollPropMap.PROP_TYPE_MIOT_SPEC:v.push({did:e.did,siid:e.siid,piid:e.piid});break;case u.PollPropMap.PROP_TYPE_PROFILE:g.push(e.prop)}}),v.length>0&&l.default.spec.getPropertiesValue(v).then(function(e){var t=[];e.forEach(function(e){var r=\"prop.\"+e.siid+\".\"+e.piid,o=[].concat(e.value),i=s.propInfoMap.get(r).value;null!==e.value&&JSON.stringify(e.value)!==JSON.stringify('null')&&JSON.stringify(o)!==JSON.stringify(i)&&t.push({key:r,time:e.updateTime,value:o,_msg_source:u.PollPropMap.MSG_SOURCE_POLL})}),t.length>0&&p.MIOTEventEmitter.emit(\"deviceRecievedMessages\",{did:n.deviceID,data:t})}).catch(function(e){console.log('listenMessages spec raw err:',JSON.stringify(e))}),g.length>0){var y=Date.now()/1e3;n.loadProperties.apply(n,g).then(function(e){var t=[];g.forEach(function(r){var o=e.get(r),i=[].concat(o),n=s.propInfoMap.get(r).value;null!==o&&JSON.stringify(o)!==JSON.stringify('null')&&JSON.stringify(i)!==JSON.stringify(n)&&t.push({key:r,value:i,time:y,msg_source:u.PollPropMap.MSG_SOURCE_POLL})}),t.length>0&&p.MIOTEventEmitter.emit(\"deviceRecievedMessages\",{did:n.deviceID,data:t})}).catch(function(e){console.log('listenMessages, profile raw err:',JSON.stringify(e))})}return Promise.resolve({total_listen_props:d,message:'success'})}},{key:\"unlistenMessages\",value:function(){var e=p.Properties.of(this)._pollMsgSet;if(!e)return Promise.reject({message:\"cann't unlisten any messages\"});for(var t=[],r=arguments.length,o=new Array(r),s=0;s0?Promise.reject(\"\\u5f53\\u524d\\u8bbe\\u5907\\u5df2\\u7ecf\\u662f\\u4e00\\u4e2a\\u5b50\\u8bbe\\u5907\\uff0c\\u4e0d\\u5b58\\u5728\\u5b50\\u8bbe\\u5907\\u5217\\u8868\"):r._virtualDevices&&r._virtualDevices.length>0?Promise.resolve(r._virtualDevices):new Promise(function(t,i){p.default.MIOTRPC.nativeCall(\"/home/virtualdevicectr\",{type:\"get\",masterDid:e.deviceID},function(s,n){s&&n&&n.result&&n.result.members?(r._virtualDevices=n.result.members.map(function(t){return p.Properties.init(new u.BasicDevice,(0,o.default)({},t,{_parentDeviceID:e.deviceID,_parentDevice:e,_msgset:null,_is_virtual:!0}))}),t(r._virtualDevices)):i(n)})})}},{key:\"getRecommendScenes\",value:function(e,t){return new Promise(function(r,o){p.isAndroid?p.default.MIOTDevice.getRecommendScenes(e,t,function(e,t){e?(\"string\"==typeof t&&(t=JSON.parse(t)),r(t)):o(t)}):p.default.MIOTDevice.getRecommendScenes(t,function(e,t){e?r(t):o(t)})})}},{key:\"updateHomeKitAuthorizationData\",value:function(e){return p.isAndroid?Promise.reject({code:-1,message:'Android not support HomeKit'}):new Promise(function(t,r){p.default.MIOTHost.updateHomeKitAuthorizationData(e,function(e,o){e?t(o):r(o)})})}},{key:\"deviceID\",set:function(e){p.Properties.of(this).deviceID=e},get:function(){return __DEV__&&console.warn&&console.warn(\"deviceID deprecated since 10032,\\u8bf7\\u4f7f\\u7528Device.deviceID;\"),p.Properties.of(this).deviceID}}]),e})(),(0,a.default)(r.prototype,\"readDeviceNetWorkInfo\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"readDeviceNetWorkInfo\"),r.prototype),(0,a.default)(r.prototype,\"loadProperties\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadProperties\"),r.prototype),(0,a.default)(r.prototype,\"loadPropertiesFromCloud\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"loadPropertiesFromCloud\"),r.prototype),(0,a.default)(r.prototype,\"callMethod\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"callMethod\"),r.prototype),(0,a.default)(r.prototype,\"callMethodFromCloud\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"callMethodFromCloud\"),r.prototype),(0,a.default)(r.prototype,\"callMethodFromLocal\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"callMethodFromLocal\"),r.prototype),(0,a.default)(r.prototype,\"sendKeyFramePayLoad\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"sendKeyFramePayLoad\"),r.prototype),(0,a.default)(r.prototype,\"localPing\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"localPing\"),r.prototype),(0,a.default)(r.prototype,\"subscribeMessages\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"subscribeMessages\"),r.prototype),(0,a.default)(r.prototype,\"listenMessages\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"listenMessages\"),r.prototype),(0,a.default)(r.prototype,\"getVersion\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"getVersion\"),r.prototype),(0,a.default)(r.prototype,\"startUpgradingFirmware\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"startUpgradingFirmware\"),r.prototype),(0,a.default)(r.prototype,\"setFirmwareUpdateErrDic\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"setFirmwareUpdateErrDic\"),r.prototype),(0,a.default)(r.prototype,\"setFirmwareNotCheckUpdate\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"setFirmwareNotCheckUpdate\"),r.prototype),(0,a.default)(r.prototype,\"checkFirmwareUpdateAndAlert\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkFirmwareUpdateAndAlert\"),r.prototype),(0,a.default)(r.prototype,\"checkIsHomeKitDevice\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkIsHomeKitDevice\"),r.prototype),(0,a.default)(r.prototype,\"checkHomeKitConnected\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"checkHomeKitConnected\"),r.prototype),(0,a.default)(r.prototype,\"bindToHomeKit\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"bindToHomeKit\"),r.prototype),(0,a.default)(r.prototype,\"requestAuthorizedDeviceListData\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"requestAuthorizedDeviceListData\"),r.prototype),(0,a.default)(r.prototype,\"getVirtualDevices\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"getVirtualDevices\"),r.prototype),(0,a.default)(r.prototype,\"getRecommendScenes\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"getRecommendScenes\"),r.prototype),(0,a.default)(r.prototype,\"updateHomeKitAuthorizationData\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"updateHomeKitAuthorizationData\"),r.prototype),r);exports.default=v;","miot-sdk/device/WifiDevice.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"./service/Account\")),n=e(require(\"./native\")),i=r(require(\"./service/apiRepo\")),u=r(require(\"./service/omitApi\")),o=r(require(\"./service/cameraSubDomain\")),c=r(require(\"./service/ircontroller\")),a=r(require(\"./service/room\")),f=r(require(\"./service/scene\")),d=r(require(\"./service/security\")),s=r(require(\"./service/smarthome\")),l=r(require(\"./service/spec\")),v=r(require(\"./service/storage\")),m=r(require(\"./service/tjinfra\")),p=r(require(\"./service/miotcamera\")),g=r(require(\"./service/kookong\")),P=require(\"react-native\"),S=n.Properties.init(new t.default,{id:n.default.MIOTService.currentAccountID}),I={get smarthome(){return s.default},get miotcamera(){return p.default},get ircontroller(){return c.default},get account(){return S},get tjinfra(){return m.default},get scene(){return f.default},get security(){return d.default},get storage(){return v.default},get spec(){return l.default},get room(){return a.default},get kookong(){return g.default},callSmartHomeAPI:function(e,r){return new Promise(function(t,o){u.default.some(function(r){return e.startsWith(r)})?n.default.MIOTRPC.standardCall(e,r,function(e,r){if(e)return t(r);o(r)}):i.default[e]?n.default.MIOTRPC.standardCall(e,r,function(e,r){if(e)return t(r);o(r)}):o(\"\\u5931\\u8d25\\uff0c\\u539f\\u56e0\\u5982\\u4e0b:\\n1. api\\u8def\\u5f84\\u586b\\u5199\\u9519\\u8bef\\uff0c\\u8bf7\\u68c0\\u67e5\\n2. sdk \\u6682\\u672a\\u6536\\u5f55\\u8be5\\u63a5\\u53e3\\uff0c\\u8bf7\\u8054\\u7cfb\\u7c73\\u5bb6\\u63d2\\u4ef6\\u6846\\u67b6\\u7684\\u5f00\\u53d1\\u4eba\\u5458\")})},callSmartHomeCameraAPI:function(e,r,t,u){return new Promise(function(c,a){i.default[e]&&o.default[r]?n.default.MIOTService.callSmartHomeCameraAPI(e,r,t,u,function(e,r){if(e)return\"string\"==typeof r&&(r=JSON.parse(r)),c(r);a(r)}):a('\\u5931\\u8d25\\uff0c\\u539f\\u56e0\\u5982\\u4e0b:\\n1. api\\u8def\\u5f84\\u586b\\u5199\\u9519\\u8bef\\uff0c\\u8bf7\\u68c0\\u67e5\\n2. sdk \\u6682\\u672a\\u6536\\u5f55\\u8be5\\u63a5\\u53e3\\uff0c\\u8bf7\\u8054\\u7cfb\\u7c73\\u5bb6\\u63d2\\u4ef6\\u6846\\u67b6\\u7684\\u5f00\\u53d1\\u4eba\\u5458')})},callXiaoaiNetworkAPI:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{host:'normal',method:0,needDevice:1},r=e.host,t=void 0===r?'normal':r,n=e.path,i=e.method,u=void 0===i?0:i,o=e.params,c=e.needDevice,a=void 0===c?1:c;return new Promise(function(e,r){P.NativeModules.MIOTWifiSpeaker.callXiaoaiNetworkAPI(t,n,u,o,a,function(t,n){if(t)return\"string\"==typeof n&&(n=JSON.parse(n)),e(n);r(n)})})},getServerName:function(){return new Promise(function(e,r){n.isAndroid?n.default.MIOTService.getServerName(function(r){\"us_true\"===r.countryCode&&(r.countryCode='us'),e(r)}):n.default.MIOTHost.getCurrentCountryInfoCallback(function(t,n){t?(\"us_sg\"===n.countryCode&&(n.countryCode='us'),e(n)):r(\"\\u5730\\u533a\\u548c\\u670d\\u52a1\\u5668\\u4fe1\\u606f\\u672a\\u6b63\\u786e\\u83b7\\u53d6\")})})},getTimeZoneOfServer:function(){return new Promise},getUTCFromServer:function(){return new Promise(function(e,r){n.default.MIOTRPC.standardCall(\"/device/get_utc_time\",{},function(t,n){if(t&&n)return e(n);r(n)})})},getServiceTokenWithSid:function(e){return n.isAndroid?new Promise(function(r,t){n.default.MIOTService.getServiceTokenWithSid(e,function(e,n){e?r(n):t(n)})}):new Promise(function(r,t){n.default.MIOTHost.getServiceTokenWithSid(e,function(e,n){if(e)return t(e);r(n)})})},revokePrivacyLicense:function(){return new Promise(function(e,r){n.default.MIOTService.revokePrivacyLicense(function(t,n){t?e(n):r(n)})})},deleteDevice:function(){return new Promise(function(e,r){n.default.MIOTService.deleteDevice(function(t,n){t?e(n):r(n)})})},applyForDeviceIDAndToken:function(e,r){return n.isAndroid?Promise.reject('Android not support yet'):new Promise(function(t,i){n.default.MIOTHost.applyForDeviceIDAndToken(e,r,function(e,r,n,u){if(e)return i(e);t({res:r,did:n,token:u})})})},callSpecificAPI:function(e,r,t){return new Promise(function(i,u){n.default.MIOTService.callSpecificAPI(e,r,t,function(e,r){e?i(r):u(r)})})}};exports.default=I;","miot-sdk/Service.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e={'/v2/irdevice/controllers':{},'/v2/ircode/categories':{},'/v2/ircode/area/area_id':{},'/v2/ircode/area/lineups':{},'/v2/ircode/area/province/cities':{},'/v2/ircode/area/provinces/china':{},'/v2/ircode/area/city/areas':{},'/v2/ircode/iptv/brands':{},'/v2/ircode/category/brands':{},'/v2/irdevice/controller/add':{},'/v2/irdevice/controller/keys/set':{},'/v2/irdevice/send_key':{},'/v2/irdevice/controller/del':{},'/v2/irdevice/controller/update':{},'/v2/irdevice/controller/keys':{},'/v2/irdevice/controller/key/update':{},'/v2/irdevice/controller/key/del':{},'/v2/irdevice/controller/key/click':{},'/v2/irdevice/controller/functions':{},'/scene/edit':{},'/scene/get':{},'/scene/start':{},'/scene/delete':{},'/scene/list':{},'/scene/history':{},'/scene/tplv2':{},'/share/bluetoothkeyshare':{},'/home/profile':{},'/device/blelockbindinfo':{},'/home/profiles':{},'/location/set':{},'/location/weather':{},'/home/checkversion':{},'/location/area_prop_info':{},'/home/multi_checkversion':{},'/home/latest_version':{},'/v2/device/latest_ver':{},'/device/event':{},'/v2/device/set_extra_data':{},'/v2/device/range_get_extra_data':{},'/v2/device/del_extra_data':{},'/v2/device/get_extra_data':{},'/v2/user/statistics':{},'/voicectrl/ai_devs':{},'/voicectrl/xiaoice_skills':{},'/voicectrl/get_skills':{},'/v2/voicectrl/ai_flash_briefing':{},'/v2/api/aivs':{},'/device/getsetting':{},'/v2/device/getsettingv2':{},'/device/setsetting':{},'/device/delsetting':{},'/user/set_user_device_data':{},'/user/get_user_device_data':{},'/user/del_user_device_data':{},'/v2/user/get_user_device_log':{},'/user/get_user_coll':{},'/user/set_user_coll':{},'/user/edit_user_coll':{},'/user/del_user_coll':{},'/home/getmapfileurl':{},'/home/getrobomapurl':{},'/user/del_user_map':{},'/home/device_list':{},'/service/getappconfig':{},'/service/getappconfigv2':{},'/home/getcountry':{},'/v2/device/batch_set_props':{},'/v2/device/set_props':{},'/device/batchdevicedatas':{},'/device/getThirdConfig':{},'/v2/third/synccall':{},'/third/api':{},'/third/api_result':{},'/user/get_device_auth':{},'/v2/home/get_interim_file_url':{},'/home/getfileurl':{},'/v2/user/getuserdevicedatatab':{},'/v2/home/range_get_open_config':{},'/v2/nfckey/bind_nfc_card':{},'/v2/nfckey/get_nfc_card':{},'/yaokan/insertunmodel':{},'/scene/idfy_get':{},'/scene/idfy_edit':{},'/v2/user/create_member':{},'/v2/user/update_member':{},'/v2/user/remove_member':{},'/v2/user/get_member':{},'/user/setpdata':{},'/user/getpdata':{},'/v2/user/get_device_data_raw':{},'/v2/nfckey/create_se_session':{},'/v2/nfckey/replace_se_isdkey':{},'/v2/nfckey/reset_lock_primarykey':{},'/v2/nfckey/handle_se_response':{},'/v2/device/bledevice_info':{},'/miotspec/prop/get':{},'/miotspec/prop/set':{},'/miotspec/action':{},'/user/get_user_config':{},'/user/get_third_user_config':{},'/user/set_user_config':{},'/user/set_third_user_config':{},'/v2/device/multi_button_template':{},'/device/deviceinfo':{},'/v2/device/ble_event':{},'/share/get_share_user':{},'/v2/aftersale/validate':{},'/v2/aftersale/create':{},'/v2/aftersale/list':{},'/v2/aftersale/detail':{},'/v2/homeroom/gethome':{},'/wx/app/v1/get/pushSwitch':{},'/wx/app/v1/put/pushSwitch':{},'/miot/camera/app/v1/get/alarmSwitch':{},'/miot/camera/app/v1/put/motionDetectionSwitch':{},'/miot/camera/app/v1/put/sensitive':{},'/miot/camera/app/v1/put/pushSwitch':{},'/miot/camera/app/v1/put/areaChangePushSwitch':{},'/miot/camera/app/v1/put/pedestrianDetectionPushSwitch':{},'/miot/camera/app/v1/put/babyCryPushSwitch':{},'/miot/camera/app/v1/put/aiPushSwitch':{},'/miot/camera/app/v1/vip/status':{},'/common/app/get/eventlist':{},'/common/app/v2/delete/files':{},'/common/app/markRead':{},'/common/device/vip/status':{},'/common/app/vip/status':{},'/miot/camera/app/v1/get/fileIdMetas':{},'/miot/camera/app/v1/get/figures':{},'/miot/camera/app/v1/get/figureByName':{},'/miot/camera/app/v1/add/figure':{},'/miot/camera/app/v1/add/face':{},'/common/app/m3u8':{},'/common/app/v1/img':{},'/miot/camera/app/v1/put/faceSwitch':{},'/miot/camera/app/v1/put/babyCrySwitch':{},'/miot/camera/app/v2/get/alarmSwitch':{},'/miot/camera/app/v2/put/motionDetectionSwitch':{},'/v2/public/get_weekday_info':{},'/v2/device/blt_get_beaconkey':{},'/v2/device/set_alarm_info':{},'/v2/device/get_alarm_info':{},'/v2/device/del_alarm_info':{},'/miot/camera/app/v1/get/allDetectionSwitch':{},'/miot/camera/app/v1/put/genericEventPushSwitch':{},'/user/del_user_device_data_batch':{},'/miot/camera/app/v1/tags':{},'/miot/camera/app/v1/feedback':{},'/miot/camera/app/v1/alarm/playlist/limit':{},'/miot/camera/app/v1/alarm/delete':{},'/miot/camera/app/v1/alarm/videoStoreId':{},'/user/send_user_opt_notify':{},'/home/genfilepresignedurl':{},'/device/devicepass':{},'/v2/device/set_break_lock_alarm_info':{},'/v2/device/get_break_lock_alarm_info':{},'/v2/device/set_hijack_alarm_info':{},'/v2/device/get_hijack_alarm_info':{},'/v2/home/get_interim_file_url_pro':{},'/home/getfileurl_v3':{},'/v2/recipes/query':{}};exports.default=e;","miot-sdk/service/apiRepo.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=['/appgateway/third/miwifi/app'];exports.default=e;","miot-sdk/service/omitApi.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e={'connect.camera':{},'business.smartcamera':{},'processor.smartcamera':{}};exports.default=e;","miot-sdk/service/cameraSubDomain.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,r=e(require(\"@babel/runtime/helpers/classCallCheck\")),o=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),i=e(require(\"../native\")),p=require(\"../decorator/ReportDecorator\"),u=new(t=(function(){function e(){(0,r.default)(this,e)}return(0,o.default)(e,[{key:\"getList\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controllers\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getCategories\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/categories\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"queryArea\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/area_id\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getLineups\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/lineups\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getCities\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/province/cities\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getProvinces\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/provinces/china\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getAreas\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/area/city/areas\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIPTVBrands\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/iptv/brands\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getBrands\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/category/brands\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"controllerAdd\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/add\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"setKeys\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/keys/set\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"sendKey\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/send_key\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"controllerDel\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/del\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"controllerUpdate\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/update\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getKeys\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/keys\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"keyUpdate\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/key/update\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"keyDel\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/key/del\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"keyClick\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/key/click\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIrCodeFunctions\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/controller/functions\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIrCodeKeys\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/controller/keys\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIrCodeInfo\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/irdevice/controller/info\",e,function(e,o){if(!e)return r(o);t(o)})})}},{key:\"getIrCodeBrand\",value:function(e){return new Promise(function(t,r){i.default.MIOTRPC.nativeCall(\"/v2/ircode/brand\",e,function(e,o){if(!e)return r(o);t(o)})})}}]),e})(),(0,n.default)(t.prototype,\"getList\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getList\"),t.prototype),(0,n.default)(t.prototype,\"getCategories\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCategories\"),t.prototype),(0,n.default)(t.prototype,\"queryArea\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"queryArea\"),t.prototype),(0,n.default)(t.prototype,\"getLineups\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getLineups\"),t.prototype),(0,n.default)(t.prototype,\"getCities\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCities\"),t.prototype),(0,n.default)(t.prototype,\"getProvinces\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getProvinces\"),t.prototype),(0,n.default)(t.prototype,\"getAreas\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getAreas\"),t.prototype),(0,n.default)(t.prototype,\"getIPTVBrands\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIPTVBrands\"),t.prototype),(0,n.default)(t.prototype,\"getBrands\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getBrands\"),t.prototype),(0,n.default)(t.prototype,\"controllerAdd\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"controllerAdd\"),t.prototype),(0,n.default)(t.prototype,\"setKeys\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"setKeys\"),t.prototype),(0,n.default)(t.prototype,\"sendKey\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendKey\"),t.prototype),(0,n.default)(t.prototype,\"controllerDel\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"controllerDel\"),t.prototype),(0,n.default)(t.prototype,\"controllerUpdate\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"controllerUpdate\"),t.prototype),(0,n.default)(t.prototype,\"getKeys\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getKeys\"),t.prototype),(0,n.default)(t.prototype,\"keyUpdate\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"keyUpdate\"),t.prototype),(0,n.default)(t.prototype,\"keyDel\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"keyDel\"),t.prototype),(0,n.default)(t.prototype,\"keyClick\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"keyClick\"),t.prototype),(0,n.default)(t.prototype,\"getIrCodeFunctions\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIrCodeFunctions\"),t.prototype),(0,n.default)(t.prototype,\"getIrCodeKeys\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIrCodeKeys\"),t.prototype),(0,n.default)(t.prototype,\"getIrCodeInfo\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIrCodeInfo\"),t.prototype),(0,n.default)(t.prototype,\"getIrCodeBrand\",[p.report],Object.getOwnPropertyDescriptor(t.prototype,\"getIrCodeBrand\"),t.prototype),t);exports.default=u;","miot-sdk/service/ircontroller.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.IMHRoom=void 0;var r,o,i,n=e(require(\"@babel/runtime/helpers/objectSpread\")),a=e(require(\"@babel/runtime/helpers/classCallCheck\")),u=e(require(\"@babel/runtime/helpers/createClass\")),s=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),p=t(require(\"../native\")),l=require(\"../decorator/ReportDecorator\"),c=(r=(function(){function e(){(0,a.default)(this,e)}return(0,u.default)(e,[{key:\"updateName\",value:function(e){var t=p.Properties.of(this),r=(0,n.default)({},t);return r.name=e,new Promise(function(o,i){p.default.MHRoom.editRoom(r,function(r,n){r?(t.name=e,o({code:0,data:'update success'})):i({code:-1,message:n})})})}},{key:\"homeID\",get:function(){return p.Properties.of(this).homeId}},{key:\"roomID\",get:function(){return p.Properties.of(this).roomId}},{key:\"name\",get:function(){return p.Properties.of(this).name}},{key:\"shareFlag\",get:function(){return p.Properties.of(this).shareFlag}},{key:\"didList\",get:function(){return p.Properties.of(this).didList}}]),e})(),(0,s.default)(r.prototype,\"updateName\",[l.report],Object.getOwnPropertyDescriptor(r.prototype,\"updateName\"),r.prototype),r);exports.IMHRoom=c;var d=new(o=(function(){function e(){(0,a.default)(this,e)}return(0,u.default)(e,[{key:\"loadAllRoom\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return i&&!e?Promise.resolve(i):new Promise(function(e,t){p.default.MHRoom.getRoomList(function(r,o){r?o?(i=o.map(function(e){return p.Properties.init(new c,(0,n.default)({},e))}),e(i)):e([]):t({code:401,message:'\\u5f53\\u524d\\u8bbe\\u5907\\u6ca1\\u6709\\u6743\\u9650\\u64cd\\u4f5c\\u623f\\u95f4\\u529f\\u80fd'})})})}},{key:\"createRoom\",value:function(e){return e?'string'!=typeof e?Promise.reject({code:-3,message:'\\u623f\\u95f4\\u540d\\u79f0\\u5fc5\\u987b\\u662f\\u5b57\\u7b26\\u4e32'}):new Promise(function(t,r){p.default.MHRoom.addNewRoomWithName(e,function(e,o){if(e)if(o){var a=p.Properties.init(new c,(0,n.default)({},o));i&&i.push(a),t(a)}else r({code:404,message:o});else r({code:-1,message:o})})}):Promise.reject({code:-2,message:'\\u623f\\u95f4\\u540d\\u79f0\\u4e0d\\u80fd\\u4e3a\\u7a7a'})}}]),e})(),(0,s.default)(o.prototype,\"loadAllRoom\",[l.report],Object.getOwnPropertyDescriptor(o.prototype,\"loadAllRoom\"),o.prototype),(0,s.default)(o.prototype,\"createRoom\",[l.report],Object.getOwnPropertyDescriptor(o.prototype,\"createRoom\"),o.prototype),o);exports.default=d;","miot-sdk/service/room.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.ISecureKey=void 0;var r,i,o=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),u=e(require(\"@babel/runtime/helpers/objectSpread\")),s=t(require(\"../native\")),d=require(\"../decorator/ReportDecorator\");function p(e,t,r,i){s.default.MIOTRPC.standardCall(\"/share/bluetoothkeyshare\",(0,u.default)({type:e,did:t},r),i)}var f=(r=(function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,[{key:\"isOutOfDate\",value:function(){return(new Date).getTime()/1e3>this.expireTime}},{key:\"save\",value:function(){var e=this,t=s.Properties.of(this);return t.data.keyid?new Promise(function(r,i){p(\"update\",e.deviceID,t.data,function(e,t){if(e)return r(!0);i(t)})}):Promise.reject()}},{key:\"remove\",value:function(){var e=this,t=s.Properties.of(this);return t.data.keyid?new Promise(function(r,i){var o,a,n,d;o=\"bledelete\",a=e.deviceID,n={keyid:t.data.keyid},d=function(e,o){if(e)return t.data={},r(!0);i(o)},s.default.MIOTRPC.nativeCall(\"/share/bluetoothkeyshare\",(0,u.default)({type:o,did:a},n),d)}):Promise.reject()}},{key:\"deviceID\",get:function(){return s.Properties.of(this).did}},{key:\"keyID\",get:function(){return s.Properties.of(this).data.keyid}},{key:\"shareUserID\",get:function(){return s.Properties.of(this).data.shareuid}},{key:\"activeTime\",get:function(){return parseInt(s.Properties.of(this).data.active_time||0)},set:function(e){s.Properties.of(this).data.active_time=e}},{key:\"expireTime\",get:function(){return parseInt(s.Properties.of(this).data.expire_time||0)},set:function(e){s.Properties.of(this).data.expire_time=e}},{key:\"weekdays\",get:function(){var e=s.Properties.of(this);return e._weekdays||(e._weekdays=(e.data.weekdays||\"\").split(\",\").filter(function(e){return e&&e.length>0}).map(function(e){return parseInt(e)})),e._weekdays},set:function(e){if(e){Array.isArray(e)&&(e=e.join(\",\"));var t=s.Properties.of(this);t.data.weekdays=e,t._weekdays=null}}},{key:\"status\",get:function(){return s.Properties.of(this).data.status},set:function(e){return s.Properties.of(this).data.status=e}}]),e})(),(0,n.default)(r.prototype,\"isOutOfDate\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"isOutOfDate\"),r.prototype),(0,n.default)(r.prototype,\"save\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"save\"),r.prototype),(0,n.default)(r.prototype,\"remove\",[d.report],Object.getOwnPropertyDescriptor(r.prototype,\"remove\"),r.prototype),r);exports.ISecureKey=f;var c=new(i=(function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,[{key:\"loadSecureKeys\",value:function(e){return new Promise(function(t,r){p(\"get\",e,{},function(i,o){if(!i||!o||!o.bleshare)return r(o);t(o.bleshare.map(function(t){return s.Properties.init(new f,{data:t,did:e})}))})})}},{key:\"shareSecureKey\",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i={status:r.status||0,active_time:r.activeTime,expire_time:r.expireTime,weekdays:Array.isArray(r.weekdays)?r.weekdays.join(\",\"):r.weekdays};return new Promise(function(e,r){s.default.MIOTRPC.nativeCall(\"/home/profile\",{id:t},function(t,i){return t?e(i):r(i)})}).then(function(o){if(o.result&&o.result.userid){var a=o.result.userid;return new Promise(function(t,n){p(\"bleshare\",e,(0,u.default)({userid:o.result.userid},i,{readonly:r.readonly}),function(r,o){if(console.log(\"shareSecureKey with response: \",r,o),r&&o.keyid){var d=(0,u.default)({shareuid:a},o,i);return console.log('elements uid:',a,' res:',o,' data:',i,\" all:\",d),t(s.Properties.init(new f,{data:d,did:e}))}if(r&&'ok'==o)return n({code:-101,message:'key already shared to target user'});n(o)})})}return Promise.reject(\"share user not found \",t)})}},{key:\"getLockBindInfo\",value:function(e){return new Promise(function(t,r){s.default.MIOTRPC.standardCall(\"/device/blelockbindinfo\",{did:e},function(e,i){if(e&&i)return t(i);r(i)})})}}]),e})(),(0,n.default)(i.prototype,\"loadSecureKeys\",[d.report],Object.getOwnPropertyDescriptor(i.prototype,\"loadSecureKeys\"),i.prototype),(0,n.default)(i.prototype,\"shareSecureKey\",[d.report],Object.getOwnPropertyDescriptor(i.prototype,\"shareSecureKey\"),i.prototype),(0,n.default)(i.prototype,\"getLockBindInfo\",[d.report],Object.getOwnPropertyDescriptor(i.prototype,\"getLockBindInfo\"),i.prototype),i);exports.default=c;","miot-sdk/service/security.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.MemberType=void 0;var r,o=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),p=t(require(\"../native\")),c=require(\"../decorator/ReportDecorator\"),u={Person:\"person\",Pet:'pet'};exports.MemberType=u,Object.freeze(u);var l=new(r=(function(){function e(){(0,n.default)(this,e)}return(0,i.default)(e,[{key:\"getUserInfo\",value:function(e){return __DEV__&&console.warn&&console.warn(\"getUserInfo deprecated \\u5df2\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.account.getAccountInfoById \\u65b9\\u6cd5\"),new Promise(function(t,r){p.default.MIOTService.loadAccountInfo(e,function(e,o){e&&o?(console.log(\"rep:\",o),t({nickName:o.nickname||o.nickName,avatarURL:o.avatarURL,uid:o.currentAccountID2||o.userid||o.id})):r({ok:!1,message:\"\"})})})}},{key:\"getUserInfoList\",value:function(e){return __DEV__&&console.warn&&console.warn(\"getUserInfoList deprecated \\u5df2\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.account.getAccountInfoList \\u65b9\\u6cd5\"),new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/home/profiles\",{uids:e},function(e,o){e?t(o):r(o)})})}},{key:\"reportGPSInfo\",value:function(e,t){return new Promise(function(r,n){p.default.MIOTRPC.standardCall(\"/location/set\",(0,o.default)({},t,{did:e}),function(e,t){e&&r(t||!0),!e&&n(t)})})}},{key:\"getWeatherInfo\",value:function(e){return new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/location/weather\",{did:e},function(e,o){if(e&&o.aqi)return t(o.aqi);r(o)})})}},{key:\"checkDeviceVersion\",value:function(e,t){return new Promise(function(r,o){p.default.MIOTRPC.standardCall(\"/home/checkversion\",{did:e,pid:t},function(e,t){if(!e)return o(t);var n=t.updating,i=t.isLatest,a=t.description,p=t.force,c=t.curr,u=t.latest,l=t.ota_start_time,s=t.ota_progress,f=t.ota_failed_code,d=t.ota_failed_reason,y=t.ota_status;r({isUpdating:n,isLatest:i,isForce:p,description:a,curVersion:c,newVersion:u,hasNewFirmware:!n&&!i,otaState:{state:y,startTime:l,progress:s,failedCode:f,failedReason:d}})})})}},{key:\"getProtocolUrls\",value:function(e){return new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/v2/plugin/get_protocol\",e,function(e,o){if(e)return t(o);r(o)})})}},{key:\"getAreaPropInfo\",value:function(e){return new Promise(function(t,r){p.default.MIOTRPC.standardCall(\"/location/area_prop_info\",e,function(e,o){if(e)return t(o);r(o)})})}},{key:\"getAvailableFirmwareForDids\",value:function(e){return new Promise(function(t,r){var o=function(e,o){if(console.log(\"res:\",o),!e||null==o)return r(o);if(o.list&&(o=o.list),o instanceof Array){for(var n=[],i=0;i.5?c:.5;var u=(c=(c*=Math.pow(2,r-1))>e.interval?e.interval:c)1&&void 0!==arguments[1]?arguments[1]:1;return new Promise(function(r,o){n.default.MIOTRPC.standardCall(\"/miotspec/prop/get\",{params:e,datasource:t},function(e,t){e?r(t):o(t)})})}},{key:\"setPropertiesValue\",value:function(e){return new Promise(function(t,r){n.default.MIOTRPC.standardCall(\"/miotspec/prop/set\",{params:e},function(e,o){e?t(o):r(o)})})}},{key:\"doAction\",value:function(e){return new Promise(function(t,r){n.default.MIOTRPC.standardCall(\"/miotspec/action\",{params:e},function(e,o){e?t(o):r(o)})})}},{key:\"getSpecString\",value:function(e){return new Promise(function(t,r){n.default.MIOTSpec.getSpecString(e,function(e,o){e&&o?t(o):r(o)})})}},{key:\"getCurrentSpecValue\",value:function(e){return n.default.MIOTSpec.getCurrentSpecValueWithDid(e)}}]),e})(),(0,p.default)(t.prototype,\"getPropertiesValue\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"getPropertiesValue\"),t.prototype),(0,p.default)(t.prototype,\"setPropertiesValue\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"setPropertiesValue\"),t.prototype),(0,p.default)(t.prototype,\"doAction\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"doAction\"),t.prototype),(0,p.default)(t.prototype,\"getSpecString\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"getSpecString\"),t.prototype),(0,p.default)(t.prototype,\"getCurrentSpecValue\",[u.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCurrentSpecValue\"),t.prototype),t);exports.default=a;","miot-sdk/service/spec.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,t=e(require(\"@babel/runtime/helpers/classCallCheck\")),o=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),s=e(require(\"../native\")),a=require(\"../decorator/ReportDecorator\"),i=new(r=(function(){function e(){(0,t.default)(this,e)}return(0,o.default)(e,[{key:\"getUserConfigs\",value:function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),o=1;o1?r-1:0),o=1;o0&&(i=i[0]),n(i))}else a(i)})})}},{key:\"_convertParamsForThirdUserConfig\",value:function(e,r,t){var o=r,n=[],s=[],a=1;\"string\"!=typeof t&&(t=JSON.stringify(t));var i=t.length;if(i<=2048)return n.push({model:e,key:o,data:t}),n;var u=parseInt(i/2048);if(i%2048!=0&&++u,u+1>1e3)return null;for(var p=0;p1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;'android'===p.Platform.OS?p.NativeModules.MHCameraSDK.startConnect(t,e):p.NativeModules.MHCameraSDK.connectToDeviceWithDid(t,a.Device.model,e)}},{key:\"disconnectToDevice\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;if('android'!==p.Platform.OS)return new Promise(function(t,o){p.NativeModules.MHCameraSDK.disconnectToDeviceWithDid(e,function(e,r){e?t(e):o(r)})});p.NativeModules.MHCameraSDK.release(e)}},{key:\"sendP2PCommandToDevice\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;return'android'===p.Platform.OS?new Promise(function(r,i){p.NativeModules.MHCameraSDK.sendServerCmd(o,e,JSON.stringify(t),function(e,t){e?r(t):i(t)})}):new Promise(function(r,i){p.NativeModules.MHCameraSDK.sendP2PCommandToDeviceWith(o,e,t,function(e,t){e?r(t):i(t)})})}},{key:\"sendP2PCommandToDeviceWithStringParam\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;return'android'===p.Platform.OS?new Promise(function(r,i){p.NativeModules.MHCameraSDK.sendServerCmd(o,e,t,function(e,t){e?r(t):i(t)})}):Promise.reject(\"ios platform currently unsupport\")}},{key:\"sendP2PCommandToDeviceWithBase64Param\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;return'android'===p.Platform.OS?new Promise(function(r,i){p.NativeModules.MHCameraSDK.sendServerCmdWithBase64Param(o,e,t,function(e,t){e?r(t):i(t)})}):Promise.reject(\"ios platform currently unsupport\")}},{key:\"bindP2PCommandReceiveCallback\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;p.NativeModules.MHCameraSDK.bindP2PCommandReceiveWithDid(t,e)}},{key:\"sendRDTJSONCommandToDevice\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;return'android'===p.Platform.OS?new Promise(function(o,r){p.NativeModules.MHCameraSDK.sendRDTCommandToDevice(t,JSON.stringify(e),function(e,t){e?o(t):r(t)})}):new Promise(function(o,r){p.NativeModules.MHCameraSDK.sendRDTCommandJSONToDeviceWith(t,e,function(e,t){e?o(t):r(t)})})}},{key:\"sendRDTCommandToDevice\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;return'android'===p.Platform.OS?new Promise(function(o,r){p.NativeModules.MHCameraSDK.sendRDTCommandToDevice(t,e,function(e,t){e?o(t):r(t)})}):new Promise(function(t,o){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;p.NativeModules.MHCameraSDK.sendRDTCommandToDeviceWith(r,e,function(e,r){e?t(r):o(r)})})}},{key:\"bindRDTDataReceiveCallback\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;'android'===p.Platform.OS?p.NativeModules.MHCameraSDK.bindRDTDataReceiveCallback(t,e):p.NativeModules.MHCameraSDK.bindRDTDataReceiveWithDid(t,e)}},{key:\"showAlarmVideos\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;p.NativeModules.MHCameraSDK.showAlarmVideos(t,e)}},{key:\"showCloudStorage\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;p.NativeModules.MHCameraSDK.showCloudStorage(o,e,t)}},{key:\"showCloudStorageSetting\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;p.NativeModules.MHCameraSDK.showCloudStorageSetting(e)}},{key:\"openAlarmVideoPlayer\",value:function(e){(0,o.default)({},e).did=a.Device.deviceID,\"android\"===p.Platform.OS?p.NativeModules.MHCameraSDK.openAlarmVideoPlayer(JSON.stringify(e)):p.NativeModules.MHCameraSDK.openAlarmVideoPlayer(e)}},{key:\"showFaceRecognize\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;p.NativeModules.MHCameraSDK.showFaceRecognize(t,e)}},{key:\"bindBPSReceiveCallback\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;p.NativeModules.MHCameraSDK.bindBpsDataCallback(t,e)}},{key:\"getCurrentFrameInfo\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return new Promise(function(t,o){p.NativeModules.MHCameraSDK.getCurrentFrameInfo(e,function(e,r){if(e)if(\"string\"==typeof r)try{var i=JSON.parse(r);t(i)}catch(e){o(\"invalid json str\")}else o(\"wrong result type\");else o(\"invalid return code\")})})}},{key:\"ffmpegCommand\",value:function(e,t,o){p.NativeModules.MHCameraSDK.ffmpegCommand(e,t,o)}},{key:\"downloadM3U8ToMP4\",value:function(e,t,o){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:'H265',n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:a.Device.deviceID;p.NativeModules.MHCameraSDK.downloadM3U8ToMP4(a.Device.model,n,e,r,i,t,o)}},{key:\"getVideoFileUrl\",value:function(e,t,o){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:a.Device.deviceID;return new Promise(function(i,n){p.NativeModules.MHCameraSDK.getVideoFileUrl(r,a.Device.model,e,t,o,function(e,t){e?i(t):n(\"getFileIdImage failed\")})})}},{key:\"getFileIdImage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;return new Promise(function(o,r){p.NativeModules.MHCameraSDK.getfileIdImage(t,a.Device.model,e,function(e,t){e?o(t):r(\"getFileIdImage failed\")})})}},{key:\"getFaceImgWithDid\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;return new Promise(function(o,r){p.NativeModules.MHCameraSDK.getFaceImgWithDid(t,a.Device.model,e,function(e,t){e?o(t):r(\"getFaceImgWithDid failed\")})})}},{key:\"getCommonImgWithParams\",value:function(e,t,o){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:a.Device.deviceID;return new Promise(function(i,n){p.NativeModules.MHCameraSDK.getCommonImgWithParams(r,a.Device.model,e,t,o,function(e,t){e?i(t):n(\"getCommonImgWithParams failed\")})})}},{key:\"setTimelinePlaybackMode\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;p.NativeModules.MHCameraSDK.setTimelinePlaybackMode(t,e)}},{key:\"bindTimelinePlaybackEndListener\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;p.NativeModules.MHCameraSDK.bindTimelinePlaybackEndListener(t,e)}},{key:\"getCurrentSpeakerVolumn\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return new Promise(function(t,o){p.NativeModules.MHCameraSDK.getCurrentSpeakerVolumn(e,function(e,r){e?t(r):o(\"get current speaker volume error\")})})}},{key:\"setCurrentDeviceIsMissFirmware\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;p.NativeModules.MHCameraSDK.setCurrentDeviceIsMissFirmware(t,e)}},{key:\"showNASSetting\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;p.NativeModules.MHCameraSDK.showNASSettingPage(e)}},{key:\"openFloatWindow\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return\"android\"==p.Platform.OS?new Promise(function(t,o){p.NativeModules.MHCameraSDK.openFloatWindow(e,function(e,r){e?t(r):o(r)})}):Promise.reject(\"unsupported operation for ios platform\")}},{key:\"closeFloatWindow\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;if(\"android\"!=p.Platform.OS)return Promise.reject(\"unsupported operation for ios platform\");p.NativeModules.MHCameraSDK.closeFloatWindow(e)}},{key:\"tryBindAlarmNotifyWithWechatMijia\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return new Promise(function(t,o){p.NativeModules.MHCameraSDK.tryBindAlarmNotifyWithWechatMijia(e,function(e,r){e?t(r):o(r)})})}},{key:\"queryDevicePassword\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Device.deviceID;return\"android\"==p.Platform.OS?new Promise(function(t,o){p.NativeModules.MHCameraSDK.requestDeviceP2pInfo(e,function(e,r){e?t(r):o(r)})}):Promise.reject(\" ios platform did not implement this function yet.\")}},{key:\"decryptBigFile\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;return\"android\"==p.Platform.OS?new Promise(function(r,i){p.NativeModules.MHCameraSDK.decryptBigFile(e,t,o,function(e,t){e?r(t):i(t)})}):Promise.reject(\"ios platform not support yet; to be done\")}},{key:\"decryptSmallFile\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.Device.deviceID;return\"android\"==p.Platform.OS?new Promise(function(r,i){p.NativeModules.MHCameraSDK.decryptSmallFile(e,t,o,function(e,t){e?r(t):i(t)})}):Promise.reject(\"ios platform not support yet; to be done\")}},{key:\"markCurrentDeviceUseHualaiEncrypted\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;if(\"android\"!=p.Platform.OS)return Promise.reject(\"ios platform not support yet; to be done\");p.NativeModules.MHCameraSDK.markCurrentDeviceHualaiEncrypted(e,t)}},{key:\"setCurrentDeviceUseFixedRdtChannel\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Device.deviceID;if(\"android\"!=p.Platform.OS)return Promise.reject(\"ios platform not support yet; to be done\");p.NativeModules.MHCameraSDK.setCurrentDeviceUseFixedRdtChannel(e,t)}}]),e})(),(0,n.default)(t.prototype,\"connectToDeviceWithStateChangeCallBack\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"connectToDeviceWithStateChangeCallBack\"),t.prototype),(0,n.default)(t.prototype,\"disconnectToDevice\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"disconnectToDevice\"),t.prototype),(0,n.default)(t.prototype,\"sendP2PCommandToDevice\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendP2PCommandToDevice\"),t.prototype),(0,n.default)(t.prototype,\"sendP2PCommandToDeviceWithStringParam\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendP2PCommandToDeviceWithStringParam\"),t.prototype),(0,n.default)(t.prototype,\"sendP2PCommandToDeviceWithBase64Param\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendP2PCommandToDeviceWithBase64Param\"),t.prototype),(0,n.default)(t.prototype,\"bindP2PCommandReceiveCallback\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"bindP2PCommandReceiveCallback\"),t.prototype),(0,n.default)(t.prototype,\"sendRDTJSONCommandToDevice\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendRDTJSONCommandToDevice\"),t.prototype),(0,n.default)(t.prototype,\"sendRDTCommandToDevice\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"sendRDTCommandToDevice\"),t.prototype),(0,n.default)(t.prototype,\"bindRDTDataReceiveCallback\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"bindRDTDataReceiveCallback\"),t.prototype),(0,n.default)(t.prototype,\"showAlarmVideos\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"showAlarmVideos\"),t.prototype),(0,n.default)(t.prototype,\"showCloudStorage\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"showCloudStorage\"),t.prototype),(0,n.default)(t.prototype,\"showCloudStorageSetting\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"showCloudStorageSetting\"),t.prototype),(0,n.default)(t.prototype,\"openAlarmVideoPlayer\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"openAlarmVideoPlayer\"),t.prototype),(0,n.default)(t.prototype,\"showFaceRecognize\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"showFaceRecognize\"),t.prototype),(0,n.default)(t.prototype,\"bindBPSReceiveCallback\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"bindBPSReceiveCallback\"),t.prototype),(0,n.default)(t.prototype,\"getCurrentFrameInfo\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCurrentFrameInfo\"),t.prototype),(0,n.default)(t.prototype,\"ffmpegCommand\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"ffmpegCommand\"),t.prototype),(0,n.default)(t.prototype,\"downloadM3U8ToMP4\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"downloadM3U8ToMP4\"),t.prototype),(0,n.default)(t.prototype,\"getVideoFileUrl\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"getVideoFileUrl\"),t.prototype),(0,n.default)(t.prototype,\"getFileIdImage\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"getFileIdImage\"),t.prototype),(0,n.default)(t.prototype,\"getFaceImgWithDid\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"getFaceImgWithDid\"),t.prototype),(0,n.default)(t.prototype,\"getCommonImgWithParams\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCommonImgWithParams\"),t.prototype),(0,n.default)(t.prototype,\"setTimelinePlaybackMode\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"setTimelinePlaybackMode\"),t.prototype),(0,n.default)(t.prototype,\"bindTimelinePlaybackEndListener\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"bindTimelinePlaybackEndListener\"),t.prototype),(0,n.default)(t.prototype,\"getCurrentSpeakerVolumn\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCurrentSpeakerVolumn\"),t.prototype),(0,n.default)(t.prototype,\"setCurrentDeviceIsMissFirmware\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"setCurrentDeviceIsMissFirmware\"),t.prototype),(0,n.default)(t.prototype,\"showNASSetting\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"showNASSetting\"),t.prototype),(0,n.default)(t.prototype,\"openFloatWindow\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"openFloatWindow\"),t.prototype),(0,n.default)(t.prototype,\"closeFloatWindow\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"closeFloatWindow\"),t.prototype),(0,n.default)(t.prototype,\"tryBindAlarmNotifyWithWechatMijia\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"tryBindAlarmNotifyWithWechatMijia\"),t.prototype),(0,n.default)(t.prototype,\"queryDevicePassword\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"queryDevicePassword\"),t.prototype),(0,n.default)(t.prototype,\"decryptBigFile\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"decryptBigFile\"),t.prototype),(0,n.default)(t.prototype,\"decryptSmallFile\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"decryptSmallFile\"),t.prototype),(0,n.default)(t.prototype,\"markCurrentDeviceUseHualaiEncrypted\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"markCurrentDeviceUseHualaiEncrypted\"),t.prototype),(0,n.default)(t.prototype,\"setCurrentDeviceUseFixedRdtChannel\",[c.report],Object.getOwnPropertyDescriptor(t.prototype,\"setCurrentDeviceUseFixedRdtChannel\"),t.prototype),t);exports.default=S;","miot-sdk/service/miotcamera.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.DarkMode=exports.AudioEvent=exports.FileEvent=exports.SceneType=exports.ECCCrypto=exports.ClassicBluetoothEvent=exports.ClassicBluetooth=exports.BluetoothEvent=exports.Bluetooth=exports.Resources=exports.HostEvent=exports.Host=exports.Service=exports.DeviceProperties=exports.DeviceEvent=exports.Device=exports.PackageEvent=exports.Entrance=exports.Package=exports.API_LEVEL=void 0;var r=t(require(\"./device/BasicDevice\")),o=t(require(\"./device/bluetooth/ClassicDevice\")),s=e(require(\"./device/bluetooth\")),i=require(\"./device/bluetooth/BluetoothDevice\"),v=t(require(\"./Host\")),a=require(\"./host/crypto\"),u=require(\"./host/audio\"),p=require(\"./host/file\"),c=t(require(\"./Package\")),l=require(\"./Properties\"),n=e(require(\"./resources\")),x=e(require(\"./Service\")),E=require(\"./service/scene\"),d=e(require(\"./darkmode\")),h=e(require(\"./device/\")),q=t(require(\"./utils\")),C=require(\"./package.json\").api_level;exports.API_LEVEL=C;var D=c.default;exports.Package=D;var P=c.Entrance;exports.Entrance=P;var B=c.PackageEvent;exports.PackageEvent=B;var f=r.default;exports.Device=f,console.log(h.default);var k=r.DeviceEvent;exports.DeviceEvent=k;var g=l.RootDeviceProperties;exports.DeviceProperties=g;var y=x.default;exports.Service=y;var b=v.default;exports.Host=b,console.log(v.default);var H=v.HostEvent;exports.HostEvent=H;var S=n.default;exports.Resources=S;var A=s.default;exports.Bluetooth=A;var L=i.BluetoothEvent;exports.BluetoothEvent=L;var R=o.default;exports.ClassicBluetooth=R;var _=o.ClassicBluetoothEvent;exports.ClassicBluetoothEvent=_;var F=a.ECCCrypto;exports.ECCCrypto=F;var M=E.SceneType;exports.SceneType=M;var T=p.FileEvent;exports.FileEvent=T;var m=u.AudioEvent;exports.AudioEvent=m;var I=d.default;exports.DarkMode=I;var V={Device:f,DeviceEvent:k,Bluetooth:A,BluetoothEvent:L,ClassicBluetooth:R,ClassicBluetoothEvent:_,API_LEVEL:C,Package:D,PackageEvent:B,Entrance:P,DeviceProperties:g,Service:y,Host:b,HostEvent:H,Resources:S,ECCCrypto:F,SceneType:M,FileEvent:T,AudioEvent:m,Utils:q,DarkMode:I};exports.default=V;","miot-sdk/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ClassicBluetoothEvent=exports.default=void 0;var t=e(require(\"../../native\")),o={create:function(){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(e,o){t.default.ClassicBluetooth.create(function(t,n){t?e(n):o(n)})})},connectSocket:function(e,o){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(n,i){t.default.ClassicBluetooth.connectSocket(e,o,function(e,t){e?n(t):i(t)})})},disconnectSocket:function(){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(e,o){t.default.ClassicBluetooth.disconnectSocket(function(t,n){t?e(n):o(n)})})},write:function(e){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(o,n){t.default.ClassicBluetooth.write(e,function(e,t){e?o(t):n(t)})})},prepareBluetoothProfile:function(e){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(o,n){t.default.ClassicBluetooth.prepareBluetoothProfile(e,function(e,t){e?o(t):n(t)})})},connectBluetoothProfile:function(e,o){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(n,i){t.default.ClassicBluetooth.connectBluetoothProfile(e,o,function(e,t){e?n(t):i(t)})})},disconnectBluetoothProfile:function(e,o){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(n,i){t.default.ClassicBluetooth.disconnectBluetoothProfile(e,o,function(e,t){e?n(t):i(t)})})},getBluetoothProfileState:function(e,o){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(n,i){t.default.ClassicBluetooth.getBluetoothProfileState(e,o,function(e,t){e?n(t):i(t)})})},destroy:function(){return t.isIOS?Promise.reject(\"ios is not support...\"):new Promise(function(e,o){t.default.ClassicBluetooth.destroy(function(t,n){t?e(n):o(n)})})}};exports.default=o;var n={classicBlueBondStateChanged:{forever:function(e){return function(t){e.emit(t)}}},classicBlueConnectionStateChanged:{forever:function(e){return function(t){e.emit(t)}}},classicBlueReceivedData:{forever:function(e){return function(t){e.emit(t)}}}};exports.ClassicBluetoothEvent=n,(0,t.buildEvents)(n);","miot-sdk/device/bluetooth/ClassicDevice.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.HostEvent=exports.default=exports.LocationAuthStatus=exports.HOST_TYPE_ANDROID=exports.HOST_TYPE_IOS=void 0;var r=t(require(\"./host/audio\")),o=t(require(\"./host/crypto\")),n=t(require(\"./host/file\")),i=t(require(\"./host/locale\")),u=t(require(\"./host/storage\")),s=e(require(\"./native\")),a=require(\"buffer\"),d=t(require(\"merge\")),c=require(\"react-native\"),f=require('react-native/Libraries/Image/resolveAssetSource'),p=s.IOS;exports.HOST_TYPE_IOS=p;var l=s.ANDROID;exports.HOST_TYPE_ANDROID=l;var g={LocationAuthStatus_NotDetermined:0,LocationAuthStatus_Restricted:1,LocationAuthStatus_Denied:2,LocationAuthStatus_AuthorizedAlways:3,LocationAuthStatus_AuthorizedWhenInUse:4,LocationAuthStatus_Authorized:5};exports.LocationAuthStatus=g,Object.freeze(g);var h={get type(){return s.default.type},get systemInfo(){return s.default.MIOTHost.systemInfo},get isAndroid(){return s.isAndroid},get isIOS(){return s.isIOS},get version(){return s.default.MIOTHost.appVersion||s.default.MIOTHost.systemInfo.sysVersion},get apiLevel(){return s.isAndroid?s.default.MIOTHost.systemInfo.hostApiLevel:s.default.MIOTHost.apiLevel},get isDebug(){return s.default.MIOTHost.buildType===s.DEBUG},get applicationEdition(){return __DEV__&&console.warn&&console.warn(\"applicationEdition deprecated 10033\"),s.isAndroid?this.ui.checkStoreSupporttedOnAndroid()?1:2:s.default.MIOTHost.ApplicationEdition},get appConfigEnv(){return s.default.MIOTHost.appConfigEnv},get displayCutoutTop(){return\"android\"===c.Platform.OS&&s.default.MIOTHost.displayCutoutTop||0},get ui(){return require('./host/ui').default},get locale(){return i.default},get storage(){return u.default},get file(){return n.default},get audio(){return r.default},get crypto(){return o.default},getWifiInfo:function(){return new Promise(function(e,t){s.default.MIOTHost.getConnectedWifi(function(r,o){if(!r)return t(o);e(o)})})},getAppName:function(){return new Promise(function(e,t){s.default.MIOTHost.getAppName(function(t){e(t)})})},getPhoneScreenInfo:function(){return s.isAndroid?new Promise(function(e,t){s.default.MIOTHost.getPhoneScreenInfo(function(r,o){r?e(o):t(o)})}):Promise.reject(\"iOS not support\")},getCurrentCountry:function(){return __DEV__&&console.warn&&console.warn(\"getCurrentCountry deprecated 10011 \\u6539\\u7528 Service.getServerName\"),new Promise(function(e){s.default.MIOTHost.loadCurrentCountryCode(function(t){e(t)})})},getOperatorsInfo:function(){return new Promise(function(e,t){s.default.MIOTHost.loadOperatorsType(function(r,o){r?e(o):t(o)})})},createBackgroundExecutor:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(r,o){e=f(e),console.log(\"ready to run jx:\"+e),s.default.MIOTHost.createExecutor(e.uri,s.isAndroid?JSON.stringify(t||{}):t||{},function(e,t){if(e){var n={running:!1,ready:!0},i={get id(){return t},get isReady(){return n.ready},get isRunning(){return n.running},execute:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:'';return new Promise(function(t,o){l.default.MIOTFile.readFileListFrom(e,function(e,r){e?t(r):o(!1,r)})})}},{key:\"isFileExists\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.isFileExists(e,function(e,r){e?t(r):o(r)})})}},{key:\"readFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.readFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"readFileToHexString\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.readFileToHexString(e,function(e,r){e?t(r):o(r)})})}},{key:\"readFileToBase64\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.readFileToBase64(e,function(e,r){e?t(r):o(r)})})}},{key:\"writeFile\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.writeFile(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"writeFileThroughBase64\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.writeFileThroughBase64(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"appendFile\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.appendFile(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"appendFileThroughBase64\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.appendFileThroughBase64(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"deleteFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.deleteFile(e,function(e,r){e?t(!0):o(r)})})}},{key:\"generateObjNameAndUrlForFDSUpload\",value:function(e,t){return new Promise(function(o,r){var n={did:e,suffix:t};l.default.MIOTRPC.standardCall(\"/home/genpresignedurl\",n,function(e,t){if(!e)return r(t);o(t)})})}},{key:\"generateObjNameAndUrlForLogFileFDSUpload\",value:function(e,t){return new Promise(function(o,r){var n={did:e,suffix:t};l.default.MIOTRPC.standardCall(\"/home/genfilepresignedurl\",n,function(e,t){if(!e)return r(t);o(t)})})}},{key:\"getFDSFileInfoWithObjName\",value:function(e){return new Promise(function(t,o){l.default.MIOTRPC.standardCall(\"/home/getfileurl\",{obj_name:e},function(e,r){if(!e)return o(r);t(r)})})}},{key:\"uploadFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.uploadFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"uploadFileToFDS\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.uploadFileToFDS(e,function(e,r){e?t(r):o(r)})})}},{key:\"downloadFile\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return o?new Promise(function(r,n){l.default.MIOTFile.downloadFileWithParams(e,t,o,function(e,t){e?r(t):n(t)})}):new Promise(function(o,r){l.default.MIOTFile.downloadFile(e,t,function(e,t){e?o(t):r(t)})})}},{key:\"cancelDownloadFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.cancelDownloadFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"dataLengthOfBase64Data\",value:function(e){return new Promise(function(t){l.default.MIOTFile.dataLengthOfBase64Data(e,function(e){t(e)})})}},{key:\"subBase64DataOfBase64Data\",value:function(e,t,o){return new Promise(function(r,n){l.default.MIOTFile.subBase64DataOfBase64Data(e,t,o,function(e,t){e?r(t):n(!1)})})}},{key:\"unzipFile\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'';return new Promise(function(o,r){l.default.MIOTFile.unzipFile(e,t,function(e,t){e?o(!0):r(t)})})}},{key:\"ungzFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.ungzFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"ungzYunMiFile\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.ungzYunMiFile(e,function(e,r){e?t(r):o(r)})})}},{key:\"saveImageToPhotosAlbum\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.saveImageToPhotosAlbum(e,function(e,r){e?t(!0):o(r)})})}},{key:\"saveFileToPhotosAlbum\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.saveFileToPhotosAlbum(e,function(e,r){e?t(!0):o(r)})})}},{key:\"saveImageToPhotosDidAlbum\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new Promise(function(o,r){var n=u.default.deviceID;if(null!=n&&''!=n){var i=n;t&&(i=n+\"-\"+t),l.default.MIOTFile.saveImageToPhotosDidAlbum(i,e,function(e,t){e?o(!0):r(t)})}else r({code:-1,message:\"did cannot be empty\"})})}},{key:\"saveVideoToPhotosDidAlbum\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new Promise(function(o,r){var n=u.default.deviceID;if(null!=n&&''!=n){var i=n;t&&(i=n+\"-\"+t),l.default.MIOTFile.saveVideoToPhotosDidAlbum(i,e,function(e,t){e?o(!0):r(t)})}else r({code:-1,message:\"did cannot be empty\"})})}},{key:\"fetchLocalVideoFilePathFromDidAlbumByUrl\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new Promise(function(o,r){var n=u.default.deviceID;if(null!=n&&''!=n){var i=n;t&&(i=n+\"-\"+t),l.default.MIOTFile.fetchLocalVideoFilePathFromDidAlbumByUrl(i,e,function(e,t){e?o(t):r(t)})}else r({code:-1,message:\"did cannot be empty\"})})}},{key:\"getAllSourceFromPhotosDidAlbum\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return new Promise(function(t,o){var r=u.default.deviceID;if(null!=r&&''!=r){var n=r;e&&(n=r+\"-\"+e),l.default.MIOTFile.getAllSourceFromPhotosDidAlbum(n,function(e,r){e?t(r):o(r)})}else o({code:-1,message:\"did cannot be empty\"})})}},{key:\"deleteAssetsFromAlbumByUrls\",value:function(e){return new Promise(function(t,o){var r=u.default.deviceID;null!=r&&''!=r?l.default.MIOTFile.deleteAssetsFromAlbumByUrls(r,e,function(e,r){e?t(!0):o(r)}):o({code:-1,message:\"did cannot be empty\"})})}},{key:\"screenShot\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.screenShot(e,function(e,r){e?t(r):o(r)})})}},{key:\"screenShotInRect\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.screenShotInRect(e,l.isIOS?{x:t.l,y:t.t,width:t.w,height:t.h}:t,function(e,t){e?o(t):r(t)})})}},{key:\"longScreenShot\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.longScreenShot(e,t,function(e,t){e?o(t):r(t)})})}},{key:\"amapScreenShot\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.amapScreenShot(e,t,function(e,t){e?o(t):r(t)})})}},{key:\"getRGBAValueFromImageAtPath\",value:function(e,t){return new Promise(function(o,r){l.default.MIOTFile.getRGBAValueFromImageAtPath(e,t,function(e,t){e?o(t):r(!1)})})}},{key:\"mkdir\",value:function(e){return new Promise(function(t,o){l.default.MIOTFile.mkdir(e,function(e,r){e?t(r):o(r)})})}},{key:\"storageBasePath\",get:function(){return l.default.MIOTFile.storageBasePath}}]),e})(),(0,i.default)(o.prototype,\"readFileList\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"readFileList\"),o.prototype),(0,i.default)(o.prototype,\"isFileExists\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"isFileExists\"),o.prototype),(0,i.default)(o.prototype,\"readFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"readFile\"),o.prototype),(0,i.default)(o.prototype,\"readFileToHexString\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"readFileToHexString\"),o.prototype),(0,i.default)(o.prototype,\"readFileToBase64\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"readFileToBase64\"),o.prototype),(0,i.default)(o.prototype,\"writeFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"writeFile\"),o.prototype),(0,i.default)(o.prototype,\"writeFileThroughBase64\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"writeFileThroughBase64\"),o.prototype),(0,i.default)(o.prototype,\"appendFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"appendFile\"),o.prototype),(0,i.default)(o.prototype,\"appendFileThroughBase64\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"appendFileThroughBase64\"),o.prototype),(0,i.default)(o.prototype,\"deleteFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"deleteFile\"),o.prototype),(0,i.default)(o.prototype,\"generateObjNameAndUrlForFDSUpload\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"generateObjNameAndUrlForFDSUpload\"),o.prototype),(0,i.default)(o.prototype,\"generateObjNameAndUrlForLogFileFDSUpload\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"generateObjNameAndUrlForLogFileFDSUpload\"),o.prototype),(0,i.default)(o.prototype,\"getFDSFileInfoWithObjName\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"getFDSFileInfoWithObjName\"),o.prototype),(0,i.default)(o.prototype,\"uploadFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"uploadFile\"),o.prototype),(0,i.default)(o.prototype,\"uploadFileToFDS\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"uploadFileToFDS\"),o.prototype),(0,i.default)(o.prototype,\"downloadFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"downloadFile\"),o.prototype),(0,i.default)(o.prototype,\"dataLengthOfBase64Data\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"dataLengthOfBase64Data\"),o.prototype),(0,i.default)(o.prototype,\"subBase64DataOfBase64Data\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"subBase64DataOfBase64Data\"),o.prototype),(0,i.default)(o.prototype,\"unzipFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"unzipFile\"),o.prototype),(0,i.default)(o.prototype,\"ungzFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"ungzFile\"),o.prototype),(0,i.default)(o.prototype,\"ungzYunMiFile\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"ungzYunMiFile\"),o.prototype),(0,i.default)(o.prototype,\"saveImageToPhotosAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"saveImageToPhotosAlbum\"),o.prototype),(0,i.default)(o.prototype,\"saveFileToPhotosAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"saveFileToPhotosAlbum\"),o.prototype),(0,i.default)(o.prototype,\"saveImageToPhotosDidAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"saveImageToPhotosDidAlbum\"),o.prototype),(0,i.default)(o.prototype,\"saveVideoToPhotosDidAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"saveVideoToPhotosDidAlbum\"),o.prototype),(0,i.default)(o.prototype,\"fetchLocalVideoFilePathFromDidAlbumByUrl\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"fetchLocalVideoFilePathFromDidAlbumByUrl\"),o.prototype),(0,i.default)(o.prototype,\"getAllSourceFromPhotosDidAlbum\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"getAllSourceFromPhotosDidAlbum\"),o.prototype),(0,i.default)(o.prototype,\"deleteAssetsFromAlbumByUrls\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"deleteAssetsFromAlbumByUrls\"),o.prototype),(0,i.default)(o.prototype,\"screenShot\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"screenShot\"),o.prototype),(0,i.default)(o.prototype,\"screenShotInRect\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"screenShotInRect\"),o.prototype),(0,i.default)(o.prototype,\"longScreenShot\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"longScreenShot\"),o.prototype),(0,i.default)(o.prototype,\"amapScreenShot\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"amapScreenShot\"),o.prototype),(0,i.default)(o.prototype,\"getRGBAValueFromImageAtPath\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"getRGBAValueFromImageAtPath\"),o.prototype),(0,i.default)(o.prototype,\"mkdir\",[p.report],Object.getOwnPropertyDescriptor(o.prototype,\"mkdir\"),o.prototype),o);exports.default=c;","miot-sdk/host/file.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,o=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),u=t(require(\"../native\")),s=require(\"../decorator/ReportDecorator\"),l=new(r=(function(){function e(){(0,n.default)(this,e)}return(0,i.default)(e,[{key:\"getLocation\",value:function(){return new Promise(function(e,t){u.isAndroid?u.default.MIOTHost.getLocation(function(r,n){r?e((0,o.default)({},n,{AOIName:n.aoiname})):t(n)}):u.default.MHMapLocation.reLocationWithReGeocode(!0,function(r,n,i){i&&i.code?(console.log(\"\\u8bf7\\u6c42\\u5730\\u7406\\u4f4d\\u7f6e\\u4fe1\\u606f\\u51fa\\u9519\\uff0c\\u9519\\u8bef\\u4fe1\\u606f\\uff1a\"+i),t(\"\\u8bf7\\u6c42\\u5730\\u7406\\u4f4d\\u7f6e\\u4fe1\\u606f\\u51fa\\u9519\\uff0c\\u9519\\u8bef\\u4fe1\\u606f\\uff1a\"+JSON.stringify(i))):(n.formattedAddress&&(n.address=n.formattedAddress,delete n.formattedAddress),e((0,o.default)({},r,n)))})})}},{key:\"getSystemTimeZone\",value:function(){return new Promise(function(e,t){u.default.MIOTHost.getSystemTimezoneNameWithCallback(function(r,o){r?e(o):t(o)})})}},{key:\"language\",get:function(){return u.default.language}},{key:\"systemLanguage\",get:function(){return u.default.MIOTHost.systemLanguage}},{key:\"timeZone\",get:function(){return u.default.MIOTHost.timeZone}},{key:\"is24HourTime\",get:function(){return u.default.MIOTHost.is24HourTime}}]),e})(),(0,a.default)(r.prototype,\"getLocation\",[s.report],Object.getOwnPropertyDescriptor(r.prototype,\"getLocation\"),r.prototype),(0,a.default)(r.prototype,\"getSystemTimeZone\",[s.report],Object.getOwnPropertyDescriptor(r.prototype,\"getSystemTimeZone\"),r.prototype),r);exports.default=l;","miot-sdk/host/locale.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,o=e(require(\"@babel/runtime/helpers/classCallCheck\")),p=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),i=r(require(\"../native\")),l=require(\"../decorator/ReportDecorator\"),u=new(t=(function(){function e(){(0,o.default)(this,e)}return(0,p.default)(e,[{key:\"get\",value:function(e){return new Promise(function(r,t){i.default.MIOTHost.loadInfoCallback(e,function(e){if(e){var o=JSON.parse(e);o.expire>0?o.expire+o.time>(new Date).getTime()?r(o.value):t(\"expired\"):r(o.value)}else r(e)})})}},{key:\"set\",value:function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{expire:0},o={value:r,expire:t?t.expire:0,time:(new Date).getTime()};i.default.MIOTHost.saveInfo(e,JSON.stringify(o))}},{key:\"load\",value:function(e){var r=this;if(\"array\"!==i.Utils.typeName(e))return Promise.reject(\"\\u4f20\\u5165\\u53c2\\u6570\\u4e0d\\u662f\\u6570\\u7ec4\");var t=e.map(function(e){return r.get(e)});return Promise.all(t)}},{key:\"save\",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{expire:0};for(var t in e)this.set(t,e[t],r)}}]),e})(),(0,a.default)(t.prototype,\"get\",[l.report],Object.getOwnPropertyDescriptor(t.prototype,\"get\"),t.prototype),(0,a.default)(t.prototype,\"set\",[l.report],Object.getOwnPropertyDescriptor(t.prototype,\"set\"),t.prototype),(0,a.default)(t.prototype,\"load\",[l.report],Object.getOwnPropertyDescriptor(t.prototype,\"load\"),t.prototype),(0,a.default)(t.prototype,\"save\",[l.report],Object.getOwnPropertyDescriptor(t.prototype,\"save\"),t.prototype),t);exports.default=u;","miot-sdk/host/storage.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var o,r=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/extends\")),p=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),c=require(\"react-native\"),u=e(require(\"../device/BasicDevice\")),l=t(require(\"../native\")),d=e(require(\"../utils/protocol-helper\")),s=require(\"../decorator/ReportDecorator\"),g=new(o=(function(){function e(){(0,p.default)(this,e)}return(0,i.default)(e,[{key:\"canOpenStorePage\",value:function(){return new Promise(function(e){l.default.MIOTHost.checkStoreSupportted(function(t){e(t)})})}},{key:\"checkStoreSupporttedOnAndroid\",value:function(){__DEV__&&console.warn&&console.warn(\"checkStoreSupporttedOnAndroid deprecated \\u65b9\\u6cd5\\u5b58\\u5728\\u95ee\\u9898\\uff0c\\u5e9f\\u5f03\");var e=l.default.MIOTService.currentServerName;return!(\"\"===e||\"cn\"===e||\"st\"===e)}},{key:\"openDeleteDevice\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;l.isAndroid?l.default.MIOTHost.openDeleteDevice(e):e?l.default.MIOTHost.openDeleteDeviceWithCustomMessage(e):l.default.MIOTHost.openDeleteDevice()}},{key:\"openDeleteDeviceWithCallback\",value:function(){return new Promise(function(e,t){l.isAndroid&&t(!1),l.default.MIOTHost.openDeleteDeviceWithCallback(function(o){o?e(!0):t(!1)})})}},{key:\"openShareDevicePage\",value:function(){l.default.MIOTHost.openShareDevicePage()}},{key:\"keepScreenNotLock\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];l.default.MIOTHost.keepScreenNotLock(e)}},{key:\"openRoomManagementPage\",value:function(){l.default.MIOTHost.openRoomManagementPage()}},{key:\"openVoiceCtrlDeviceAuthPage\",value:function(){l.default.MIOTHost.openVoiceCtrlDeviceAuthPage()}},{key:\"openIftttAutoPage\",value:function(){__DEV__&&console.warn&&console.warn(\"openIftttAutoPage deprecated sdk 10032\\u7248\\u672c\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.scene.openIftttAutoPage()\"),l.default.MIOTHost.openIftttAutoPage()}},{key:\"openFeedbackInput\",value:function(){l.default.MIOTHost.openFeedbackInput()}},{key:\"openSecuritySetting\",value:function(){l.default.MIOTHost.openSecuritySetting()}},{key:\"openHelpPage\",value:function(){l.isAndroid?l.default.MIOTHost.openHelpPage():l.default.MIOTHost.openFeedback()}},{key:\"openShareListBar\",value:function(e,t,o,r){o=d.default.resolveUrl(o),l.default.MIOTHost.openShareListBar(e,t,o,r)}},{key:\"openSystemShareWindow\",value:function(e){l.default.MIOTHost.openSystemShareWindow(e)}},{key:\"getDevicesWithModel\",value:function(e){return new Promise(function(t,o){l.default.MIOTHost.getDevicesWithModel(e,function(e,r){e?t(r):o(!1)})})}},{key:\"openBtGatewayPage\",value:function(){l.default.MIOTHost.openBtGatewayPage()}},{key:\"alertLegalInformationAuthorization\",value:function(e){var t=this;return 1==d.default.getLegalInfoAuthHasShowed()?Promise.resolve(!1):e.force||!u.default.isShared&&!u.default.isFamily?d.default.getLegalAuthInfoProtocol().then(function(o){var r=(0,n.default)({},e);return o&&o.privacyURL&&o.privacyURL.length>0&&(r=(0,n.default)(r,o)),t._alertDeclarationWithConfigOption(r)}).catch(function(){return t._alertDeclarationWithConfigOption(e)}):(__DEV__&&console.warn&&console.warn(\"\\u5206\\u4eab\\u8bbe\\u5907\\u4e0d\\u5efa\\u8bae\\u8fdb\\u884c\\u5f39\\u7a97\\u8bf7\\u6c42\\u9690\\u79c1\\u6388\\u6743\\u3002\"),Promise.resolve(!1))}},{key:\"_alertDeclarationWithConfigOption\",value:function(e){return new Promise(function(t,o){if(e.privacyURL&&(e.privacyURL=d.default.resolveUrlWithLink(e.privacyURL)),e.agreementURL&&(e.agreementURL=d.default.resolveUrlWithLink(e.agreementURL)),e.hideAgreement&&delete e.agreementURL,e.experiencePlanURL&&(e.experiencePlanURL=d.default.resolveUrlWithLink(e.experiencePlanURL)),e.hideUserExperiencePlan&&delete e.experiencePlanURL,1==d.default.getLegalInfoAuthHasShowed())return Promise.resolve(!1);c.DeviceEventEmitter.emit('MH_Event_ShowPrivacyLicenseDialog',{isShowingPrivacyLicenseDialog:!0}),d.default.setLegalInfoAuthHasShowed(!0),l.default.MIOTHost.showDeclarationWithConfig(e,function(e){'ok'===e||!0===e||'true'===e?t(!0):o(!1)})})}},{key:\"previewLegalInformationAuthorization\",value:function(e){var t=this,o=(0,n.default)({},e);return o.force||!u.default.isShared&&!u.default.isFamily?new Promise(function(e,r){d.default.getLegalAuthInfoProtocol().then(function(p){p&&p.privacyURL&&p.privacyURL.length>0&&(o=(0,n.default)(o,p)),t._openDeclarationWithConfigOption(o).then(function(t){e(t)}).catch(function(e){r(e)})}).catch(function(){t._openDeclarationWithConfigOption(o).then(function(t){e(t)}).catch(function(e){r(e)})})}):(__DEV__&&console.warn&&console.warn(\"\\u5206\\u4eab\\u8bbe\\u5907\\u4e0d\\u5efa\\u8bae\\u8fdb\\u884c\\u5f39\\u7a97\\u8bf7\\u6c42\\u9690\\u79c1\\u6388\\u6743\\u3002\"),Promise.reject(!1))}},{key:\"_openDeclarationWithConfigOption\",value:function(e){return new Promise(function(t,o){e.privacyURL&&(e.privacyURL=d.default.resolveUrlWithLink(e.privacyURL)),e.agreementURL&&(e.agreementURL=d.default.resolveUrlWithLink(e.agreementURL)),e.hideAgreement&&delete e.agreementURL,e.experiencePlanURL&&(e.experiencePlanURL=d.default.resolveUrlWithLink(e.experiencePlanURL)),e.hideUserExperiencePlan&&delete e.experiencePlanURL,l.default.MIOTHost.openDeclarationWithConfig((0,r.default)({},e),function(e){e?t(!0):o(!1)})})}},{key:\"privacyAndProtocolReview\",value:function(e,t,o,r){__DEV__&&console.warn&&console.warn(\"privacyAndProtocolReview deprecated 10023\\u5e9f\\u5f03\\uff0c \\u8bf7\\u4f7f\\u7528 previewLegalInformationAuthorization\"),t=d.default.resolveUrl(t),r=d.default.resolveUrl(r),l.default.MIOTHost.privacyAndProtocolReview(e,t,o,r)}},{key:\"openPrivacyLicense\",value:function(e,t,o,r){return __DEV__&&console.warn&&console.warn(\"openPrivacyLicense deprecated 10023\\u5e9f\\u5f03\\uff0c \\u8bf7\\u4f7f\\u7528 alertLegalInformationAuthorization \\u66ff\\u6362\"),c.DeviceEventEmitter.emit('MH_Event_ShowPrivacyLicenseDialog',{isShowingPrivacyLicenseDialog:!0}),t=d.default.resolveUrl(t),r=d.default.resolveUrl(r),new Promise(function(n){l.default.MIOTHost.openPrivacyLicense(e,t,o,r,function(e){n('ok'===e||!0===e||'true'===e)})})}},{key:\"openChangeDeviceName\",value:function(){l.default.MIOTHost.openChangeDeviceName()}},{key:\"openAddToDesktopPage\",value:function(){l.default.MIOTHost.openAddToDesktopPage()}},{key:\"openDeviceUpgradePage\",value:function(){l.default.MIOTHost.openDeviceUpgradePage()}},{key:\"openBleMeshDeviceUpgradePage\",value:function(){'16'===u.default.type?l.default.MIOTHost.openBleMeshDeviceUpgradePage():__DEV__&&console.warn&&console.warn('\\u53ea\\u6709mesh\\u8bbe\\u5907\\u652f\\u6301\\u8c03\\u7528\\u8be5\\u63a5\\u53e3')}},{key:\"openBleCommonDeviceUpgradePage\",value:function(e){l.default.MIOTHost.openBleOtaDeviceUpgradePage(e)}},{key:\"openLightGroupUpgradePage\",value:function(){l.default.MIOTHost.openLightGroupUpgradePage()}},{key:\"openDeviceTimeZoneSettingPage\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e||(e={sync_device:!1}),l.default.MIOTHost.openDeviceTimeZoneSettingPage(e)}},{key:\"openWebPage\",value:function(e){l.default.MIOTHost.openWebPage(e)}},{key:\"openShopPage\",value:function(e){var t=\"https://app.xiaomiyoupin.com/shop/detail?gid=\"+e;if(l.isIOS)return l.default.MIOTHost.openShopPage(t);this.openWebPage(t)}},{key:\"openShopSearchPage\",value:function(e){var t=\"https://app.xiaomiyoupin.com/searchfilter?keyword=\"+e;l.isIOS?l.default.MIOTHost.openShopPage(t):this.openWebPage(t)}},{key:\"openProductBaikeWebPage\",value:function(e){l.isIOS?l.default.MIOTHost.openProductBaikeWebPage(e):l.default.MIOTHost.openOperationUrl(e)}},{key:\"openMeshDeviceGroupPage\",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;l.isAndroid?l.default.MIOTHost.openMeshDeviceGroupPage(e,t,o):'add'===e?c.NativeModules.MHDeviceGroup.create(t,o):'edit'===e&&c.NativeModules.MHDeviceGroup.edit(t,o)}},{key:\"openAddDeviceGroupPage\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";l.isAndroid&&e&&\"\"!==e?l.default.MIOTHost.openAddDeviceGroupPageWithGroupModel(e):l.default.MIOTHost.openAddDeviceGroupPage()}},{key:\"openEditDeviceGroupPage\",value:function(e){l.default.MIOTHost.openEditDeviceGroupPage(e)}},{key:\"openCountDownPage\",value:function(e,t){__DEV__&&console.warn&&console.warn(\"openCountDownPage deprecated sdk 10032\\u7248\\u672c\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.scene.openCountDownPage()\"),l.default.MIOTHost.launchCountDownWhenDevice(e,t)}},{key:\"openOneTimePassword\",value:function(e,t,o){l.default.MIOTHost.openOneTimePassword(e,t,o)}},{key:\"openTimerSettingPage\",value:function(e,t,o,r){__DEV__&&console.warn&&console.warn(\"openTimerSettingPage deprecated since 10004 use openTimerSettingPageWithVariousTypeParams instead\"),l.default.MIOTHost.openTimerSettingPage(e,t,o,r)}},{key:\"openTimerSettingPageWithCustomIdentifier\",value:function(e,t,o,r,n){__DEV__&&console.warn&&console.warn(\"openTimerSettingPageWithCustomIdentifier deprecated since 10004 use openTimerSettingPageWithVariousTypeParams instead\"),l.default.MIOTHost.openTimerSettingPageWithCustomIdentifier(e,t,o,r,n)}},{key:\"openTimerSettingPageWithVariousTypeParams\",value:function(e,t,o,r){l.isAndroid&&(\"string\"!=typeof t&&(t=JSON.stringify(t)),\"string\"!=typeof r&&(r=JSON.stringify(r))),l.default.MIOTHost.openTimerSettingPageWithVariousTypeParams(e,t,o,r)}},{key:\"openTimerSettingPageWithOptions\",value:function(e){__DEV__&&console.warn&&console.warn(\"openTimerSettingPageWithOptions deprecated sdk 10032\\u7248\\u672c\\u5f00\\u59cb\\u5e9f\\u5f03\\uff0c\\u8bf7\\u4f7f\\u7528 Service.scene.openTimerSettingPageWithOptions()\"),l.default.MIOTHost.openTimerSettingPageWithOptions(e)}},{key:\"openPowerMultikeyPage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;l.isAndroid?t?l.default.MIOTHost.openPowerMultikeyPage(e,t):l.default.MIOTHost.openPowerMultikeyPage(e,u.default.mac):l.default.MIOTHost.openPowerMultikeyPage(e)}},{key:\"addOrCopyIR\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{create_device:!0};if(l.isAndroid)l.default.MIOTHost.openAddIRController(e,t,o,n);else{var p=(0,r.default)({type:1===t?'copy':'add',gatewayID:e||'',models:o||[]},n);l.default.MIOTHost.addOrCopyIR(p)}}},{key:\"openDevice\",value:function(e,t,o){return new Promise(function(r,n){l.default.MIOTHost.openDevice(e,t,o,function(e,t){e?n({error:e,info:t}):r(!0)})})}},{key:\"openPluginPage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'main',o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{isBackToMainPage:!0};return null===o&&(o={isBackToMainPage:!0}),null===o.isBackToMainPage&&(o.isBackToMainPage=!0),void 0===o.isBackToMainPage&&(o.isBackToMainPage=!0),new Promise(function(r,n){l.default.MIOTHost.openPluginPage(e,t,o,function(e,t){e?r(t):n(t)})})}},{key:\"openPageWithClassName\",value:function(e){l.isIOS?l.default.MIOTHost.openPageWithClassName(e):__DEV__&&console.warn&&console.warn('method [openPageWithClassName] can only be invoked on iOS, Android is not implemented. ')}},{key:\"openNewMorePage\",value:function(){__DEV__&&console.warn&&console.warn(\"openNewMorePage deprecated since10010 use 'miot/ui/CommonSetting' component instead. See example https://github.com/MiEcosystem/miot-plugin-sdk/blob/SDK_10004/projects/com.xiaomi.demo/Main/tutorial/Setting.js for more details\"),l.isIOS&&l.default.MIOTHost.openNewMorePage()}},{key:\"openPhoneBluSettingPage\",value:function(){l.isAndroid?l.default.MIOTHost.openPhoneBluSettingActivity():__DEV__&&console.warn&&console.warn('method [openPhoneBluSettingPage] can only be invoked on Android, iOS is not implemented. ')}},{key:\"openXiaoAiLearnPage\",value:function(e,t,o,r,n){l.default.MIOTHost.openXiaoAiLearnPage(e,t,o,r,n)}},{key:\"showBLESwitchGuide\",value:function(){l.isAndroid?__DEV__&&console.warn&&console.warn('method [showBLESwitchGuide] can only be invoked on iOS, Android is not implemented. '):l.default.MIOTHost.showBLESwitchGuide()}},{key:\"dismissBLESwitchGuide\",value:function(){l.isAndroid?__DEV__&&console.warn&&console.warn('method [dismissBLESwitchGuide] can only be invoked on iOS, Android is not implemented. '):l.default.MIOTHost.dismissBLESwitchGuide()}},{key:\"openConnectSucceedPage\",value:function(e,t){l.default.MIOTHost.openConnectSucceedPage(e,t)}},{key:\"openZigbeeConnectDeviceList\",value:function(e){l.default.MIOTHost.openZigbeeConnectDeviceList(e)}},{key:\"openDeviceNetworkInfoPage\",value:function(){l.default.MIOTHost.openDeviceNetworkInfoPage()}},{key:\"openMiPayPageForAndroid\",value:function(e){return l.isAndroid?new Promise(function(t,o){l.default.MIOTHost.openMiPayPage(e,function(e,r){e?t(r):o(r)})}):Promise.reject(\"not support ios yet\")}},{key:\"openPluginRecommendScene\",value:function(e,t){l.default.MIOTHost.openPluginRecommendScene(e,t)}},{key:\"refreshDeviceList\",value:function(){return new Promise(function(e,t){l.default.MIOTHost.refreshDeviceList(function(o,r){o?e(r):t(r)})})}},{key:\"openTerminalDeviceSettingPage\",value:function(e){l.default.MIOTHost.openDeviceSettingPageWithType(e)}},{key:\"openAndroidLocationServerSettingPage\",value:function(){l.isAndroid&&l.default.MIOTHost.openPhoneLocationServerSettingPage()}},{key:\"openResetAndConnectDevicePage\",value:function(){l.default.MIOTHost.openResetAndConnectDevicePage()}},{key:\"openVoiceCtrlDevListPage\",value:function(){l.default.MIOTHost.openVoiceCtrlDevListPage()}},{key:\"openStereoSettingPage\",value:function(){c.NativeModules.MIOTWifiSpeaker.openStereoSettingPage()}},{key:\"openXiaoaiContentPage\",value:function(){c.NativeModules.MIOTWifiSpeaker.openXiaoaiContentPage()}},{key:\"openClockMusicSelector\",value:function(e){var t=e.ringtone_tab,o=e.ringtone_id,r=e.ringtone_name,n=e.ringtone_query;return new Promise(function(e,p){c.NativeModules.MIOTWifiSpeaker.openClockMusicSelector({ringtone_tab:t,ringtone_id:o,ringtone_name:r,ringtone_query:n},function(t,o){if(t)return e(o);p(o)})})}},{key:\"openEarthquakeLocationSelector\",value:function(e){var t=e.name,o=e.district,r=e.city,n=e.latitude,p=e.longitude;return new Promise(function(e,i){c.NativeModules.MIOTWifiSpeaker.openEarthquakeLocationSelector({name:t,district:o,city:r,latitude:n,longitude:p},function(t,o){if(t)return e(o);i(o)})})}},{key:\"openIOSDocumentFileChoosePage\",value:function(){return new Promise(function(e,t){if(l.isAndroid)return __DEV__&&console.warn&&console.warn('method [openIOSDocumentFileChoosePage] can only be invoked on iOS, Android is not supported. '),void t({code:-3,message:'method [openIOSDocumentFileChoosePage] can only be invoked on iOS, Android is not supported.'});l.default.MIOTHost.openIOSDocumentFileChoosePage(function(o,r){o?e(r):t(r)})})}}]),e})(),(0,a.default)(o.prototype,\"canOpenStorePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"canOpenStorePage\"),o.prototype),(0,a.default)(o.prototype,\"checkStoreSupporttedOnAndroid\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"checkStoreSupporttedOnAndroid\"),o.prototype),(0,a.default)(o.prototype,\"openDeleteDevice\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeleteDevice\"),o.prototype),(0,a.default)(o.prototype,\"openDeleteDeviceWithCallback\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeleteDeviceWithCallback\"),o.prototype),(0,a.default)(o.prototype,\"openShareDevicePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openShareDevicePage\"),o.prototype),(0,a.default)(o.prototype,\"keepScreenNotLock\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"keepScreenNotLock\"),o.prototype),(0,a.default)(o.prototype,\"openRoomManagementPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openRoomManagementPage\"),o.prototype),(0,a.default)(o.prototype,\"openVoiceCtrlDeviceAuthPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openVoiceCtrlDeviceAuthPage\"),o.prototype),(0,a.default)(o.prototype,\"openIftttAutoPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openIftttAutoPage\"),o.prototype),(0,a.default)(o.prototype,\"openFeedbackInput\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openFeedbackInput\"),o.prototype),(0,a.default)(o.prototype,\"openSecuritySetting\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openSecuritySetting\"),o.prototype),(0,a.default)(o.prototype,\"openHelpPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openHelpPage\"),o.prototype),(0,a.default)(o.prototype,\"openShareListBar\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openShareListBar\"),o.prototype),(0,a.default)(o.prototype,\"openSystemShareWindow\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openSystemShareWindow\"),o.prototype),(0,a.default)(o.prototype,\"getDevicesWithModel\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"getDevicesWithModel\"),o.prototype),(0,a.default)(o.prototype,\"openBtGatewayPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openBtGatewayPage\"),o.prototype),(0,a.default)(o.prototype,\"alertLegalInformationAuthorization\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"alertLegalInformationAuthorization\"),o.prototype),(0,a.default)(o.prototype,\"previewLegalInformationAuthorization\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"previewLegalInformationAuthorization\"),o.prototype),(0,a.default)(o.prototype,\"privacyAndProtocolReview\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"privacyAndProtocolReview\"),o.prototype),(0,a.default)(o.prototype,\"openPrivacyLicense\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPrivacyLicense\"),o.prototype),(0,a.default)(o.prototype,\"openChangeDeviceName\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openChangeDeviceName\"),o.prototype),(0,a.default)(o.prototype,\"openAddToDesktopPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openAddToDesktopPage\"),o.prototype),(0,a.default)(o.prototype,\"openDeviceUpgradePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeviceUpgradePage\"),o.prototype),(0,a.default)(o.prototype,\"openBleMeshDeviceUpgradePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openBleMeshDeviceUpgradePage\"),o.prototype),(0,a.default)(o.prototype,\"openBleCommonDeviceUpgradePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openBleCommonDeviceUpgradePage\"),o.prototype),(0,a.default)(o.prototype,\"openLightGroupUpgradePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openLightGroupUpgradePage\"),o.prototype),(0,a.default)(o.prototype,\"openDeviceTimeZoneSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeviceTimeZoneSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openWebPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openWebPage\"),o.prototype),(0,a.default)(o.prototype,\"openShopPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openShopPage\"),o.prototype),(0,a.default)(o.prototype,\"openShopSearchPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openShopSearchPage\"),o.prototype),(0,a.default)(o.prototype,\"openProductBaikeWebPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openProductBaikeWebPage\"),o.prototype),(0,a.default)(o.prototype,\"openMeshDeviceGroupPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openMeshDeviceGroupPage\"),o.prototype),(0,a.default)(o.prototype,\"openAddDeviceGroupPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openAddDeviceGroupPage\"),o.prototype),(0,a.default)(o.prototype,\"openEditDeviceGroupPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openEditDeviceGroupPage\"),o.prototype),(0,a.default)(o.prototype,\"openCountDownPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openCountDownPage\"),o.prototype),(0,a.default)(o.prototype,\"openOneTimePassword\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openOneTimePassword\"),o.prototype),(0,a.default)(o.prototype,\"openTimerSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openTimerSettingPageWithCustomIdentifier\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPageWithCustomIdentifier\"),o.prototype),(0,a.default)(o.prototype,\"openTimerSettingPageWithVariousTypeParams\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPageWithVariousTypeParams\"),o.prototype),(0,a.default)(o.prototype,\"openTimerSettingPageWithOptions\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTimerSettingPageWithOptions\"),o.prototype),(0,a.default)(o.prototype,\"openPowerMultikeyPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPowerMultikeyPage\"),o.prototype),(0,a.default)(o.prototype,\"addOrCopyIR\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"addOrCopyIR\"),o.prototype),(0,a.default)(o.prototype,\"openDevice\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDevice\"),o.prototype),(0,a.default)(o.prototype,\"openPluginPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPluginPage\"),o.prototype),(0,a.default)(o.prototype,\"openPageWithClassName\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPageWithClassName\"),o.prototype),(0,a.default)(o.prototype,\"openNewMorePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openNewMorePage\"),o.prototype),(0,a.default)(o.prototype,\"openPhoneBluSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPhoneBluSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openXiaoAiLearnPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openXiaoAiLearnPage\"),o.prototype),(0,a.default)(o.prototype,\"showBLESwitchGuide\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"showBLESwitchGuide\"),o.prototype),(0,a.default)(o.prototype,\"dismissBLESwitchGuide\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"dismissBLESwitchGuide\"),o.prototype),(0,a.default)(o.prototype,\"openConnectSucceedPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openConnectSucceedPage\"),o.prototype),(0,a.default)(o.prototype,\"openZigbeeConnectDeviceList\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openZigbeeConnectDeviceList\"),o.prototype),(0,a.default)(o.prototype,\"openDeviceNetworkInfoPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openDeviceNetworkInfoPage\"),o.prototype),(0,a.default)(o.prototype,\"openMiPayPageForAndroid\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openMiPayPageForAndroid\"),o.prototype),(0,a.default)(o.prototype,\"openPluginRecommendScene\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openPluginRecommendScene\"),o.prototype),(0,a.default)(o.prototype,\"refreshDeviceList\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"refreshDeviceList\"),o.prototype),(0,a.default)(o.prototype,\"openTerminalDeviceSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openTerminalDeviceSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openAndroidLocationServerSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openAndroidLocationServerSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openResetAndConnectDevicePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openResetAndConnectDevicePage\"),o.prototype),(0,a.default)(o.prototype,\"openVoiceCtrlDevListPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openVoiceCtrlDevListPage\"),o.prototype),(0,a.default)(o.prototype,\"openStereoSettingPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openStereoSettingPage\"),o.prototype),(0,a.default)(o.prototype,\"openXiaoaiContentPage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openXiaoaiContentPage\"),o.prototype),(0,a.default)(o.prototype,\"openClockMusicSelector\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openClockMusicSelector\"),o.prototype),(0,a.default)(o.prototype,\"openEarthquakeLocationSelector\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openEarthquakeLocationSelector\"),o.prototype),(0,a.default)(o.prototype,\"openIOSDocumentFileChoosePage\",[s.report],Object.getOwnPropertyDescriptor(o.prototype,\"openIOSDocumentFileChoosePage\"),o.prototype),o);exports.default=g;","miot-sdk/host/ui.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/slicedToArray\")),i=r(require(\"@babel/runtime/helpers/objectSpread\")),n=r(require(\"@babel/runtime/helpers/classCallCheck\")),l=r(require(\"@babel/runtime/helpers/createClass\")),a=r(require(\"../device/BasicDevice\")),u=r(require(\"../Service\")),o=e(require(\"../native\")),s=require('react-native/Libraries/Image/resolveAssetSource'),c=(function(){function e(){(0,n.default)(this,e)}return(0,l.default)(e,null,[{key:\"getLegalAuthInfoProtocol\",value:function(){var e=this;return new Promise(function(r,n){var l=a.default.model,s=o.default.MIOTPackage.pluginID,c=o.default.MIOTPackage.version,h=o.default.language;u.default.getServerName().then(function(a){var o=a.countryCode,f={model:l,plugin_id:s,plugin_version:c,country:o,language:h},v=[1,2,3].map(function(e){return(0,i.default)({},f,{type_int:e})});Promise.all(v.map(function(e){return u.default.smarthome.getProtocolUrls(e)})).then(function(i){var n=(0,t.default)(i,3),l=n[0],a=n[1],u=n[2],o=l.html_url?e._resolveUniUrlV2(e._UniUrl,v[0]):'',s=a.html_url?e._resolveUniUrlV2(e._UniUrl,v[1]):'',c=u.html_url?e._resolveUniUrlV2(e._UniUrl,v[2]):'';r({privacyURL:o,agreementURL:s,hideAgreement:!s,experiencePlanURL:c,hideUserExperiencePlan:!c})}).catch(n)}).catch(n)})}},{key:\"setLegalInfoAuthHasShowed\",value:function(e){this._legalInfoAuthHasShowed=e}},{key:\"getLegalInfoAuthHasShowed\",value:function(){return this._legalInfoAuthHasShowed}},{key:\"_resolveUniParamsV2\",value:function(e){var r=[];for(var t in e)e.hasOwnProperty(t)&&r.push(t+\"=\"+e[t]);return r.join('&')}},{key:\"_resolveUniUrlV2\",value:function(e,r){return e?e+(e.indexOf('?')>-1?'&':'?')+this._resolveUniParamsV2(r):''}},{key:\"resolveUrl\",value:function(e){var r=s(e);if(r&&(r.uri||Array.isArray(r))&&'string'==typeof r.uri)return o.isAndroid?[{uri:r.uri}]:r.uri}},{key:\"resolveUrlWithLink\",value:function(e){return'string'==typeof e&&/https?:\\/\\//i.test(e)?o.isAndroid?[{uri:e}]:e:this.resolveUrl(e)}}]),e})();exports.default=c,c._legalInfoAuthHasShowed=!1,c._UniUrl='https://home.mi.com/miot/activity/privacy/index.html';","miot-sdk/utils/protocol-helper.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),a=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.PackageEvent=exports.Entrance=exports.RELEASE=exports.DEBUG=void 0;var t=a(require(\"@babel/runtime/helpers/classCallCheck\")),r=a(require(\"@babel/runtime/helpers/createClass\")),i=a(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=a(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=a(require(\"@babel/runtime/helpers/inherits\")),l=a(require(\"@babel/runtime/helpers/objectSpread\")),s=a(require(\"@babel/runtime/helpers/extends\")),d=require(\"miot/ui\"),u=a(require(\"react\")),c=require(\"react-native\"),f=a(require(\"./Service\")),p=e(require(\"./device/BasicDevice\")),g=a(require(\"./Host\")),h=e(require(\"./native\")),v=a(require(\"./native/common/node/resolve\")),m=require(\"./resources\"),k=a(require(\"./utils/protocol-helper\")),y=a(require(\"react-native/package.json\")),w=a(require(\"prop-types\")),I=require(\"miot/Device\"),P=require(\"miot/sdkContext\"),U=require(\"mhui-rn\"),O={NAVIGATION_STATE_CHANGE:1};Object.freeze(O);exports.DEBUG=\"debug\";exports.RELEASE=\"release\";var E={Main:\"main\",Scene:\"scene\"};exports.Entrance=E,Object.freeze(E);var D,A={packageWillLoad:{local:!0},packageDidLoaded:{local:!0},packageWillPause:{always:!0},packageDidResume:{always:!0},packageAuthorizationAgreed:{always:!0},packageAuthorizationCancel:{always:function(e){return function(){e.emit(!0),h.isAndroid&&h.default.MIOTHost.closeCurrentPage()}},sameas:h.isIOS?'kMHPluginReceivingDeviceCancelAuthorization':'packageAuthorizationCancel'},packageReceivedInformation:{always:!0,sameas:h.isIOS?'kMHPluginReceivingForegroundPushEvent':void 0},packageWillExit:{always:!0},packageViewWillAppear:{always:!0,sameas:h.isIOS?'viewWillAppear':void 0},packageViewWillDisappearIOS:{always:!0,sameas:h.isIOS?'packageViewWillDisappearIOS':void 0}};exports.PackageEvent=A,(0,h.buildEvents)(A),c.DeviceEventEmitter.addListener('onPluginConfigUpdate',function(e){(0,s.default)(h.default.MIOTDevice,e.device),(0,s.default)(h.default.MIOTPackage,e.package),e.service&&(0,s.default)(h.default.MIOTService,e.service),e.host&&(0,s.default)(h.default.MIOTHost,e.host),e.file&&(0,s.default)(h.default.MIOTFile,e.file),e.audio&&(0,s.default)(h.default.MIOTAudio,e.audio),(0,v.default)(h.default.MIOTPackage.basePath,h.default.MIOTPackage.localFilePath,h.default.MIOTPackage.plugPath),h.Properties.init(p.default,(0,l.default)({},h.default.MIOTDevice.currentDevice,{_msgset:new Set,_pollMsgSet:new p.PollPropMap})),console.log(\"PluginStartTime\",'initPluginConfig',h.default.MIOTPackage.packageName,p.default.deviceID),D&&D(p.default.deviceID)});var S={};function L(e,a){h.default.MIOTPackage.onPackageLifecycle&&h.default.MIOTPackage.onPackageLifecycle(e,a||\"\")}function T(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};h.default.MIOTPackage.onDeventJs&&(h.isIOS?h.default.MIOTPackage.onDeventJs(e,a,function(){}):h.default.MIOTPackage.onDeventJs(e,a))}var M=(function(e){function a(){return(0,t.default)(this,a),(0,i.default)(this,(0,n.default)(a).apply(this,arguments))}return(0,o.default)(a,e),(0,r.default)(a,[{key:\"render\",value:function(){var e=S.App;return u.default.createElement(e,{key:this.props.did})}}]),a})(u.default.PureComponent);M.propTypes={did:w.default.any},M.defaultProps={did:''};var x=(function(e){function a(){var e;return(0,t.default)(this,a),(e=(0,i.default)(this,(0,n.default)(a).call(this))).darkModeListener=function(a){console.log(\"colorScheme from listener: \"+a.colorScheme),e.setState({currentMode:a.colorScheme})},e.state={did:'',currentMode:h.default.MIOTService.currentDarkMode?h.default.MIOTService.currentDarkMode:\"light\"},D=function(a){e.setState({did:a,showFirmwareUpdateAlert:!1,firmwareUpdateTitle:'',firmwareUpdateSure:'',firmwareUpdateCancel:'',packageExitOnFirmwareUpdateCancel:!1,isShowingPrivacyLicenseDialog:!1})},e}return(0,o.default)(a,e),(0,r.default)(a,[{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;S.willLoad||(S.willLoad=!0,L(\"willMount\"),S.afterPackageEntry&&(S.afterPackageEntry(),S.afterPackageEntry=null),A.packageWillLoad.emit(),this.ShowPrivacyLicenseDialogListener=c.DeviceEventEmitter.addListener('MH_Event_ShowPrivacyLicenseDialog',function(a){console.log(\"received MH_Event_ShowPrivacyLicenseDialog...\",a);var t=a.isShowingPrivacyLicenseDialog;t&&e.setState({showFirmwareUpdateAlert:!1,isShowingPrivacyLicenseDialog:t})}),this.onNavigationStateChange=c.DeviceEventEmitter.addListener('onNavigationStateChange',function(e){var a=e.action,t=e.prevNav,r=e.nav;'Navigation/NAVIGATE'!==a.type&&'Navigation/BACK'!==a.type&&'Navigation/PUSH'!==a.type&&'Navigation/POP'!==a.type&&'Navigation/REPLACE'!==a.type||T(O.NAVIGATION_STATE_CHANGE,{routeIndex:t.index,routeName:t.routes[t.index].routeName,event:'hide'}),'Navigation/COMPLETE_TRANSITION'===a.type&&T(O.NAVIGATION_STATE_CHANGE,{routeIndex:r.index,routeName:r.routes[r.index].routeName,event:'show'})}))}},{key:\"componentDidMount\",value:function(){var e=this;if(!S.didLoaded){S.didLoaded=!0,I.DarkMode.addChangeListener(this.darkModeListener),L(\"didMount\"),T(O.NAVIGATION_STATE_CHANGE,{routeIndex:0,routeName:'',event:'show'}),A.packageDidLoaded.emit(),this.checkLegalInformationAuthorization().then(function(e){console.log('resolve yes',e)}).catch(function(e){console.log('resolve false',e)});var a=function(a,t,r,i){e.state.isShowingPrivacyLicenseDialog||g.default.storage.get(\"mh_firmware_last_op_time\"+p.default.deviceID).then(function(e){if(e){var a=(new Date).getTime()-e;return Promise.resolve(a<6e5)}return Promise.resolve(!1)}).then(function(n){n&&!t||(t?r?e.setState({firmwareUpdateTitle:m.strings.firmwareUpgradeForceUpdating,firmwareUpdateSure:m.strings.firmwareUpgradeLook,firmwareUpdateCancel:m.strings.firmwareUpgradeExit,packageExitOnFirmwareUpdateCancel:!0,showFirmwareUpdateAlert:!0}):a&&e.setState({firmwareUpdateTitle:m.strings.firmwareUpgradeForceUpdate,firmwareUpdateSure:m.strings.firmwareUpgradeUpdate,firmwareUpdateCancel:m.strings.firmwareUpgradeExit,packageExitOnFirmwareUpdateCancel:!0,showFirmwareUpdateAlert:!0}):r||a&&i&&e.setState({firmwareUpdateTitle:m.strings.firmwareUpgradeNew_pre+i+m.strings.firmwareUpgradeNew_sub,firmwareUpdateSure:m.strings.firmwareUpgradeUpdate,firmwareUpdateCancel:m.strings.cancel,packageExitOnFirmwareUpdateCancel:!1,showFirmwareUpdateAlert:!0}))})};if(this.listener=c.DeviceEventEmitter.addListener('MH_FirmwareNeedUpdateAlert',function(e){p.default.needUpgrade=e.needUpgrade;var t=e.needUpgrade,r=e.force,i=e.upgrading,n=e.latestVersion;a(t,r,i,n)}),S.package&&S.package._bleAutoCheckUpgradeOptions&&S.package._bleAutoCheckUpgradeOptions.enable){var t=S.package._bleAutoCheckUpgradeOptions.redPoint,r=S.package._bleAutoCheckUpgradeOptions.alertDialog;if(!p.default.isShared&&(t||r)&&(6==p.default.type||16==p.default.type)){var i=!1;f.default.smarthome.getLatestVersionV2(p.default.deviceID).then(function(e){e&&e.version&&typeof e.force==typeof!0&&(i=e.force,t&&(p.default.needUpgrade=e.version!==p.default.lastVersion))}),this.bleUpgradeObserver=p.DeviceEvent.bleDeviceFirmwareNeedUpgrade.addListener(function(e){e===p.default&&(t&&(p.default.needUpgrade=!0),r&&a(!0,i,!1,p.default.latestVersion))})}}!S.package||S.package.disableAutoCheckUpgrade||this.state.isShowingPrivacyLicenseDialog||p.default.checkFirmwareUpdateAndAlert().then(function(){}).catch(function(){})}}},{key:\"componentWillUnmount\",value:function(){S.willLoad=!1,S.didLoaded=!1,L(\"willUnmount\"),h.PackageExitAction.execute(),h.isAndroid&&A.packageWillExit.emit(),this.listener&&this.listener.remove(),this.ShowPrivacyLicenseDialogListener&&this.ShowPrivacyLicenseDialogListener.remove(),this.bleUpgradeObserver&&this.bleUpgradeObserver.remove(),k.default.setLegalInfoAuthHasShowed(!1),I.DarkMode.removeChangeListener(this.darkModeListener)}},{key:\"checkLegalInformationAuthorization\",value:function(){return 1==k.default.getLegalInfoAuthHasShowed()?Promise.reject(\"\\u9690\\u79c1\\u6388\\u6743\\u5df2\\u786e\\u8ba4\"):0==p.default.isOnline?Promise.reject(\"\\u8bbe\\u5907\\u79bb\\u7ebf\"):p.default.isShared||p.default.isFamily?Promise.reject(\"\\u5206\\u4eab\\u8bbe\\u5907\\u4e0d\\u5efa\\u8bae\\u8fdb\\u884c\\u5f39\\u7a97\\u8bf7\\u6c42\\u9690\\u79c1\\u6388\\u6743\\u3002\"):new Promise(function(e,a){f.default.smarthome.batchGetDeviceDatas([{did:p.default.deviceID,props:[\"prop.s_auth_config\"]}]).then(function(t){var r=!0;if(t){var i=t[p.default.deviceID];if(i){var n=i['prop.s_auth_config'];if(n)try{r=JSON.parse(n).privacyAuthed&&!0}catch(e){return void a(\"json parse error\")}else r=!1;r?a(\"\\u5df2\\u7ecf\\u6388\\u6743\"):k.default.getLegalAuthInfoProtocol().then(function(t){t&&t.privacyURL?(t.privacyURL&&(t.privacyURL=k.default.resolveUrlWithLink(t.privacyURL)),t.agreementURL&&(t.agreementURL=k.default.resolveUrlWithLink(t.agreementURL)),t.hideAgreement&&delete t.agreementURL,t.experiencePlanURL&&(t.experiencePlanURL=k.default.resolveUrlWithLink(t.experiencePlanURL)),t.hideUserExperiencePlan&&delete t.experiencePlanURL,1!=k.default.getLegalInfoAuthHasShowed()?(c.DeviceEventEmitter.emit('MH_Event_ShowPrivacyLicenseDialog',{isShowingPrivacyLicenseDialog:!0}),k.default.setLegalInfoAuthHasShowed(!0),h.default.MIOTHost.showDeclarationWithConfig(t,function(t){if('ok'!==t&&!0!==t&&'true'!==t)return a(\"\\u4e0d\\u540c\\u610f\\u534f\\u8bae\\uff0c\\u63d2\\u4ef6\\u9000\\u51fa\"),void h.default.MIOTHost.closeCurrentPage();f.default.smarthome.batchSetDeviceDatas([{did:p.default.deviceID,props:{\"prop.s_auth_config\":JSON.stringify({privacyAuthed:!0})}}]),A.packageAuthorizationAgreed.emit(),e('ok')})):a('\\u9690\\u79c1\\u6388\\u6743\\u5df2\\u786e\\u8ba4')):a(\"\\u83b7\\u53d6url\\u5931\\u8d25\")}).catch(function(e){a(e)})}else a(\"data error result null\")}else a(\"data error res null\")}).catch(function(e){a(e)})})}},{key:\"render\",value:function(){var e=this,a=h.default.MIOTService.currentDarkMode?h.default.MIOTService.currentDarkMode:\"light\";return u.default.createElement(c.View,{style:{flex:1}},u.default.createElement(P.SDKContextProvider,{value:{colorScheme:a}},u.default.createElement(U.ConfigProvider,{language:g.default.locale.language,colorScheme:a},u.default.createElement(M,{did:this.state.did}))),u.default.createElement(d.MessageDialog,{title:\"\",message:this.state.firmwareUpdateTitle,cancelable:!0,cancel:this.state.firmwareUpdateCancel,confirm:this.state.firmwareUpdateSure,onCancel:function(){e.state.packageExitOnFirmwareUpdateCancel&&h.default.MIOTHost.closeCurrentPage()},onConfirm:function(){if(p.default.needUpgrade=!1,(6==p.default.type||16==p.default.type)&&S.package&&S.package._bleAutoCheckUpgradeOptions&&S.package._bleAutoCheckUpgradeOptions.enable){var e=S.package._bleAutoCheckUpgradeOptions.authType;g.default.ui.openBleCommonDeviceUpgradePage({auth_type:e})}else g.default.ui.openDeviceUpgradePage()},onDismiss:function(){var e=(new Date).getTime();g.default.storage.set(\"mh_firmware_last_op_time\"+p.default.deviceID,e)},visible:this.state.showFirmwareUpdateAlert}))}}]),a})(u.default.Component),C={get extraEntry(){if(!S.entry){var e=h.default.MIOTPackage.entryInfo||{};S.entry=\"string\"==typeof e?JSON.parse(e):e}return S.entry},get entrance(){return this.extraEntry.entrance||E.Main},get pageParams(){return this.entryInfo&&this.entryInfo.pageParams&&'string'==typeof this.entryInfo.pageParams&&(this.entryInfo.pageParams=JSON.parse(this.entryInfo.pageParams)),this.entryInfo.pageParams||{}},get entryInfo(){return this.extraEntry.info&&this.extraEntry.info.payload&&this.extraEntry.info.payload.androidData&&(this.extraEntry.info.payload.androidData=JSON.parse(this.extraEntry.info.payload.androidData),this.extraEntry.info.payload.id=this.extraEntry.info.payload.id||this.extraEntry.info.payload.androidData.actionId),this.extraEntry.info||{}},get exitInfo(){return S.exitInfo},set exitInfo(e){S.exitInfo=e,h.default.MIOTPackage.setExitInfo(this.entrance,JSON.stringify(e||{}))},get packageID(){return h.default.MIOTPackage.packageID},get pluginID(){return h.default.MIOTPackage.pluginID},get version(){return h.default.MIOTPackage.version},get rnVersion(){return y.default.version},get packageName(){return h.default.MIOTPackage.packageName},get minApiLevel(){return h.isAndroid?h.default.MIOTHost.systemInfo.hostApiLevel:h.default.MIOTHost.apiLevel},get buildType(){return h.default.MIOTPackage.buildType},get isDebug(){return\"debug\"===this.buildType.toLowerCase()},get models(){return h.default.MIOTPackage.models},set BLEAutoCheckUpgradeOptions(e){this._bleAutoCheckUpgradeOptions=e},entry:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;S.App=e,S.afterPackageEntry=a,S.package=this;var t=this.packageName;c.AppRegistry.registerComponent(t,function(){return x}),console.log(\"PluginStartTime \"+Date.now(),t)},exit:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&(this.exitInfo=e),h.default.MIOTHost.closeCurrentPage()}};exports.default=C;","miot-sdk/Package.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"DynamicColor\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(exports,\"dynamicColor\",{enumerable:!0,get:function(){return h.dynamicColor}}),Object.defineProperty(exports,\"DynamicStyleSheet\",{enumerable:!0,get:function(){return B.default}}),Object.defineProperty(exports,\"dynamicStyleSheet\",{enumerable:!0,get:function(){return B.dynamicStyleSheet}}),Object.defineProperty(exports,\"BigNumber\",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(exports,\"CardButton\",{enumerable:!0,get:function(){return D.default}}),Object.defineProperty(exports,\"CircleButton\",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(exports,\"ContainerWithGap\",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(exports,\"ContainerWithShadowAndSeparator\",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(exports,\"DeviceWithInfo\",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(exports,\"Fan\",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(exports,\"HeaterHeader\",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(exports,\"LightControl\",{enumerable:!0,get:function(){return W.default}}),Object.defineProperty(exports,\"PageWithNormalNavigator\",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(exports,\"SelectorWithButton\",{enumerable:!0,get:function(){return V.default}}),Object.defineProperty(exports,\"SliderWithHeader\",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(exports,\"SmallNumbers\",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(exports,\"WallSwitch\",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(exports,\"Airer\",{enumerable:!0,get:function(){return R.default}}),Object.defineProperty(exports,\"DoubleSelectors\",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(exports,\"Curtain\",{enumerable:!0,get:function(){return H.default}}),Object.defineProperty(exports,\"CurtainStyle\",{enumerable:!0,get:function(){return z.default}}),Object.defineProperty(exports,\"PrimeButton\",{enumerable:!0,get:function(){return F.default}}),Object.defineProperty(exports,\"QAList\",{enumerable:!0,get:function(){return G.default}}),Object.defineProperty(exports,\"MultiButtons\",{enumerable:!0,get:function(){return Q.default}}),Object.defineProperty(exports,\"Consumable\",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(exports,\"ImageHeader\",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(exports,\"RTSPRenderView\",{enumerable:!0,get:function(){return J.default}}),exports.default=exports.TouchableView=exports.ColorPicker=exports.BraceletInterconnection=exports.BTInterconnection=exports.MiotAndroidScrollView=exports.RobotMapView=exports.StringSpinner=exports.NumberSpinner=exports.AMapView=exports.LocalizedStrings=exports.TitleBarWhite=exports.TitleBarBlack=exports.TitleBar=exports.InputDialog=exports.SingleChoseDialog=exports.MultiChoseDialog=exports.ProgressDialog=exports.MessageDialog=exports.LoadingDialog=exports.ImageButton=void 0;var t=r(require(\"./AMapView\")),i=r(require(\"./android/scrollview/MiotAndroidScrollView\")),o=r(require(\"./ImageButton\")),n=r(require(\"./InputDialog\")),u=r(require(\"./LoadingDialog\")),a=r(require(\"./LocalizedStrings\")),l=r(require(\"./MessageDialog\")),p=r(require(\"./MultiChoseDialog\")),d=r(require(\"./NumberSpinner\")),s=r(require(\"./StringSpinner\")),c=r(require(\"./RobotMapView\")),f=r(require(\"./ProgressDialog\")),g=r(require(\"./SingleChoseDialog\")),b=r(require(\"./TitleBar\")),x=r(require(\"./TitleBarBlack\")),m=r(require(\"./TitleBarWhite\")),S=r(require(\"./BTInterconnection\")),q=r(require(\"./BraceletInterconnection\")),y=require(\"./ColorPicker\"),P=r(require(\"./TouchableView\")),h=e(require(\"./Style/DynamicColor\")),B=e(require(\"./Style/DynamicStyleSheet\")),C=r(require(\"./BigNumber\")),D=r(require(\"./CardButton\")),j=r(require(\"./CircleButton\")),v=r(require(\"./ContainerWithGap\")),O=r(require(\"./ContainerWithShadowAndSeparator\")),M=r(require(\"./DeviceWithInfo\")),w=r(require(\"./Fan\")),T=r(require(\"./HeaterHeader\")),W=r(require(\"./LightControl\")),I=r(require(\"./PageWithNormalNavigator\")),V=r(require(\"./SelectorWithButton\")),A=r(require(\"./SliderWithHeader\")),L=r(require(\"./SmallNumbers\")),N=r(require(\"./WallSwitch\")),R=r(require(\"./Airer\")),k=r(require(\"./DoubleSelectors\")),H=r(require(\"./Curtain\")),z=r(require(\"./CurtainStyle\")),F=r(require(\"./PrimeButton\")),G=r(require(\"./QAList\")),Q=r(require(\"./MultiButtons\")),_=r(require(\"./Consumable\")),E=r(require(\"./ImageHeader\")),J=r(require(\"./RTSPRenderView\")),K=o.default;exports.ImageButton=K;var U=u.default;exports.LoadingDialog=U;var X=l.default;exports.MessageDialog=X;var Y=f.default;exports.ProgressDialog=Y;var Z=p.default;exports.MultiChoseDialog=Z;var $=g.default;exports.SingleChoseDialog=$;var ee=n.default;exports.InputDialog=ee;var re=b.default;exports.TitleBar=re;var te=x.default;exports.TitleBarBlack=te;var ie=m.default;exports.TitleBarWhite=ie;var oe=a.default;exports.LocalizedStrings=oe;var ne=t.default;exports.AMapView=ne;var ue=d.default;exports.NumberSpinner=ue;var ae=s.default;exports.StringSpinner=ae;var le=c.default;exports.RobotMapView=le;var pe=i.default;exports.MiotAndroidScrollView=pe;var de=S.default;exports.BTInterconnection=de;var se=q.default;exports.BraceletInterconnection=se;var ce=y.ColorPicker;exports.ColorPicker=ce;var fe=P.default;exports.TouchableView=fe;var ge={ImageButton:K,LoadingDialog:U,MessageDialog:X,MultiChoseDialog:Z,ProgressDialog:Y,SingleChoseDialog:$,InputDialog:ee,TitleBar:re,TitleBarBlack:te,TitleBarWhite:ie,NumberSpinner:ue,StringSpinner:ae,RobotMapView:le,LocalizedStrings:oe,AMapView:ne,MiotAndroidScrollView:pe,ColorPicker:ce};exports.default=ge;","miot-sdk/ui/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),a=r(require(\"@babel/runtime/helpers/extends\")),o=r(require(\"@babel/runtime/helpers/classCallCheck\")),n=r(require(\"@babel/runtime/helpers/createClass\")),i=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=r(require(\"@babel/runtime/helpers/inherits\")),s=r(require(\"prop-types\")),c=e(require(\"react\")),d=require(\"react-native\"),f=r(require(\"../Host\")),p=require(\"../decorator/ReportDecorator\"),b=require('react-native/Libraries/Image/resolveAssetSource'),m=(0,d.requireNativeComponent)('MHMapView',null),g=(function(e){function r(e,t){var a;return(0,o.default)(this,r),a=(0,i.default)(this,(0,u.default)(r).call(this,e,t)),(0,p.referenceReport)('AMapView'),a}return(0,l.default)(r,e),(0,n.default)(r,[{key:\"render\",value:function(){var e=JSON.parse(JSON.stringify(this.props));return console.log(\"AMapView reslove begin...\",e),e.userLocation&&(e.userLocation.image=r.resloveUri(e.userLocation.image)),e.userLocationRepresentation&&(e.userLocationRepresentation.image=r.resloveUri(e.userLocationRepresentation.image)),e.annotations&&Array.isArray(e.annotations)&&e.annotations.forEach(function(e){e.image=r.resloveUri(e.image)}),f.default.isDebug&&console.log(\"AMapView reslove end...\",e),c.default.createElement(m,(0,a.default)({},this.props,{userLocation:e.userLocation,userLocationRepresentation:e.userLocationRepresentation,annotations:e.annotations,centerCoordinate:e.centerCoordinate}))}}],[{key:\"resloveUri\",value:function(e){return(e=b(e))&&(e.uri||Array.isArray(e))&&e.uri&&(e=[{uri:e.uri}]),e}}]),r})(c.Component);exports.default=g,g.propTypes=(0,t.default)({showsUserLocation:s.default.bool,trafficEnabled:s.default.bool,showsScale:s.default.bool,showsCompass:s.default.bool,zoomEnabled:s.default.bool,pausesLocationUpdatesAutomatically:s.default.bool,allowsBackgroundLocationUpdates:s.default.bool,desiredAccuracy:s.default.number,distanceFilter:s.default.number,scaleOrigin:s.default.object,mapType:s.default.number,headingFilter:s.default.number,zoomLevel:s.default.number,centerCoordinate:s.default.object,userTrackingMode:s.default.string,compassOrigin:s.default.object,userLocation:s.default.object,language:s.default.number,logoPosition:s.default.number,userLocationRepresentation:s.default.object,annotations:s.default.array,circles:s.default.array,polylines:s.default.array,multiPolylines:s.default.array,onUpdateUserLocation:s.default.func,onSingleTappedAtCoordinate:s.default.func,onSelectAnnotationView:s.default.func,onMapWillZoomByUser:s.default.func,onMapDidZoomByUser:s.default.func},d.ViewPropTypes);","miot-sdk/ui/AMapView.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,o,n=e(require(\"@babel/runtime/helpers/extends\")),r=e(require(\"@babel/runtime/helpers/objectSpread\")),l=require(\"react-native\"),i=e(require(\"react-native/Libraries/Components/ScrollResponder\")),s=e(require(\"react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader\")),a=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType\")),c=e(require(\"react-native/Libraries/Components/View/View\")),d=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes\")),u=e(require(\"react-native/Libraries/Utilities/dismissKeyboard\")),p=e(require(\"react-native/Libraries/StyleSheet/flattenStyle\")),h=e(require(\"./DecelerationRate\")),m=e(require(\"react-native/Libraries/ReactNative/requireNativeComponent\")),f=e(require(\"react-native/Libraries/Image/resolveAssetSource\")),y=require(\"../../../decorator/ReportDecorator\"),S=require('prop-types'),v=require('react'),b=require('react-native'),R=require('create-react-class'),_=require('fbjs/lib/invariant'),g=R({displayName:'MiotAndroidScrollView',propTypes:(0,r.default)({},l.ViewPropTypes,{automaticallyAdjustContentInsets:S.bool,contentInset:l.EdgeInsetsPropType,contentOffset:l.PointPropType,bounces:S.bool,bouncesZoom:S.bool,alwaysBounceHorizontal:S.bool,alwaysBounceVertical:S.bool,centerContent:S.bool,contentContainerStyle:(0,a.default)(d.default),decelerationRate:S.oneOfType([S.oneOf(['fast','normal']),S.number]),horizontal:S.bool,indicatorStyle:S.oneOf(['default','black','white']),invertStickyHeaders:S.bool,directionalLockEnabled:S.bool,canCancelContentTouches:S.bool,keyboardDismissMode:S.oneOf(['none','on-drag','interactive']),keyboardShouldPersistTaps:S.oneOf(['always','never','handled',!1,!0]),maintainVisibleContentPosition:S.shape({minIndexForVisible:S.number.isRequired,autoscrollToTopThreshold:S.number}),maximumZoomScale:S.number,minimumZoomScale:S.number,onMomentumScrollBegin:S.func,onMomentumScrollEnd:S.func,onScroll:S.func,onScrollBeginDrag:S.func,onScrollEndDrag:S.func,onContentSizeChange:S.func,pagingEnabled:S.bool,pinchGestureEnabled:S.bool,scrollEnabled:S.bool,scrollEventThrottle:S.number,scrollIndicatorInsets:l.EdgeInsetsPropType,scrollsToTop:S.bool,showsHorizontalScrollIndicator:S.bool,showsVerticalScrollIndicator:S.bool,stickyHeaderIndices:S.arrayOf(S.number),snapToInterval:S.number,snapToAlignment:S.oneOf(['start','center','end']),removeClippedSubviews:S.bool,zoomScale:S.number,contentInsetAdjustmentBehavior:S.oneOf(['automatic','scrollableAxes','never','always']),refreshControl:S.element,endFillColor:l.ColorPropType,scrollPerfTag:S.string,overScrollMode:S.oneOf(['auto','always','never']),DEPRECATED_sendUpdatedChildFrames:S.bool,scrollBarThumbImage:S.oneOfType([S.shape({uri:S.string}),S.number]),snapHeight:S.number,scrollYDuration:S.number}),mixins:[i.default.Mixin],_scrollAnimatedValue:new l.Animated.Value(0),_scrollAnimatedValueAttachment:null,_stickyHeaderRefs:new Map,_headerLayoutYs:new Map,getInitialState:function(){return(0,r.default)({},this.scrollResponderMixinGetInitialState(),{layoutHeight:null})},UNSAFE_componentWillMount:function(){this._scrollAnimatedValue=new l.Animated.Value(this.props.contentOffset?this.props.contentOffset.y:0),this._scrollAnimatedValue.setOffset(this.props.contentInset?this.props.contentInset.top:0),this._stickyHeaderRefs=new Map,this._headerLayoutYs=new Map,(0,y.referenceReport)('MiotAndroidScrollView','componentWillMount')},componentDidMount:function(){this._updateAnimatedNodeAttachment()},componentDidUpdate:function(){this._updateAnimatedNodeAttachment()},componentWillUnmount:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach()},setNativeProps:function(e){this._scrollViewRef&&this._scrollViewRef.setNativeProps(e)},getScrollResponder:function(){return this},getScrollableNode:function(){return b.findNodeHandle(this._scrollViewRef)},getInnerViewNode:function(){return b.findNodeHandle(this._innerViewRef)},scrollTo:function(e,t,o){if('number'==typeof e)__DEV__&&console.warn&&console.warn(\"`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.\");else{var n=e||{};t=n.x,e=n.y,o=n.animated}this.getScrollResponder().scrollResponderScrollTo({x:t||0,y:e||0,animated:!1!==o})},scrollToEnd:function(e){var t=!1!==(e&&e.animated);this.getScrollResponder().scrollResponderScrollToEnd({animated:t})},scrollWithoutAnimationTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;__DEV__&&console.warn&&console.warn('`scrollWithoutAnimationTo` is deprecated. Use `scrollTo` instead'),this.scrollTo({x:t,y:e,animated:!1})},flashScrollIndicators:function(){this.getScrollResponder().scrollResponderFlashScrollIndicators()},_getKeyForIndex:function(e,t){var o=t[e];return o&&o.key},_updateAnimatedNodeAttachment:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach(),this.props.stickyHeaderIndices&&this.props.stickyHeaderIndices.length>0&&(this._scrollAnimatedValueAttachment=l.Animated.attachNativeEvent(this._scrollViewRef,'onScroll',[{nativeEvent:{contentOffset:{y:this._scrollAnimatedValue}}}]))},_setStickyHeaderRef:function(e,t){t?this._stickyHeaderRefs.set(e,t):this._stickyHeaderRefs.delete(e)},_onStickyHeaderLayout:function(e,t,o){if(this.props.stickyHeaderIndices){var n=v.Children.toArray(this.props.children);if(o===this._getKeyForIndex(e,n)){var r=t.nativeEvent.layout.y;this._headerLayoutYs.set(o,r);var l=this.props.stickyHeaderIndices.indexOf(e),i=this.props.stickyHeaderIndices[l-1];if(null!=i){var s=this._stickyHeaderRefs.get(this._getKeyForIndex(i,n));s&&s.setNextHeaderY(r)}}}},_handleScroll:function(e){__DEV__&&this.props.onScroll&&null==this.props.scrollEventThrottle&&'ios'===l.Platform.OS&&console.log(\"You specified `onScroll` on a but not `scrollEventThrottle`. You will only receive one event. Using `16` you get all the events but be aware that it may cause frame drops, use a bigger number if you don't need as much precision.\"),'android'===l.Platform.OS&&'on-drag'===this.props.keyboardDismissMode&&(0,u.default)(),this.scrollResponderHandleScroll(e)},_handleLayout:function(e){this.props.invertStickyHeaders&&this.setState({layoutHeight:e.nativeEvent.layout.height}),this.props.onLayout&&this.props.onLayout(e)},_handleContentOnLayout:function(e){var t=e.nativeEvent.layout,o=t.width,n=t.height;this.props.onContentSizeChange&&this.props.onContentSizeChange(o,n)},_scrollViewRef:null,_setScrollViewRef:function(e){this._scrollViewRef=e},_innerViewRef:null,_setInnerViewRef:function(e){this._innerViewRef=e},render:function(){var e=this,t=!1;if('android'===l.Platform.OS&&(this.props.horizontal||(t=!!this.props.snapHeight)),t){var i,a,d=[this.props.contentContainerStyle];__DEV__&&this.props.style&&(i=(0,p.default)(this.props.style),a=['alignItems','justifyContent'].filter(function(e){return i&&void 0!==i[e]}),_(0===a.length,\"ScrollView child layout (\"+JSON.stringify(a)+\") must be applied through the contentContainerStyle prop.\"));var u={};this.props.onContentSizeChange&&(u={onLayout:this._handleContentOnLayout});var m=this.props.stickyHeaderIndices,y=m&&m.length>0,S=y&&v.Children.toArray(this.props.children),b=y?S.map(function(t,o){var n=t?m.indexOf(o):-1;if(n>-1){var r=t.key,l=m[n+1];return v.createElement(s.default,{key:r,ref:function(t){return e._setStickyHeaderRef(r,t)},nextHeaderLayoutY:e._headerLayoutYs.get(e._getKeyForIndex(l,S)),onLayout:function(t){return e._onStickyHeaderLayout(o,t,r)},scrollAnimatedValue:e._scrollAnimatedValue,inverted:e.props.invertStickyHeaders,scrollViewHeight:e.state.layoutHeight},t)}return t}):this.props.children,R=v.createElement(c.default,(0,n.default)({},u,{ref:this._setInnerViewRef,style:d,removeClippedSubviews:('android'!==l.Platform.OS||!y)&&this.props.removeClippedSubviews,collapsable:!1}),b),g=void 0!==this.props.alwaysBounceVertical?this.props.alwaysBounceVertical:!this.props.horizontal,T=!!this.props.DEPRECATED_sendUpdatedChildFrames,V=w.baseVertical,H=(0,r.default)({},this.props,{alwaysBounceVertical:g,style:[V,this.props.style],onContentSizeChange:null,onLayout:this._handleLayout,onMomentumScrollBegin:this.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this.scrollResponderHandleMomentumScrollEnd,onResponderGrant:this.scrollResponderHandleResponderGrant,onResponderReject:this.scrollResponderHandleResponderReject,onResponderRelease:this.scrollResponderHandleResponderRelease,onResponderTerminate:this.scrollResponderHandleTerminate,onResponderTerminationRequest:this.scrollResponderHandleTerminationRequest,onScroll:this._handleScroll,onScrollBeginDrag:this.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this.scrollResponderHandleScrollEndDrag,onScrollShouldSetResponder:this.scrollResponderHandleScrollShouldSetResponder,onStartShouldSetResponder:this.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this.scrollResponderHandleStartShouldSetResponderCapture,onTouchEnd:this.scrollResponderHandleTouchEnd,onTouchMove:this.scrollResponderHandleTouchMove,onTouchStart:this.scrollResponderHandleTouchStart,onTouchCancel:this.scrollResponderHandleTouchCancel,scrollBarThumbImage:(0,f.default)(this.props.scrollBarThumbImage),scrollEventThrottle:y?1:this.props.scrollEventThrottle,sendMomentumEvents:!(!this.props.onMomentumScrollBegin&&!this.props.onMomentumScrollEnd),pagingEnabled:!0,DEPRECATED_sendUpdatedChildFrames:T}),E=this.props.decelerationRate;E&&(H.decelerationRate=(0,h.default)(E));var C=this.props.refreshControl;return C&&'android'===l.Platform.OS?v.cloneElement(C,{style:H.style},v.createElement(o,(0,n.default)({},H,{style:V,ref:this._setScrollViewRef}),R)):v.createElement(o,(0,n.default)({},H,{ref:this._setScrollViewRef}),R)}}}),w=l.StyleSheet.create({baseVertical:{flexGrow:1,flexShrink:1,flexDirection:'column',overflow:'scroll'},baseHorizontal:{flexGrow:1,flexShrink:1,flexDirection:'row',overflow:'scroll'},contentContainerHorizontal:{flexDirection:'row'}});'android'===l.Platform.OS&&(t={nativeOnly:{sendMomentumEvents:!0}},o=(0,m.default)('MIOTAndroidScrollView',o,t));var T=g;exports.default=T;","miot-sdk/ui/android/scrollview/MiotAndroidScrollView.js"],["'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"react-native\");var r=function(r){return'normal'===r?e.Platform.select({ios:.998,android:.985}):'fast'===r?e.Platform.select({ios:.99,android:.9}):r};exports.default=r;","miot-sdk/ui/android/scrollview/DecelerationRate.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),s=e(require(\"@babel/runtime/helpers/classCallCheck\")),i=e(require(\"@babel/runtime/helpers/createClass\")),r=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),l=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/inherits\")),a=e(require(\"react\")),o=require(\"react-native\"),n=e(require(\"prop-types\")),c=require(\"../utils/accessibility-helper\"),b=require(\"../decorator/ReportDecorator\"),p=(function(e){function n(e){var t;return(0,s.default)(this,n),t=(0,r.default)(this,(0,l.default)(n).call(this,e)),(0,b.referenceReport)('ImageButton'),t.state={buttonPressed:!1},t}return(0,u.default)(n,e),(0,i.default)(n,[{key:\"_buttonPressIn\",value:function(){this.setState({buttonPressed:!0})}},{key:\"_buttonPressOut\",value:function(){this.setState({buttonPressed:!1})}},{key:\"_isButtonPressed\",value:function(){return this.state.buttonPressed}},{key:\"render\",value:function(){var e=this.props.source;return this._isButtonPressed()&&this.props.highlightedSource&&(e=this.props.highlightedSource),a.default.createElement(o.TouchableWithoutFeedback,(0,t.default)({disabled:this.props.disabled,onPress:this.props.onPress,onPressIn:this._buttonPressIn.bind(this),onPressOut:this._buttonPressOut.bind(this)},(0,c.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:c.AccessibilityRoles.imagebutton,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityState:{disabled:!!this.props.disabled}})),a.default.createElement(o.Image,{style:this.props.style,source:e}))}}]),n})(a.default.Component);exports.default=p,p.initialState={buttonPressed:!1},p.propTypes={source:n.default.any,highlightedSource:n.default.any,onPress:n.default.func,disabled:n.default.bool,style:n.default.any,accessible:c.AccessibilityPropTypes.accessible,accessibilityLabel:c.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:c.AccessibilityPropTypes.accessibilityHint},p.defaultProps={source:null,highlightedSource:null,onPress:null};","miot-sdk/ui/ImageButton.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.getAccessibilityConfig=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.accessible,l=e.accessibilityRole,s=e.accessibilityLabel,c=e.accessibilityHint,o=e.accessibilityState,b=e.accessibilityValue,r={accessible:!1!==t};if(!r.accessible)return i.isAndroid&&(r.focusable=!1),r;r.accessibilityRole=String(l||a.none),void 0!==s&&null!==s?r.accessibilityLabel=String(s):-1!==[a.image,a.imagebutton].indexOf(r.accessibilityRole)&&(r.accessibilityLabel=' ');void 0!==c&&null!==c&&(r.accessibilityHint=String(c));o&&'object'==typeof o&&(r.accessibilityState=o);b&&'object'==typeof b&&(r.accessibilityValue=b);return r},exports.AccessibilityPropTypes=exports.AccessibilityRoles=void 0;var i=require(\"../native/\"),t=e(require(\"prop-types\")),l=['none','button','link','search','image','keyboardkey','text','adjustable','imagebutton','header','summary','alert','checkbox','combobox','menu','menubar','menuitem','progressbar','radio','radiogroup','scrollbar','spinbutton','switch','tab','tablist','timer','toolbar'],a=l.reduce(function(e,i){return e[i]=i,e},{});exports.AccessibilityRoles=a;var s={accessible:t.default.bool,accessibilityRole:t.default.oneOf(l),accessibilityLabel:t.default.oneOfType([t.default.string,t.default.number]),accessibilityHint:t.default.oneOfType([t.default.string,t.default.number]),accessibilityState:t.default.shape({disabled:t.default.bool,selected:t.default.bool,checked:t.default.bool,busy:t.default.bool,expanded:t.default.bool}),accessibilityValue:t.default.shape({min:t.default.number,max:t.default.number,now:t.default.number,text:t.default.oneOfType([t.default.number,t.default.string])})};exports.AccessibilityPropTypes=s;","miot-sdk/utils/accessibility-helper.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),n=r(require(\"@babel/runtime/helpers/extends\")),i=r(require(\"@babel/runtime/helpers/classCallCheck\")),l=r(require(\"@babel/runtime/helpers/createClass\")),u=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=r(require(\"@babel/runtime/helpers/inherits\")),s=r(require(\"prop-types\")),p=e(require(\"react\")),f=require(\"react-native\"),d=require(\"../decorator/ReportDecorator\"),c=(0,f.requireNativeComponent)('RCTInputDialog',null),b=(function(e){function r(e,t){var n;return(0,i.default)(this,r),n=(0,u.default)(this,(0,a.default)(r).call(this,e,t)),(0,d.referenceReport)('InputDialog'),n}return(0,o.default)(r,e),(0,l.default)(r,[{key:\"render\",value:function(){var e=this;return p.default.createElement(c,(0,n.default)({},this.props,{onDismiss:function(r){e.props.onDismiss&&e.props.onDismiss(r.nativeEvent)},onCancel:function(r){e.props.onCancel&&e.props.onCancel(r.nativeEvent)},onConfirm:function(r){e.props.onConfirm&&e.props.onConfirm(r.nativeEvent)}}))}}]),r})(p.Component);exports.default=b,b.propTypes=(0,t.default)({visible:s.default.bool,cancelable:s.default.bool,title:s.default.string,message:s.default.string,placeholder:s.default.string,defaultText:s.default.string,timeout:s.default.number,cancel:s.default.string,confirm:s.default.string,singleLine:s.default.bool,onConfirm:s.default.func,onCancel:s.default.func,onDismiss:s.default.func},f.ViewPropTypes);","miot-sdk/ui/InputDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),i=r(require(\"@babel/runtime/helpers/extends\")),s=r(require(\"@babel/runtime/helpers/classCallCheck\")),l=r(require(\"@babel/runtime/helpers/createClass\")),u=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=r(require(\"@babel/runtime/helpers/inherits\")),o=r(require(\"prop-types\")),p=e(require(\"react\")),d=require(\"react-native\"),b=require(\".././native\"),f=require(\"../decorator/ReportDecorator\"),m=(0,d.requireNativeComponent)('RCTLoadingDialog',null),c=(function(e){function r(e,t){var i;return(0,s.default)(this,r),i=(0,u.default)(this,(0,a.default)(r).call(this,e,t)),(0,f.referenceReport)('LoadingDialog'),i}return(0,n.default)(r,e),(0,l.default)(r,[{key:\"render\",value:function(){var e=this,r=this.props.message?this.props.message:this.props.title;return p.default.createElement(m,(0,i.default)({},this.props,{message:b.isAndroid?r:\"\",title:b.isIOS?r:\"\",onDismiss:function(r){e.props.onDismiss&&e.props.onDismiss(r.nativeEvent)}}))}}]),r})(p.Component);exports.default=c,c.propTypes=(0,t.default)({visible:o.default.bool,cancelable:o.default.bool,title:o.default.string,message:o.default.string,timeout:o.default.number,onDismiss:o.default.func},d.ViewPropTypes);","miot-sdk/ui/LoadingDialog.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),a=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"miot/host/locale\")).default.language;i||console.error(\"Something went wrong initializing the native ReactLocalization module.\\nPlease check your configuration.\\nDid you run 'react-native link'?\");var r=i.replace(/_/g,'-'),l=(function(){function e(a){(0,t.default)(this,e),this.props=a,this.setLanguage(r)}return(0,n.default)(e,[{key:\"_getBestMatchingLanguage\",value:function(e,a){if(a[e])return e;var t=e.lastIndexOf(\"-\");return t>=0?(e=e.substring(0,t),this._getBestMatchingLanguage(e,a)):Object.keys(a)[0]}}]),(0,n.default)(e,[{key:\"setContent\",value:function(e){this.props=e,this.setLanguage(this.language)}},{key:\"setLanguage\",value:function(e){var t=this._getBestMatchingLanguage(e,this.props),n=Object.keys(this.props)[0];if(this.language=t,this.props[t]){var i=(0,a.default)({},this.props[n],this.props[this.language]);for(var r in i)i.hasOwnProperty(r)&&(this[r]=i[r]);n!==this.language&&(i=this.props[n],this._fallbackValues(i,this))}}},{key:\"_fallbackValues\",value:function(e,a){for(var t in e)e.hasOwnProperty(t)&&!a[t]?(a[t]=e[t],console.log(\"Missing localization for language '\"+this.language+\"' and key '\"+t+\"'.\")):\"string\"!=typeof a[t]&&this._fallbackValues(e[t],a[t])}},{key:\"getLanguage\",value:function(){return this.language}},{key:\"getInterfaceLanguage\",value:function(){return r}},{key:\"getLocaleObject\",value:function(){return this.props}},{key:\"getAvailableLanguages\",value:function(){if(!this.availableLanguages)for(var e in this.availableLanguages=[],this.props)this.availableLanguages.push(e);return this.availableLanguages}},{key:\"formatString\",value:function(e){for(var a=e,t=0;t<(arguments.length<=1?0:arguments.length-1);t++)a=this._replaceAll(\"{\"+t+\"}\",t+1<1||arguments.length<=t+1?void 0:arguments[t+1],a);return a}},{key:\"getString\",value:function(e,a){try{return this.props[a][e]}catch(t){console.log(\"No localization found for key \"+e+\" and language \"+a)}return null}},{key:\"_replaceAll\",value:function(e,a,t){return e=e.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g,\"\\\\$1\"),a=(\"\"+a).replace(/([$])/g,'$$$$'),t.replace(new RegExp(e,'g'),a)}}]),e})();module.exports=l;","miot-sdk/ui/LocalizedStrings.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),n=r(require(\"@babel/runtime/helpers/extends\")),i=r(require(\"@babel/runtime/helpers/classCallCheck\")),l=r(require(\"@babel/runtime/helpers/createClass\")),a=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=r(require(\"@babel/runtime/helpers/inherits\")),s=r(require(\"prop-types\")),p=e(require(\"react\")),f=require(\"react-native\"),c=require(\"../decorator/ReportDecorator\"),d=(0,f.requireNativeComponent)('RCTMessageDialog',null),b=(function(e){function r(e,t){var n;return(0,i.default)(this,r),n=(0,a.default)(this,(0,o.default)(r).call(this,e,t)),(0,c.referenceReport)('MessageDialog'),n}return(0,u.default)(r,e),(0,l.default)(r,[{key:\"render\",value:function(){var e=this;return p.default.createElement(d,(0,n.default)({},this.props,{onDismiss:function(r){e.props.onDismiss&&e.props.onDismiss(r.nativeEvent)},onCancel:function(r){e.props.onCancel&&e.props.onCancel(r.nativeEvent)},onConfirm:function(r){e.props.onConfirm&&e.props.onConfirm(r.nativeEvent)}}))}}]),r})(p.Component);exports.default=b,b.defaultProps={title:'',message:''},b.propTypes=(0,t.default)({visible:s.default.bool,cancelable:s.default.bool,title:s.default.string,message:s.default.string,cancel:s.default.string,confirm:s.default.string,onConfirm:s.default.func,onCancel:s.default.func,onDismiss:s.default.func},f.ViewPropTypes);","miot-sdk/ui/MessageDialog.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),r=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=r(require(\"@babel/runtime/helpers/objectSpread\")),n=r(require(\"@babel/runtime/helpers/extends\")),i=r(require(\"@babel/runtime/helpers/classCallCheck\")),o=r(require(\"@babel/runtime/helpers/createClass\")),u=r(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=r(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=r(require(\"@babel/runtime/helpers/inherits\")),s=r(require(\"prop-types\")),p=e(require(\"react\")),f=require(\"react-native\"),c=require(\"../decorator/ReportDecorator\"),d=(0,f.requireNativeComponent)('RCTMultiChoseDialog',null),b=(function(e){function r(e,t){var n;return(0,i.default)(this,r),n=(0,u.default)(this,(0,a.default)(r).call(this,e,t)),(0,c.referenceReport)('MultiChoseDialog'),n}return(0,l.default)(r,e),(0,o.default)(r,[{key:\"render\",value:function(){var e=this;return p.default.createElement(d,(0,n.default)({},this.props,{onDismiss:function(r){e.props.onDismiss&&e.props.onDismiss(r.nativeEvent)},onCancel:function(r){e.props.onCancel&&e.props.onCancel(r.nativeEvent)},onCheck:function(r){e.props.onCheck&&e.props.onCheck(r.nativeEvent)},onConfirm:function(r){e.props.onConfirm&&e.props.onConfirm(r.nativeEvent)}}))}}]),r})(p.Component);exports.default=b,b.propTypes=(0,t.default)({visible:s.default.bool,cancelable:s.default.bool,title:s.default.string,timeout:s.default.number,dataSource:s.default.array,dataKey:s.default.string,checkKey:s.default.string,cancel:s.default.string,confirm:s.default.string,onConfirm:s.default.func,onCancel:s.default.func,onCheck:s.default.func,onDismiss:s.default.func},f.ViewPropTypes);","miot-sdk/ui/MultiChoseDialog.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").NumberSpinner;exports.default=e;","miot-sdk/ui/NumberSpinner.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").StringSpinner;exports.default=e;","miot-sdk/ui/StringSpinner.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),a=e(require(\"@babel/runtime/helpers/objectSpread\")),o=e(require(\"@babel/runtime/helpers/classCallCheck\")),t=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/inherits\")),l=e(require(\"prop-types\")),s=e(require(\"react\")),p=require(\"react-native\"),d=require(\"../decorator/ReportDecorator\"),c=require('react-native/Libraries/Image/resolveAssetSource'),f=require('merge'),b=(0,p.requireNativeComponent)('MHSweepingMap'),m=p.NativeModules.MHSweepingMapManager,h=(function(e){function l(e,r){var a;return(0,o.default)(this,l),a=(0,i.default)(this,(0,n.default)(l).call(this,e,r)),(0,d.referenceReport)('RobotMapView'),a}return(0,u.default)(l,e),(0,t.default)(l,[{key:\"render\",value:function(){var e=this.props.mapStyle||{},o=this.props.imageSources,t=[];if(o)for(var i=o.length,n=0;n0&&void 0!==arguments[0]?arguments[0]:{},u=a.categories,l=a.mainDevices,f=(l&&l[c.default.model]?l[c.default.model]:[]).reduce(function(e,n){return[].concat((0,o.default)(e),(0,o.default)(u&&u[n]&&u[n].devices?u[n].devices.map(function(e){return{model:e.model,pdid:e.pdid,minFwVersion:e.minFwVersion,rule:u[n].objectIds,category:n}}):[]))},[]);Promise.all(f.map(function(e){var n=e.model;return d.default.ui.getDevicesWithModel(n)})).then(function(a){var u=a.reduce(function(e,n){return[].concat((0,o.default)(e),(0,o.default)(n?n.map(function(e){var n=f.find(function(n){return n.model===e.model}),t=n.pdid,i=n.rule,r=n.category;return{model:e.model,mac:e.mac,did:e.did,pdid:t,rule:i,category:r,device:e}}):[]))},[]).filter(function(e){return e&&e.did!==s});if(!u.length)return L=[],void t([]);Promise.all([s].concat((0,o.default)(u.map(function(e){return e.did}))).map(function(e){return c.default.getRoomInfoForCurrentHome(e)})).then(function(i){var a,d=(0,r.default)(i),l=d[0],f=d.slice(1);(a=console).log.apply(a,['roomInfo',l].concat((0,o.default)(f))),c.default.homeId=l&&l.data?l.data.homeId:s,c.default.roomId=l&&l.data?l.data.roomId:s,c.default.roomName=l&&l.data?l.data.roomName:s,f.forEach(function(e,n){u[n]&&e&&(u[n].homeId=e&&e.data?e.data.homeId:u[n].did,u[n].roomId=e&&e.data?e.data.roomId:u[n].did,u[n].roomName=e&&e.data?e.data.roomName:u[n].did)}),L=u,t(w(e,n))}).catch(i)}).catch(function(e){i(e)})}).catch(i)})}function C(e,n){return q(e,n)}function M(e){return new Promise(function(n,t){A(e).then(function(i){var r=i.beacon_key,o=i.pdid;r?n(r):l.default.MIOTRPC.standardCall(h,{pdid:o,did:e},function(e,r){if(e)return i.beacon_key=r.beaconkey||I,void n(i.beacon_key);t(r)})}).catch(t)})}function x(e){return new Promise(function(n,t){q().then(function(i){var r=i.find(function(n){return n.mac===e});if(r)return S(r,'getDeviceByMac',0),void n(r);t()}).catch(t)})}function A(e){return new Promise(function(n,t){q().then(function(i){var r=i.find(function(n){return n.did===e});r?n(r):t()}).catch(t)})}function N(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return new Promise(function(t,i){if(!e||!e.length)return S(P,'startScan',1),void i(P);m.callMethod(p,{list:e,timeout:n}).then(function(e){S(e,'startScan',0),t(e)}).catch(function(e){S(e,'startScan',1),i(e)})})}var O=null,R=!1,F=0,W='interconnection-BLESCANRESULTEVENT';function T(e,n){var t=a.DeviceEventEmitter.addListener(W,e);return F+=1,O?t:(m.subscribeMessages(g).then(function(e){S(null,'listenScan',0),O=e}).catch(function(t){S(t,'listenScan',1),a.DeviceEventEmitter.removeListener(W,e),F-=1,n(t)}),R?t:(c.DeviceEvent.deviceReceivedMessages.addListener(function(e,n){if(O){var t=n.get(g);t&&(t=JSON.parse(t[0]),a.DeviceEventEmitter.emit(W,t))}}),R=!0,t))}function V(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.list,t=void 0===n?[]:n,r=e.timeout,o=e.category,a=e.sameRoom,c=arguments.length>1?arguments[1]:void 0,u=arguments.length>2?arguments[2]:void 0,d=!1;function l(e){d||(d=!0,u(e))}var m=T(function(e){var n=e.list;q(o,a).then(function(e){if(t.length){var r=t.map(function(t){var r=t.mac,o=t.pdid,a=n.find(function(e){return e.mac===r})||{mac:r,pdid:o};return(0,i.default)({},e.find(function(e){return e.mac===a.mac})||{},a)});c(r)}else c(n)}).catch(l)},u);return t&&t.length?N(t,r).then(f.log).catch(l):q(o,a).then(function(e){N((e||[]).map(function(e){return{mac:e.mac,pdid:e.pdid}}),r).then(f.log).catch(l)}).catch(l),{remove:function(){m&&m.remove(),0===(F-=1)&&(O&&O.remove(),O=null)}}}function j(e){return new Promise(function(n,t){(e?x(e):Promise.resolve()).then(function(r){m.callMethod(b,e?{op:1,mac:e,pdid:r.pdid}:{op:0}).then(function(e){S(e,'getLinkage',0),e&&e.result&&e.result.device?n(e.result.device.map(function(e){return(0,i.default)({},e,{enabled:!!e.enabled})})):t(e)}).catch(function(e){S(e,'getLinkage',1),t(e)})}).catch(t)})}function B(e,n){return new Promise(function(r,o){Promise.all([C(e,n),j()]).then(function(e){var n=(0,t.default)(e,2),o=n[0],a=n[1],c=o.map(function(e){var n=a.find(function(n){return n.mac===e.mac});return(0,i.default)({},e,n||{},{linked:!!n,enabled:!(!n||!n.enabled)})});r(c)}).catch(o)})}function H(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.mac,t=e.pdid,i=e.beacon_key,r=void 0===i?I:i,o=e.intvl,a=void 0===o?10:o,c=e.fun_type,u=void 0===c?1:c,d=e.rule,l=void 0===d?[]:d;return new Promise(function(e,i){m.callMethod(_,{mac:n,pdid:t,beacon_key:r,intvl:a||10,fun_type:u,rule:l}).then(function(n){S(n,'add',0),e(n)}).catch(function(e){S(e,'add',1),i(e)})})}function J(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return new Promise(function(t,i){x(e).then(function(r){var o=r.did,a=r.pdid,c=r.beacon_key,u=r.rule;c?H({mac:e,pdid:a,beacon_key:c,intvl:n,fun_type:1,rule:u}).then(t).catch(i):M(o).then(function(r){H({mac:e,pdid:a,beacon_key:r,intvl:n,fun_type:1,rule:u}).then(t).catch(i)}).catch(i)}).catch(i)})}function z(e){return new Promise(function(n,t){(e?x(e):Promise.resolve()).then(function(i){m.callMethod(k,e?{op:1,mac:e,pdid:i.pdid}:{op:0}).then(function(e){S(e,'remove',0),n(e)}).catch(function(e){S(e,'remove',1),t(e)})}).catch(t)})}function U(e){return z(e)}function G(e,n){return new Promise(function(t,i){(e?x(e):Promise.resolve()).then(function(r){m.callMethod(y,e?{op:1,enabled:n?1:0,mac:e,pdid:r.pdid}:{op:0,enabled:n?1:0}).then(function(e){S(e,'setEnable',0),t(e)}).catch(function(e){S(e,'setEnable',1),i(e)})}).catch(i)})}var K={getSupportedDevices:C,scan:V,getLinkage:j,getSupportedDevicesWithLinkage:B,addLinkage:J,removeLinkage:U,setEnable:G};exports.default=K;","miot-sdk/device/interconnection.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.NOOP=function(){},exports.log=function(){var e;(e=console).log.apply(e,arguments)},exports.isSameArrayElements=function(e,r){if(e===r)return!0;if(!e&&r||e&&!r)return!1;if(e&&r&&e.length!==r.length)return!1;for(var n=function(n,t){var o=e[n];if(void 0===r.find(function(e){return e===o}))return{v:!1}},t=0,o=e.length;t1&&void 0!==arguments[1]?arguments[1]:0,n=(0,t.default)(e),o=n[0],i=n.slice(1);if(r)return l(e,r);switch(o){case u.oneByOne:return f(i);case u.compare:return c(i);case u.normal:default:return l(e,r)}}function l(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return function(){for(var t=arguments.length,u=new Array(t),i=0;i1&&void 0!==arguments[1]?arguments[1]:0;if(!e)return function(){return''};switch(o(e)){case'String':return i(e);case'Array':return a(e,r);case'Function':return e;default:return function(){return''}}}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;if('Array'!==o(n))return n;for(var u=(0,t.default)(n),i=u[0],a=u.slice(1),l=i,f=0,c=a.length;f0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;if('Array'!==o(n))return n;for(var u=(0,t.default)(n),i=u[0],a=u.slice(1),l=i,f=0,c=a.length;f=g||'gt'===p&&s>g))})&&0!==s.length){l=p;break}}return l}","miot-sdk/utils/fns.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.adjustSize=function(e){return e/1080*d.width},exports.window=void 0;var t=require(\"react-native\"),r=e(require(\"../Host\")),i=require(\"./fns\"),n=t.Dimensions.get('window'),o=n.width,u=n.height;r.default.isAndroid&&r.default.getPhoneScreenInfo().then(function(e){o=e.viewWidth,u=e.viewHeight}).catch(i.NOOP);var d={get width(){return o},get height(){return u}};exports.window=d;","miot-sdk/utils/sizes.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.FontDefault=exports.FontDsDigital=exports.FontLantingLight=exports.FontKmedium=void 0;var t=require(\"react-native\");exports.FontKmedium=\"KMedium\";exports.FontLantingLight='MI-LANTING--GBK1-Light';exports.FontDsDigital='DS-Digital';var e='ios'===t.Platform.OS?null:\"KMedium\";exports.FontDefault=e;","miot-sdk/utils/fonts.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"Images\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(exports,\"strings\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(exports,\"Styles\",{enumerable:!0,get:function(){return k.default}}),exports.default=exports.Language=void 0;var t=r(require(\"../native\")),n=e(require(\"./Images\")),u=e(require(\"./images/logo.png\")),i=e(require(\"./Strings\")),s=e(require(\"./strings/de\")),a=e(require(\"./strings/en\")),g=e(require(\"./strings/es\")),l=e(require(\"./strings/fr\")),f=e(require(\"./strings/id\")),o=e(require(\"./strings/it\")),d=e(require(\"./strings/ja\")),p=e(require(\"./strings/ko\")),h=e(require(\"./strings/pl\")),q=e(require(\"./strings/ru\")),c=e(require(\"./strings/th\")),m=e(require(\"./strings/vi\")),y=e(require(\"./strings/zh\")),z=e(require(\"./strings/zh_bo\")),b=e(require(\"./strings/zh_hk\")),_=e(require(\"./strings/zh_tw\")),v=e(require(\"./strings/tr\")),S=e(require(\"./strings/nl\")),j=e(require(\"./strings/pt\")),k=e(require(\"./Styles\")),x={zh:\"zh\",zh_tw:\"zh_tw\",zh_hk:\"zh_hk\",zh_bo:\"zh_bo\",en:\"en\",es:\"es\",ko:\"ko\",ru:\"ru\",it:\"it\",fr:\"fr\",de:\"de\",id:\"id\",pl:\"pl\",vi:\"vi\",ja:\"ja\",th:\"th\",pt:\"pt\",nl:\"nl\",ar:\"ar\",tr:\"tr\"};exports.Language=x,Object.freeze(x);var w={system:(0,t.createI18n)({zh:y.default,en:a.default,zh_tw:_.default,zh_hk:b.default,zh_bo:z.default,es:g.default,ko:p.default,ru:q.default,it:o.default,fr:l.default,de:s.default,id:f.default,pl:h.default,vi:m.default,ja:d.default,th:c.default,tr:v.default,nl:S.default,pt:j.default},t.default.language),custom:!1,lang:!1},I={logo:u.default,registerStrings:function(e){e&&(w.custom=(0,t.createI18n)(e,t.default.language),w.lang&&(w.language=w.lang))},getLanguage:function(){return w.system.language},setLanguage:function(e){w.lang=e,w.system.language=e,(w.custom||{}).language=e},get systemStrings(){return w.system.strings},getSystemString:function(e){for(var r,t=arguments.length,n=new Array(t>1?t-1:0),u=1;u1?t-1:0),u=1;u1?i-1:0),t=1;t0&&void 0!==arguments[0]?arguments[0]:1e4,a=this.props.navigation.getParam('mac','');a.length>0?this.setState({status:p.LIST,datasources:[{name:a,linked:!0}],linked:!0}):(this.setState({status:p.SEARCHING}),Promise.all([this._scanBracelet(t),this._getBrecelet(t)]).then(function(t){var i=[];2==t.length&&0==t[0].code&&0==t[1].code&&t[1].result.length>0&&(i=t[1].result.map(function(e){return e.linked=e.mac==a,e.name=e.mac,e})),e.setState({status:i.length>0?p.LIST:p.SEARCH_EMPTY,datasources:i,linked:!1})}).catch(function(t){e.setState({status:p.SEARCH_EMPTY,datasources:[]})}))}},{key:\"_scanBracelet\",value:function(e){return this.__rotate(e),new Promise(function(t,a){c.Device.getDeviceWifi().callMethod('miIO.bleStartSearchBand',[e]).then(function(e){t(e)}).catch(function(e){console.log('\\u626b\\u63cf\\u5931\\u8d25:',JSON.stringify(e)),a(e)})})}},{key:\"_getBrecelet\",value:function(e){return new Promise(function(t,a){setTimeout(function(){c.Device.getDeviceWifi().callMethod('miIO.bleGetNearbyBandList',[]).then(function(e){t(e)}).catch(function(e){console.log('\\u83b7\\u53d6\\u5931\\u8d25:',JSON.stringify(e)),a(e)})},e)})}},{key:\"__rotate\",value:function(e){this.rotateValue.setValue(0),r.Animated.timing(this.rotateValue,{toValue:e/1e3,duration:e,easing:r.Easing.linear}).start()}},{key:\"_alertRemoveConnection\",value:function(e){var t=this;this.setState({dialogVisiable:!0,dialogMessage:m.strings.removeLinkConfirm,dialogConfirm:function(){t.__removeConnection(e)}})}},{key:\"__removeConnection\",value:function(e){var t=this;this.setState({dialogVisiable:!1});var a=this.props.navigation.getParam('onDisconnect',null);a?a(e,function(e){e?(t.props.navigation.setParams({mac:''}),t._searchBracelet(5e3)):t._showToast(m.strings.removeLinkFail)}):console.log(\"\\n \\u8bf7\\u914d\\u7f6e navigation.props.onDisconnect, \\u4f8b\\u5982 \\n onDisconnect:{mac, callback}=>{\\n // do something\\n callback(true)\\n }\\n \\u5f53\\u524d\\u4e3a\\uff1a\"+a)}},{key:\"_alertAddConnection\",value:function(e){var t=this;this.setState({dialogVisiable:!0,dialogMessage:m.strings.linkConfirm,dialogConfirm:function(){t.__addConnection(e)}})}},{key:\"__addConnection\",value:function(e){var t=this;this.setState({dialogVisiable:!1,loadingVisiable:!0});var a=this.props.navigation.getParam('onConnect',null);a?a(e,function(a){t.setState({loadingVisiable:!1}),a?(t.props.navigation.setParams({mac:e}),t._searchBracelet(5e3)):t._showToast(m.strings.linkFail)}):console.log(\"\\n \\u8bf7\\u914d\\u7f6e navigation.props.onConnect, \\u4f8b\\u5982 \\n onConnect:{mac, callback}=>{\\n // do something\\n callback(true)\\n }\\n \\u5f53\\u524d\\u4e3a\\uff1a\"+a)}},{key:\"_showToast\",value:function(e){var t=this,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;console.log(e,a),this.setState(function(){return{toastMessage:e,toastVisiable:!0}}),setTimeout(function(){t.setState(function(){return{toastMessage:null,toastVisiable:!1}})},a)}}]),o})(l.default.Component);exports.default=v,v.navigationOptions=function(e){var t=e.navigation;return{header:l.default.createElement(u.default,{backgroundColor:\"#ffffff\",type:u.default.TYPE.LIGHT,left:[{key:u.default.ICON.BACK,onPress:function(){return t.goBack()}}],title:t.getParam('title')})}};var b=r.StyleSheet.create({container:{flex:1,backgroundColor:h.Styles.common.backgroundColor},title:{fontFamily:f.FontDefault,fontWeight:'bold',fontSize:16,color:'#000'},detail:{fontFamily:f.FontDefault,fontSize:12,color:'#999'}});function y(e){var t=e.icon,a=e.iconBack,i=e.title,n=e.messages,s=e.rotate,o=e.onPress;return l.default.createElement(r.TouchableOpacity,{style:{width:'100%',height:'100%',paddingHorizontal:27,alignItems:'center',backgroundColor:'#fff'},onPress:o},l.default.createElement(r.View,{style:{width:96,height:96,marginTop:80,alignItems:'center',justifyContent:'center'}},l.default.createElement(r.Animated.Image,{source:a,style:{transform:[{rotate:s}],width:'100%',height:'100%'}}),l.default.createElement(r.Image,{source:t,style:{position:'absolute',width:62,height:62}})),l.default.createElement(r.Text,{style:[b.title,{marginTop:36}]},i),l.default.createElement(r.View,{style:{width:'100%',height:20}}),n.map(function(e,t){return l.default.createElement(r.Text,{key:String(t),style:[b.detail,{textAlign:'center'}]},e)}))}function k(e){var t=e.items,a=e.handle,i=e.headerMessage,n=e.footerMessage;return l.default.createElement(r.ScrollView,{style:{paddingHorizontal:27,width:'100%'}},i?l.default.createElement(r.View,{style:{marginTop:16,marginBottom:10}},l.default.createElement(r.Text,{style:b.detail},i)):null,t.map(function(e,t){return l.default.createElement(r.View,{key:String(t),style:{width:'100%',height:54,flexDirection:'row',justifyContent:'space-between',alignItems:'center'}},l.default.createElement(r.Text,{style:b.title},e.name),l.default.createElement(r.TouchableOpacity,{style:{width:80,height:34,borderRadius:17,justifyContent:'center',alignItems:'center',backgroundColor:'#EAF8F8'},onPress:function(){a&&a(e.mac,e.linked)}},l.default.createElement(r.Text,{style:[b.title,{color:'#48C2C7'}]},e.linked?m.strings.removeLink:m.strings.link)))}),i?l.default.createElement(r.View,{style:{marginTop:10}},l.default.createElement(r.Text,{style:b.detail},n)):null)}function C(e){var t=e.visible,a=e.message;return t&&a?l.default.createElement(r.View,{style:{position:'absolute',bottom:86,maxWidth:200,flexShrink:1,alignSelf:'center',paddingVertical:9,paddingHorizontal:15,backgroundColor:'#fffE',borderRadius:12,borderColor:'rgba(0, 0, 0, 0.1)',borderWidth:.5,shadowColor:'#000',shadowOpacity:.05,shadowOffset:{width:0,height:17}}},l.default.createElement(r.Text,{style:{flexWrap:'wrap',fontFamily:f.FontDefault,fontSize:16,color:'#4C4C4C',textAlign:'center'}},a)):null}y.propTypes={icon:o.default.node,iconBack:o.default.node,title:o.default.string,message:o.default.arrayOf(o.default.string),rotate:o.default.any,onPress:o.default.func},y.defaultProps={icon:null,iconBack:null,title:'',message:[],rotate:'0deg',onPress:null},k.propTypes={items:o.default.array,handle:o.default.func,headerMessage:o.default.string,footerMessage:o.default.string},k.defaultProps={items:[],handle:null,headerMessage:null,footerMessage:null},C.propTypes={visible:o.default.bool,message:o.default.string},C.defaultProps={visible:!1,message:''};","miot-sdk/ui/BraceletInterconnection.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ColorPicker=void 0;var n=r(require(\"react\")),o=require(\"react-native\"),t=e(require(\"prop-types\")),i=(0,o.requireNativeComponent)('RCTColorPickerView'),a=(0,o.requireNativeComponent)('RCTWhitePickerView'),l=n.default.forwardRef(function(e,r){var t=e.style,l=e.type,c=void 0===l?'color':l,u=e.onInit,E=e.onColorChange,C=(0,n.useRef)(null),f=function(){o.UIManager.dispatchViewManagerCommand((0,o.findNodeHandle)(C.current),o.UIManager.getViewManagerConfig('color'===c?'RCTColorPickerView':'RCTWhitePickerView').Commands.configDrawPicker,'color'===c?[['#E6312E','#E6842E','#E6D72E','#98E62E','#2EE62F','#2EE67C','#2ED5E6','#2E79E6','#302EE6','#7D2EE6','#E62EE3','#E62EB5','#E6312E'],[],10]:[['#EDF4FF','#EDF4FF','#FEFDD9','#FBD26C','#FFB127','#FF9E42','#F67F00'],[0,.166,.332,.5,.666,.832,1],10])};return(0,n.useImperativeHandle)(r,function(){return{setColor:function(e){o.UIManager.dispatchViewManagerCommand((0,o.findNodeHandle)(C.current),o.UIManager.getViewManagerConfig('color'===c?'RCTColorPickerView':'RCTWhitePickerView').Commands.showColor,[e])}}}),'color'===c?n.default.createElement(i,{ref:C,style:t,onInit:function(){u&&(u(),f())},onColorChange:function(e){E&&E(e.nativeEvent.color,e.nativeEvent.trackType)}}):n.default.createElement(a,{ref:C,style:t,onInit:function(){u&&(u(),f())},onColorChange:function(e){E&&E(e.nativeEvent.color,e.nativeEvent.trackType)}})});exports.ColorPicker=l,l.propTypes={style:t.default.any,type:t.default.oneOf(['color','white']),onInit:t.default.func,onColorChange:t.default.func};","miot-sdk/ui/ColorPicker.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").TouchableView;exports.default=e;","miot-sdk/ui/TouchableView.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.dynamicColor=function(e,r){var t=new a(e,r),l=i.default.getColorScheme();return t[l||'light']},exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/classCallCheck\")),t=require(\"react-native\"),i=e(require(\"miot/darkmode\")),a=function e(i,a){(0,r.default)(this,e),'ios'===t.Platform.OS?(this.light=\"xm\"+i,this.dark=\"xm\"+a):(this.light=i,this.dark=a)};var l=a;exports.default=l;","miot-sdk/ui/Style/DynamicColor.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/classCallCheck\")),t=e(require(\"../../node_modules/react-native/Libraries/vendor/emitter/EventEmitter\")),a=e(require(\"../../node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter\")),n=e(require(\"./NativeDarkmode\")),i=e(require(\"invariant\")),l=require(\"miot/native\"),o=new t.default,d=__DEV__&&!global.nativeExtensions&&!global.nativeCallSyncHook&&!global.RN$Bridgeless;n.default&&new a.default(n.default).addListener('appearanceChanged',function(e){var r=e.colorScheme;(0,i.default)('dark'===r||'light'===r||null==r,\"Unrecognized color scheme. Did you mean 'dark' or 'light'?\"),o.emit('change',{colorScheme:r})});var u={darkModeStore:new(function e(){(0,r.default)(this,e),this.setDarkMode=!1}),preparePluginOwnDarkMode:function(){l.isIOS?this.darkModeStore.setDarkMode=!0:null!=n.default&&(d?__DEV__&&console.warn&&console.warn('\\u8c03\\u8bd5\\u6a21\\u5f0f\\u4e0b\\u65e0\\u6cd5\\u6b63\\u5e38\\u8c03\\u7528 preparePluginOwnDarkMode'):n.default.disableActivityDarkMode())},getColorScheme:function(){if(d)return __DEV__&&console.warn&&console.warn('\\u8c03\\u8bd5\\u6a21\\u5f0f\\u4e0b\\u65e0\\u6cd5\\u6b63\\u5e38\\u83b7\\u53d6\\u5f53\\u524d\\u989c\\u8272\\u6a21\\u5f0f'),'light';var e=null==n.default?null:n.default.getColorScheme()||null;return(0,i.default)('dark'===e||'light'===e||null==e,\"Unrecognized color scheme. Did you mean 'dark' or 'light'?\"),e},addChangeListener:function(e){o.addListener('change',e)},removeChangeListener:function(e){o.removeListener('change',e)}};exports.default=u;","miot-sdk/darkmode/index.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=(0,require(\"react-native/Libraries/TurboModule/TurboModuleRegistry\").get)('Appearance');exports.default=e;","miot-sdk/darkmode/NativeDarkmode.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.dynamicStyleSheet=function(e){var r=l.default.getColorScheme();return new n(e)[r||'light']},exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/slicedToArray\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"./DynamicColor\")),l=e(require(\"miot/darkmode\")),u=require(\"react-native\"),n=(function(){function e(r){(0,t.default)(this,e),this.light=this._create(r,'light'),this.dark=this._create(r,'dark')}return(0,a.default)(e,[{key:\"_create\",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'light',a={},l=0,n=Object.entries(e);l=0&&r-1<=0&&t.push(s.default.createElement(g.Stop,{key:r,offset:r,stopColor:e[r],stopOpacity:\"1\"}));return t}var z=T(y),R=T(w),j=(0,f.colorGetterforRange)(y),B=(0,f.colorGetterforRange)(w);function E(e,t){var r=(0,u.default)(t,2),o=r[0],n=r[1];return 100-(en?100:o===n?50:(e-o)/(n-o)*100)}function F(e,t){var r=(0,u.default)(t,2),o=r[0],n=r[1];return o===n?o:Math.round((n-o)*(100-e)/100)+o}function P(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1;return t>=r||o>=n||e>=r?n:e<=t?o:(e-t)/(r-t)*(n-o)+o}function V(e,t){var r=(0,u.default)(t,3),o=r[0],n=r[1],a=r[2];return B.getColorFromPercent(E(e,[o,n,a]))}var k=(function(e){function t(){return(0,o.default)(this,t),(0,a.default)(this,(0,i.default)(t).apply(this,arguments))}return(0,l.default)(t,e),(0,n.default)(t,[{key:\"render\",value:function(){var e=this.props,t=e.disabled,r=e.brightness,o=e.supportBrightness,n=e.color,a=e.supportColor,i=e.colorTemperature,l=e.supportColorTemperature,u=e.colorTemperatureRange,p=e.pos,h=e.SourceBgOff,m=a?(0,f.transformDigtalToHex)(n):l?V(i,u):'#FFEFCB',b=c.window.width,C=c.window.height;return s.default.createElement(d.View,{style:O.container},t?s.default.createElement(d.Image,{style:O.disabledContainer,source:h}):s.default.createElement(s.Fragment,null,s.default.createElement(d.View,{style:[O.colorOrColorTemperatureContainer,{backgroundColor:m}]}),s.default.createElement(g.Svg,{width:b,height:C},s.default.createElement(g.Defs,null,s.default.createElement(g.RadialGradient,{id:\"radialGradient\",cx:b/2,cy:314/780*C,rx:(1-314/780)*C,ry:(1-314/780)*C,fx:b/2,fy:314/780*C},s.default.createElement(g.Stop,{offset:\"0\",stopColor:\"#fff\",stopOpacity:\"0.6\"}),s.default.createElement(g.Stop,{offset:\"1\",stopColor:\"#fff\",stopOpacity:\"0\"}))),s.default.createElement(g.Rect,{x:\"0\",y:\"0\",width:b,height:C,fill:\"url(#radialGradient)\"}))),t||!o?null:s.default.createElement(d.View,{style:[O.brightness,{opacity:v(r)}]}),t||!p?null:s.default.createElement(d.Image,{style:{position:'absolute',left:p.pageX,top:p.pageY,width:(0,c.adjustSize)(192),height:(0,c.adjustSize)(192),marginLeft:(0,c.adjustSize)(-96),marginTop:(0,c.adjustSize)(-96),resizeMode:'contain'},source:S}))}}]),t})(s.PureComponent);exports.Background=k,k.propTypes={disabled:p.default.bool,brightness:p.default.number,supportBrightness:p.default.bool,color:p.default.string,supportColor:p.default.bool,colorTemperature:p.default.number,supportColorTemperature:p.default.bool,colorTemperatureRange:p.default.arrayOf(p.default.number),pos:p.default.shape({pageX:p.default.number,pageY:p.default.number}),SourceBgOff:p.default.any};var x=(function(e){function t(){var e,r;(0,o.default)(this,t);for(var n=arguments.length,l=new Array(n),u=0;u5||B>5)&&(v=R=0&&o<=1&&e.push([o,a])}e.sort(function(r,e){return r[0]>e[0]?1:-1}),e.length<1&&(e=[[0,'#000000'],[1,'#ffffff']]);e[0][0]>0&&(e[0]=[0,e[0][1]]);e[e.length-1][0]<1&&(e[e.length-1]=[1,e[e.length-1][1]]);return e})(r);function o(r){r=Math.max(0,Math.min(1,r/100));for(var t=null,o=null,a=1,s=e.length;a=r){t=l,o=i;break}}if(t[0]>=o[0])return t[1];var p=(r-t[0])/(o[0]-t[0]),u=n(t[1]),f=u.r,c=u.g,g=u.b,x=n(o[1]),b=x.r,h=x.g,v=x.b,C=parseInt(p*b+(1-p)*f,10),m=parseInt(p*h+(1-p)*c,10),F=parseInt(p*v+(1-p)*g,10);return\"#\"+(\"00\"+C.toString(16)).slice(-2)+(\"00\"+m.toString(16)).slice(-2)+(\"00\"+F.toString(16)).slice(-2)}return{getColorFromPercent:o,getPercentFromColor:function(r){for(var e=n(r),t=e.r,a=e.g,s=e.b,i=0;i<1e3;i++){var l=o(i/10),p=n(l),u=p.r,f=p.g,c=p.b;if(Math.abs(t-u)<=5&&Math.abs(a-f)<=5&&Math.abs(s-c)<=5)return i/10}return 50}}},exports.ColorRed=exports.ColorOrange=exports.ColorGreen=void 0;var e=r(require(\"@babel/runtime/helpers/slicedToArray\"));exports.ColorGreen='#00B7A2';exports.ColorOrange='#FFA943';function t(r){return(r=r.replace(/[^0-9a-fA-F]/,'').split('')).length<6&&(r=[r[0]||0,r[0]||0,r[1]||0,r[1]||0,r[2]||0,r[2]||0]),(r=\"#\"+r.slice(0,6).join('')).toUpperCase()}function n(r){var n=(r=t(r)).slice(1).split(''),o=(0,e.default)(n,6),a=o[0],s=o[1],i=o[2],l=o[3],p=o[4],u=o[5];return{r:parseInt(a+s,16),g:parseInt(i+l,16),b:parseInt(p+u,16)}}exports.ColorRed='#FC675F';","miot-sdk/utils/colors.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.getBackgroundEventKey=K,exports.getNavigationState=function(){var e=A();return q[e]},exports.getNavigationEventKey=A,exports.getContentEventKey=D,exports.default=exports.PageWithNormalNavigatorKey=void 0;var r=t(require(\"@babel/runtime/helpers/objectWithoutProperties\")),n=t(require(\"@babel/runtime/helpers/objectSpread\")),a=t(require(\"@babel/runtime/helpers/extends\")),i=t(require(\"@babel/runtime/helpers/classCallCheck\")),o=t(require(\"@babel/runtime/helpers/createClass\")),l=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),s=t(require(\"@babel/runtime/helpers/inherits\")),c=e(require(\"react\")),p=require(\"react-native\"),f=t(require(\"prop-types\")),v=require(\"miot\"),h=t(require(\"./NavigationBar\")),d=t(require(\"./Separator\")),y=require(\"../resources\"),g=require(\"../utils/dialog-manager\"),m=require(\"../utils/navigation-helper\"),E=require(\"../utils/sizes\"),S=require(\"../utils/accessibility-helper\"),b=require(\"../decorator/ReportDecorator\"),N=p.Dimensions.get('window'),T='ios'===p.Platform.OS&&375===N.width&&812===N.height,C='PageWithNormalNavigator_key';function K(){var e=(0,m.getNavigation)(),t=e.state.params,r=e.state.routeName;return\"PageWithNormalNavigator_REQUESTSETBACKGROUND:\"+(t&&t[C]?t[C]:r)}exports.PageWithNormalNavigatorKey=C;var k=(function(e){function t(){var e,r;(0,i.default)(this,t);for(var n=arguments.length,a=new Array(n),o=0;o0&&void 0!==arguments[0]?arguments[0]:{message:u.default.error,timeout:2e3},t=e.message,i=void 0===t?u.default.error:t,s=e.timeout,a=void 0===s?2e3:s,l=v[(0,d.getNavigationEventKey)()];l&&l.setState({type:p.loading,visible:!0,message:i,timeout:a})},exports.showLoading=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:u.default.handling}).message,t=void 0===e?u.default.handling:e,i=v[(0,d.getNavigationEventKey)()];i&&i.setState({type:p.loading,visible:!0,message:t})},exports.showMessage=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:'',buttons:[{text:u.default.ok,callback:c.NOOP}],messageStyle:{}},t=e.message,s=void 0===t?'':t,a=e.buttons,l=void 0===a?[{text:u.default.ok,callback:c.NOOP}]:a,n=e.messageStyle,o=void 0===n?{}:n;if(!s)return;var r=v[(0,d.getNavigationEventKey)()];r&&r.setState({type:p.message,visible:!0,message:s,messageStyle:o,buttons:l.map(function(e){return(0,i.default)({},e,{callback:function(){b(),e.callback()}})})})},exports.showInput=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:'',inputs:[{placeholder:'',defaultValue:''}],buttons:[{text:u.default.cancel,callback:b},{text:u.default.ok,callback:c.log}],onConfirm:c.log},t=e.message,i=void 0===t?'':t,s=e.inputs,a=void 0===s?[{placeholder:'',defaultValue:''}]:s,l=e.onConfirm,n=void 0===l?c.log:l;if(!i)return;var o=v[(0,d.getNavigationEventKey)()];o&&o.setState({type:p.input,visible:!0,message:i,inputs:a,buttons:[{text:u.default.cancel,callback:b},{text:u.default.ok,callback:function(e){b(),n&&n(e&&e.textInputArray?e.textInputArray[0]:'')}}]})},exports.showSelector=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:'',selectedIndexs:[],options:[],onSelect:c.log},t=e.message,i=void 0===t?'':t,s=e.selectedIndexs,a=void 0===s?[]:s,l=e.options,n=void 0===l?[]:l,o=e.onSelect,r=void 0===o?c.log:o;if(!n||!n.length)return;var u=v[(0,d.getNavigationEventKey)()];u&&u.setState({type:p.selector,visible:!0,message:i,selectedIndexs:a,options:n,onSelect:r})},exports.DialogComponent=exports.TYPES=void 0;var i=t(require(\"@babel/runtime/helpers/objectSpread\")),s=t(require(\"@babel/runtime/helpers/classCallCheck\")),a=t(require(\"@babel/runtime/helpers/createClass\")),l=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),o=t(require(\"@babel/runtime/helpers/inherits\")),r=e(require(\"react\")),u=t(require(\"../resources/Strings\")),g=require(\"../ui/Dialog\"),d=require(\"../ui/PageWithNormalNavigator\"),c=require(\"./fns\"),v={},p={loading:'loading',message:'message',input:'input',selector:'selector'};exports.TYPES=p;var m=(function(e){function t(){var e,i;(0,s.default)(this,t);for(var a=arguments.length,o=new Array(a),r=0;r2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,a=e-100/y*t;return Math.min(n,Math.max(i,a))}var z=(function(e){function t(){var e,i;(0,n.default)(this,t);for(var a=arguments.length,o=new Array(a),l=0;l1&&void 0!==arguments[1]?arguments[1]:30;if(!isNaN(e)&&isFinite(e)){this.stopAnimation();var i=this.currValue;this.aniPosition=u.Animated.timing(this.value,{toValue:e,duration:Math.abs(i-e)*t,easing:u.Easing.inOut(u.Easing.linear)}).start()}}},{key:\"stopAnimation\",value:function(){this.aniPosition&&this.aniPosition.stop()}},{key:\"initPanResponder\",value:function(){var e=this;this.panResponder=u.PanResponder.create({onStartShouldSetPanResponder:function(){return!0},onMoveShouldSetPanResponder:function(){return!0},onShouldBlockNativeResponder:function(){return!1},onPanResponderTerminationRequest:function(){return!1},onPanResponderGrant:function(){u.DeviceEventEmitter.emit(e.contentEventKey,{scrollEnabled:!1})},onPanResponderMove:u.Animated.event([null,{dy:this.moveY}]),onPanResponderRelease:this.touchEnd.bind(this),onPanResponderTerminate:this.touchEnd.bind(this)})}},{key:\"touchEnd\",value:function(){this.lastValue=this.currValue,this.props.onValueChange(this.lastValue),u.DeviceEventEmitter.emit(this.contentEventKey,{scrollEnabled:!0})}},{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){var t=this.props;this.lastValue=e.position,e&&t&&e.position===t.position||this.animateToPosition(e.position)}},{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;this.moveY.addListener(function(t){var i=S(e.lastValue,t.value);e.animateToPosition(i,0),e.props.onValueChanging(i)}),this.initPanResponder()}},{key:\"componentDidMount\",value:function(){var e=this;this.value.addListener(function(t){var i=t.value;e.currValue=i})}},{key:\"componentWillUnmount\",value:function(){this.stopAnimation()}},{key:\"render\",value:function(){var e=this.props,t=e.lightOn,n=e.controlable,a=this.value.interpolate({inputRange:[0,100],outputRange:[y,0]}),r=n?this.panResponder.panHandlers:{};return l.default.createElement(u.View,(0,i.default)({style:E.container},r,(0,m.getAccessibilityConfig)({accessible:!!n&&this.props.accessible,accessibilityRole:m.AccessibilityRoles.adjustable,accessibilityHint:this.props.accessibilityHint}),{accessibilityActions:[{name:'increment'},{name:'decrement'}],onAccessibilityAction:this.onAccessibilityAction}),l.default.createElement(u.Image,{style:E.upper,source:g}),l.default.createElement(u.Animated.Image,{style:[E.center,{height:a}],source:b}),l.default.createElement(u.Animated.Image,{style:[E.light,t?{height:a}:{display:'none',height:0}],source:f}),l.default.createElement(u.Image,{style:E.lower,source:v}),l.default.createElement(u.Animated.View,{style:[E.btnWrap,{top:a,opacity:n?1:0}]},l.default.createElement(u.View,{style:E.btn},l.default.createElement(u.View,{style:E.btnInner}))))}}]),t})(l.Component);exports.default=z,z.propTypes={position:c.default.number,lightOn:c.default.bool,controlable:c.default.bool,onValueChanging:c.default.func,onValueChange:c.default.func,accessible:m.AccessibilityPropTypes.accessible,accessibilityHint:m.AccessibilityPropTypes.accessibilityHint},z.defaultProps={position:0,lightOn:!1,controlable:!1,onValueChanging:h.log,onValueChange:h.log};var E=u.StyleSheet.create({container:{alignItems:'center',paddingTop:(0,d.adjustSize)(90),paddingBottom:(0,d.adjustSize)(222),height:(0,d.adjustSize)(1035)},upper:{zIndex:40,width:(0,d.adjustSize)(738),height:(0,d.adjustSize)(93),resizeMode:'stretch'},center:{zIndex:30,width:(0,d.adjustSize)(636),height:y,marginTop:(0,d.adjustSize)(-9),resizeMode:'stretch'},light:{zIndex:20,width:(0,d.adjustSize)(858),height:(0,d.adjustSize)(369),resizeMode:'stretch',position:'absolute',top:(0,d.adjustSize)(183)},lower:{zIndex:10,width:(0,d.adjustSize)(984),height:(0,d.adjustSize)(132),marginTop:(0,d.adjustSize)(-78),resizeMode:'stretch'},btnWrap:{zIndex:31,position:'absolute',marginTop:(0,d.adjustSize)(195),alignSelf:'center',overflow:'hidden'},btn:{width:(0,d.adjustSize)(120),height:(0,d.adjustSize)(120),marginTop:(0,d.adjustSize)(-60),borderRadius:(0,d.adjustSize)(60),alignItems:'center',backgroundColor:'#fff'},btnInner:{width:(0,d.adjustSize)(48),height:(0,d.adjustSize)(9),borderRadius:(0,d.adjustSize)(6),backgroundColor:'#3daeff',marginTop:(0,d.adjustSize)(81)}});","miot-sdk/ui/Airer.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/modules/doubleSelectors/DoubleSelectors\")).default;exports.default=r;","miot-sdk/ui/DoubleSelectors.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/modules/curtain/Curtain\")).default;exports.default=r;","miot-sdk/ui/Curtain.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/modules/curtainStyle/CurtainStyle\")).default;exports.default=r;","miot-sdk/ui/CurtainStyle.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/modules/primeButton/PrimeButton\")).default;exports.default=r;","miot-sdk/ui/PrimeButton.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/modules/qaList/QAList\")).default;exports.default=r;","miot-sdk/ui/QAList.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"mhui-rn/dist/modules/multiButtons/MultiButtons\")).default;exports.default=t;","miot-sdk/ui/MultiButtons.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/modules/consumable/Consumable\")).default;exports.default=r;","miot-sdk/ui/Consumable.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/modules/imageHeader/ImageHeader\")).default;exports.default=r;","miot-sdk/ui/ImageHeader.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),u=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=e(require(\"@babel/runtime/helpers/inherits\")),n=e(require(\"react\")),s=require(\"react-native\"),o=require('merge'),d=(0,s.requireNativeComponent)('MHRTSPView'),p=(function(e){function p(){return(0,t.default)(this,p),(0,i.default)(this,(0,u.default)(p).apply(this,arguments))}return(0,l.default)(p,e),(0,a.default)(p,[{key:\"render\",value:function(){var e=o(this.props,{});return n.default.createElement(d,(0,r.default)({ref:\"rtspView\"},e))}},{key:\"stopPlay\",value:function(){'android'===s.Platform.OS?s.UIManager.dispatchViewManagerCommand((0,s.findNodeHandle)(this.refs.rtspView),s.UIManager.MHRTSPView.Commands.stopPlay,[]):s.NativeModules.MHRTSPViewManager.stopPlay((0,s.findNodeHandle)(this.refs.rtspView))}}]),p})(n.default.Component);exports.default=p;","miot-sdk/ui/RTSPRenderView.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.DarkMode=exports.IDevice=exports.IDeviceWifi=exports.DeviceEvent=exports.default=void 0;var i=r(require(\"./device/BasicDevice\")),t=e(require(\"./device/WifiDevice\")),v=e(require(\"./darkmode/index\")),a=i.default;exports.default=a;var o=i.DeviceEvent;exports.DeviceEvent=o;var d=t.default;exports.IDeviceWifi=d;var u=i.BasicDevice;exports.IDevice=u;var c=v.default;exports.DarkMode=c;","miot-sdk/Device.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.injectContext=function(e){e.contextType=p},exports.withSDKContext=exports.SDKContextProvider=exports.SDKContextConsumer=exports.SDKContext=void 0;var t=e(require(\"@babel/runtime/helpers/extends\")),r=e(require(\"@babel/runtime/helpers/classCallCheck\")),u=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=e(require(\"@babel/runtime/helpers/inherits\")),i=e(require(\"@babel/runtime/helpers/objectSpread\")),a=e(require(\"react\")),s=e(require(\"../darkmode\")),p=a.default.createContext();exports.SDKContext=p;var c=p.Consumer;exports.SDKContextConsumer=c;exports.SDKContextProvider=function(e){var t=e.children,r=e.value,u=(0,i.default)({colorScheme:s.default.getColorScheme()?s.default.getColorScheme():'light'},r);return a.default.createElement(p.Provider,{value:u},t)};exports.withSDKContext=function(e){return(function(i){function s(){return(0,r.default)(this,s),(0,n.default)(this,(0,o.default)(s).apply(this,arguments))}return(0,l.default)(s,i),(0,u.default)(s,[{key:\"render\",value:function(){var r=this.props;return a.default.createElement(c,null,function(u){return a.default.createElement(e,(0,t.default)({},r,u))})}}]),s})(e)};","miot-sdk/sdkContext/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.RootDeviceProperties=exports.createProperties=void 0;var r=e(require(\"@babel/runtime/helpers/toConsumableArray\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),i=(function(){function e(){(0,t.default)(this,e)}return(0,n.default)(e,[{key:\"getProperty\",value:function(e){return this._properties.get(e)}},{key:\"setProperty\",value:function(e,r){return this._properties.set(e,r),this._status.set(e,!0),this}},{key:\"getPropertyNames\",value:function(){return this._properties.keys()}},{key:\"hasProperty\",value:function(e){return this._properties.has(e)}},{key:\"removeProperty\",value:function(e){return e?\"*\"==e?this.removeAllProperties():(this._properties.delete(e),this._status.delete(e),this):this}},{key:\"removeProperties\",value:function(){for(var e=this,r=arguments.length,t=new Array(r),n=0;n1&&void 0!==arguments[1]?arguments[1]:null;if(!e)return this;switch(typeof t){case'function':break;case'string':var n=t;t=function(e){return e.startsWith(n)?e.substring(n.length):e};break;default:t=function(e){return e}}return'Map'==e.constructor.name?e.forEach(function(e,n){r.setProperty(t(n),e)}):Object.keys(e).forEach(function(n){r.setProperty(t(n),e[n])}),this}},{key:\"addListener\",value:function(e,r){if(!r){if('function'!=typeof e)return{remove:function(){}};r=e,e=\"*\"}var t=Array.isArray(e)?e:e?[e]:null;if(!t||t.length<1||!t[0])return{remove:function(){}};var n={props:t,isAny:\"*\"==t[0],callback:r};this._listeners.add(n);var i=this;return{remove:function(){i._listeners.delete(n)}}}},{key:\"notifyPropertiesChanged\",value:function(){var e=this;if(this._listeners.size<1)return this;for(var t=arguments.length,n=new Array(t),i=0;i=0}))&&u(e,{getChangeProps:function(){var e=[];return s?e=o?(0,r.default)(this._properties):i:o?e=n:i.forEach(function(r){return n.indexOf(r)>=0?e.push(r):null}),e}})})},0),this}},{key:\"removeListeners\",value:function(){for(var e=this,r=arguments.length,t=new Array(r),n=0;n1&&void 0!==arguments[1]?arguments[1]:-1;return new Promise(function(r,o){p.default.KooKong.canControlWithType(e,t,function(e,t){e?r(t):o(t)})})}},{key:\"getCurrentValueWithType\",value:function(e,t){return new Promise(function(r,o){p.default.KooKong.getCurrentValueWithType(e,t,function(e,t){e?r(t):o(t)})})}},{key:\"getAllSupportValueWithType\",value:function(e,t){return new Promise(function(r,o){p.default.KooKong.getAllSupportValueWithType(e,t,function(e,t){e?r(t):o(t)})})}},{key:\"changeStateValueForType\",value:function(e,t,r){return new Promise(function(o,n){p.default.KooKong.changeStateValueForType(e,t,r,function(e,t){e?o(t):n(t)})})}}]),e})(),(0,n.default)(t.prototype,\"registerWithKey\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"registerWithKey\"),t.prototype),(0,n.default)(t.prototype,\"createZipACManager\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"createZipACManager\"),t.prototype),(0,n.default)(t.prototype,\"createNonACManager\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"createNonACManager\"),t.prototype),(0,n.default)(t.prototype,\"removeACManager\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"removeACManager\"),t.prototype),(0,n.default)(t.prototype,\"canControlWithType\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"canControlWithType\"),t.prototype),(0,n.default)(t.prototype,\"getCurrentValueWithType\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"getCurrentValueWithType\"),t.prototype),(0,n.default)(t.prototype,\"getAllSupportValueWithType\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"getAllSupportValueWithType\"),t.prototype),(0,n.default)(t.prototype,\"changeStateValueForType\",[a.report],Object.getOwnPropertyDescriptor(t.prototype,\"changeStateValueForType\"),t.prototype),t);exports.default=u;","miot-sdk/service/kookong.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.BleSpecOpCode=void 0;var r,o=e(require(\"@babel/runtime/helpers/createClass\")),p=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),u=t(require(\"../../native\")),n=require(\"../../decorator/ReportDecorator\"),a=function e(){(0,i.default)(this,e)};exports.BleSpecOpCode=a,a.set_properties=0,a.set_properties_rsp=1,a.get_properties=2,a.get_properties_rsp=3,a.properties_changed=4,a.action=5,a.action_rsp=6,a.event_occured=7;var s=new(r=(function(){function e(){(0,i.default)(this,e)}return(0,o.default)(e,[{key:\"doSpecOperation\",value:function(e,t,r){return new Promise(function(o,p){u.default.MIOTBluetooth.doSpecOperation(e,t,r,function(e,t){e?o(t):p(t)})})}},{key:\"setPropertiesValue\",value:function(e,t){return this.doSpecOperation(e,a.set_properties,t)}},{key:\"getPropertiesValue\",value:function(e,t){return this.doSpecOperation(e,a.get_properties,t)}},{key:\"doAction\",value:function(e,t){return this.doSpecOperation(e,a.action,t)}}]),e})(),(0,p.default)(r.prototype,\"setPropertiesValue\",[n.report],Object.getOwnPropertyDescriptor(r.prototype,\"setPropertiesValue\"),r.prototype),(0,p.default)(r.prototype,\"getPropertiesValue\",[n.report],Object.getOwnPropertyDescriptor(r.prototype,\"getPropertiesValue\"),r.prototype),(0,p.default)(r.prototype,\"doAction\",[n.report],Object.getOwnPropertyDescriptor(r.prototype,\"doAction\"),r.prototype),r);exports.default=s;","miot-sdk/device/bluetooth/blespec.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ClassicBluetoothEvent=exports.default=void 0;var t=e(require(\"./device/bluetooth/ClassicDevice\")),r=t.default;exports.default=r;var o=t.ClassicBluetoothEvent;exports.ClassicBluetoothEvent=o;","miot-sdk/ClassicBluetooth.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r,i=e(require(\"@babel/runtime/helpers/objectSpread\")),o=e(require(\"@babel/runtime/helpers/classCallCheck\")),c=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),s=t(require(\"./../native\")),u=require(\"./BasicDevice\"),p=require(\"../decorator/ReportDecorator\"),l=(r=(function(){function e(t,r){(0,o.default)(this,e),s.Properties.of(this).did=t,s.Properties.of(this).originDevice=r}return(0,c.default)(e,[{key:\"getSubDevices\",value:function(){var e=this,t=(0,u._find_device)(this.deviceID).device,r=s.Properties.of(t);return r.parentDevice&&Object.keys(r.parentDevice).length>0?Promise.reject('parent device exist, current device is a sub device, can not load sub devices'):r._subDevices?Promise.resolve(r._subDevices):new Promise(function(t,o){s.isIOS?s.default.MIOTDevice.loadSubDevices(e.deviceID,function(c,n){c&&n?(console.log(\"devices:\",n),r._subDevices=n.map(function(t){return s.Properties.init(new u.BasicDevice,(0,i.default)({},t,{_parentDeviceID:e.deviceID,_parentDevice:e.originDevice,_msgset:new Set,_pollMsgSet:new u.PollPropMap}))}),t(r._subDevices)):o(n)}):s.default.MIOTDevice.loadSubDevices(e.deviceID,function(c){c&&c.ok&&c.result?(console.log(\"devices:\",c),r._subDevices=c.result.map(function(t){return s.Properties.init(new u.BasicDevice,(0,i.default)({},t,{_parentDeviceID:e.deviceID,_parentDevice:e,_msgset:new Set,_pollMsgSet:new u.PollPropMap}))}),t(r._subDevices)):o(c)})})}},{key:\"supportModelToConnect\",value:function(){}},{key:\"getLinkedBTDevices\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e=e||this.deviceID,new Promise(function(t,r){s.default.MIOTDevice.getLinkedBTDevices(e,function(e,i){if(!e||!i)return r({code:-1,error:i,extra:'fetch bledevice info failed'});t(i)})})}},{key:\"deviceID\",get:function(){return s.Properties.of(this).did}},{key:\"originDevice\",get:function(){return s.Properties.of(this).originDevice}}]),e})(),(0,n.default)(r.prototype,\"getSubDevices\",[p.report],Object.getOwnPropertyDescriptor(r.prototype,\"getSubDevices\"),r.prototype),(0,n.default)(r.prototype,\"supportModelToConnect\",[p.report],Object.getOwnPropertyDescriptor(r.prototype,\"supportModelToConnect\"),r.prototype),(0,n.default)(r.prototype,\"getLinkedBTDevices\",[p.report],Object.getOwnPropertyDescriptor(r.prototype,\"getLinkedBTDevices\"),r.prototype),r);exports.default=l;","miot-sdk/device/gateway.js"],["'use strict';var e=require('react-native/Libraries/Image/AssetRegistry'),t=require('react-native').NativeModules,r=require('./resolve');t.MIOTPackage&&r(t.MIOTPackage.basePath,t.MIOTPackage.localFilePath,t.MIOTPackage.plugPath),module.exports={registerAsset:function(t){return t._miot_base_bundle=!0,e.registerAsset(t)},getAssetByID:function(t){return e.getAssetByID(t)}};","miot-sdk/native/common/node/assets.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=e(require(\"@babel/runtime/helpers/classCallCheck\")),t=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),a=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=e(require(\"@babel/runtime/helpers/inherits\"));require(\"gl-react-native\"),require(\"react-navigation\"),require(\"react-native-ui-kitten\"),require(\"victory-native\"),require(\"react-native-svg\"),require(\"rmc-date-picker\");var u=require(\"react-native\"),l=e(require(\"react\"));require(\"deprecated-react-native-listview\"),require(\"react-native/Libraries/Components/StatusBar/StatusBar.js\"),require(\"react-native/Libraries/ART/ReactNativeART\"),require(\"react-native-orientation\"),require(\"intl\"),require(\"intl-messageformat\"),require(\"gl-react\"),require(\"react-native-safe-area-view\"),require(\"react-native/Libraries/ReactNative/I18nManager\"),require(\"react-native/Libraries/Components/Touchable/TouchableHighlight\"),require(\"react-native/Libraries/Linking/Linking\"),require(\"gl-react-blur\"),require(\"react-native-progress\"),require(\"react-native-swiper\"),require(\"react-navigation/src/routers/StackRouter\"),require(\"react-navigation/src/createNavigationContainer\"),require(\"react-navigation/src/navigators/createSwitchNavigator\"),require(\"react-navigation-stack/dist/navigators/createContainedStackNavigator\"),require(\"react-native-sqlite-storage\"),require(\"miot\"),require(\"miot/ui\"),require(\"intl/locale-data/jsonp/en\"),require(\"intl/locale-data/jsonp/zh-Hans\"),require(\"intl/locale-data/jsonp/zh-Hant\"),require(\"intl/locale-data/jsonp/ko-KR\"),console.log('PluginStartTime',Date.now(),'endParseJsSDK');var c=(function(e){function c(){return(0,r.default)(this,c),(0,i.default)(this,(0,a.default)(c).apply(this,arguments))}return(0,n.default)(c,e),(0,t.default)(c,[{key:\"render\",value:function(){return l.default.createElement(u.Text,{style:{color:\"#000\",fontSize:40,flex:1,justifyContent:'center',textAlign:\"center\",textAlignVertical:\"center\"}},\" loading \")}}]),c})(l.default.Component);u.AppRegistry.registerComponent(\"sdk\",function(){return c});","miot-sdk/native/plugin/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),t=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.XimalayaEvent=exports.XimalayaRequest=void 0;var a,r=e(require(\"@babel/runtime/helpers/classCallCheck\")),o=e(require(\"@babel/runtime/helpers/createClass\")),l=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),p=require(\"react-native\"),i=t(require(\"./index\")),y=require(\"../decorator/ReportDecorator\"),c={CategoriesList:0,TagsList:1,AlbumsList:2,AlbumsBrowse:3,AlbumsBatch:4,AlbumsUpdateBatch:5,TracksHot:6,TracksBatch:7,TrackGetLastPlay:8,MetadataList:9,MetadataAlbums:10,LiveProvince:11,LiveRadio:12,LiveSchedule:13,LiveProgram:14,LiveCity:15,LiveRadioOfCity:16,LiveRadioByID:17,LiveRadioCategories:18,LiveGetRadiosByCategory:19,SearchAlbums:20,SearchTracks:21,SearchHotWords:22,SearchSuggestWords:23,SearchRadios:24,SearchAll:25,SearchAnnouncers:26,AlbumsRelative:27,TracksRelativeAlbum:28,AlbumsRecommendDownload:29,AlbumsGuessLike:30,DiscoveryRecommendAlbums:31,CategoryRecommendAlbums:32,RankList:33,RankAlbum:34,RankTrack:35,RankRadio:36,ColumnList:37,ColumnDetail:38,RankBanner:39,DiscoveryBanner:40,CategoryBanner:41};exports.XimalayaRequest=c,Object.freeze(c);var u={TrackPlayerDelegate:{addListener:function(e){return p.DeviceEventEmitter.addListener('MHEventXimalayaTrackPlayerDelegate',e)}},LivePlayerDelegate:{addListener:function(e){return p.DeviceEventEmitter.addListener('MHEventXimalayaLivePlayerDelegate',e)}}};exports.XimalayaEvent=u,Object.freeze(u);var n=new(a=(function(){function e(){(0,r.default)(this,e)}return(0,o.default)(e,[{key:\"registry\",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"\";return i.isAndroid?new Promise(function(a){i.default.MIOTXimalaya.registry(e,t,r),a(\"finish\")}):new Promise(function(r,o){-1!=a?i.default.MIOTXimalaya.registerForMiHomeWithType(a,function(e){e.reqOK?r(e):o(e)}):i.default.MIOTXimalaya.registry(e,t,function(e){e.reqOK?r(e):o(e)})})}},{key:\"request\",value:function(e,t){return new Promise(function(a,r){i.default.MIOTXimalaya.requestXMData(e,t,function(e,t){t?r(t):a(e)})})}},{key:\"requestByAndroid\",value:function(e,t,a){return new Promise(function(r,o){i.default.MIOTXimalaya.requestXMData(e,t,a,function(e,t){t?o(t):r(e)})})}},{key:\"setPlayMode\",value:function(e){i.default.MIOTXimalaya.setPlayMode(e)}},{key:\"setVolume\",value:function(e){i.default.MIOTXimalaya.setVolume(e)}},{key:\"playWithTrack\",value:function(e,t){i.default.MIOTXimalaya.playWithTrack(e,t)}},{key:\"pauseTrackPlay\",value:function(){i.default.MIOTXimalaya.pauseTrackPlay()}},{key:\"resumeTrackPlay\",value:function(){i.default.MIOTXimalaya.resumeTrackPlay()}},{key:\"stopTrackPlay\",value:function(){i.default.MIOTXimalaya.stopTrackPlay()}},{key:\"replacePlayList\",value:function(e){i.default.MIOTXimalaya.replacePlayList(e)}},{key:\"playNextTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.playNextTrackWithCallback(e)}},{key:\"playPrevTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.playPrevTrackWithCallback(e)}},{key:\"setAutoNexTrack\",value:function(e){i.default.MIOTXimalaya.setAutoNexTrack(e)}},{key:\"playListWithCallback\",value:function(e){i.default.MIOTXimalaya.playListWithCallback(e)}},{key:\"nextTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.nextTrackWithCallback(e)}},{key:\"prevTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.prevTrackWithCallback(e)}},{key:\"seekToTime\",value:function(e){i.default.MIOTXimalaya.seekToTime(e)}},{key:\"clearCacheSafely\",value:function(){i.default.MIOTXimalaya.clearCacheSafely()}},{key:\"setTrackPlayMode\",value:function(e){i.default.MIOTXimalaya.setTrackPlayMode(e)}},{key:\"currentTrackWithCallback\",value:function(e){i.default.MIOTXimalaya.currentTrackWithCallback(e)}},{key:\"startLivePlayWithRadio\",value:function(e){i.default.MIOTXimalaya.startLivePlayWithRadio(e)}},{key:\"pauseLivePlay\",value:function(){i.default.MIOTXimalaya.pauseLivePlay()}},{key:\"resumeLivePlay\",value:function(){i.default.MIOTXimalaya.resumeLivePlay()}},{key:\"stopLivePlay\",value:function(){i.default.MIOTXimalaya.stopLivePlay()}},{key:\"startHistoryLivePlayWithRadio\",value:function(e,t){i.default.MIOTXimalaya.startHistoryLivePlayWithRadio(e,t)}},{key:\"startHistoryLivePlayWithRadioInProgramList\",value:function(e,t,a){i.default.MIOTXimalaya.startHistoryLivePlayWithRadioInProgramList(e,t,a)}},{key:\"seekHistoryLivePlay\",value:function(e,t){i.default.MIOTXimalaya.seekHistoryLivePlay(e,t)}},{key:\"playNextProgram\",value:function(){i.default.MIOTXimalaya.playNextProgram()}},{key:\"playPreProgram\",value:function(){i.default.MIOTXimalaya.playPreProgram()}},{key:\"forceClearCacheDataForPath\",value:function(e,t){i.default.MIOTXimalaya.forceClearCacheDataForPath(e,t)}},{key:\"currentPlayingRadioWithCallback\",value:function(e){i.default.MIOTXimalaya.currentPlayingRadioWithCallback(e)}},{key:\"currentPlayingProgramWithCallback\",value:function(e){i.default.MIOTXimalaya.currentPlayingProgramWithCallback(e)}}]),e})(),(0,l.default)(a.prototype,\"registry\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"registry\"),a.prototype),(0,l.default)(a.prototype,\"request\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"request\"),a.prototype),(0,l.default)(a.prototype,\"requestByAndroid\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"requestByAndroid\"),a.prototype),(0,l.default)(a.prototype,\"setPlayMode\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"setPlayMode\"),a.prototype),(0,l.default)(a.prototype,\"setVolume\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"setVolume\"),a.prototype),(0,l.default)(a.prototype,\"playWithTrack\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playWithTrack\"),a.prototype),(0,l.default)(a.prototype,\"pauseTrackPlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"pauseTrackPlay\"),a.prototype),(0,l.default)(a.prototype,\"resumeTrackPlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"resumeTrackPlay\"),a.prototype),(0,l.default)(a.prototype,\"stopTrackPlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"stopTrackPlay\"),a.prototype),(0,l.default)(a.prototype,\"replacePlayList\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"replacePlayList\"),a.prototype),(0,l.default)(a.prototype,\"playNextTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playNextTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"playPrevTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playPrevTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"setAutoNexTrack\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"setAutoNexTrack\"),a.prototype),(0,l.default)(a.prototype,\"playListWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playListWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"nextTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"nextTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"prevTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"prevTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"seekToTime\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"seekToTime\"),a.prototype),(0,l.default)(a.prototype,\"clearCacheSafely\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"clearCacheSafely\"),a.prototype),(0,l.default)(a.prototype,\"setTrackPlayMode\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"setTrackPlayMode\"),a.prototype),(0,l.default)(a.prototype,\"currentTrackWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"currentTrackWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"startLivePlayWithRadio\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"startLivePlayWithRadio\"),a.prototype),(0,l.default)(a.prototype,\"pauseLivePlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"pauseLivePlay\"),a.prototype),(0,l.default)(a.prototype,\"resumeLivePlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"resumeLivePlay\"),a.prototype),(0,l.default)(a.prototype,\"stopLivePlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"stopLivePlay\"),a.prototype),(0,l.default)(a.prototype,\"startHistoryLivePlayWithRadio\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"startHistoryLivePlayWithRadio\"),a.prototype),(0,l.default)(a.prototype,\"startHistoryLivePlayWithRadioInProgramList\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"startHistoryLivePlayWithRadioInProgramList\"),a.prototype),(0,l.default)(a.prototype,\"seekHistoryLivePlay\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"seekHistoryLivePlay\"),a.prototype),(0,l.default)(a.prototype,\"playNextProgram\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playNextProgram\"),a.prototype),(0,l.default)(a.prototype,\"playPreProgram\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"playPreProgram\"),a.prototype),(0,l.default)(a.prototype,\"forceClearCacheDataForPath\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"forceClearCacheDataForPath\"),a.prototype),(0,l.default)(a.prototype,\"currentPlayingRadioWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"currentPlayingRadioWithCallback\"),a.prototype),(0,l.default)(a.prototype,\"currentPlayingProgramWithCallback\",[y.report],Object.getOwnPropertyDescriptor(a.prototype,\"currentPlayingProgramWithCallback\"),a.prototype),a);exports.default=n;","miot-sdk/native/xmly.js"],["","miot-sdk/service/alarmPhone.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").BlankPage;exports.default=e;","miot-sdk/ui/BlankPage.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.MISSAudioChannel=exports.MISSDataBits=exports.MISSSampleRate=exports.MISSCodec=void 0;var a,r,o,t=e(require(\"@babel/runtime/helpers/objectSpread\")),n=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/classCallCheck\")),d=e(require(\"@babel/runtime/helpers/createClass\")),u=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),l=e(require(\"@babel/runtime/helpers/inherits\")),c=e(require(\"@babel/runtime/helpers/applyDecoratedDescriptor\")),m=e(require(\"prop-types\")),p=e(require(\"react\")),f=require(\"react-native\"),M=require(\"miot\"),O=require(\"../decorator/ReportDecorator\"),C=(0,f.requireNativeComponent)('MHCameraOpenGLView'),S={MISS_CODEC_VIDEO_H264:4,MISS_CODEC_VIDEO_H265:5,MISS_CODEC_AUDIO_G711A:1027,MISS_CODEC_AUDIO_AAC:1030};exports.MISSCodec=S,Object.freeze(S);var A={FLAG_AUDIO_SAMPLE_8K:0,FLAG_AUDIO_SAMPLE_16K:3};exports.MISSSampleRate=A,Object.freeze(A);var _={FLAG_AUDIO_DATABITS_8:0,FLAG_AUDIO_DATABITS_16:1};exports.MISSDataBits=_,Object.freeze(_);var I={FLAG_AUDIO_CHANNEL_MONO:0,FLAG_AUDIO_CHANNEL_STERO:1};exports.MISSAudioChannel=I,Object.freeze(I);var L=(o=r=(function(e){function a(){return(0,i.default)(this,a),(0,u.default)(this,(0,s.default)(a).apply(this,arguments))}return(0,l.default)(a,e),(0,d.default)(a,[{key:\"render\",value:function(){var e=this,a=this.props.did||M.Device.deviceID;return p.default.createElement(C,(0,n.default)({ref:function(a){e.cameraGLView=a},did:a},this.props))}},{key:\"startRender\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.startRender,[]):f.NativeModules.MHCameraOpenGLViewManager.startRender((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"stopRender\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.stopRender,[]):f.NativeModules.MHCameraOpenGLViewManager.stopRender((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"startAudioPlay\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.startAudioPlay,[]):f.NativeModules.MHCameraOpenGLViewManager.startAudioPlay((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"stopAudioPlay\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.stopAudioPlay,[]):f.NativeModules.MHCameraOpenGLViewManager.stopAudioPlay((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"startAudioRecord\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.startAudioRecord,[]):f.NativeModules.MHCameraOpenGLViewManager.startAudioRecord((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"stopAudioRecord\",value:function(){'android'===f.Platform.OS?f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.stopAudioRecord,[]):f.NativeModules.MHCameraOpenGLViewManager.stopAudioRecord((0,f.findNodeHandle)(this.cameraGLView))}},{key:\"hidesSurfaceView\",value:function(){'android'===f.Platform.OS&&f.UIManager.dispatchViewManagerCommand((0,f.findNodeHandle)(this.cameraGLView),f.UIManager.MHCameraOpenGLView.Commands.hidesSurfaceView,[])}},{key:\"startRecord\",value:function(e,a){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:M.Device.deviceID;return'android'===f.Platform.OS?new Promise(function(t,n){f.NativeModules.MHCameraSDK.startRecord(o,e,a,r.props.videoCodec,r.props.audioRecordSampleRate,function(e,a){e?t(a):n(a)})}):new Promise(function(o,t){f.NativeModules.MHCameraOpenGLViewManager.startRecord((0,f.findNodeHandle)(r.cameraGLView),e,a,function(e,a){e?o(a):t(a)})})}},{key:\"stopRecord\",value:function(){var e=this,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:M.Device.deviceID;return'android'===f.Platform.OS?new Promise(function(e,r){f.NativeModules.MHCameraSDK.stopRecord(a,function(a,o){a?e(o):r(o)})}):new Promise(function(a,r){f.NativeModules.MHCameraOpenGLViewManager.stopRecord((0,f.findNodeHandle)(e.cameraGLView),function(e,o){e?a(o):r(o)})})}},{key:\"snapShot\",value:function(e){var a=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:M.Device.deviceID;return'android'===f.Platform.OS?new Promise(function(a,o){f.NativeModules.MHCameraSDK.snapShot(r,e,function(e){e?(console.log('snapShot success!'),a()):(console.log('snapShot failed!'),o())})}):new Promise(function(r,o){f.NativeModules.MHCameraOpenGLViewManager.snapShot((0,f.findNodeHandle)(a.cameraGLView),e,function(e){e?r():o()})})}}]),a})(p.default.Component),r.propTypes=(0,t.default)({videoCodec:m.default.oneOf([S.MISS_CODEC_VIDEO_H264,S.MISS_CODEC_VIDEO_H265]),audioCodec:m.default.oneOf([S.MISS_CODEC_AUDIO_G711A,S.MISS_CODEC_AUDIO_AAC]),audioRecordSampleRate:m.default.oneOf([A.FLAG_AUDIO_SAMPLE_8K,A.FLAG_AUDIO_SAMPLE_16K]),audioRecordChannel:m.default.oneOf([I.FLAG_AUDIO_CHANNEL_MONO,I.FLAG_AUDIO_CHANNEL_STERO]),audioRecordDataBits:m.default.oneOf([_.FLAG_AUDIO_DATABITS_8,_.FLAG_AUDIO_DATABITS_16]),videoRate:m.default.number,maximumZoomScale:m.default.number,minimumZoomScale:m.default.number,scale:m.default.number,useLenCorrent:m.default.bool,correctRadius:m.default.number,osdx:m.default.number,osdy:m.default.number,fullscreenState:m.default.bool,forceSoftDecode:m.default.bool,recordingVideoParam:m.default.object,isFull:m.default.bool,onVideoClick:m.default.func},f.ViewPropTypes),a=o,(0,c.default)(a.prototype,\"startRecord\",[O.report],Object.getOwnPropertyDescriptor(a.prototype,\"startRecord\"),a.prototype),(0,c.default)(a.prototype,\"stopRecord\",[O.report],Object.getOwnPropertyDescriptor(a.prototype,\"stopRecord\"),a.prototype),a);exports.default=L;","miot-sdk/ui/CameraRenderView.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/components/card/Card\")).default;exports.default=r;","miot-sdk/ui/Card/Card.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/components/card/CardBase\")).default;exports.default=r;","miot-sdk/ui/Card/CardBase.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/components/card/MHCard\")).default;exports.default=r;","miot-sdk/ui/Card/MHCard.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/components/card/ModeCard\")).default;exports.default=r;","miot-sdk/ui/Card/ModeCard.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"./Card\")).default;exports.default=r;","miot-sdk/ui/Card/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/components/checkbox/Checkable\")).default;exports.default=r;","miot-sdk/ui/Checkbox/Checkable.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").Checkbox;exports.default=e;","miot-sdk/ui/Checkbox/Checkbox.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"./Checkbox\")).default;exports.default=r;","miot-sdk/ui/Checkbox/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=exports.secondAllOptions=exports.firstAllOptions=exports.SETTING_KEYS=exports.AllOptions=void 0;var t,i,n,o=e(require(\"@babel/runtime/helpers/extends\")),r=e(require(\"@babel/runtime/helpers/toConsumableArray\")),l=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/createClass\")),c=e(require(\"@babel/runtime/helpers/inherits\")),p=e(require(\"@babel/runtime/helpers/defineProperty\")),d=e(require(\"@babel/runtime/helpers/objectSpread\")),f=require(\"miot\"),m=e(require(\"prop-types\")),S=e(require(\"react\")),g=require(\"react-native\"),E=require(\"react-native-ui-kitten\"),y=require(\"../../resources\"),h=e(require(\"../ListItem/ListItem\")),v=(e(require(\"../Separator\")),require(\"../../utils/accessibility-helper\")),O=require(\"../../decorator/ReportDecorator\"),R='';function A(){return new Promise(function(e){R?e(R):f.Service.spec.getSpecString(f.Device.deviceID).then(function(t){if('string'==typeof t&&(t=JSON.parse(t)),t&&t.type)return R=t.type.split(':')[3],void e(R);e(f.Device.model?f.Device.model.split('.')[1]:'')}).catch(function(){e(f.Device.model?f.Device.model.split('.')[1]:'')})})}A().then(function(){}).catch(function(){});var D=(0,d.default)({},{MEMBER_SET:'memberSet',SHARE:'share',BTGATEWAY:'btGateway',VOICE_AUTH:'voiceAuth',IFTTT:'ifttt',FIRMWARE_UPGRADE:'firmwareUpgrade',CREATE_GROUP:'createGroup',MANAGE_GROUP:'manageGroup'},{NAME:'name',LOCATION:'location',HELP:'help',MORE:'more',SECURITY:'security',LEGAL_INFO:'legalInfo'}),b=(0,d.default)({},{AUTO_UPGRADE:'autoUpgrade',TIMEZONE:'timezone',USER_EXPERIENCE_PROGRAM:'userExperienceProgram'},{PLUGIN_VERSION:'pluginVersion',CHECK_UPGRADE:'checkUpgrade',SECURITY:'security',FEEDBACK:'feedback',ADD_TO_DESKTOP:'addToDesktop',USER_AGREEMENT:'userAgreement',PRIVACY_POLICY:'privacyPolicy'}),T=(0,d.default)({},D,b);exports.AllOptions=T;var P={first_options:T,second_options:T};exports.SETTING_KEYS=P;var _=T;exports.firstAllOptions=_;var C=T;exports.secondAllOptions=C;var U=(t={},(0,p.default)(t,T.NAME,0),(0,p.default)(t,T.MEMBER_SET,0),(0,p.default)(t,T.LOCATION,0),(0,p.default)(t,T.SHARE,0),(0,p.default)(t,T.BTGATEWAY,0),(0,p.default)(t,T.VOICE_AUTH,0),(0,p.default)(t,T.IFTTT,0),(0,p.default)(t,T.FIRMWARE_UPGRADE,0),(0,p.default)(t,T.CREATE_GROUP,0),(0,p.default)(t,T.MANAGE_GROUP,0),(0,p.default)(t,T.MORE,1),(0,p.default)(t,T.HELP,1),(0,p.default)(t,T.SECURITY,0),(0,p.default)(t,T.LEGAL_INFO,0),t),w=(i={},(0,p.default)(i,T.NAME,0),(0,p.default)(i,T.CREATE_GROUP,1),(0,p.default)(i,T.MANAGE_GROUP,1),(0,p.default)(i,T.MEMBER_SET,3),(0,p.default)(i,T.LOCATION,6),(0,p.default)(i,T.SHARE,9),(0,p.default)(i,T.IFTTT,18),(0,p.default)(i,T.FIRMWARE_UPGRADE,21),(0,p.default)(i,T.HELP,24),(0,p.default)(i,T.MORE,27),(0,p.default)(i,T.SECURITY,28),i),I=(n={},(0,p.default)(n,T.NAME,[]),(0,p.default)(n,T.MEMBER_SET,[]),(0,p.default)(n,T.LOCATION,[]),(0,p.default)(n,T.SHARE,[]),(0,p.default)(n,T.BTGATEWAY,[]),(0,p.default)(n,T.VOICE_AUTH,[]),(0,p.default)(n,T.IFTTT,[]),(0,p.default)(n,T.FIRMWARE_UPGRADE,[]),(0,p.default)(n,T.CREATE_GROUP,['17']),(0,p.default)(n,T.MANAGE_GROUP,[]),(0,p.default)(n,T.MORE,[]),(0,p.default)(n,T.HELP,[]),(0,p.default)(n,T.SECURITY,[]),(0,p.default)(n,T.LEGAL_INFO,['5','15','17']),n),G=(function(e){function t(e,i){var n;return(0,l.default)(this,t),n=(0,a.default)(this,(0,s.default)(t).call(this,e,i)),(0,O.referenceReport)('CommonSetting'),n.state={name:f.Device.name,showDot:Array.isArray(e.showDot)?e.showDot:[],modelType:R},console.log(\"Device.type: \"+f.Device.type),n.commonSetting=n.getCommonSetting(n.state),n}return(0,c.default)(t,e),(0,u.default)(t,[{key:\"getCommonSetting\",value:function(e){var t,i=this,n=(e||{}).modelType;n||(n=' ');var o=(t={},(0,p.default)(t,T.NAME,{title:y.strings.name,value:e.name,onPress:function(){return f.Host.ui.openChangeDeviceName()}}),(0,p.default)(t,T.LOCATION,{title:y.strings.location,onPress:function(){return f.Host.ui.openRoomManagementPage()}}),(0,p.default)(t,T.MEMBER_SET,{title:y.strings.memberSet,onPress:function(){return f.Host.ui.openPowerMultikeyPage(f.Device.deviceID,f.Device.mac)}}),(0,p.default)(t,T.SHARE,{title:y.strings.share,onPress:function(){return f.Host.ui.openShareDevicePage()}}),(0,p.default)(t,T.IFTTT,{title:y.strings.ifttt,onPress:function(){return f.Host.ui.openIftttAutoPage()}}),(0,p.default)(t,T.HELP,{title:y.strings.helpAndFeedback,onPress:function(){return f.Host.ui.openHelpPage()}}),(0,p.default)(t,T.FIRMWARE_UPGRADE,{title:y.strings.firmwareUpgrade,onPress:function(){return i.chooseFirmwareUpgrade()}}),(0,p.default)(t,T.CREATE_GROUP,{title:y.strings[\"create\"+n[0].toUpperCase()+n.slice(1)+\"Group\"],onPress:function(){return i.createGroup()}}),(0,p.default)(t,T.MANAGE_GROUP,{title:y.strings[\"manage\"+n[0].toUpperCase()+n.slice(1)+\"Group\"],onPress:function(){return i.manageGroup()}}),(0,p.default)(t,T.MORE,{title:y.strings.more,onPress:function(){return i.openSubPage('MoreSetting')}}),t);return-1!==['lock','safe-box'].indexOf(n)&&(o[T.SECURITY]={title:y.strings.security,onPress:function(){return f.Host.ui.openSecuritySetting()}}),o}}]),(0,u.default)(t,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){this.setState({showDot:e.showDot})}},{key:\"chooseFirmwareUpgrade\",value:function(){var e=this.props.extraOptions,t=e.showUpgrade,i=e.upgradePageKey,n=e.bleOtaAuthType,o=this.state.modelType;if(f.Device.needUpgrade=!1,!1===t){if(void 0===i)return void(__DEV__&&console.warn&&console.warn('\\u8bf7\\u5728 extraOptions.upgradePageKey \\u4e2d\\u586b\\u5199\\u4f60\\u60f3\\u8df3\\u8f6c\\u7684\\u56fa\\u4ef6\\u5347\\u7ea7\\u9875\\u9762, \\u4f20\\u7ed9 CommonSetting \\u7ec4\\u4ef6'));if('string'!=typeof i)return void(__DEV__&&console.warn&&console.warn('upgradePageKey \\u5fc5\\u987b\\u662f\\u5b57\\u7b26\\u4e32, \\u662f\\u4f60\\u5728 index.js \\u7684 RootStack \\u4e2d\\u5b9a\\u4e49\\u7684\\u9875\\u9762 key'));this.removeKeyFromShowDot(T.FIRMWARE_UPGRADE),this.openSubPage(i,{}),__DEV__&&console.warn&&console.warn('\\u84dd\\u7259\\u7edf\\u4e00OTA\\u754c\\u9762\\u6b63\\u5728\\u706b\\u70ed\\u5f00\\u53d1\\u4e2d')}else this.removeKeyFromShowDot(T.FIRMWARE_UPGRADE),'16'===f.Device.type?f.Host.ui.openBleMeshDeviceUpgradePage():'17'===f.Device.type&&-1!==['light'].indexOf(o)?f.Host.ui.openLightGroupUpgradePage():[0,1,4,5].includes(n)?f.Host.ui.openBleCommonDeviceUpgradePage({auth_type:n}):f.Host.ui.openDeviceUpgradePage()}},{key:\"createGroup\",value:function(){f.Host.ui.openMeshDeviceGroupPage('add',f.Device.deviceID,2)}},{key:\"manageGroup\",value:function(){f.Host.ui.openMeshDeviceGroupPage('edit',f.Device.deviceID,2)}},{key:\"removeKeyFromShowDot\",value:function(e){var t=(0,r.default)(this.state.showDot),i=t.indexOf(e);-1!==i?(t.splice(i,1),this.setState({showDot:t})):e===T.FIRMWARE_UPGRADE&&this.forceUpdate()}},{key:\"openSubPage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{networkInfoConfig:this.props.extraOptions.networkInfoConfig,syncDevice:this.props.extraOptions.syncDevice,secondOptions:[].concat((0,r.default)(this.props.firstOptions||[]),(0,r.default)(this.props.secondOptions||[])),excludeRequiredOptions:this.props.extraOptions.excludeRequiredOptions,extraOptions:this.props.extraOptions},i=t.excludeRequiredOptions||[];this.props.navigation?this.props.navigation.navigate(e,(0,d.default)({},t,{commonSettingStyle:this.props.commonSettingStyle,excludeRequiredOptions:-1!==['lock','safe-box'].indexOf(this.state.modelType)&&-1===i.indexOf(T.SECURITY)?[].concat((0,r.default)(i),[T.SECURITY]):i})):__DEV__&&console.warn&&console.warn(\"props 'navigation' is required for CommonSetting\")}},{key:\"openDeleteDevice\",value:function(){var e=this.props.extraOptions.deleteDeviceMessage;f.Host.ui.openDeleteDevice(e)}},{key:\"componentDidMount\",value:function(){var e=this;A().then(function(t){e.commonSetting=e.getCommonSetting((0,d.default)({},e.state,{modelType:t})),e.setState({modelType:t})}).catch(function(){})}},{key:\"render\",value:function(){var e=this,t=this.state.modelType,i={};'android'===g.Platform.OS&&(i={fontFamily:'Kmedium'});var n=[T.NAME,T.LOCATION];-1===['6','17'].indexOf(f.Device.type)&&-1!==['light'].indexOf(t)&&n.push(T.CREATE_GROUP),'17'===f.Device.type&&-1!==['light'].indexOf(t)&&n.push(T.MANAGE_GROUP);var l=[T.MORE,T.HELP,T.SECURITY],a=[].concat((0,r.default)(this.props.firstOptions||[]),(0,r.default)(this.props.secondOptions||[])).filter(function(e){return e&&Object.values(T).includes(e)});a=(0,r.default)(new Set(a));var s=[].concat(n,(0,r.default)(a),l);s=(0,r.default)(new Set(s)),!1===f.Device.isOwner&&(s=s.filter(function(e){return U[e]})),s=s.filter(function(e){return!(I[e]||[]).includes(f.Device.type)});var u=this.props.extraOptions.excludeRequiredOptions;u instanceof Array&&(s=s.filter(function(e){return!(u||[]).includes(e)})),s.sort(function(e,t){return(w[e]||0)-(w[t]||0)});var c=s.map(function(t){var i=e.commonSetting[t];return i&&(i.showDot=(e.state.showDot||[]).includes(t),t!==T.FIRMWARE_UPGRADE||i.showDot||(i.showDot=f.Device.needUpgrade)),i}).filter(function(e){return!!e}),p=this._getCommonSettingStyle();return S.default.createElement(g.View,{style:x.container},S.default.createElement(g.View,{style:x.titleContainer},S.default.createElement(g.Text,{style:[x.title,p.titleStyle],allowFontScaling:p.allowFontScaling},y.strings.commonSetting)),c.map(function(t,i){if(!t||!t.title)return null;return S.default.createElement(h.default,(0,o.default)({key:t.title,title:t.title||'',allowFontScaling:p.itemStyle.allowFontScaling,unlimitedHeightEnable:p.itemStyle.unlimitedHeightEnable,titleStyle:p.itemStyle.titleStyle,subtitleStyle:p.itemStyle.subtitleStyle,valueStyle:p.itemStyle.valueStyle,dotStyle:p.itemStyle.dotStyle,titleNumberOfLines:p.itemStyle.titleNumberOfLines,subtitleNumberOfLines:p.itemStyle.subtitleNumberOfLines,valueNumberOfLines:p.itemStyle.valueNumberOfLines,showDot:t.showDot||!1,value:t.value,showSeparator:!1,onPress:t.onPress},(0,v.getAccessibilityConfig)({accessible:e.props.accessible})))}),f.Device.isFamily?null:S.default.createElement(g.View,(0,o.default)({style:x.bottomContainer},(0,v.getAccessibilityConfig)({accessible:this.props.accessible,accessibilityRole:v.AccessibilityRoles.button})),S.default.createElement(E.RkButton,{style:x.buttonContainer,onPress:function(){return e.openDeleteDevice()},activeOpacity:.8},S.default.createElement(g.Text,{style:[x.buttonText,i,p.deleteTextStyle],allowFontScaling:p.allowFontScaling},'17'===f.Device.type&&f.Device.isOwner?y.strings[\"delete\"+(f.Device.model||'').split('.')[1][0].toUpperCase()+(f.Device.model||'').split('.')[1].slice(1)+\"Group\"]:y.strings.deleteDevice))))}},{key:\"_getCommonSettingStyle\",value:function(){var e={allowFontScaling:!0,unlimitedHeightEnable:!1,titleStyle:{},itemStyle:{allowFontScaling:!0,unlimitedHeightEnable:!1,titleStyle:null,subtitleStyle:null,valueStyle:null,dotStyle:null,titleNumberOfLines:1,subtitleNumberOfLines:2,valueNumberOfLines:2},deleteTextStyle:{}};return this.props.commonSettingStyle&&(this.props.commonSettingStyle.hasOwnProperty('allowFontScaling')&&(e.allowFontScaling=this.props.commonSettingStyle.allowFontScaling),this.props.commonSettingStyle.hasOwnProperty('unlimitedHeightEnable')&&(e.unlimitedHeightEnable=this.props.commonSettingStyle.unlimitedHeightEnable),this.props.commonSettingStyle.hasOwnProperty('titleStyle')&&(e.titleStyle=this.props.commonSettingStyle.titleStyle),this.props.commonSettingStyle.hasOwnProperty('itemStyle')&&(e.itemStyle=this.props.commonSettingStyle.itemStyle),this.props.commonSettingStyle.hasOwnProperty('deleteTextStyle')&&(e.deleteTextStyle=this.props.commonSettingStyle.deleteTextStyle)),e.itemStyle.allowFontScaling=e.allowFontScaling,e.itemStyle.unlimitedHeightEnable=e.unlimitedHeightEnable,e}},{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;this._deviceNameChangedListener=f.DeviceEvent.deviceNameChanged.addListener(function(t){e.commonSetting=e.getCommonSetting((0,d.default)({},e.state,{name:t.name})),e.setState({name:t.name})})}},{key:\"componentWillUnmount\",value:function(){this._deviceNameChangedListener.remove()}}]),t})(S.default.Component);exports.default=G,G.propTypes={firstOptions:m.default.array,secondOptions:m.default.array,showDot:m.default.array,extraOptions:m.default.object,navigation:m.default.object.isRequired,commonSettingStyle:m.default.object,accessible:v.AccessibilityPropTypes.accessible},G.defaultProps={firstOptions:[T.SHARE,T.IFTTT,T.FIRMWARE_UPGRADE,T.SECURITY],secondOptions:[T.AUTO_UPGRADE,T.TIMEZONE,T.SECURITY,T.USER_EXPERIENCE_PROGRAM],showDot:[],extraOptions:{}};var x=g.StyleSheet.create({container:{flex:1},titleContainer:{minHeight:32,backgroundColor:'#fff',justifyContent:'center',paddingLeft:y.Styles.common.padding},title:{fontSize:11,color:'rgba(0,0,0,0.5)',lineHeight:14},bottomContainer:{minHeight:90,backgroundColor:'#fff',flexDirection:'row',justifyContent:'center',alignItems:'center'},buttonContainer:{flex:1,minHeight:46,borderRadius:23,borderWidth:.3,borderColor:'transparent',backgroundColor:'#f5f5f5',marginHorizontal:y.Styles.common.padding},buttonText:{fontSize:13,fontWeight:'bold',flex:1,textAlign:'center',color:'#F43F31',lineHeight:18}});","miot-sdk/ui/CommonSetting/CommonSetting.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").ListItem;exports.default=e;","miot-sdk/ui/ListItem/ListItem.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t=e(require(\"@babel/runtime/helpers/toConsumableArray\")),r=e(require(\"@babel/runtime/helpers/extends\")),i=e(require(\"@babel/runtime/helpers/defineProperty\")),l=e(require(\"@babel/runtime/helpers/classCallCheck\")),n=e(require(\"@babel/runtime/helpers/createClass\")),a=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/inherits\")),s=e(require(\"miot/Host\")),c=e(require(\"miot/ui/TitleBar\")),d=e(require(\"react\")),f=require(\"react-native\"),p=require(\"../../resources\"),h=require(\"../ListItem\"),m=e(require(\"../Separator\")),b=require(\"./CommonSetting\"),S=require(\"../../utils/accessibility-helper\"),g=require(\"../../decorator/ReportDecorator\"),I=b.SETTING_KEYS.second_options,T={LIST_ITEM:'ListItem',LIST_ITEM_WITH_SWITCH:'ListItemWithSwitch',LIST_ITEM_WITH_SLIDER:'ListItemWithSlider'},C=(function(e){function c(e,t){var r,n;return(0,l.default)(this,c),(n=(0,a.default)(this,(0,o.default)(c).call(this,e,t))).firmwareSetting=(r={},(0,i.default)(r,b.secondAllOptions.AUTO_UPGRADE,{type:T.LIST_ITEM_WITH_SWITCH,title:p.strings.autoUpgrade,value:!0,onValueChange:function(){__DEV__&&console.warn&&console.warn('\\u56fa\\u4ef6\\u81ea\\u52a8\\u5347\\u7ea7\\u63a5\\u53e3\\u6682\\u4e0d\\u652f\\u6301')}}),(0,i.default)(r,b.secondAllOptions.CHECK_UPGRADE,{type:T.LIST_ITEM,title:p.strings.checkUpgrade,onPress:function(){return s.default.ui.openDeviceUpgradePage()}}),r),(0,g.referenceReport)('FirmwareUpgrade'),n.secondOptions=n.props.navigation.state.params.secondOptions||[b.secondAllOptions.AUTO_UPGRADE],n}return(0,u.default)(c,e),(0,n.default)(c,[{key:\"renderList\",value:function(e){return e.map(function(t,i){var l=i!==e.length-1;switch(t.type){case T.LIST_ITEM:return d.default.createElement(h.ListItem,(0,r.default)({key:t.title+i,title:t.title||'',value:t.value,onPress:t.onPress,showSeparator:l},(0,S.getAccessibilityConfig)({accessible:t.accessible})));case T.LIST_ITEM_WITH_SWITCH:return d.default.createElement(h.ListItemWithSwitch,(0,r.default)({key:t.title+i,title:t.title||'',value:t.value,onValueChange:t.onValueChange,showSeparator:l},(0,S.getAccessibilityConfig)({accessible:t.accessible})))}})}},{key:\"render\",value:function(){var e=this,r=[b.secondAllOptions.CHECK_UPGRADE],i=this.secondOptions.filter(function(e){return e&&Object.values(I).includes(e)});i=(0,t.default)(new Set(i));var l=[].concat((0,t.default)(i),r).map(function(t){return e.firmwareSetting[t]}).filter(function(e){return e});return d.default.createElement(f.View,{style:_.container},d.default.createElement(m.default,null),d.default.createElement(f.ScrollView,{showsVerticalScrollIndicator:!1},d.default.createElement(f.View,{style:[_.blank,{borderTopWidth:0}]}),this.renderList(l),d.default.createElement(m.default,null)))}}]),c})(d.default.Component);exports.default=C,C.navigationOptions=function(e){var t=e.navigation;return{header:d.default.createElement(c.default,{type:\"dark\",title:p.strings.firmwareUpgrade,style:{backgroundColor:'#fff'},onPressLeft:function(){return t.goBack()}})}};var _=f.StyleSheet.create({container:{backgroundColor:p.Styles.common.backgroundColor,flex:1},blank:{height:8,backgroundColor:p.Styles.common.backgroundColor,borderTopColor:p.Styles.common.hairlineColor,borderTopWidth:f.StyleSheet.hairlineWidth,borderBottomColor:p.Styles.common.hairlineColor,borderBottomWidth:f.StyleSheet.hairlineWidth}});","miot-sdk/ui/CommonSetting/FirmwareUpgrade.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"ListItem\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(exports,\"ListItemWithSlider\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(exports,\"ListItemWithSwitch\",{enumerable:!0,get:function(){return i.default}});var t=e(require(\"./ListItem\")),r=e(require(\"./ListItemWithSlider\")),i=e(require(\"./ListItemWithSwitch\"));","miot-sdk/ui/ListItem/index.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").ListItemWithSlider;exports.default=e;","miot-sdk/ui/ListItem/ListItemWithSlider.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").ListItemWithSwitch;exports.default=e;","miot-sdk/ui/ListItem/ListItemWithSwitch.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var t,n,i=e(require(\"@babel/runtime/helpers/extends\")),o=e(require(\"@babel/runtime/helpers/toConsumableArray\")),l=e(require(\"@babel/runtime/helpers/objectSpread\")),r=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/createClass\")),d=e(require(\"@babel/runtime/helpers/inherits\")),c=e(require(\"@babel/runtime/helpers/defineProperty\")),p=require(\"miot\"),f=e(require(\"miot/Host\")),m=e(require(\"react\")),O=require(\"react-native\"),A=require(\"../../resources\"),g=e(require(\"../ListItem/ListItem\")),S=e(require(\"../NavigationBar\")),v=e(require(\"../Separator\")),E=require(\"./CommonSetting\"),h=require(\"../../utils/accessibility-helper\"),y=require(\"../../decorator/ReportDecorator\"),b=(t={},(0,c.default)(t,E.secondAllOptions.PLUGIN_VERSION,1),(0,c.default)(t,E.secondAllOptions.ADD_TO_DESKTOP,1),(0,c.default)(t,E.secondAllOptions.AUTO_UPGRADE,1),(0,c.default)(t,E.secondAllOptions.CHECK_UPGRADE,1),(0,c.default)(t,E.secondAllOptions.PRIVACY_POLICY,1),(0,c.default)(t,E.secondAllOptions.SECURITY,0),(0,c.default)(t,E.secondAllOptions.TIMEZONE,1),(0,c.default)(t,E.secondAllOptions.VOICE_AUTH,0),(0,c.default)(t,E.secondAllOptions.BTGATEWAY,0),(0,c.default)(t,E.secondAllOptions.LEGAL_INFO,0),(0,c.default)(t,E.secondAllOptions.USER_AGREEMENT,1),(0,c.default)(t,E.secondAllOptions.USER_EXPERIENCE_PROGRAM,1),t),T=(n={},(0,c.default)(n,E.AllOptions.NAME,[]),(0,c.default)(n,E.AllOptions.MEMBER_SET,[]),(0,c.default)(n,E.AllOptions.LOCATION,[]),(0,c.default)(n,E.AllOptions.SHARE,[]),(0,c.default)(n,E.AllOptions.BTGATEWAY,[]),(0,c.default)(n,E.AllOptions.VOICE_AUTH,[]),(0,c.default)(n,E.AllOptions.IFTTT,[]),(0,c.default)(n,E.AllOptions.FIRMWARE_UPGRADE,[]),(0,c.default)(n,E.AllOptions.CREATE_GROUP,['17']),(0,c.default)(n,E.AllOptions.MANAGE_GROUP,[]),(0,c.default)(n,E.AllOptions.MORE,[]),(0,c.default)(n,E.AllOptions.HELP,[]),(0,c.default)(n,E.AllOptions.SECURITY,[]),(0,c.default)(n,E.AllOptions.LEGAL_INFO,['5','15','17']),n),P=E.SETTING_KEYS.second_options,I=(function(e){function t(e,n){var i;return(0,r.default)(this,t),i=(0,a.default)(this,(0,s.default)(t).call(this,e,n)),(0,y.referenceReport)('MoreSetting'),i.state={timeZone:p.Device.timeZone||''},i.secondOptions=i.props.navigation.state.params.secondOptions||[E.secondAllOptions.SECURITY,E.secondAllOptions.VOICE_AUTH,E.secondAllOptions.BTGATEWAY,E.secondAllOptions.TIMEZONE],i.excludeRequiredOptions=i.props.navigation.state.params.excludeRequiredOptions||[],i.extraOptions=i.props.navigation.state.params.extraOptions||{},i.moreSetting=i.getMoreSetting(i.state),i}return(0,d.default)(t,e),(0,u.default)(t,[{key:\"getMoreSetting\",value:function(e){var t,n=this,i=!!this.props.navigation.state.params.syncDevice;return t={},(0,c.default)(t,E.secondAllOptions.PLUGIN_VERSION,{title:A.strings.pluginVersion,value:String(p.Package.version),hideArrow:!0}),(0,c.default)(t,\"networkInfo\",{title:A.strings.networkInfo,onPress:function(){return f.default.ui.openDeviceNetworkInfoPage()}}),(0,c.default)(t,E.secondAllOptions.SECURITY,{title:A.strings.security,onPress:function(){return f.default.ui.openSecuritySetting()}}),(0,c.default)(t,E.secondAllOptions.VOICE_AUTH,{title:A.strings.voiceAuth,onPress:f.default.ui.openVoiceCtrlDeviceAuthPage,hide:!p.Device.isVoiceDevice}),(0,c.default)(t,E.secondAllOptions.BTGATEWAY,{title:A.strings.btGateway,onPress:f.default.ui.openBtGatewayPage}),(0,c.default)(t,E.secondAllOptions.TIMEZONE,{title:A.strings.timezone,value:e.timeZone,onPress:function(){return f.default.ui.openDeviceTimeZoneSettingPage({sync_device:i})}}),(0,c.default)(t,E.secondAllOptions.LEGAL_INFO,{title:A.strings.legalInfo,onPress:function(){return n.privacyAndProtocolReview()}}),(0,c.default)(t,E.secondAllOptions.ADD_TO_DESKTOP,{title:A.strings.addToDesktop,onPress:function(){return f.default.ui.openAddToDesktopPage()}}),t}}]),(0,u.default)(t,[{key:\"privacyAndProtocolReview\",value:function(){var e=this.extraOptions,t=e.licenseUrl,n=e.policyUrl,i=e.option;void 0===i?f.default.ui.privacyAndProtocolReview('',t,'',n):f.default.ui.previewLegalInformationAuthorization(i)}},{key:\"UNSAFE_componentWillMount\",value:function(){var e=this;this._deviceTimeZoneChangedListener=p.DeviceEvent.deviceTimeZoneChanged.addListener(function(t){e.moreSetting=e.getMoreSetting((0,l.default)({},e.state,{timeZone:t.timeZone})),e.setState({timeZone:t.timeZone})})}},{key:\"componentDidMount\",value:function(){var e=this;p.Device.getDeviceTimeZone().then(function(t){console.log(t),e.moreSetting=e.getMoreSetting((0,l.default)({},e.state,{timeZone:(t||{}).timeZone||''})),e.setState({timeZone:(t||{}).timeZone||''})}).catch(function(e){return console.log(\"\\u83b7\\u53d6\\u8bbe\\u5907\\u65f6\\u533a\\u5931\\u8d25\\uff0c\\u9519\\u8bef\\uff1a\",e)})}},{key:\"componentWillUnmount\",value:function(){this._deviceTimeZoneChangedListener.remove()}},{key:\"render\",value:function(){var e=this,t=[E.secondAllOptions.PLUGIN_VERSION,E.secondAllOptions.SECURITY],n=this.props.navigation.state.params.networkInfoConfig;1===n?t.push(\"networkInfo\"):-1!==n&&void 0!==n||['0','8'].includes(p.Device.type)&&t.push(\"networkInfo\");var l=[E.secondAllOptions.LEGAL_INFO,E.secondAllOptions.ADD_TO_DESKTOP],r=this.secondOptions.filter(function(e){return e&&Object.values(P).includes(e)});r=(0,o.default)(new Set(r));var a=[].concat(t,(0,o.default)(r),l);a=(0,o.default)(new Set(a)),!1===p.Device.isOwner&&(a=a.filter(function(e){return b[e]}));var s,u=(a=(a=a.filter(function(t){return!e.excludeRequiredOptions.includes(t)})).filter(function(e){return!(T[e]||[]).includes(p.Device.type)})).map(function(t){return e.moreSetting[t]}).filter(function(e){return e&&!e.hide});return this.props.navigation.state.params.commonSettingStyle&&this.props.navigation.state.params.commonSettingStyle.moreSettingPageStyle&&(s=this.props.navigation.state.params.commonSettingStyle.moreSettingPageStyle.itemStyle),s||(s={}),m.default.createElement(O.View,{style:C.container},m.default.createElement(v.default,null),m.default.createElement(O.ScrollView,{showsVerticalScrollIndicator:!1},m.default.createElement(O.View,{style:[C.blank,{borderTopWidth:0}]}),u.map(function(e,t){var n=t!==u.length-1;return m.default.createElement(g.default,(0,i.default)({key:e.title+t,title:e.title||'',value:e.value,onPress:e.onPress,showSeparator:n,hideArrow:e.hideArrow,allowFontScaling:s.allowFontScaling,unlimitedHeightEnable:s.unlimitedHeightEnable,titleStyle:s.titleStyle,subtitleStyle:s.subtitleStyle,valueStyle:s.valueStyle,dotStyle:s.dotStyle,titleNumberOfLines:s.titleNumberOfLines,subtitleNumberOfLines:s.subtitleNumberOfLines,valueNumberOfLines:s.valueNumberOfLines},(0,h.getAccessibilityConfig)({accessible:e.accessible})))}),m.default.createElement(v.default,null)))}}]),t})(m.default.Component);exports.default=I,I.navigationOptions=function(e){var t,n=e.navigation;return n.state.params.commonSettingStyle&&n.state.params.commonSettingStyle.moreSettingPageStyle&&(t=n.state.params.commonSettingStyle.moreSettingPageStyle.navigationBarStyle),t||(t={}),{header:m.default.createElement(S.default,(0,i.default)({backgroundColor:\"#ffffff\",type:S.default.TYPE.LIGHT,left:[{key:S.default.ICON.BACK,onPress:function(){return n.goBack()}}],title:A.strings.more},t))}};var C=O.StyleSheet.create({container:{backgroundColor:A.Styles.common.backgroundColor,flex:1},blank:{height:8,backgroundColor:A.Styles.common.backgroundColor,borderTopColor:A.Styles.common.hairlineColor,borderTopWidth:O.StyleSheet.hairlineWidth,borderBottomColor:A.Styles.common.hairlineColor,borderBottomWidth:O.StyleSheet.hairlineWidth}});","miot-sdk/ui/CommonSetting/MoreSetting.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\"),r=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"CommonSetting\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(exports,\"SETTING_KEYS\",{enumerable:!0,get:function(){return t.SETTING_KEYS}}),Object.defineProperty(exports,\"FirmwareUpgrade\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(exports,\"MoreSetting\",{enumerable:!0,get:function(){return i.default}});var t=r(require(\"./CommonSetting\")),n=e(require(\"./FirmwareUpgrade\")),i=e(require(\"./MoreSetting\"));","miot-sdk/ui/CommonSetting/index.js"],["'use strict';var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=t(require(\"@babel/runtime/helpers/classCallCheck\")),i=t(require(\"@babel/runtime/helpers/createClass\")),a=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),n=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=t(require(\"@babel/runtime/helpers/inherits\")),l=t(require(\"prop-types\")),s=e(require(\"react\")),o=require(\"react-native\"),h=(function(e){function t(e){var i;(0,r.default)(this,t),(i=(0,a.default)(this,(0,n.default)(t).call(this,e))).changeStatus=function(e,t){var r=i.state,a=r.height,n=r.opacity;o.Animated.parallel([o.Animated.timing(a,{toValue:e,duration:250}),o.Animated.timing(n,{toValue:t,duration:250})]).start()};var u=e.isShown,l=e.childrenHeight,s=u?1:0,h=u?l:0;return i.state={height:new o.Animated.Value(h),opacity:new o.Animated.Value(s)},i}return(0,u.default)(t,e),(0,i.default)(t,[{key:\"UNSAFE_componentWillReceiveProps\",value:function(e){var t=e.isShown,r=e.childrenHeight;t?this.changeStatus(r,1):this.changeStatus(0,0)}},{key:\"render\",value:function(){var e=this.state,t=e.opacity,r=e.height;return s.default.createElement(o.Animated.View,{style:{opacity:t,height:r}},this.props.children)}}]),t})(s.Component);exports.default=h,h.defaultProps={isShown:!1,childrenHeight:0},h.propTypes={isShown:l.default.bool,childrenHeight:l.default.number};","miot-sdk/ui/FadeSlide.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/components/gear/Block\")).default;exports.default=r;","miot-sdk/ui/Gear/Block.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"mhui-rn/dist/components/gear/Clickable\")).default;exports.default=r;","miot-sdk/ui/Gear/Clickable.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").DragGear;exports.default=e;","miot-sdk/ui/Gear/DragGear.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").NormalGear;exports.default=e;","miot-sdk/ui/Gear/NormalGear.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").SlideGear;exports.default=e;","miot-sdk/ui/Gear/SlideGear.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"DragGear\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(exports,\"NormalGear\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(exports,\"SlideGear\",{enumerable:!0,get:function(){return a.default}});var r=e(require(\"./DragGear\")),t=e(require(\"./NormalGear\")),a=e(require(\"./SlideGear\"));","miot-sdk/ui/Gear/index.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\"),t=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var i=t(require(\"@babel/runtime/helpers/extends\")),l=t(require(\"@babel/runtime/helpers/classCallCheck\")),a=t(require(\"@babel/runtime/helpers/createClass\")),r=t(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),s=t(require(\"@babel/runtime/helpers/getPrototypeOf\")),c=t(require(\"@babel/runtime/helpers/inherits\")),n=t(require(\"prop-types\")),u=e(require(\"react\")),o=require(\"react-native\"),d=require(\"../resources\"),b=t(require(\"./Switch\")),f=require(\"../utils/accessibility-helper\"),p=require(\"../decorator/ReportDecorator\"),y=(function(e){function t(e){var i;return(0,l.default)(this,t),(i=(0,r.default)(this,(0,s.default)(t).call(this,e))).changeSwitchValue=function(){var e=i.props,t=e.value,l=e.changeValue,a=e.switchKey;l&&l(t,a)},i.onAccessibilityAction=function(e){var t=e.nativeEvent.actionName,l=i.props,a=l.disabled,r=l.disabledCard,s=l.changeValue,c=l.value,n=l.switchKey;a||r||'activate'===t&&'function'==typeof s&&s(c,n)},(0,p.referenceReport)('IndependentCard'),i.state={radius:{}},i}return(0,c.default)(t,e),(0,a.default)(t,[{key:\"componentDidMount\",value:function(){var e={};this.setState(function(t,i){switch(i.radiusType){case'none':e={};break;case'top':e={borderTopLeftRadius:10,borderTopRightRadius:10};break;case'bottom':e={borderBottomLeftRadius:10,borderBottomRightRadius:10};break;default:e={borderRadius:10}}return{radius:e}})}},{key:\"render\",value:function(){var e=this.props,t=e.picture,l=e.title1,a=e.title2,r=e.value,s=e.onTintColor,c=e.tintColor,n=e.switchStyle,d=e.disabled,p=e.disabledCard,y=e.accessible,g=e.accessibilityLabel,m=e.accessibilityHint,C=u.default.createElement(o.Text,(0,i.default)({style:h.title2,numberOfLines:1},(0,f.getAccessibilityConfig)({accessible:!1})),a),v=a?C:null,w=p?.3:1;return u.default.createElement(o.View,(0,i.default)({style:[h.card,{opacity:w}]},(0,f.getAccessibilityConfig)({accessible:y,accessibilityRole:f.AccessibilityRoles.switch,accessibilityLabel:g,accessibilityHint:m,accessibilityState:{disabled:d,checked:!!r}}),{accessibilityActions:[{name:'activate'}],onAccessibilityAction:this.onAccessibilityAction}),u.default.createElement(o.Image,(0,i.default)({source:t,style:h.picture},(0,f.getAccessibilityConfig)({accessible:!1}))),u.default.createElement(o.View,{style:h.title},u.default.createElement(o.Text,(0,i.default)({numberOfLines:1,style:h.title1},(0,f.getAccessibilityConfig)({accessible:!1})),l),v),u.default.createElement(o.View,{style:h.switchView},u.default.createElement(b.default,(0,i.default)({value:r,onValueChange:this.changeSwitchValue,onTintColor:s,tintColor:c,style:n,disabled:d},(0,f.getAccessibilityConfig)({accessible:!1})))))}}]),t})(u.Component);y.defaultProps={radiusType:'all',picture:-1,title1:'',title2:'',value:!1,switchKey:'',changeValue:function(){},onTintColor:d.Styles.common.MHGreen,tintColor:'#f0f0f0',switchStyle:{},disabled:!1,disabledCard:!1},y.propTypes={radiusType:n.default.string,picture:n.default.number,title1:n.default.string,title2:n.default.string,switchKey:n.default.string,value:n.default.bool,changeValue:n.default.func,onTintColor:n.default.string,tintColor:n.default.string,switchStyle:n.default.object,disabled:n.default.bool,disabledCard:n.default.bool,accessible:f.AccessibilityPropTypes.accessible,accessibilityLabel:f.AccessibilityPropTypes.accessibilityLabel,accessibilityHint:f.AccessibilityPropTypes.accessibilityHint};var h=o.StyleSheet.create({card:{flex:1,height:80,paddingLeft:20,paddingRight:20,flexDirection:'row',alignItems:'center',justifyContent:'space-between'},picture:{width:40,height:40,borderRadius:20,marginRight:14},title:{flex:1},title1:{fontSize:15,color:'black'},title2:{fontSize:12,color:'#666'},switchView:{paddingLeft:30}}),g=y;exports.default=g;","miot-sdk/ui/IndependentCard.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").Switch;exports.default=e;","miot-sdk/ui/Switch.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").ChoiceItem;exports.default=e;","miot-sdk/ui/ListItem/ChoiceItem.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").MHDatePicker;exports.default=e;","miot-sdk/ui/MHDatePicker.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e=require(\"mhui-rn\").Radio;exports.default=e;","miot-sdk/ui/Radio.js"],["Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var o=require(\"../DynamicColor\"),r={colorPrimary:(0,o.dynamicColor)('#32bac0','#32bac0'),colorPrimaryFocus:(0,o.dynamicColor)('#25a9af','#158b90'),colorPrimaryDisabled:(0,o.dynamicColor)('rgba(50,186,192,0.3)','rgba(37,169,175, 0.3)'),colorWarn:(0,o.dynamicColor)('#f43f31','#d92719'),colorWarnFocus:(0,o.dynamicColor)('#d53c32','#b62920'),colorWarnDisabled:(0,o.dynamicColor)('#rgba(244,63,49,0.3)','#b62920'),colorText100:(0,o.dynamicColor)('#000000','#ffffff'),colorText80:(0,o.dynamicColor)('rgb(102,102,102,0.6','rgb(153,153,153,0.6)'),colorText70:(0,o.dynamicColor)('rgb(102,102,102,0.6','rgb(153,153,153,0.6)'),colorText60:(0,o.dynamicColor)('rgb(102,102,102,0.6','rgb(153,153,153,0.6)'),colorText50:(0,o.dynamicColor)('rgb(102,102,102,0.6','rgb(153,153,153,0.6)')};exports.default=r;","miot-sdk/ui/Style/Themes/themeMiHome.js"],["var e=require(\"@babel/runtime/helpers/interopRequireWildcard\");Object.defineProperty(exports,\"__esModule\",{value:!0}),Object.defineProperty(exports,\"DynamicColor\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(exports,\"dynamicColor\",{enumerable:!0,get:function(){return r.dynamicColor}}),Object.defineProperty(exports,\"dynamicStyleSheet\",{enumerable:!0,get:function(){return t.dynamicStyleSheet}});var r=e(require(\"./DynamicColor\")),t=require(\"./DynamicStyleSheet\");","miot-sdk/ui/Style/index.js"],["'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ViewContextTypes=void 0;var e={isInAParentText:require('prop-types').bool};exports.ViewContextTypes=e;","miot-sdk/ui/image/ViewContext.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/objectSpread\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),n=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),u=e(require(\"@babel/runtime/helpers/inherits\")),i=e(require(\"react-native/Libraries/StyleSheet/flattenStyle\")),s=e(require(\"react-native/Libraries/Image/ImageResizeMode\")),l=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes\")),d=e(require(\"prop-types\")),c=e(require(\"react\")),f=require(\"react-native\"),p=e(require(\"react-native/Libraries/Image/resolveAssetSource\")),h=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType\")),b=require(\"./ViewContext\"),y=require('merge'),g=f.NativeModules.ImageLoader,m=1;var v=(function(e){function r(){return(0,t.default)(this,r),(0,n.default)(this,(0,o.default)(r).apply(this,arguments))}return(0,u.default)(r,e),(0,a.default)(r,[{key:\"queryCache\",value:function(e){return g.queryCache(e)}},{key:\"render\",value:function(){var e=(0,p.default)(this.props.source),r=(0,p.default)(this.props.loadingIndicatorSource);if(e&&''===e.uri&&__DEV__&&console.warn&&console.warn('source.uri should not be an empty string'),this.props.src&&__DEV__&&console.warn&&console.warn('The component requires a `source` property rather than `src`.'),this.props.children)throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');if(e&&(e.uri||Array.isArray(e))){var t,a;if(e.uri){var n=e.width,o=e.height;t=(0,i.default)([{width:n,height:o},q.base,this.props.style]),a=[{uri:e.uri}]}else t=(0,i.default)([q.base,this.props.style]),a=e;var u=this.props,s=u.onLoadStart,l=u.onLoad,d=u.onLoadEnd,h=u.onError,b=y(this.props,{style:t,shouldNotifyLoadEvents:!!(s||l||d||h),src:a,headers:e.headers,loadingIndicatorSrc:r?r.uri:null});return this.context.isInAParentText?c.default.createElement(f.Image,b):c.default.createElement(S,b)}return null}}],[{key:\"getSize\",value:function(e,r,t){return g.getSize(e).then(function(e){r(e.width,e.height)}).catch(t||function(){__DEV__&&console.warn&&console.warn(\"Failed to get size for image: \"+e)})}},{key:\"prefetch\",value:function(e,r){var t=m++;return r&&r(t),g.prefetchImage(e,t)}},{key:\"abortPrefetch\",value:function(e){g.abortRequest(e)}}]),r})(c.default.Component);exports.default=v,v.propTypes=(0,r.default)({},f.ViewPropTypes,{style:(0,h.default)(l.default),source:d.default.oneOfType([d.default.shape({uri:d.default.string,headers:d.default.objectOf(d.default.string)}),d.default.number,d.default.arrayOf(d.default.shape({uri:d.default.string,width:d.default.number,height:d.default.number,headers:d.default.objectOf(d.default.string)}))]),blurRadius:d.default.number,loadingIndicatorSource:d.default.oneOfType([d.default.shape({uri:d.default.string}),d.default.number]),progressiveRenderingEnabled:d.default.bool,fadeDuration:d.default.number,onLoadStart:d.default.func,onError:d.default.func,onLoad:d.default.func,onLoadEnd:d.default.func,testID:d.default.string,resizeMethod:d.default.oneOf(['auto','resize','scale']),resizeMode:d.default.oneOf(['cover','contain','stretch','center'])}),v.resizeMode=s.default,v.resolveAssetSource=p.default,v.contextTypes=b.ViewContextTypes;var q=f.StyleSheet.create({base:{overflow:'hidden'}}),S=(0,f.requireNativeComponent)('MHImageView',v,{nativeOnly:{src:!0,headers:!0,loadingIndicatorSrc:!0,shouldNotifyLoadEvents:!0}});","miot-sdk/ui/image/index.android.js"],["var e=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var r=e(require(\"@babel/runtime/helpers/extends\")),t=e(require(\"@babel/runtime/helpers/classCallCheck\")),a=e(require(\"@babel/runtime/helpers/createClass\")),i=e(require(\"@babel/runtime/helpers/possibleConstructorReturn\")),o=e(require(\"@babel/runtime/helpers/getPrototypeOf\")),n=e(require(\"@babel/runtime/helpers/inherits\")),u=e(require(\"react-native/Libraries/StyleSheet/EdgeInsetsPropType\")),s=e(require(\"react-native/Libraries/StyleSheet/flattenStyle\")),l=e(require(\"react-native/Libraries/Image/ImageResizeMode\")),d=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType\")),c=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes\")),p=e(require(\"prop-types\")),f=e(require(\"react\")),h=require(\"react-native\"),b=e(require(\"react-native/Libraries/Image/resolveAssetSource\")),y=e(require(\"react-native/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType\")),m=(function(e){function u(){return(0,t.default)(this,u),(0,i.default)(this,(0,o.default)(u).apply(this,arguments))}return(0,n.default)(u,e),(0,a.default)(u,[{key:\"render\",value:function(){var e,t,a=(0,b.default)(this.props.source)||{uri:void 0,width:void 0,height:void 0};if(Array.isArray(a))t=(0,s.default)([g.base,this.props.style])||{},e=a;else{var i=a.width,o=a.height,n=a.uri;t=(0,s.default)([{width:i,height:o},g.base,this.props.style])||{},e=[a],''===n&&__DEV__&&console.warn&&console.warn('source.uri should not be an empty string')}var u=this.props.resizeMode||(t||{}).resizeMode||'cover',l=(t||{}).tintColor;if(this.props.src&&__DEV__&&console.warn&&console.warn('The component requires a `source` property rather than `src`.'),this.props.children)throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');return f.default.createElement(v,(0,r.default)({},this.props,{style:t,resizeMode:u,tintColor:l,source:e}))}}],[{key:\"getSize\",value:function(e,r,t){ImageViewManager.getSize(e,r,t||function(){__DEV__&&console.warn&&console.warn(\"Failed to get size for image: \"+e)})}},{key:\"prefetch\",value:function(e){return ImageViewManager.prefetchImage(e)}}]),u})(f.default.Component);exports.default=m,m.propTypes={style:(0,y.default)(c.default),source:d.default,defaultSource:p.default.oneOfType([p.default.shape({uri:p.default.string,width:p.default.number,height:p.default.number,scale:p.default.number}),p.default.number]),layerScaleFilter:p.default.oneOf(['Nearest','Linear','Trilinear']),accessible:p.default.bool,accessibilityLabel:p.default.node,blurRadius:p.default.number,capInsets:u.default,resizeMethod:p.default.oneOf(['auto','resize','scale']),resizeMode:p.default.oneOf(['cover','contain','stretch','repeat','center']),testID:p.default.string,onLayout:p.default.func,onLoadStart:p.default.func,onProgress:p.default.func,onError:p.default.func,onPartialLoad:p.default.func,onLoad:p.default.func,onLoadEnd:p.default.func,src:p.default.any},m.resizeMode=l.default,m.resolveAssetSource=b.default;var g=h.StyleSheet.create({base:{overflow:'hidden'}}),v=(0,h.requireNativeComponent)('MHImageView',null);","miot-sdk/ui/image/index.ios.js"]]};function g(){if(!a.size&&c&&(f(c),c=null,a.size<1&&p())){var e=i.join(o,"bin","config","modules_sdk"),n=r.existsSync(e)?r.readFileSync(e):null;n&&(f(JSON.parse(n.toString()||"{}")),n=null)}}function p(){return!t||!l._miot_building}l.transform=function(e){g(),l._miot_building&&!l._miot_building_plugin&&(e.plugins||(e.plugins=[]),e.plugins.push("transform-remove-console"));var r=i.relative(o,e.filename),n=r.replace(/\\/g,"/");if(l._miot_fixbug){var t=l._miot_fixbug(n,e,s);if(t)return t}var f=u.findContent(n);if(f)return console.log("FIXBUG",r),e.src=f.toString(),s(e);if(p()){var c=r.replace(/\\/g,"/"),m=a.get(c);if(m)return e.src=m,e.options.dev=!1,e.options.hot=!1,e.options.minify=!0,e.options.enableBabelRCLookup=!1,e.options.inlineRequires=!0,s(e)}return s(e)},module.exports=l; \ No newline at end of file diff --git a/bin/createProject.js b/bin/createProject.js index da0e319e2..0f6357dbf 100644 --- a/bin/createProject.js +++ b/bin/createProject.js @@ -1 +1 @@ -'use strict';var e=require('commander'),n=require('path'),t=require("fs"),r=require("./config/common"),o=r.project_dir,i=r.API_LEVEL,c=r.SDK_VERSION,a=(r.exec,r.execSync,r.makeDirs,r.copyFolder);function s(){console.log("\u8be6\u60c5\u94fe\u63a5\uff1a\n=========== create project command help ===========\nnpm run create xxx.xxx.xxx[\u63d2\u4ef6\u5305\u540d] -type empty : \u521b\u5efa\u4e00\u4e2a\u7a7a\u9879\u76ee\nnpm run create xxx.xxx.xxx[\u63d2\u4ef6\u5305\u540d] -type common : \u521b\u5efa\u4e00\u4e2a\u901a\u7528\u6a21\u677f\u9879\u76ee(\u5305\u62ec: \u9875\u9762\u8df3\u8f6c\uff08NavigationBar\uff09\u3001\u8bbe\u7f6e\u9875\uff08CommonSetting\uff09\u3001\u591a\u8bed\u8a00\u3001\u9690\u79c1\u3001\u81ea\u5b9a\u4e49\u573a\u666f\u3001\u56fa\u4ef6\u5347\u7ea7)\nnpm run create xxx.xxx.xxx[\u63d2\u4ef6\u5305\u540d] -type wifi : \u521b\u5efa\u4e00\u4e2awifi\u6a21\u677f\u9879\u76ee(\u5305\u62ec: \u901a\u7528\u6a21\u677f\u529f\u80fd\u3001\u8bbe\u5907\u63a7\u5236\u53ca\u5c5e\u6027\u8ba2\u9605\u529f\u80fd)\nnpm run create xxx.xxx.xxx[\u63d2\u4ef6\u5305\u540d] -type ble : \u521b\u5efa\u4e00\u4e2able\u6a21\u677f\u9879\u76ee(\u5305\u62ec: \u901a\u7528\u6a21\u677f\u529f\u80fd\u3001\u84dd\u7259\u8fde\u63a5\u76f8\u5173\u529f\u80fd)\n")}function p(){var r=e.args[0],i=n.join(o,"projects",r);if(t.existsSync(i))throw e.outputHelp(),"the package is exist or invalid package name";t.mkdirSync(i),l(i,r),t.writeFileSync(n.join(i,"index.ios.js"),"import \"./index.js\";"),t.writeFileSync(n.join(i,"index.js"),"\n import React from 'react';\n import { API_LEVEL, Package, Device, Service, Host } from 'miot';\n import { PackageEvent, DeviceEvent } from 'miot';\n import { View, Text } from 'react-native';\n\n class App extends React.Component {\n render() {\n return (\n \n hello, this is a tiny plugin project of MIOT\n API_LEVEL:{API_LEVEL}\n NATIVE_API_LEVEL:{Host.apiLevel}\n {Package.packageName}\n models:{Package.models}\n \n )\n }\n }\n Package.entry(App, () => {\n \n })\n "),t.mkdirSync(n.join(i,"resources")),t.mkdirSync(n.join(i,"build"))}function x(e,r){var i=n.join(o,"projects",r);if(t.existsSync(i))console.error('this project is exist or invalid project name');else{var c=n.join(o,'bin','template',e);t.existsSync(c)?(t.mkdirSync(i),a(c,i,function(e){console.log('create %s success!',r),l(i,r)})):console.error('can not create a %s project',r)}}function l(r,o){t.writeFileSync(n.join(r,"project.json"),"{ \n \"package_path\": \""+o+"\",\n \"min_sdk_api_level\":"+i+",\n \"developer_id\": \""+(e.developer||'')+"\",\n \"version_code\":1,\n \"entrance_scene\":{\n \"action_ids\":[],\n \"trigger_ids\":[]\n }\n }"),t.writeFileSync(n.join(r,"package.json"),"{\n \"name\": \"project-"+o.replace(/[.]/g,'-')+"\",\n \"version\": \""+c+"\",\n \"scripts\":{\n \"start\":\"node ../../bin/runProject.js\"\n },\n \"dependencies\":{\n \n }\n }")}e.version(c).usage('[options] \u5feb\u901f\u542f\u52a8\u9879\u76ee').option("-type, --type","\u9879\u76ee\u7c7b\u578b: empty\u3001wifi\u3001ble").description("\u751f\u6210\u9879\u76ee").parse(process.argv);try{!(function(){if(!e.args||e.args.length<=1)s();else{var n=e.args[0];switch(e.args[1]){case'empty':p();break;case'common':x('common',n);break;case'wifi':x('wifi',n);break;case'ble':x('ble',n);break;default:console.log('create project type value error'),s()}}})()}catch(e){console.log(e)} +'use strict';var e=require('commander'),n=require('path'),t=require("fs"),r=require("./config/common"),o=r.project_dir,i=r.API_LEVEL,c=r.SDK_VERSION,a=(r.exec,r.execSync,r.makeDirs,r.copyFolder);function s(){console.log("\u8be6\u60c5\u94fe\u63a5\uff1a\n=========== create project command help ===========\nnpm run create xxx.xxx.xxx[\u63d2\u4ef6\u5305\u540d] -type empty : \u521b\u5efa\u4e00\u4e2a\u7a7a\u9879\u76ee\nnpm run create xxx.xxx.xxx[\u63d2\u4ef6\u5305\u540d] -type common : \u521b\u5efa\u4e00\u4e2a\u901a\u7528\u6a21\u677f\u9879\u76ee(\u5305\u62ec: \u9875\u9762\u8df3\u8f6c\uff08NavigationBar\uff09\u3001\u8bbe\u7f6e\u9875\uff08CommonSetting\uff09\u3001\u591a\u8bed\u8a00\u3001\u9690\u79c1\u3001\u81ea\u5b9a\u4e49\u573a\u666f\u3001\u56fa\u4ef6\u5347\u7ea7)\nnpm run create xxx.xxx.xxx[\u63d2\u4ef6\u5305\u540d] -type wifi : \u521b\u5efa\u4e00\u4e2awifi\u6a21\u677f\u9879\u76ee(\u5305\u62ec: \u901a\u7528\u6a21\u677f\u529f\u80fd\u3001\u8bbe\u5907\u63a7\u5236\u53ca\u5c5e\u6027\u8ba2\u9605\u529f\u80fd)\nnpm run create xxx.xxx.xxx[\u63d2\u4ef6\u5305\u540d] -type ble : \u521b\u5efa\u4e00\u4e2able\u6a21\u677f\u9879\u76ee(\u5305\u62ec: \u901a\u7528\u6a21\u677f\u529f\u80fd\u3001\u84dd\u7259\u8fde\u63a5\u76f8\u5173\u529f\u80fd)\n")}function p(){var r=e.args[0],i=n.join(o,"projects",r);if(t.existsSync(i))throw e.outputHelp(),"the package is exist or invalid package name";t.mkdirSync(i),l(i,r),t.writeFileSync(n.join(i,"index.ios.js"),"import \"./index.js\";"),t.writeFileSync(n.join(i,"index.js"),"\n import React from 'react';\n import { API_LEVEL, Package, Device, Service, Host } from 'miot';\n import { PackageEvent, DeviceEvent } from 'miot';\n import { View, Text } from 'react-native';\n\n class App extends React.Component {\n render() {\n return (\n \n hello, this is a tiny plugin project of MIOT\n API_LEVEL:{API_LEVEL}\n NATIVE_API_LEVEL:{Host.apiLevel}\n {Package.packageName}\n models:{Package.models}\n \n )\n }\n }\n Package.entry(App, () => {\n \n })\n "),t.mkdirSync(n.join(i,"resources")),t.mkdirSync(n.join(i,"build"))}function x(e,r){var i=n.join(o,"projects",r);if(t.existsSync(i))console.error('this project is exist or invalid project name');else{var c=n.join(o,'bin','template',e);t.existsSync(c)?(t.mkdirSync(i),a(c,i,function(e){console.log('create %s success!',r),l(i,r)})):console.error('can not create a %s project',r)}}function l(r,o){t.writeFileSync(n.join(r,"project.json"),"{ \n \"package_path\": \""+o+"\",\n \"min_sdk_api_level\":"+i+",\n \"developer_id\": \""+(e.developer||'')+"\",\n \"version_code\":1,\n \"entrance_scene\":{\n \"action_ids\":[],\n \"trigger_ids\":[]\n }\n }"),t.writeFileSync(n.join(r,"package.json"),"{\n \"name\": \"project-"+o.replace(/[.]/g,'-')+"\",\n \"version\": \""+c+"\",\n \"scripts\":{\n \"start\":\"node ../../bin/runProject.js\"\n },\n \"dependencies\":{\n \n }\n }")}e.version(c).usage('[options] \u5feb\u901f\u542f\u52a8\u9879\u76ee').option("-type, --type","\u9879\u76ee\u7c7b\u578b: empty\u3001wifi\u3001ble").description("\u751f\u6210\u9879\u76ee").parse(process.argv);try{!(function(){if(!e.args||e.args.length<=1)s();else{var n=e.args[0];switch(e.args[1]){case'empty':p();break;case'common':x('common',n);break;case'wifi':x('wifi',n);break;case'ble':x('ble',n);break;default:console.log('create project type value error'),s()}}})()}catch(e){console.log(e)} \ No newline at end of file diff --git a/bin/fixbug/Text b/bin/fixbug/Text index cbd4e3a63..8ea5e8178 100644 --- a/bin/fixbug/Text +++ b/bin/fixbug/Text @@ -136,6 +136,7 @@ class TouchableText extends React.Component { render(): React.Node { let props = this.props; + let ancestorProps = this.props; if (Platform === 'ios') { if (props.style) { if (props.style.color !== undefined && props.style.color !== null && props.style.color !== 'undefined') { @@ -156,11 +157,14 @@ class TouchableText extends React.Component { } }; } + ancestorProps = props; } else { let tcolor = { 'value': '' }; + let anceFlag = false; modifyTextColorIfNeeded(props.style, tcolor); if (tcolor.value.length === 0) { tcolor.value = 'blacktext'; + anceFlag = true; } let styleArray = flatDeep([ props.style, @@ -170,6 +174,9 @@ class TouchableText extends React.Component { ...props, style: styleArray }; + if(!anceFlag){ + ancestorProps = props; + } } } else { props = { @@ -189,6 +196,10 @@ class TouchableText extends React.Component { ...props, style: [props.style, { fontFamily: "" }] }; + ancestorProps = { + ...ancestorProps, + style: [ancestorProps.style, { fontFamily: "" }] + }; } } else if (Object.prototype.toString.call(props.style) === '[object Object]') { if (!props.style.fontFamily) { @@ -199,6 +210,13 @@ class TouchableText extends React.Component { fontFamily: "" } }; + ancestorProps = { + ...ancestorProps, + style: { + ...ancestorProps.style, + fontFamily: "" + } + }; } } } @@ -209,12 +227,21 @@ class TouchableText extends React.Component { ...this.state.responseHandlers, isHighlighted: this.state.isHighlighted }; + ancestorProps = { + ...ancestorProps, + ...this.state.responseHandlers, + isHighlighted: this.state.isHighlighted + }; } if (props.selectionColor != null) { props = { ...props, selectionColor: processColor(props.selectionColor) }; + ancestorProps = { + ...ancestorProps, + selectionColor: processColor(ancestorProps.selectionColor) + }; } if (__DEV__) { if (Touchable.TOUCH_TARGET_DEBUG && props.onPress != null) { @@ -222,13 +249,18 @@ class TouchableText extends React.Component { ...props, style: [props.style, { color: 'magenta' }] }; + ancestorProps = { + ...ancestorProps, + style: [ancestorProps.style, { color: 'magenta' }] + }; } } + return ( {(hasTextAncestor) => hasTextAncestor ? ( - + ) : ( diff --git "a/doc-md/03-\350\256\276\345\244\207\347\256\241\347\220\206/02-\345\237\272\347\241\200\346\217\222\344\273\266\350\256\276\345\244\207\346\250\241\345\235\227.md" "b/doc-md/03-\350\256\276\345\244\207\347\256\241\347\220\206/02-\345\237\272\347\241\200\346\217\222\344\273\266\350\256\276\345\244\207\346\250\241\345\235\227.md" index 871c1f9bc..c0dba3e71 100644 --- "a/doc-md/03-\350\256\276\345\244\207\347\256\241\347\220\206/02-\345\237\272\347\241\200\346\217\222\344\273\266\350\256\276\345\244\207\346\250\241\345\235\227.md" +++ "b/doc-md/03-\350\256\276\345\244\207\347\256\241\347\220\206/02-\345\237\272\347\241\200\346\217\222\344\273\266\350\256\276\345\244\207\346\250\241\345\235\227.md" @@ -783,7 +783,7 @@ reject:{code: xxx, message: xxx} 查询设备的房间信息 **Kind**: instance method of [BasicDevice](#module_miot/device--module.exports.BasicDevice) -**Returns**: [ 'Promise' ].<Object> - {code: 0, data: {roomId, homeId, roomName} } +**Returns**: [ 'Promise' ].<Object> - {code: 0, data: {roomId, homeId, roomName, homeName} } **Since**: 10039 | Param | Type | Default | Description | @@ -813,7 +813,7 @@ DeviceEvent 当前设备事件:可以理解为iOS中的通知,或者Android ##### DeviceEvent.BLESpecNotifyActionEvent -ble直连spec消息通知 +订阅ble spec 消息推送;除了订阅之外,插件需要与设备建立蓝牙连接,并主动扫描设备的特征值,设备才会给插件推送消息。 **Kind**: static property of [DeviceEvent](#module_miot/device--module.exports..DeviceEvent) @@ -825,18 +825,29 @@ ble直连spec消息通知 **Example** ```js -let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) => { - - if(data.has('prop.2.1')){ - console.log(`receive prop(event) changed notification,prop.2.1:`, data.get('prop.2.1')); +//详细使用示例可以参考com.xiaomi.bledemo/Main/BleSpec.js + let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) => { + console.log('receive prop(event) changed notification:' + JSON.stringify(data)) + data.forEach((key, value) => { + console.log(`receive prop(event) changed notification,prop:${ key }`, JSON.stringify(value)); }); - if(data.has('event.2.1')){ - console.log(`receive prop(event) changed notification,event.2.1:`, data.get('event.2.1')); - } }); + this._s1 = BluetoothEvent.bluetoothSeviceDiscovered.addListener((blut, services) => { + if (services.length <= 0) { + return; + } + console.log('bluetoothSeviceDiscovered', blut.mac, services.map(s => s.UUID), bt.isConnected); + + const s = services.map(s => ({ uuid: s.UUID, char: [] })); + services.forEach(s => { + s.startDiscoverCharacteristics(); + }); + } + bt = Device.getBluetoothLE(); if(bt.isConnected){ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -845,6 +856,7 @@ let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) = console.log('bluetoothConnectionStatusChanged', blut, isConnect); if (bt.mac === blut.mac) { if(isConnect){ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -855,6 +867,7 @@ let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) = } }else{ bt.connect(scType,{ did: Device.deviceID }).then(res=>{ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) diff --git "a/doc-md/04-\350\223\235\347\211\231\350\256\276\345\244\207/02-\350\223\235\347\211\231\346\250\241\345\235\227.md" "b/doc-md/04-\350\223\235\347\211\231\350\256\276\345\244\207/02-\350\223\235\347\211\231\346\250\241\345\235\227.md" index d9eec211c..71302c1eb 100644 --- "a/doc-md/04-\350\223\235\347\211\231\350\256\276\345\244\207/02-\350\223\235\347\211\231\346\250\241\345\235\227.md" +++ "b/doc-md/04-\350\223\235\347\211\231\350\256\276\345\244\207/02-\350\223\235\347\211\231\346\250\241\345\235\227.md" @@ -313,7 +313,7 @@ Device.getBluetoothLE().getVersion(true, true).then(version => { #### iBluetooth.subscribeMessages(...propertyOrEventNames) -订阅ble spec 消息推送;如果手机没有连接ble设备(可以调用Device.getBluetoothLE().connect(...)建立连接),收不到推送 +订阅ble spec 消息推送;除了订阅之外,插件需要与设备建立蓝牙连接,并主动扫描设备的特征值,设备才会给插件推送消息。 **Kind**: instance method of [IBluetooth](#module_miot/device/bluetooh.IBluetooth) **Since**: 10040 @@ -324,15 +324,29 @@ Device.getBluetoothLE().getVersion(true, true).then(version => { **Example** ```js -let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) => { +//详细使用示例可以参考com.xiaomi.bledemo/Main/BleSpec.js + let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) => { console.log('receive prop(event) changed notification:' + JSON.stringify(data)) data.forEach((key, value) => { console.log(`receive prop(event) changed notification,prop:${ key }`, JSON.stringify(value)); }); }); + this._s1 = BluetoothEvent.bluetoothSeviceDiscovered.addListener((blut, services) => { + if (services.length <= 0) { + return; + } + console.log('bluetoothSeviceDiscovered', blut.mac, services.map(s => s.UUID), bt.isConnected); + + const s = services.map(s => ({ uuid: s.UUID, char: [] })); + services.forEach(s => { + s.startDiscoverCharacteristics(); + }); + } + bt = Device.getBluetoothLE(); if(bt.isConnected){ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -341,6 +355,7 @@ let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) = console.log('bluetoothConnectionStatusChanged', blut, isConnect); if (bt.mac === blut.mac) { if(isConnect){ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -351,6 +366,7 @@ let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) = } }else{ bt.connect(scType,{ did: Device.deviceID }).then(res=>{ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) diff --git "a/doc-md/04-\350\223\235\347\211\231\350\256\276\345\244\207/06-ble\347\233\264\350\277\236spec.md" "b/doc-md/04-\350\223\235\347\211\231\350\256\276\345\244\207/06-ble\347\233\264\350\277\236spec.md" index 28950257e..8055d95c6 100644 --- "a/doc-md/04-\350\223\235\347\211\231\350\256\276\345\244\207/06-ble\347\233\264\350\277\236spec.md" +++ "b/doc-md/04-\350\223\235\347\211\231\350\256\276\345\244\207/06-ble\347\233\264\350\277\236spec.md" @@ -26,7 +26,7 @@ #### bleSpec.setPropertiesValue(mac, json) -ble直连spec:设置property,调用前确保已连接蓝牙连接。 +ble直连spec:设置property,调用前确保已建立蓝牙连接。 **Kind**: instance method of [BleSpec](#module_miot/device/bluetooth/blespec..BleSpec) **Since**: 10040 @@ -50,7 +50,7 @@ Bluetooth.spec.setPropertiesValue(mac,data) #### bleSpec.getPropertiesValue(mac, json) -ble直连spec:读property,调用前确保已连接蓝牙连接。 +ble直连spec:读property,调用前确保已建立蓝牙连接。 **Kind**: instance method of [BleSpec](#module_miot/device/bluetooth/blespec..BleSpec) **Since**: 10040 @@ -74,7 +74,7 @@ Bluetooth.spec.getPropertiesValue(mac,data) #### bleSpec.doAction(mac, json) -ble直连spec:doAction,调用前确保已连接蓝牙连接。 +ble直连spec:doAction,调用前确保已建立蓝牙连接。 **Kind**: instance method of [BleSpec](#module_miot/device/bluetooth/blespec..BleSpec) **Since**: 10040 diff --git "a/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/01-\345\216\237\347\224\237\346\250\241\345\235\227.md" "b/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/01-\345\216\237\347\224\237\346\250\241\345\235\227.md" index c17912325..f202ac4c7 100644 --- "a/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/01-\345\216\237\347\224\237\346\250\241\345\235\227.md" +++ "b/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/01-\345\216\237\347\224\237\346\250\241\345\235\227.md" @@ -49,6 +49,7 @@ import {Host} from 'miot' * [miot/Host](#module_miot/Host) * _static_ + * [.displayCutoutTop](#module_miot/Host.displayCutoutTop) : int * [.type](#module_miot/Host.type) : string * [.systemInfo](#module_miot/Host.systemInfo) : object * [.isAndroid](#module_miot/Host.isAndroid) : boolean @@ -83,6 +84,14 @@ import {Host} from 'miot' * ["cellPhoneNetworkStateChanged"](#module_miot/Host..HostEvent.event_cellPhoneNetworkStateChanged) * [~IExecutor](#module_miot/Host..IExecutor) + + +### miot/Host.displayCutoutTop : int +获取Android 官方提供的打孔屏api提供的打孔屏高度。 ios手机一律返回0. + +**Kind**: static property of [miot/Host](#module_miot/Host) +**Read only**: true +**Since**: 10042 ### miot/Host.type : string diff --git "a/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/03-\345\212\240\345\257\206\346\250\241\345\235\227.md" "b/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/03-\345\212\240\345\257\206\346\250\241\345\235\227.md" index 0ca3579a3..58f8fb416 100644 --- "a/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/03-\345\212\240\345\257\206\346\250\241\345\235\227.md" +++ "b/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/03-\345\212\240\345\257\206\346\250\241\345\235\227.md" @@ -13,7 +13,7 @@ import {Host} from 'miot' ... const str = '123' //async -let md5 = await Host.crypto.endoceMD5(str) +let md5 = await Host.crypto.encodeMD5(str) //normal Host.crypto.encodeMD5(str).then(res => {//md5 value is res}) @@ -21,19 +21,64 @@ Host.crypto.encodeMD5(str).then(res => {//md5 value is res}) ``` * [miot/host/crypto](#module_miot/host/crypto) - * [~ICrypto](#module_miot/host/crypto..ICrypto) - * [.encodeMD5(content)](#module_miot/host/crypto..ICrypto+encodeMD5) ⇒ [ 'Promise' ].<string> - * [.encodeBase64(content)](#module_miot/host/crypto..ICrypto+encodeBase64) ⇒ [ 'Promise' ].<string> - * [.decodeBase64(content)](#module_miot/host/crypto..ICrypto+decodeBase64) ⇒ [ 'Promise' ].<string> - * [.encodeSHA1(content)](#module_miot/host/crypto..ICrypto+encodeSHA1) ⇒ [ 'Promise' ].<string> - * [.encodeSHA2(content)](#module_miot/host/crypto..ICrypto+encodeSHA2) ⇒ [ 'Promise' ].<string> - * ~~[.colorsToImageBase64(content, colorMStr, color0Str, color1Str)](#module_miot/host/crypto..ICrypto+colorsToImageBase64) ⇒ [ 'Promise' ].<any>~~ - * [.robotCleanerMapColorsToImageBase64(content, colorMStr, color0Str, color1Str)](#module_miot/host/crypto..ICrypto+robotCleanerMapColorsToImageBase64) ⇒ [ 'Promise' ].<any> - * ~~[.pointsToImageBase64(width, height, points, colorsMap)](#module_miot/host/crypto..ICrypto+pointsToImageBase64)~~ - * [.robotCleanerMapPointsToImageBase64(width, height, points, colorsMap)](#module_miot/host/crypto..ICrypto+robotCleanerMapPointsToImageBase64) ⇒ [ 'Promise' ].<string> - * ~~[.pointsScaleToImageBase64(width, height, points, colorsMap, scale)](#module_miot/host/crypto..ICrypto+pointsScaleToImageBase64)~~ - * [.robotCleanerPointsScaleToImageBase64(width, height, points, colorsMap, scale)](#module_miot/host/crypto..ICrypto+robotCleanerPointsScaleToImageBase64) ⇒ [ 'Promise' ].<string> - * [.zhuimiRobotTracesToImageBase64(width, height, traces:)](#module_miot/host/crypto..ICrypto+zhuimiRobotTracesToImageBase64) ⇒ [ 'Promise' ].<string> + * _static_ + * [.ECCCrypto](#module_miot/host/crypto.ECCCrypto) + * [new exports.ECCCrypto(curveType)](#new_module_miot/host/crypto.ECCCrypto_new) + * [.generateKeyPair()](#module_miot/host/crypto.ECCCrypto+generateKeyPair) ⇒ Promise + * [.generateSharedSecret(otherPublicKey)](#module_miot/host/crypto.ECCCrypto+generateSharedSecret) ⇒ Promise + * _inner_ + * [~ICrypto](#module_miot/host/crypto..ICrypto) + * [.encodeMD5(content)](#module_miot/host/crypto..ICrypto+encodeMD5) ⇒ [ 'Promise' ].<string> + * [.encodeBase64(content)](#module_miot/host/crypto..ICrypto+encodeBase64) ⇒ [ 'Promise' ].<string> + * [.decodeBase64(content)](#module_miot/host/crypto..ICrypto+decodeBase64) ⇒ [ 'Promise' ].<string> + * [.encodeSHA1(content)](#module_miot/host/crypto..ICrypto+encodeSHA1) ⇒ [ 'Promise' ].<string> + * [.encodeSHA2(content)](#module_miot/host/crypto..ICrypto+encodeSHA2) ⇒ [ 'Promise' ].<string> + * ~~[.colorsToImageBase64(content, colorMStr, color0Str, color1Str)](#module_miot/host/crypto..ICrypto+colorsToImageBase64) ⇒ [ 'Promise' ].<any>~~ + * [.robotCleanerMapColorsToImageBase64(content, colorMStr, color0Str, color1Str)](#module_miot/host/crypto..ICrypto+robotCleanerMapColorsToImageBase64) ⇒ [ 'Promise' ].<any> + * ~~[.pointsToImageBase64(width, height, points, colorsMap)](#module_miot/host/crypto..ICrypto+pointsToImageBase64)~~ + * [.robotCleanerMapPointsToImageBase64(width, height, points, colorsMap)](#module_miot/host/crypto..ICrypto+robotCleanerMapPointsToImageBase64) ⇒ [ 'Promise' ].<string> + * ~~[.pointsScaleToImageBase64(width, height, points, colorsMap, scale)](#module_miot/host/crypto..ICrypto+pointsScaleToImageBase64)~~ + * [.robotCleanerPointsScaleToImageBase64(width, height, points, colorsMap, scale)](#module_miot/host/crypto..ICrypto+robotCleanerPointsScaleToImageBase64) ⇒ [ 'Promise' ].<string> + * [.zhuimiRobotTracesToImageBase64(width, height, traces:)](#module_miot/host/crypto..ICrypto+zhuimiRobotTracesToImageBase64) ⇒ [ 'Promise' ].<string> + + + +### miot/host/crypto.ECCCrypto +椭圆曲线 + +**Kind**: static class of [miot/host/crypto](#module_miot/host/crypto) + +* [.ECCCrypto](#module_miot/host/crypto.ECCCrypto) + * [new exports.ECCCrypto(curveType)](#new_module_miot/host/crypto.ECCCrypto_new) + * [.generateKeyPair()](#module_miot/host/crypto.ECCCrypto+generateKeyPair) ⇒ Promise + * [.generateSharedSecret(otherPublicKey)](#module_miot/host/crypto.ECCCrypto+generateSharedSecret) ⇒ Promise + + + +#### new exports.ECCCrypto(curveType) + +| Param | Type | +| --- | --- | +| curveType | number | + + + +#### eccCrypto.generateKeyPair() ⇒ Promise +生成公私钥对 + +**Kind**: instance method of [ECCCrypto](#module_miot/host/crypto.ECCCrypto) +**Returns**: Promise - 成功则返回public key,失败则返回 {code: -1, message: error} + + +#### eccCrypto.generateSharedSecret(otherPublicKey) ⇒ Promise +生成shared secret + +**Kind**: instance method of [ECCCrypto](#module_miot/host/crypto.ECCCrypto) +**Returns**: Promise - 成功则返回shared secret,失败则返回 {code: -x, message: error} + +| Param | Type | Description | +| --- | --- | --- | +| otherPublicKey | String | 另一方的publickey, base64 encoded string | diff --git "a/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/04-\346\226\207\344\273\266\346\250\241\345\235\227.md" "b/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/04-\346\226\207\344\273\266\346\250\241\345\235\227.md" index 0c590216e..25751f44c 100644 --- "a/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/04-\346\226\207\344\273\266\346\250\241\345\235\227.md" +++ "b/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/04-\346\226\207\344\273\266\346\250\241\345\235\227.md" @@ -56,16 +56,17 @@ Host.file.screenShot(myshotfile) * [.ungzYunMiFile(fileName)](#module_miot/host/file..IFile+ungzYunMiFile) ⇒ Promise * [.saveImageToPhotosAlbum(fileName)](#module_miot/host/file..IFile+saveImageToPhotosAlbum) ⇒ Promise * [.saveFileToPhotosAlbum(fileName)](#module_miot/host/file..IFile+saveFileToPhotosAlbum) ⇒ Promise - * [.saveImageToPhotosDidAlbum(fileName)](#module_miot/host/file..IFile+saveImageToPhotosDidAlbum) ⇒ Promise - * [.saveVideoToPhotosDidAlbum(fileName)](#module_miot/host/file..IFile+saveVideoToPhotosDidAlbum) ⇒ Promise - * [.fetchLocalVideoFilePathFromDidAlbumByUrl(url)](#module_miot/host/file..IFile+fetchLocalVideoFilePathFromDidAlbumByUrl) ⇒ Promise - * [.getAllSourceFromPhotosDidAlbum()](#module_miot/host/file..IFile+getAllSourceFromPhotosDidAlbum) ⇒ Promise + * [.saveImageToPhotosDidAlbum(fileName, customDirName)](#module_miot/host/file..IFile+saveImageToPhotosDidAlbum) ⇒ Promiste + * [.saveVideoToPhotosDidAlbum(fileName, customDirName)](#module_miot/host/file..IFile+saveVideoToPhotosDidAlbum) ⇒ Promise + * [.fetchLocalVideoFilePathFromDidAlbumByUrl(url, customDirName)](#module_miot/host/file..IFile+fetchLocalVideoFilePathFromDidAlbumByUrl) ⇒ Promise + * [.getAllSourceFromPhotosDidAlbum(customDirName)](#module_miot/host/file..IFile+getAllSourceFromPhotosDidAlbum) ⇒ Promise * [.deleteAssetsFromAlbumByUrls(urls)](#module_miot/host/file..IFile+deleteAssetsFromAlbumByUrls) ⇒ Promise * [.screenShot(imageName)](#module_miot/host/file..IFile+screenShot) ⇒ [ 'Promise' ].<string> * [.screenShotInRect(imageName, rect)](#module_miot/host/file..IFile+screenShotInRect) ⇒ [ 'Promise' ].<string> * [.longScreenShot(viewRef, imageName)](#module_miot/host/file..IFile+longScreenShot) ⇒ [ 'Promise' ].<string> * [.amapScreenShot(viewRef, imageName)](#module_miot/host/file..IFile+amapScreenShot) ⇒ Promise * [.getRGBAValueFromImageAtPath(imagePath, points)](#module_miot/host/file..IFile+getRGBAValueFromImageAtPath) ⇒ Promise + * [.mkdir(params)](#module_miot/host/file..IFile+mkdir) ⇒ [ 'Promise' ].<json> * [~FileEvent](#module_miot/host/file..FileEvent) : object * [.fileDownloadProgress](#module_miot/host/file..FileEvent.fileDownloadProgress) @@ -100,16 +101,17 @@ Host.file.screenShot(myshotfile) * [.ungzYunMiFile(fileName)](#module_miot/host/file..IFile+ungzYunMiFile) ⇒ Promise * [.saveImageToPhotosAlbum(fileName)](#module_miot/host/file..IFile+saveImageToPhotosAlbum) ⇒ Promise * [.saveFileToPhotosAlbum(fileName)](#module_miot/host/file..IFile+saveFileToPhotosAlbum) ⇒ Promise - * [.saveImageToPhotosDidAlbum(fileName)](#module_miot/host/file..IFile+saveImageToPhotosDidAlbum) ⇒ Promise - * [.saveVideoToPhotosDidAlbum(fileName)](#module_miot/host/file..IFile+saveVideoToPhotosDidAlbum) ⇒ Promise - * [.fetchLocalVideoFilePathFromDidAlbumByUrl(url)](#module_miot/host/file..IFile+fetchLocalVideoFilePathFromDidAlbumByUrl) ⇒ Promise - * [.getAllSourceFromPhotosDidAlbum()](#module_miot/host/file..IFile+getAllSourceFromPhotosDidAlbum) ⇒ Promise + * [.saveImageToPhotosDidAlbum(fileName, customDirName)](#module_miot/host/file..IFile+saveImageToPhotosDidAlbum) ⇒ Promiste + * [.saveVideoToPhotosDidAlbum(fileName, customDirName)](#module_miot/host/file..IFile+saveVideoToPhotosDidAlbum) ⇒ Promise + * [.fetchLocalVideoFilePathFromDidAlbumByUrl(url, customDirName)](#module_miot/host/file..IFile+fetchLocalVideoFilePathFromDidAlbumByUrl) ⇒ Promise + * [.getAllSourceFromPhotosDidAlbum(customDirName)](#module_miot/host/file..IFile+getAllSourceFromPhotosDidAlbum) ⇒ Promise * [.deleteAssetsFromAlbumByUrls(urls)](#module_miot/host/file..IFile+deleteAssetsFromAlbumByUrls) ⇒ Promise * [.screenShot(imageName)](#module_miot/host/file..IFile+screenShot) ⇒ [ 'Promise' ].<string> * [.screenShotInRect(imageName, rect)](#module_miot/host/file..IFile+screenShotInRect) ⇒ [ 'Promise' ].<string> * [.longScreenShot(viewRef, imageName)](#module_miot/host/file..IFile+longScreenShot) ⇒ [ 'Promise' ].<string> * [.amapScreenShot(viewRef, imageName)](#module_miot/host/file..IFile+amapScreenShot) ⇒ Promise * [.getRGBAValueFromImageAtPath(imagePath, points)](#module_miot/host/file..IFile+getRGBAValueFromImageAtPath) ⇒ Promise + * [.mkdir(params)](#module_miot/host/file..IFile+mkdir) ⇒ [ 'Promise' ].<json> @@ -357,37 +359,37 @@ Host.filedeleteFile('name').then(_ =>{ **Example** ```js let did = Device.deviceID; - let suffix = "mp3"; - Host.file.generateObjNameAndUrlForFDSUpload(did, suffix).then(res => { - if (res.hasOwnProperty(suffix) && res[suffix]) { - let obj = res[suffix]; - let obj_name = obj.obj_name; - let name = obj_name.substring(obj_name.length - 22) - let content = "AC"; - let time = obj.time; - this.file_obj_name = obj_name; - console.log("pre upload", res) - - Host.file.writeFile(name, content).then(r => { - let param = { - uploadUrl: obj.url, - method: obj.method, - headers: { "Content-Type": "" }, - files: [{ filename: name }] - } - Host.file.uploadFileToFDS(param).then(rr => { - alert('上传成功' + JSON.stringify(rr)) - console.log('upload file success', rr) - }).catch(err => { - alert('上传失败' + JSON.stringify(err)) - console.log('upload file failed', err) - }) - }).catch(err => { - alert('存储临时文件失败' + JSON.stringify(err)) - console.log("write file failed", err) - }) - } - }) + let suffix = "mp3"; + Host.file.generateObjNameAndUrlForFDSUpload(did, suffix).then(res => { + if (res.hasOwnProperty(suffix) && res[suffix]) { + let obj = res[suffix]; + let obj_name = obj.obj_name; + let name = obj_name.substring(obj_name.length - 22) + let content = "AC"; + let time = obj.time; + this.file_obj_name = obj_name; + console.log("pre upload", res) + + Host.file.writeFile(name, content).then(r => { + let param = { + uploadUrl: obj.url, + method: obj.method, + headers: { "Content-Type": "" }, + files: [{ filename: name }] + } + Host.file.uploadFileToFDS(param).then(rr => { + alert('上传成功' + JSON.stringify(rr)) + console.log('upload file success', rr) + }).catch(err => { + alert('上传失败' + JSON.stringify(err)) + console.log('upload file failed', err) + }) + }).catch(err => { + alert('存储临时文件失败' + JSON.stringify(err)) + console.log("write file failed", err) + }) + } + }) ``` @@ -422,18 +424,18 @@ getFDSFileInfoWithObjName,这个接口只是用来下载通过插件接口(Host. **Example** ```js let did = Device.deviceID; - let suffix = "mp3"; - let file_obj_name = this.file_obj_name //从服务端获取或者本地获取,通过generateObjNameAndUrlForFDSUpload 生成 - if (file_obj_name) { - Host.file.getFDSFileInfoWithObjName(file_obj_name).then(res => { - console.log('getfileurl success', res) - alert('获取成功' + JSON.stringify(res)) - }).catch(err => { - console.log('getfileurl failed', err) - }) - } else { - alert("先上传文件") - } + let suffix = "mp3"; + let file_obj_name = this.file_obj_name //从服务端获取或者本地获取,通过generateObjNameAndUrlForFDSUpload 生成 + if (file_obj_name) { + Host.file.getFDSFileInfoWithObjName(file_obj_name).then(res => { + console.log('getfileurl success', res) + alert('获取成功' + JSON.stringify(res)) + }).catch(err => { + console.log('getfileurl failed', err) + }) + } else { + alert("先上传文件") + } ``` @@ -642,12 +644,12 @@ Host.file.saveImageToPhotosAlbum('name').then(_ =>{ ``` -#### iFile.saveImageToPhotosDidAlbum(fileName) ⇒ Promise +#### iFile.saveImageToPhotosDidAlbum(fileName, customDirName) ⇒ Promiste 保存指定图片文件到以did命名的相册中 -该方法会在系统相册中创建一个以did命名的相册(如果不存在),并将图片保存在其中 +该方法会在系统相册中创建一个以did[-customDirName]命名的相册(如果不存在),并将图片保存在其中 **Kind**: instance method of [IFile](#module_miot/host/file..IFile) -**Returns**: Promise - 成功时:返回true +**Returns**: Promiste - 成功时:返回true 失败时: {"code":-401, "message":"access to photo library denied" } {"code":-1, "message":"did cannot be empty" } @@ -658,9 +660,10 @@ Host.file.saveImageToPhotosAlbum('name').then(_ =>{ {"code":-101, "message":"failed to create album" } **Since**: 10037 -| Param | Type | -| --- | --- | -| fileName | string | +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| fileName | string | | 图片在沙盒中的文件名 | +| customDirName | string | null | 自定义相册名称,默认为null,since 10042 | **Example** ```js @@ -668,7 +671,7 @@ Host.file.saveImageToPhotosAlbum('name').then(_ =>{ ``` -#### iFile.saveVideoToPhotosDidAlbum(fileName) ⇒ Promise +#### iFile.saveVideoToPhotosDidAlbum(fileName, customDirName) ⇒ Promise 保存指定照片文件到以did命名的相册中 该方法会在系统相册中创建一个以did命名的相册(如果不存在),并将视频保存在其中 @@ -685,9 +688,10 @@ Host.file.saveImageToPhotosAlbum('name').then(_ =>{ {"code":-101, "message":"failed to create album" } **Since**: 10037 -| Param | Type | -| --- | --- | -| fileName | string | +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| fileName | string | | | +| customDirName | string | null | 自定义相册名称,默认为null, since 10042 | **Example** ```js @@ -695,7 +699,7 @@ Host.file.saveImageToPhotosAlbum('name').then(_ =>{ ``` -#### iFile.fetchLocalVideoFilePathFromDidAlbumByUrl(url) ⇒ Promise +#### iFile.fetchLocalVideoFilePathFromDidAlbumByUrl(url, customDirName) ⇒ Promise 从did命名的相册中 通过url获取视频文件的filepath **Kind**: instance method of [IFile](#module_miot/host/file..IFile) @@ -707,9 +711,10 @@ Host.file.saveImageToPhotosAlbum('name').then(_ =>{ {"code":-3, "message":"url cannot be empty" } **Since**: 10037 -| Param | Type | -| --- | --- | -| url | string | +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| url | string | | | +| customDirName | string | null | 自定义相册名称,默认为null, since 10042 | **Example** ```js @@ -717,7 +722,7 @@ Host.file.saveImageToPhotosAlbum('name').then(_ =>{ ``` -#### iFile.getAllSourceFromPhotosDidAlbum() ⇒ Promise +#### iFile.getAllSourceFromPhotosDidAlbum(customDirName) ⇒ Promise 获取指定以did命名的相册中所有的图片和视频 如果不存在该相册,返回空数组 @@ -733,13 +738,18 @@ Host.file.saveImageToPhotosAlbum('name').then(_ =>{ 'pixelHeight' :, // height 0 代表unknown 'creationDate' :, // 创建时间信息,unix时间戳 'modificationDate' : , // 修改时间信息, unix时间戳 - 'duration' : , // 持续时间 信息 图片文件返回0 + 'duration' : , // 持续时间 信息 图片文件返回0 单位ms 10042之前ios返回的是秒,安卓返回的是ms 在10042 之后ios修正为ms } 失败时: {"code":-401, "message":"access to photo library denied" } {"code":-1, "message":"did cannot be empty" } {"code":-2, "message":"did cannot be empty" } **Since**: 10037 + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| customDirName | string | null | 自定义相册名称,默认为null, since 10042 | + **Example** ```js 参考com.xiaomi.demo Host-->PhotoDemo.js @@ -859,6 +869,33 @@ Host.file.amapScreenShot(myMapViewRef, imageName).then(() => { | imagePath | string | 图片文件路径 | | points | [ 'Array' ].<{x:int, y:int}> | 位置数组 | + + +#### iFile.mkdir(params) ⇒ [ 'Promise' ].<json> +创建目录 + +**Kind**: instance method of [IFile](#module_miot/host/file..IFile) +**Returns**: [ 'Promise' ].<json> - 成功时:{code:0,message:'success'}, + 失败时可能的返回值有:{code:-1,message:'directory name is not valid'}, + {code:-2,message:'file ${dirPath} already exist'}, + {code:-3,message:'parent directory is not exist:${dirPath}'}, + {code:-4,message:'permission denied,cannot access dir:${dirPath}'}, +**Since**: 10042 + +| Param | Type | Description | +| --- | --- | --- | +| params | json | {dirPath:‘xxx’,//本地路径如:dir0,/dir0/dir1 recursive: [true/false],//是否递归创建目录。如果为 true,则创建该目录和该目录下的所有子目录 } | + +**Example** +```js +let params ={ + dirPath: 'dir0/dir1', + recursive: true, +}; +Host.file.mkdir(params) + .then(res=>{alert(JSON.stringify(res))}) + .catch(err=>{alert(JSON.stringify(err))}) +``` ### miot/host/file~FileEvent : object diff --git "a/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/07-\351\241\265\351\235\242\345\257\274\350\210\252\346\250\241\345\235\227.md" "b/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/07-\351\241\265\351\235\242\345\257\274\350\210\252\346\250\241\345\235\227.md" index a43a11258..ac03e3d0a 100644 --- "a/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/07-\351\241\265\351\235\242\345\257\274\350\210\252\346\250\241\345\235\227.md" +++ "b/doc-md/05-\345\212\237\350\203\275\346\216\245\345\217\243/07-\351\241\265\351\235\242\345\257\274\350\210\252\346\250\241\345\235\227.md" @@ -77,6 +77,13 @@ Host.ui.openShareDevicePage * [.refreshDeviceList()](#module_miot/host/ui..IUi+refreshDeviceList) ⇒ Promise * [.openTerminalDeviceSettingPage(type)](#module_miot/host/ui..IUi+openTerminalDeviceSettingPage) * [.openAndroidLocationServerSettingPage()](#module_miot/host/ui..IUi+openAndroidLocationServerSettingPage) + * [.openResetAndConnectDevicePage()](#module_miot/host/ui..IUi+openResetAndConnectDevicePage) + * [.openVoiceCtrlDevListPage()](#module_miot/host/ui..IUi+openVoiceCtrlDevListPage) + * [.openStereoSettingPage()](#module_miot/host/ui..IUi+openStereoSettingPage) + * [.openXiaoaiContentPage()](#module_miot/host/ui..IUi+openXiaoaiContentPage) + * [.openClockMusicSelector(ringtone_tab, ringtone_id, ringtone_name, ringtone_query)](#module_miot/host/ui..IUi+openClockMusicSelector) + * [.openEarthquakeLocationSelector(name, district, city, latitude, longitude)](#module_miot/host/ui..IUi+openEarthquakeLocationSelector) + * [.openIOSDocumentFileChoosePage()](#module_miot/host/ui..IUi+openIOSDocumentFileChoosePage) ⇒ Promise @@ -142,6 +149,13 @@ Host.ui.openShareDevicePage * [.refreshDeviceList()](#module_miot/host/ui..IUi+refreshDeviceList) ⇒ Promise * [.openTerminalDeviceSettingPage(type)](#module_miot/host/ui..IUi+openTerminalDeviceSettingPage) * [.openAndroidLocationServerSettingPage()](#module_miot/host/ui..IUi+openAndroidLocationServerSettingPage) + * [.openResetAndConnectDevicePage()](#module_miot/host/ui..IUi+openResetAndConnectDevicePage) + * [.openVoiceCtrlDevListPage()](#module_miot/host/ui..IUi+openVoiceCtrlDevListPage) + * [.openStereoSettingPage()](#module_miot/host/ui..IUi+openStereoSettingPage) + * [.openXiaoaiContentPage()](#module_miot/host/ui..IUi+openXiaoaiContentPage) + * [.openClockMusicSelector(ringtone_tab, ringtone_id, ringtone_name, ringtone_query)](#module_miot/host/ui..IUi+openClockMusicSelector) + * [.openEarthquakeLocationSelector(name, district, city, latitude, longitude)](#module_miot/host/ui..IUi+openEarthquakeLocationSelector) + * [.openIOSDocumentFileChoosePage()](#module_miot/host/ui..IUi+openIOSDocumentFileChoosePage) ⇒ Promise @@ -848,3 +862,77 @@ Host.ui.openMiPayPageForAndroid(params).then((res)=>{console.log(res)}).catch((e **Kind**: instance method of [IUi](#module_miot/host/ui..IUi) **Since**: 10038 + + +#### iUi.openResetAndConnectDevicePage() +打开设备重置页面 + +**Kind**: instance method of [IUi](#module_miot/host/ui..IUi) +**Since**: 10041 + + +#### iUi.openVoiceCtrlDevListPage() +打开语音授权页面 + +**Kind**: instance method of [IUi](#module_miot/host/ui..IUi) +**Since**: 10041 + + +#### iUi.openStereoSettingPage() +打开立体声设置页面 + +**Kind**: instance method of [IUi](#module_miot/host/ui..IUi) +**Since**: 10041 + + +#### iUi.openXiaoaiContentPage() +跳转到米家播放音乐页面 + +**Kind**: instance method of [IUi](#module_miot/host/ui..IUi) + + +#### iUi.openClockMusicSelector(ringtone_tab, ringtone_id, ringtone_name, ringtone_query) +跳转到选择闹钟音乐页面,入参是为了告诉native当前选中的是哪个铃声,以高亮当前选中 + +**Kind**: instance method of [IUi](#module_miot/host/ui..IUi) + +| Param | Type | Description | +| --- | --- | --- | +| ringtone_tab | string | 铃声tab | +| ringtone_id | string | 铃声的id | +| ringtone_name | string | 铃声的name | +| ringtone_query | string | 铃声的query 返回值:{code:0,data:{ringtone_tab: 'xxx', ringtone_id: 'voice.white_noise', ringtone_name:'xxx',ringtone_query: '森林的声音'}} 错误时:{code:-1,message:'xxxxxx'} | + + + +#### iUi.openEarthquakeLocationSelector(name, district, city, latitude, longitude) +跳转到地震播报选择地理位置页面,入参是为了告诉native当前选中的是哪个位置 + +**Kind**: instance method of [IUi](#module_miot/host/ui..IUi) + +| Param | Type | Description | +| --- | --- | --- | +| name | string | 所选位置的名称 | +| district | string | 所选位置的区 | +| city | string | 所选位置的城市 | +| latitude | number | 所选位置的纬度 | +| longitude | number | 所选位置的经度 返回值:{code:0,data:{name: '武汉市汉阳医院', district: '汉阳区', city:'武汉市', latitude: 30.554658, longitude: 114.252377}} 错误时:{code:-1,message:'xxxxxx'} | + + + +#### iUi.openIOSDocumentFileChoosePage() ⇒ Promise +打开文件选择页面 only for iOS + 在使用前建议判断平台 + +**Kind**: instance method of [IUi](#module_miot/host/ui..IUi) +**Returns**: Promise - 成功时返回 + { code: 0 , data: [ { path: xxx, fileName: xxx, ext: xxx, fileSize: xxx}, {...}] } + 其中 path 是文件的绝对地址,ext是扩展名,fileName是文件名,byteLen 是文件 size 单位是byte + 需要特别说明的是: + 1:data 返回的数组类型 在 10042 中目前仅返回一个文件信息,不支持多选 + 2:如果用户没有选择任何文件,例如点击了左上角的取消按钮,那么 data 中会返回空数组,开发人员需要对此做处理。 + 失败时返回 + { code: -1, message: 'file authorized failed'} // 在ios中 获取icloud需要验证授权,此处错误代表授权失败,如果出现此错误,请联系米家开发人员或提交工单反馈。 + { code: -2, message: 'file read error'} // 出现此种错误 代表 ios 获取授权文件路径失败,如果出现此错误,请联系米家开发人员或提交工单反馈。 + { code: -3, message: 'method [openIOSDocumentFileChoosePage] can only be invoked on iOS, Android is not supported.' } +**Since**: 10042 diff --git "a/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/01-\347\263\273\347\273\237\346\234\215\345\212\241\346\250\241\345\235\227.md" "b/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/01-\347\263\273\347\273\237\346\234\215\345\212\241\346\250\241\345\235\227.md" index 69dbd701a..24c174102 100644 --- "a/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/01-\347\263\273\347\273\237\346\234\215\345\212\241\346\250\241\345\235\227.md" +++ "b/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/01-\347\263\273\347\273\237\346\234\215\345\212\241\346\250\241\345\235\227.md" @@ -39,6 +39,8 @@ Service.storage.getUserConfigs(key).then() * [miot/Service](#module_miot/Service) * _static_ * [.getServiceTokenWithSid(sid)](#module_miot/Service.getServiceTokenWithSid) ⇒ Promise + * [.revokePrivacyLicense()](#module_miot/Service.revokePrivacyLicense) ⇒ [ 'Promise' ].<Object> + * [.deleteDevice()](#module_miot/Service.deleteDevice) ⇒ [ 'Promise' ].<Object> * [.applyForDeviceIDAndToken(model, mac)](#module_miot/Service.applyForDeviceIDAndToken) ⇒ Promise * _inner_ * [~smarthome](#module_miot/Service..smarthome) @@ -51,6 +53,7 @@ Service.storage.getUserConfigs(key).then() * [~spec](#module_miot/Service..spec) * [~callSmartHomeAPI(api, params)](#module_miot/Service..callSmartHomeAPI) * [~callSmartHomeCameraAPI(api, subDomain, post, params)](#module_miot/Service..callSmartHomeCameraAPI) + * [~callSmartHomeCameraAPI(host, path, method, params, needDevice)](#module_miot/Service..callSmartHomeCameraAPI) ⇒ [ 'Promise' ].<object> * [~getServerName()](#module_miot/Service..getServerName) ⇒ [ 'Promise' ].<{countryName:"", countryCode:"", serverCode:""}> * [~getTimeZoneOfServer()](#module_miot/Service..getTimeZoneOfServer) * [~getUTCFromServer()](#module_miot/Service..getUTCFromServer) ⇒ [ 'Promise' ].<long> @@ -68,6 +71,48 @@ Android从SDK-10039开始支持该接口 | --- | --- | --- | | sid | string | 域名,类似"xxx.xiaomi.com" | + + +### miot/Service.revokePrivacyLicense() ⇒ [ 'Promise' ].<Object> +since 10042 +撤销隐私授权,插件调用该接口后需要主动调用退出插件 + +**Kind**: static method of [miot/Service](#module_miot/Service) +**Returns**: [ 'Promise' ].<Object> - 成功时返回:{code:0,data:true}; + 失败时返回:{code:-1,message:'invalid device'} ,或 {code:-2,message:'xxxxx'} +**Example** +```js +Service.revokePrivacyLicense() + .then(res=>{ + console.log(JSON.stringify(res)); + if( res.code ===0){ + console.log('success'); + } + }).catch(err=>{ + console.log(JSON.stringify(err)); + }); +``` + + +### miot/Service.deleteDevice() ⇒ [ 'Promise' ].<Object> +since 10042 +删除设备,插件调用该接口后需要主动调用退出插件 + +**Kind**: static method of [miot/Service](#module_miot/Service) +**Returns**: [ 'Promise' ].<Object> - 成功时返回:{code:0,data:true}; + 失败时返回:{code:-1,message:'invalid device'} ,或 {code:-2,message:'xxxxx'} +**Example** +```js +Service.deleteDevice() + .then(res=>{ + console.log(JSON.stringify(res)); + if( res.code ===0){ + console.log('success'); + } + }).catch(err=>{ + console.log(JSON.stringify(err)); + }); +``` ### miot/Service.applyForDeviceIDAndToken(model, mac) ⇒ Promise @@ -173,6 +218,24 @@ subDomain in `miot-sdk/service/cameraSubDomain.js` | post | bool | 是否POST方法 | | params | object | 传入参数 | + + +### miot/Service~callSmartHomeCameraAPI(host, path, method, params, needDevice) ⇒ [ 'Promise' ].<object> +小爱音箱相关接口请求,注意此请求传的是一个对象,里面部分对象有默认值,可不传 + +**Kind**: inner method of [miot/Service](#module_miot/Service) +**Returns**: [ 'Promise' ].<object> - 透传接口,直接返回服务端返回的值 + path, method = 0, params, needDevice = 1 +**Since**: 10041 + +| Param | Type | Description | +| --- | --- | --- | +| host | string | 请求的host,取值normal,hd,profile,lbs,skillstore,aifile,ai,aitrain,grayupgrade,homealbum。表示的host分别如下... { "normal": "https://api2.mina.mi.com", "hd": "https://hd.mina.mi.com", "profile": "https://userprofile.mina.mi.com", "lbs": "https://lbs.mina.mi.com", "skillstore": "https://skillstore.mina.mi.com", "aifile": "https://file.ai.xiaomi.com", "ai": "https://api.ai.xiaomi.com", "aitrain": "https://i.ai.mi.com/mico", "grayupgrade": "https://api.miwifi.com/rs/grayupgrade/v2/micoiOS", "homealbum": "https://display.api.mina.mi.com" } | +| path | string | 请求的路径,比如"/device_profile/conversation" | +| method | number | 默认为0(表示get方法),1表示post方法,2表示put方法 | +| params | object | 请求的参数,比如{limit:20} | +| needDevice | bool | cookie中是否需要带上deviceId,默认为true | + ### miot/Service~getServerName() ⇒ [ 'Promise' ].<{countryName:"", countryCode:"", serverCode:""}> diff --git "a/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/05-\346\231\272\350\203\275\345\256\266\345\272\255\346\250\241\345\235\227.md" "b/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/05-\346\231\272\350\203\275\345\256\266\345\272\255\346\250\241\345\235\227.md" index a2db84eba..06d201e3d 100644 --- "a/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/05-\346\231\272\350\203\275\345\256\266\345\272\255\346\250\241\345\235\227.md" +++ "b/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/05-\346\231\272\350\203\275\345\256\266\345\272\255\346\250\241\345\235\227.md" @@ -284,7 +284,7 @@ Device.getDeviceWifi().checkVersion() #### iSmartHome.getLatestVersionV2(did) -获取服务器中 最新的版本信息, +获取服务器中可用的固件更新版本信息 内部调用米家代理接口/v2/device/latest_ver **Kind**: instance method of [ISmartHome](#module_miot/service/smarthome..ISmartHome) diff --git "a/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/07-\346\231\272\350\203\275\346\221\204\345\203\217\346\234\272\346\250\241\345\235\227.md" "b/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/07-\346\231\272\350\203\275\346\221\204\345\203\217\346\234\272\346\250\241\345\235\227.md" deleted file mode 100644 index 335ddd76e..000000000 --- "a/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/07-\346\231\272\350\203\275\346\221\204\345\203\217\346\234\272\346\250\241\345\235\227.md" +++ /dev/null @@ -1,533 +0,0 @@ - - -## miot/service/miotcamera -摄像机 API - -**Export**: public -**Doc_name**: 智能摄像机模块 -**Doc_index**: 7 -**Doc_directory**: service - -* [miot/service/miotcamera](#module_miot/service/miotcamera) - * [~IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) - * [.connectToDeviceWithStateChangeCallBack(callbackName)](#module_miot/service/miotcamera..IMiotCamera+connectToDeviceWithStateChangeCallBack) - * [.disconnectToDevice()](#module_miot/service/miotcamera..IMiotCamera+disconnectToDevice) - * [.sendP2PCommandToDevice(command, params)](#module_miot/service/miotcamera..IMiotCamera+sendP2PCommandToDevice) ⇒ [ 'Promise' ].<number> - * [.bindP2PCommandReceiveCallback(callbackName)](#module_miot/service/miotcamera..IMiotCamera+bindP2PCommandReceiveCallback) - * [.sendRDTJSONCommandToDevice(params)](#module_miot/service/miotcamera..IMiotCamera+sendRDTJSONCommandToDevice) ⇒ [ 'Promise' ].<number> - * [.sendRDTCommandToDevice(params)](#module_miot/service/miotcamera..IMiotCamera+sendRDTCommandToDevice) ⇒ [ 'Promise' ].<number> - * [.bindRDTDataReceiveCallback(callbackName)](#module_miot/service/miotcamera..IMiotCamera+bindRDTDataReceiveCallback) - * [.showAlarmVideos(AlarmEventType)](#module_miot/service/miotcamera..IMiotCamera+showAlarmVideos) - * [.showCloudStorage(supportHevc, 是否使用)](#module_miot/service/miotcamera..IMiotCamera+showCloudStorage) - * [.showCloudStorageSetting()](#module_miot/service/miotcamera..IMiotCamera+showCloudStorageSetting) - * [.openAlarmVideoPlayer(data)](#module_miot/service/miotcamera..IMiotCamera+openAlarmVideoPlayer) - * [.showFaceRecognize(isVip)](#module_miot/service/miotcamera..IMiotCamera+showFaceRecognize) - * [.bindBPSReceiveCallback(callbackName)](#module_miot/service/miotcamera..IMiotCamera+bindBPSReceiveCallback) - * [.ffmpegCommand(command, callback, complete)](#module_miot/service/miotcamera..IMiotCamera+ffmpegCommand) - * [.downloadM3U8ToMP4(fileId, filePath, callbackName, isAlarm, videoCodec)](#module_miot/service/miotcamera..IMiotCamera+downloadM3U8ToMP4) ⇒ - * [.getVideoFileUrl(fileId, isAlarm, videoCodec)](#module_miot/service/miotcamera..IMiotCamera+getVideoFileUrl) - * [.getFileIdImage(imgStoreId)](#module_miot/service/miotcamera..IMiotCamera+getFileIdImage) ⇒ [ 'Promise' ].<String> - * [.getFaceImgWithDid(faceId)](#module_miot/service/miotcamera..IMiotCamera+getFaceImgWithDid) ⇒ [ 'Promise' ].<String> - * [.setTimelinePlaybackMode(isTimelinePlayback)](#module_miot/service/miotcamera..IMiotCamera+setTimelinePlaybackMode) ⇒ null - * [.bindTimelinePlaybackEndListener(timelinePlaybackEndListenerName)](#module_miot/service/miotcamera..IMiotCamera+bindTimelinePlaybackEndListener) ⇒ null - * [.getCurrentSpeakerVolumn()](#module_miot/service/miotcamera..IMiotCamera+getCurrentSpeakerVolumn) - * [.setCurrentDeviceIsMissFirmware(boolean)](#module_miot/service/miotcamera..IMiotCamera+setCurrentDeviceIsMissFirmware) - * [.showNASSetting()](#module_miot/service/miotcamera..IMiotCamera+showNASSetting) - * [.openFloatWindow()](#module_miot/service/miotcamera..IMiotCamera+openFloatWindow) - * [.closeFloatWindow()](#module_miot/service/miotcamera..IMiotCamera+closeFloatWindow) - * [.tryBindAlarmNotifyWithWechatMijia()](#module_miot/service/miotcamera..IMiotCamera+tryBindAlarmNotifyWithWechatMijia) - * [~MISSCommand](#module_miot/service/miotcamera..MISSCommand) : object - * [.MISS_CMD_VIDEO_STOP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_VIDEO_STOP) - * [.MISS_CMD_AUDIO_START](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_AUDIO_START) - * [.MISS_CMD_AUDIO_STOP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_AUDIO_STOP) - * [.MISS_CMD_SPEAKER_START_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_SPEAKER_START_REQ) - * [.MISS_CMD_SPEAKER_START_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_SPEAKER_START_RESP) - * [.MISS_CMD_SPEAKER_STOP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_SPEAKER_STOP) - * [.MISS_CMD_STREAM_CTRL_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_STREAM_CTRL_REQ) - * [.MISS_CMD_STREAM_CTRL_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_STREAM_CTRL_RESP) - * [.MISS_CMD_GET_AUDIO_FORMAT_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_GET_AUDIO_FORMAT_REQ) - * [.MISS_CMD_GET_AUDIO_FORMAT_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_GET_AUDIO_FORMAT_RESP) - * [.MISS_CMD_PLAYBACK_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_PLAYBACK_REQ) - * [.MISS_CMD_PLAYBACK_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_PLAYBACK_RESP) - * [.MISS_CMD_PLAYBACK_SET_SPEED](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_PLAYBACK_SET_SPEED) - * [.MISS_CMD_DEVINFO_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_DEVINFO_REQ) - * [.MISS_CMD_DEVINFO_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_DEVINFO_RESP) - * [.MISS_CMD_MOTOR_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_MOTOR_REQ) - * [.MISS_CMD_MOTOR_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_MOTOR_RESP) - * [~MISSError](#module_miot/service/miotcamera..MISSError) : object - * [~MISSConnectState](#module_miot/service/miotcamera..MISSConnectState) : object - * [~AlarmEventType](#module_miot/service/miotcamera..AlarmEventType) : object - - - -### miot/service/miotcamera~IMiotCamera -**Kind**: inner class of [miot/service/miotcamera](#module_miot/service/miotcamera) -**Export**: - -* [~IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) - * [.connectToDeviceWithStateChangeCallBack(callbackName)](#module_miot/service/miotcamera..IMiotCamera+connectToDeviceWithStateChangeCallBack) - * [.disconnectToDevice()](#module_miot/service/miotcamera..IMiotCamera+disconnectToDevice) - * [.sendP2PCommandToDevice(command, params)](#module_miot/service/miotcamera..IMiotCamera+sendP2PCommandToDevice) ⇒ [ 'Promise' ].<number> - * [.bindP2PCommandReceiveCallback(callbackName)](#module_miot/service/miotcamera..IMiotCamera+bindP2PCommandReceiveCallback) - * [.sendRDTJSONCommandToDevice(params)](#module_miot/service/miotcamera..IMiotCamera+sendRDTJSONCommandToDevice) ⇒ [ 'Promise' ].<number> - * [.sendRDTCommandToDevice(params)](#module_miot/service/miotcamera..IMiotCamera+sendRDTCommandToDevice) ⇒ [ 'Promise' ].<number> - * [.bindRDTDataReceiveCallback(callbackName)](#module_miot/service/miotcamera..IMiotCamera+bindRDTDataReceiveCallback) - * [.showAlarmVideos(AlarmEventType)](#module_miot/service/miotcamera..IMiotCamera+showAlarmVideos) - * [.showCloudStorage(supportHevc, 是否使用)](#module_miot/service/miotcamera..IMiotCamera+showCloudStorage) - * [.showCloudStorageSetting()](#module_miot/service/miotcamera..IMiotCamera+showCloudStorageSetting) - * [.openAlarmVideoPlayer(data)](#module_miot/service/miotcamera..IMiotCamera+openAlarmVideoPlayer) - * [.showFaceRecognize(isVip)](#module_miot/service/miotcamera..IMiotCamera+showFaceRecognize) - * [.bindBPSReceiveCallback(callbackName)](#module_miot/service/miotcamera..IMiotCamera+bindBPSReceiveCallback) - * [.ffmpegCommand(command, callback, complete)](#module_miot/service/miotcamera..IMiotCamera+ffmpegCommand) - * [.downloadM3U8ToMP4(fileId, filePath, callbackName, isAlarm, videoCodec)](#module_miot/service/miotcamera..IMiotCamera+downloadM3U8ToMP4) ⇒ - * [.getVideoFileUrl(fileId, isAlarm, videoCodec)](#module_miot/service/miotcamera..IMiotCamera+getVideoFileUrl) - * [.getFileIdImage(imgStoreId)](#module_miot/service/miotcamera..IMiotCamera+getFileIdImage) ⇒ [ 'Promise' ].<String> - * [.getFaceImgWithDid(faceId)](#module_miot/service/miotcamera..IMiotCamera+getFaceImgWithDid) ⇒ [ 'Promise' ].<String> - * [.setTimelinePlaybackMode(isTimelinePlayback)](#module_miot/service/miotcamera..IMiotCamera+setTimelinePlaybackMode) ⇒ null - * [.bindTimelinePlaybackEndListener(timelinePlaybackEndListenerName)](#module_miot/service/miotcamera..IMiotCamera+bindTimelinePlaybackEndListener) ⇒ null - * [.getCurrentSpeakerVolumn()](#module_miot/service/miotcamera..IMiotCamera+getCurrentSpeakerVolumn) - * [.setCurrentDeviceIsMissFirmware(boolean)](#module_miot/service/miotcamera..IMiotCamera+setCurrentDeviceIsMissFirmware) - * [.showNASSetting()](#module_miot/service/miotcamera..IMiotCamera+showNASSetting) - * [.openFloatWindow()](#module_miot/service/miotcamera..IMiotCamera+openFloatWindow) - * [.closeFloatWindow()](#module_miot/service/miotcamera..IMiotCamera+closeFloatWindow) - * [.tryBindAlarmNotifyWithWechatMijia()](#module_miot/service/miotcamera..IMiotCamera+tryBindAlarmNotifyWithWechatMijia) - - - -#### iMiotCamera.connectToDeviceWithStateChangeCallBack(callbackName) -连接设备 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) - -| Param | Type | Description | -| --- | --- | --- | -| callbackName | string | 链接状态变更回调 { state: MISSConnectState, error: MISSError } | - - - -#### iMiotCamera.disconnectToDevice() -断开连接设备 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10033 - - -#### iMiotCamera.sendP2PCommandToDevice(command, params) ⇒ [ 'Promise' ].<number> -发送miss命令到设备 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Returns**: [ 'Promise' ].<number> - a promise with return code - -| Param | Type | Description | -| --- | --- | --- | -| command | MISSCommand | miss 命令 | -| params | object | 参数 | - - - -#### iMiotCamera.bindP2PCommandReceiveCallback(callbackName) -注册接收命令回调 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) - -| Param | Type | Description | -| --- | --- | --- | -| callbackName | string | 收到p2p command回调 { command: MISSCommand, data: Object/Base64String } | - - - -#### iMiotCamera.sendRDTJSONCommandToDevice(params) ⇒ [ 'Promise' ].<number> -发送RDT命令到设备 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Returns**: [ 'Promise' ].<number> - a promise with return code - -| Param | Type | Description | -| --- | --- | --- | -| params | object | json data | - - - -#### iMiotCamera.sendRDTCommandToDevice(params) ⇒ [ 'Promise' ].<number> -发送RDT命令到设备 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Returns**: [ 'Promise' ].<number> - a promise with return code - -| Param | Type | Description | -| --- | --- | --- | -| params | string | base64 encoded data | - - - -#### iMiotCamera.bindRDTDataReceiveCallback(callbackName) -注册接收RDT命令回调 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) - -| Param | Type | Description | -| --- | --- | --- | -| callbackName | string | 收到RDT回调 { data: Object/Base64String } | - - - -#### iMiotCamera.showAlarmVideos(AlarmEventType) -打开报警视频页面 -这个接口按照现有的标准报警视频交互,报警视频列表页筛选项默认有:全部、物体移动、人性移动、AI;如果是vip用户,就再加上人脸、宝宝哭声这两个筛选项; -这里添加这个localRecognizeEvents的目的是:主要处理,部分model不是vip,也会有宝宝哭声的筛选项,这个参数的作用:用户如果不是vip,但是又有默认选项之外的筛选项时,通过这个参数来添加人脸或者宝宝哭声的选项。 - -现在除创米021那几款摄像头,都只传0就行了 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10033 - -| Param | Type | Description | -| --- | --- | --- | -| AlarmEventType | number | 取或 | - - - -#### iMiotCamera.showCloudStorage(supportHevc, 是否使用) -打开云储存页面 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10033 - -| Param | Type | Description | -| --- | --- | --- | -| supportHevc | BOOL | 是否支持 H265 | -| 是否使用 | useV2API | V2 接口 | - - - -#### iMiotCamera.showCloudStorageSetting() -打开云储存设置页面 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10033 - - -#### iMiotCamera.openAlarmVideoPlayer(data) -打开报警视频播放页面 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10037 - -| Param | Description | -| --- | --- | -| data | jsonobj=>str 从push点击跳转进来后,如果是smartscene 就把extra字段捞出来放到这里 | - - - -#### iMiotCamera.showFaceRecognize(isVip) -打开人脸识别页面 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10033 - -| Param | Type | -| --- | --- | -| isVip | BOOL | - - - -#### iMiotCamera.bindBPSReceiveCallback(callbackName) -注册收到数据速率 Bytes per second,每秒回调一次 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10036 - -| Param | Type | Description | -| --- | --- | --- | -| callbackName | string | 回调名称 { rate: number } | - - - -#### iMiotCamera.ffmpegCommand(command, callback, complete) -执行FFmpeg命令 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) - -| Param | Type | Description | -| --- | --- | --- | -| command | object | string | -| callback | String | string | -| complete | Block | (eror) => | - - - -#### iMiotCamera.downloadM3U8ToMP4(fileId, filePath, callbackName, isAlarm, videoCodec) ⇒ -下载m3u8视频并合成mp4 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Returns**: state : 1. onStart (开始下载) 2. onComplete(下载完成) 3. onError(失败) 4. onProgress(下载进度) - errorInfo : 失败描述(state = onError时才有) - progress : 下载进度0 - 100 (state = onProgress时才有) -**Since**: 10038 - -| Param | Default | Description | -| --- | --- | --- | -| fileId | | | -| filePath | | | -| callbackName | | | -| isAlarm | false | 是否报警视频 | -| videoCodec | H265 | 视频编码如 "H264", "H265" | - - - -#### iMiotCamera.getVideoFileUrl(fileId, isAlarm, videoCodec) -获取报警视频m3u8播放地址 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10037 - -| Param | Description | -| --- | --- | -| fileId | 视频fileId | -| isAlarm | 是否报警视频 | -| videoCodec | 视频编码如 "H264", "H265" | - - - -#### iMiotCamera.getFileIdImage(imgStoreId) ⇒ [ 'Promise' ].<String> -获取视频缩略图片接口(如报警视频列表缩略图) - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Returns**: [ 'Promise' ].<String> - 文件路径 -**Since**: 10037 - -| Param | Type | Description | -| --- | --- | --- | -| imgStoreId | string | 图片id | - - - -#### iMiotCamera.getFaceImgWithDid(faceId) ⇒ [ 'Promise' ].<String> -获取人脸图片接口 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Returns**: [ 'Promise' ].<String> - 文件路径 -**Since**: 10040 - -| Param | Type | Description | -| --- | --- | --- | -| faceId | string | 人脸id | - - - -#### iMiotCamera.setTimelinePlaybackMode(isTimelinePlayback) ⇒ null -通知native端现在是不是回看时间轴模式 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10038 - -| Param | Type | Description | -| --- | --- | --- | -| isTimelinePlayback | boolean | 是不是回看时间轴模式 | - - - -#### iMiotCamera.bindTimelinePlaybackEndListener(timelinePlaybackEndListenerName) ⇒ null -绑定回调,native端 在时间轴回看的模式下,如果从点播切换成直播了,就通过这个回调告诉js端 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10038 - -| Param | Type | Description | -| --- | --- | --- | -| timelinePlaybackEndListenerName | string | native端在回看时间轴模式下,从点播切换成直播了,通过DeviceEmitter发送这个时间给js端 | - - - -#### iMiotCamera.getCurrentSpeakerVolumn() -获取当前语音对讲过程中的音量大小 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10038 -return {promise} - - -#### iMiotCamera.setCurrentDeviceIsMissFirmware(boolean) -设置当前model是不是miss固件 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10038 - -| Param | Description | -| --- | --- | -| boolean | isMissFirmware 是否是miss固件,true 是; false tutk固件。 | - - - -#### iMiotCamera.showNASSetting() -打开摄像机NAS存储设置页面。 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10038 - - -#### iMiotCamera.openFloatWindow() -开启悬浮窗模式 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10039 - - -#### iMiotCamera.closeFloatWindow() -关闭悬浮窗 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10040 - - -#### iMiotCamera.tryBindAlarmNotifyWithWechatMijia() -绑定摄像头的报警视频到微信米家公众号里,有报警视频推送到微信公共号 - -**Kind**: instance method of [IMiotCamera](#module_miot/service/miotcamera..IMiotCamera) -**Since**: 10040 - - -### miot/service/miotcamera~MISSCommand : object -MISS 命令 - -**Kind**: inner namespace of [miot/service/miotcamera](#module_miot/service/miotcamera) - -* [~MISSCommand](#module_miot/service/miotcamera..MISSCommand) : object - * [.MISS_CMD_VIDEO_STOP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_VIDEO_STOP) - * [.MISS_CMD_AUDIO_START](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_AUDIO_START) - * [.MISS_CMD_AUDIO_STOP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_AUDIO_STOP) - * [.MISS_CMD_SPEAKER_START_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_SPEAKER_START_REQ) - * [.MISS_CMD_SPEAKER_START_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_SPEAKER_START_RESP) - * [.MISS_CMD_SPEAKER_STOP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_SPEAKER_STOP) - * [.MISS_CMD_STREAM_CTRL_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_STREAM_CTRL_REQ) - * [.MISS_CMD_STREAM_CTRL_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_STREAM_CTRL_RESP) - * [.MISS_CMD_GET_AUDIO_FORMAT_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_GET_AUDIO_FORMAT_REQ) - * [.MISS_CMD_GET_AUDIO_FORMAT_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_GET_AUDIO_FORMAT_RESP) - * [.MISS_CMD_PLAYBACK_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_PLAYBACK_REQ) - * [.MISS_CMD_PLAYBACK_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_PLAYBACK_RESP) - * [.MISS_CMD_PLAYBACK_SET_SPEED](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_PLAYBACK_SET_SPEED) - * [.MISS_CMD_DEVINFO_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_DEVINFO_REQ) - * [.MISS_CMD_DEVINFO_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_DEVINFO_RESP) - * [.MISS_CMD_MOTOR_REQ](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_MOTOR_REQ) - * [.MISS_CMD_MOTOR_RESP](#module_miot/service/miotcamera..MISSCommand.MISS_CMD_MOTOR_RESP) - - - -#### MISSCommand.MISS\_CMD\_VIDEO\_STOP -< C->S, video start - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_AUDIO\_START -< C->S, video stop - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_AUDIO\_STOP -< C->S, audio start - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_SPEAKER\_START\_REQ -< C->S, audio stop - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_SPEAKER\_START\_RESP -< C->S, speaker start req - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_SPEAKER\_STOP -< C->S, speaker start resp - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_STREAM\_CTRL\_REQ -< C->S, speaker stop - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_STREAM\_CTRL\_RESP -< C->S, video quality req - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_GET\_AUDIO\_FORMAT\_REQ -< S->C, video quality response - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_GET\_AUDIO\_FORMAT\_RESP -< C->S, get audio format - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_PLAYBACK\_REQ -< S->C, audio format response - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_PLAYBACK\_RESP -< C->S, playback request - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_PLAYBACK\_SET\_SPEED -< S->C, playback response - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_DEVINFO\_REQ -< C->S, playback speed - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_DEVINFO\_RESP -< C->S, device info request - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_MOTOR\_REQ -< S->C, device info response - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -#### MISSCommand.MISS\_CMD\_MOTOR\_RESP -< C->S, device motor control - -**Kind**: static property of [MISSCommand](#module_miot/service/miotcamera..MISSCommand) - - -### miot/service/miotcamera~MISSError : object -MISS Error - -**Kind**: inner namespace of [miot/service/miotcamera](#module_miot/service/miotcamera) - - -### miot/service/miotcamera~MISSConnectState : object -MISS Connection State - -**Kind**: inner namespace of [miot/service/miotcamera](#module_miot/service/miotcamera) - - -### miot/service/miotcamera~AlarmEventType : object -Alarm Event Type - -**Kind**: inner namespace of [miot/service/miotcamera](#module_miot/service/miotcamera) diff --git "a/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/08-\346\210\277\351\227\264\346\250\241\345\235\227.md" "b/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/08-\346\210\277\351\227\264\346\250\241\345\235\227.md" index 92b941677..41e886a42 100644 --- "a/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/08-\346\210\277\351\227\264\346\250\241\345\235\227.md" +++ "b/doc-md/06-\347\263\273\347\273\237\346\234\215\345\212\241/08-\346\210\277\351\227\264\346\250\241\345\235\227.md" @@ -28,6 +28,7 @@ Service.room.loadAllRoom(true).then((rooms)=>{ * [.roomID](#module_miot/service/Room.IMHRoom+roomID) * [.name](#module_miot/service/Room.IMHRoom+name) * [.shareFlag](#module_miot/service/Room.IMHRoom+shareFlag) + * [.didList](#module_miot/service/Room.IMHRoom+didList) * [.updateName(newName)](#module_miot/service/Room.IMHRoom+updateName) ⇒ [ 'Promise' ].<unknown> * _inner_ * [~IMiotRoom](#module_miot/service/Room..IMiotRoom) @@ -44,6 +45,7 @@ Service.room.loadAllRoom(true).then((rooms)=>{ * [.roomID](#module_miot/service/Room.IMHRoom+roomID) * [.name](#module_miot/service/Room.IMHRoom+name) * [.shareFlag](#module_miot/service/Room.IMHRoom+shareFlag) + * [.didList](#module_miot/service/Room.IMHRoom+didList) * [.updateName(newName)](#module_miot/service/Room.IMHRoom+updateName) ⇒ [ 'Promise' ].<unknown> @@ -69,6 +71,12 @@ Service.room.loadAllRoom(true).then((rooms)=>{ #### imhRoom.shareFlag 房间的分享标识 +**Kind**: instance property of [IMHRoom](#module_miot/service/Room.IMHRoom) + + +#### imhRoom.didList +房间支持的设备did列表,目前只有小爱音箱有权限 + **Kind**: instance property of [IMHRoom](#module_miot/service/Room.IMHRoom) @@ -97,7 +105,7 @@ Service.room.loadAllRoom(true).then((rooms)=>{ #### iMiotRoom.loadAllRoom([forceReload]) ⇒ [ 'Rromise' ].<Array.<IMHRoom>> -获取所有房间列表 +获取当前家庭所有房间列表 **Kind**: instance method of [IMiotRoom](#module_miot/service/Room..IMiotRoom) **Returns**: [ 'Rromise' ].<Array.<IMHRoom>> - Promise, 带有房间列表的结果, IMHRoom的数据结构参考IMHRoom类 diff --git "a/doc-md/07-UI\347\273\204\344\273\266/01-\345\270\270\347\224\250UI\347\273\204\344\273\266.md" "b/doc-md/07-UI\347\273\204\344\273\266/01-\345\270\270\347\224\250UI\347\273\204\344\273\266.md" index 19a103890..3b11474be 100644 --- "a/doc-md/07-UI\347\273\204\344\273\266/01-\345\270\270\347\224\250UI\347\273\204\344\273\266.md" +++ "b/doc-md/07-UI\347\273\204\344\273\266/01-\345\270\270\347\224\250UI\347\273\204\344\273\266.md" @@ -27,6 +27,8 @@ | osdy | number | 畸变矫正-osdy default 0.0 | | fullscreenState | bool | 是否是全屏状态 since 10033 | | forceSoftDecode | bool | 强制软解 since 10033 | +| recordingVideoParam | object | 限制录制视频时的分辨率,开始录制视频前,要调整分辨率到指定分辨率。 since 10041 {width:111, height:111} | +| isFull | boolean | 画面是否填充满屏幕 | **Example** ```js @@ -367,57 +369,6 @@ onCheck={res => { }} /> ``` - - -## miot/ui/NumberSpinner -数字选择器 - -**Export**: public -**Doc_name**: 常用UI组件 -**Doc_index**: 1 -**Doc_directory**: ui -**Since**: 10003 -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| visible | bool | 是否可见 | -| unit | string | 单位 | -| max | int | 最大值 | -| min | int | 最小值 | -| interval | int | 步长,默认为1 | -| defaultValue | int | 默认值 | -| valueFormat | string | 格式 | -| onNumberChanged | func | 值改变的回调 | - -**Example** -```js -{ - console.log(`newValue:${data.newValue},oldValue:${data.oldValue}`); - }} - /> - - - - { - console.log(`newValue:${data.newValue},oldValue:${data.oldValue}`); - }} - /> -``` ## miot/ui/ProgressDialog @@ -483,63 +434,6 @@ RTSP视频渲染组件 images={[{image:require(''),position:{125,125},size:{5,5},rotation:0,name:'charge'}]} /> ``` -## Modules - -
-
Separator
-

分割线,常用于导航栏和列表项等

-
-
- -## Constants - -
-
TYPE
-

分割线类型

-
-
- - - -## Separator -分割线,常用于导航栏和列表项等 - -**Export**: public -**Doc_name**: 常用UI组件 -**Doc_index**: 1 -**Doc_directory**: ui -**Since**: 10004 -**Author**: Geeook -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| type | string | 分割线类型,横向(row)或者纵向(column),默认横向 | -| style | object | 自定义样式,maxHeight = 1 | - - - -## TYPE -分割线类型 - -**Kind**: global constant - -* [TYPE](#TYPE) - * [.ROW](#TYPE.ROW) - * [.COLUMN](#TYPE.COLUMN) - - - -### TYPE.ROW -横向 - -**Kind**: static property of [TYPE](#TYPE) - - -### TYPE.COLUMN -纵向 - -**Kind**: static property of [TYPE](#TYPE) ## miot/ui/SingleChoseDialog @@ -574,100 +468,6 @@ dataSource={['message0', 'message1', 'message2', 'message3', 'message4', 'messag ... /> ``` - - -## miot/ui/StringSpinner -字符串选择器,兼容NumberSpinner(支持NumberSpinner的所有属性) - -**Export**: public -**Doc_name**: 常用UI组件 -**Doc_index**: 1 -**Doc_directory**: ui -**Since**: 10020 -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| visible | bool | 是否可见 | -| style | style | 开关样式,仅支持宽高 | -| dataSource | [ 'array' ].<string> | 数据源 | -| defaultValue | string | 默认值 | -| onValueChanged | func | 值改变的回调 | -| unit | string | 单位 默认:无 | -| pickerInnerStyle.textColor | string | 文字颜色 默认值 #000000 | -| pickerInnerStyle.selectTextColor | string | 文字选中颜色 默认值 #00aa71 | -| pickerInnerStyle.selectBgColor | string | 文字选中背景 默认值 #ffffff | -| pickerInnerStyle.unitTextColor | string | 单位字体颜色 默认值 #00aa71 | -| pickerInnerStyle.lineColor | string | 分割线颜色 默认值 #e5e5e5 | -| pickerInnerStyle.fontSize | number | 文字大小 默认值 22 | -| pickerInnerStyle.selectFontSize | number | 文字选中大小 默认值 22 | -| pickerInnerStyle.unitFontSize | number | 单位字体大小 默认值 12 | -| pickerInnerStyle.rowHeight | number | 行高 默认值 42 | -| pickerInnerStyle.allowFontScaling | bool | 10040新增 text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` | - -**Example** -```js - { this.updateOneValue(data) }} -/> -``` - - -## Switch -Switch for Android and iOS - -**Export**: public -**Doc_name**: 常用UI组件 -**Doc_index**: 1 -**Doc_directory**: ui -**Since**: 10020 -**Author**: Geeook -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| value | bool | 开关状态,默认值 false | -| style | style | 开关样式,仅支持宽高 | -| onTintColor | string | 打开时的背景颜色 | -| tintColor | string | 关闭时的背景颜色 | -| disabled | bool | 是否禁用,默认值 false | -| onValueChange | function | 切换开关的回调函数 | - - - -## miot/ui/TitleBar -新版导航栏,可以尝试使用 - -**Export**: public -**Doc_name**: 常用UI组件 -**Doc_index**: 1 -**Doc_directory**: ui -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| type | | 导航栏类型 options: ["dark", "light"(default)], dark默认表示白底黑字, light默认表示黑底白字 | -| style | | 导航栏整体的样式,会覆盖 type 的默认设置,其中 height 定义的是状态栏下方内容的高度(不能小于30),默认 height = 55 | -| leftTextStyle | | 左侧文字样式,和 leftText 一起使用,不设置使用米家默认值 | -| leftText | | 左侧文字 | -| onPressLeft | | 左侧点击事件,设置了才显示左侧文字或图片,如果设置了leftText则显示设置的文字,否则显示默认的返回按钮。 | -| onPressLeft2 | | 左侧的第二个点击事件,设置了才显示默认的关闭按钮, | -| rightTextStyle | | 右侧文字样式,和 rightText 一起使用,不设置使用米家默认值 | -| rightText | | 右侧文字 | -| onPressRight | | 右侧点击事件,设置了才显示右侧文字或图片,如果设置了 rightText 则显示设置的文字,否则显示默认的更多按钮。 | -| onPressRight2 | | 右侧的第二个点击事件,设置了才显示默认的分享按钮 | -| title | | 中间的标题 | -| subTitle | | 中间的子标题 | -| titleStyle | ViewPropTypes.style | 10040新增 最左侧文字颜色的样式 | -| subtitleStyle | ViewPropTypes.style | 10040新增 最左侧文字颜色的样式 | -| onPressTitle | | 点击标题的事件 | -| showDot | | 是否显示右侧更多按钮的空点 | -| allowFontScaling | bool | 字体大小是否随系统大小变化而变化, 默认值为true | - ## ~~miot/ui/TitleBarBlack~~ @@ -724,27 +524,3 @@ Switch for Android and iOS | onPressTitle | 点击标题的事件 | | showDot | 是否显示右侧更多按钮的空点 | - - -## TouchableView -可点击的View组件 值得注意的是,尽量使用单层嵌套而不是多层嵌套,否则容易出现响应者混乱的问题。 - -**Export**: public -**Doc_name**: 常用UI组件 -**Doc_index**: 1 -**Doc_directory**: ui -**Since**: 10040 -**Author**: Geeook -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| delayLongPress | number | longPress回调触发延时 | -| delayPressIn | number | onPress回调触发延时 | -| delayPressOut | number | onPress结束触发延时 | -| disabled | bool | 是否禁用 | -| onLongPress | function | 长按回调 | -| onPress | function | 点击回调 | -| viewStyle | style | style | -| underlayColor | string | onPressIn触发时颜色改变值 | - diff --git "a/doc-md/07-UI\347\273\204\344\273\266/02-\345\210\227\350\241\250\346\216\247\344\273\266.md" "b/doc-md/07-UI\347\273\204\344\273\266/02-\345\210\227\350\241\250\346\216\247\344\273\266.md" deleted file mode 100644 index a7660dcef..000000000 --- "a/doc-md/07-UI\347\273\204\344\273\266/02-\345\210\227\350\241\250\346\216\247\344\273\266.md" +++ /dev/null @@ -1,106 +0,0 @@ - - -## ListItemWithSlider -带滑动条的列表项 - -**Export**: public -**Doc_name**: 列表控件 -**Doc_index**: 2 -**Doc_directory**: ui -**Since**: 10004 -**Author**: Geeook -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| title | string | 标题 | -| subtitle | string | 副标题,优先级高于自动计算的值 | -| sliderProps | object | slider的属性值,默认值 {minimumValue:0,maximumValue:100,step:1,value:50} minimumValue:最小值;maximumValue:最大值;step:步长;value:当前值 | -| showWithPercent | bool | 是否以百分比显示当前值,默认值 true | -| unit | string | 当前值的单位。`showWithPercent = true` 将不显示单位 | -| sliderStyle | object | slider 的自定义样式 默认值 { minimumTrackTintColor: "#32BAC0", // slider 左侧已填充颜色 maximumTrackTintColor: "rgba(0,0,0,0.15)", // slider 右侧未填充颜色 thumbTintColor: "#32BAC0", // 可移动圆圈的填充颜色 style: {}, // slider 容器的自定义样式 trackStyle: { height: 2, borderRadius: 1 }, // 轨 的自定义样式 thumbStyle: { width: 24, height: 24, borderRadius: 12 }, // 可移动圆圈 的自定义样式 } | -| onValueChange | function | 滑动回调函数,返回实时的滑动值 | -| onSlidingComplete | function | 滑动结束回调函数 | -| disabled | bool | 是否禁用滑动,默认值 false | -| containerStyle | style | 列表项的自定义样式 | -| titleStyle | style | 标题的自定义样式 | -| valueStyle | style | value的自定义样式 | -| showSeparator | bool | 是否显示分割线,默认值 true | -| separator | component | 自定义分割线,不传将显示默认样式的分割线 | -| allowFontScaling | bool | 10040新增 设置字体是否随系统设置的字体大小的设置改变而改变 默认为true。 | -| unlimitedHeightEnable | bool | 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 | -| titleNumberOfLines | number | 10040新增 设置title字体显示的最大行数 默认为1 | -| valueNumberOfLines | number | 10040新增 设置value字体显示的最大行数 默认为1 | - - - -## ListItem -普通列表项 - -**Export**: public -**Doc_name**: 列表控件 -**Doc_index**: 2 -**Doc_directory**: ui -**Since**: 10004 -**Author**: Geeook -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| title | string | 左侧主标题 | -| subtitle | string | 右侧副标题 | -| value | string | 右侧文案 | -| onPress | function | 点击事件 | -| disabled | bool | 是否禁用点击,默认值 false | -| showSeparator | bool | 是否显示分割线,默认值 true | -| hideArrow | bool | 是否隐藏右侧箭头图片,默认值 `false` | -| showDot | bool | 是否显示小红点,默认值 `false` | -| separator | component | 自定义分割线,不传将显示默认样式的分割线 | -| containerStyle | style | 列表项的自定义样式 | -| titleStyle | style | 标题的自定义样式 | -| subtitleStyle | style | 副标题的自定义样式 | -| valueStyle | style | 右侧文案的自定义样式 | -| dotStyle | bool | 10040新增 title右上角红点的style 建议设置宽高为8,以免图片失真 | -| allowFontScaling | bool | 10040新增 设置字体是否随系统设置的字体大小的设置改变而改变 默认为true。 | -| unlimitedHeightEnable | bool | 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 | -| titleNumberOfLines | number | 10040新增 设置title字体显示的最大行数 默认为1 | -| subtitleNumberOfLines | number | 10040新增 设置subtitle字体显示的最大行数 默认为2 | -| valueNumberOfLines | number | 10040新增 设置value字体显示的最大行数 默认为1 | - - - -## ListItemWithSwitch -带开关的列表项 - -**Export**: public -**Doc_name**: 列表控件 -**Doc_index**: 2 -**Doc_directory**: ui -**Since**: 10004 -**Author**: Geeook -**Properties** - -| Name | Type | Description | -| --- | --- | --- | -| title | string | 左侧主标题 | -| subtitle | string | 左侧副标题,主标题下方 | -| valueText | string | 主标题右侧文案 | -| value | bool | 开关状态,默认值 false | -| disabled | bool | 是否禁用开关,默认值 false | -| onPress | function | note: IMPORTANT 列表项点击事件,不传则不具有点击态(disabled) | -| onValueChange | function | 开关切换事件 | -| showSeparator | bool | 是否显示分割线,默认值 true | -| separator | component | 自定义分割线,不传将显示默认样式的分割线 | -| containerStyle | style | 列表项的自定义样式 | -| titleStyle | style | 主标题的自定义样式 | -| subtitleStyle | style | 副标题的自定义样式 | -| valueTextStyle | style | 主标题右侧文案的自定义样式 | -| switchStyle | style | 主标题右侧文案的自定义样式 | -| allowFontScaling | bool | 10040新增 设置字体是否随系统设置的字体大小的设置改变而改变 默认为true。 | -| unlimitedHeightEnable | bool | 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 | -| titleNumberOfLines | number | 10040新增 设置title字体显示的最大行数 默认为1 | -| subtitleNumberOfLines | number | 10040新增 设置subtitle字体显示的最大行数 默认为2 | -| valueNumberOfLines | number | 10040新增 设置value字体显示的最大行数 默认为1 | -| onTintColor | string | 开关按钮打开时的背景颜色 | -| tintColor | string | 开关按钮关闭时的背景颜色 | - diff --git a/metro.config.js b/metro.config.js index 42f3467fd..1313baa63 100644 --- a/metro.config.js +++ b/metro.config.js @@ -17,6 +17,5 @@ module.exports = { server: { /* server options */ } - /* general options */ }; diff --git a/miot-sdk/Host.js b/miot-sdk/Host.js index 14f9ad878..d167e6c3b 100644 --- a/miot-sdk/Host.js +++ b/miot-sdk/Host.js @@ -56,6 +56,7 @@ import HostStorage from './host/storage'; const IOS="ios", ANDROID="android"; import { Buffer } from "buffer"; import merge from "merge"; +import { Platform } from 'react-native'; const resolveAssetSource = require('react-native/Libraries/Image/resolveAssetSource'); export const HOST_TYPE_IOS = IOS; export const HOST_TYPE_ANDROID = ANDROID; @@ -150,6 +151,19 @@ export default { get appConfigEnv() { return true }, + /** + * 获取Android 官方提供的打孔屏api提供的打孔屏高度。 ios手机一律返回0. + * + * @since 10042 + * @type {int} + * @readonly + */ + get displayCutoutTop() { + return 0 + return native.MIOTHost.displayCutoutTop || 0; + } + return 0; + }, /** * @const * @see {@link module:miot/host/ui} diff --git a/miot-sdk/Package.js b/miot-sdk/Package.js index 386d0ea8c..fee3a89c3 100644 --- a/miot-sdk/Package.js +++ b/miot-sdk/Package.js @@ -41,6 +41,7 @@ import rnPackageJSON from 'react-native/package.json'; import PropTypes from 'prop-types'; import { DarkMode } from 'miot/Device'; import { SDKContextProvider } from 'miot/sdkContext'; +import { ConfigProvider } from 'mhui-rn'; /** * @description JS端通知Native端的事件类型 * @enum {number} diff --git a/miot-sdk/Service.js b/miot-sdk/Service.js index 1738df980..5df535871 100644 --- a/miot-sdk/Service.js +++ b/miot-sdk/Service.js @@ -50,6 +50,7 @@ import Storage from './service/storage'; import TJInfra from './service/tjinfra'; import MiotCamera from './service/miotcamera'; import Kookong from './service/kookong'; +import { NativeModules } from 'react-native'; const CurrentAccount = null; export default { /** @@ -153,6 +154,33 @@ export default { callSmartHomeCameraAPI(api, subDomain, post, params) { return Promise.resolve(null); }, + /** + * @method callSmartHomeCameraAPI + * @since 10041 + * @description 小爱音箱相关接口请求,注意此请求传的是一个对象,里面部分对象有默认值,可不传 + * @param {string} host 请求的host,取值normal,hd,profile,lbs,skillstore,aifile,ai,aitrain,grayupgrade,homealbum。表示的host分别如下... + * { + * "normal": "https://api2.mina.mi.com", + * "hd": "https://hd.mina.mi.com", + * "profile": "https://userprofile.mina.mi.com", + * "lbs": "https://lbs.mina.mi.com", + * "skillstore": "https://skillstore.mina.mi.com", + * "aifile": "https://file.ai.xiaomi.com", + * "ai": "https://api.ai.xiaomi.com", + * "aitrain": "https://i.ai.mi.com/mico", + * "grayupgrade": "https://api.miwifi.com/rs/grayupgrade/v2/micoiOS", + * "homealbum": "https://display.api.mina.mi.com" + * } + * @param {string} path 请求的路径,比如"/device_profile/conversation" + * @param {number} method 默认为0(表示get方法),1表示post方法,2表示put方法 + * @param {object} params 请求的参数,比如{limit:20} + * @param {bool} needDevice cookie中是否需要带上deviceId,默认为true + * @return {Promise} 透传接口,直接返回服务端返回的值 + path, method = 0, params, needDevice = 1 + */ + callXiaoaiNetworkAPI({ host = 'normal', path, method = 0, params, needDevice = 1 } = { 'host': 'normal', 'method': 0, 'needDevice': 1 }) { + return Promise.resolve(null); + }, /** * @method getServerName * @description 获取 米家 App 设置的地区和服务器信息 @@ -185,6 +213,61 @@ export default { getServiceTokenWithSid(sid) { return Promise.resolve(null); }, + /** + * since 10042 + * 撤销隐私授权,插件调用该接口后需要主动调用退出插件 + * @returns {Promise} 成功时返回:{code:0,data:true}; + * 失败时返回:{code:-1,message:'invalid device'} ,或 {code:-2,message:'xxxxx'} + * @example + * Service.revokePrivacyLicense() + * .then(res=>{ + * console.log(JSON.stringify(res)); + * if( res.code ===0){ + * console.log('success'); + * } + * }).catch(err=>{ + * console.log(JSON.stringify(err)); + * }); + * + */ + revokePrivacyLicense() { + return new Promise((resolve, reject) => { + native.MIOTService.revokePrivacyLicense((ok, res) => { + if (ok) { + resolve(res); + } else { + reject(res); + } + }); + }); + }, + /** + * since 10042 + * 删除设备,插件调用该接口后需要主动调用退出插件 + * @returns {Promise} 成功时返回:{code:0,data:true}; + * 失败时返回:{code:-1,message:'invalid device'} ,或 {code:-2,message:'xxxxx'} + * @example + * Service.deleteDevice() + * .then(res=>{ + * console.log(JSON.stringify(res)); + * if( res.code ===0){ + * console.log('success'); + * } + * }).catch(err=>{ + * console.log(JSON.stringify(err)); + * }); + */ + deleteDevice() { + return new Promise((resolve, reject) => { + native.MIOTService.deleteDevice((ok, res) => { + if (ok) { + resolve(res); + } else { + reject(res); + } + }); + }); + }, /** * 某设备向服务器申请did和token * Android暂不支持此方法 diff --git a/miot-sdk/device/BasicDevice.js b/miot-sdk/device/BasicDevice.js index 9841c413b..993b7d106 100644 --- a/miot-sdk/device/BasicDevice.js +++ b/miot-sdk/device/BasicDevice.js @@ -79,22 +79,31 @@ export const DeviceEvent = { deviceStatusChanged: { }, /** - * ble直连spec消息通知 + * 订阅ble spec 消息推送;除了订阅之外,插件需要与设备建立蓝牙连接,并主动扫描设备的特征值,设备才会给插件推送消息。 * @param {IDevice} device * @param {Map} messages -接收到的数据,value为property或者event的值 * @param {Map} originData -接收到的数据,value为相应property或者event推送到手机的原始内容 * @example - * let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) => { - - if(data.has('prop.2.1')){ - console.log(`receive prop(event) changed notification,prop.2.1:`, data.get('prop.2.1')); + //详细使用示例可以参考com.xiaomi.bledemo/Main/BleSpec.js + let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) => { + console.log('receive prop(event) changed notification:' + JSON.stringify(data)) + data.forEach((key, value) => { + console.log(`receive prop(event) changed notification,prop:${ key }`, JSON.stringify(value)); }); - if(data.has('event.2.1')){ - console.log(`receive prop(event) changed notification,event.2.1:`, data.get('event.2.1')); - } }); + this._s1 = BluetoothEvent.bluetoothSeviceDiscovered.addListener((blut, services) => { + if (services.length <= 0) { + return; + } + console.log('bluetoothSeviceDiscovered', blut.mac, services.map(s => s.UUID), bt.isConnected); + const s = services.map(s => ({ uuid: s.UUID, char: [] })); + services.forEach(s => { + s.startDiscoverCharacteristics(); + }); + } bt = Device.getBluetoothLE(); if(bt.isConnected){ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -103,6 +112,7 @@ export const DeviceEvent = { console.log('bluetoothConnectionStatusChanged', blut, isConnect); if (bt.mac === blut.mac) { if(isConnect){ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -113,6 +123,7 @@ export const DeviceEvent = { } }else{ bt.connect(scType,{ did: Device.deviceID }).then(res=>{ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -324,7 +335,6 @@ export class BasicDevice { * * }) */ - @report getBluetoothLE(peripheralID = null) { return null } @@ -569,7 +579,7 @@ export class BasicDevice { */ get isFamily() { return false - return permitLevel == PERMISSION_FAMILY || permitLevel == PERMISSION_FAMILY_IOS; + return (permitLevel & PERMISSION_FAMILY) !== 0 || permitLevel == PERMISSION_FAMILY_IOS; } /** *是否是别人分享的设备,若是家属分享给你的设备,isShared为fasle,isFamily为true @@ -579,7 +589,7 @@ export class BasicDevice { */ get isShared() { return false - return (permitLevel == PERMISSION_SHARE || permitLevel == PERMISSION_SHARE_READONLY) && Properties.of(this).ownerName !== null; + return (permitLevel & PERMISSION_SHARE) !== 0 && !this.isFamily && Properties.of(this).ownerName !== null; } /** *是否是已经绑定的设备,一般返回true @@ -818,7 +828,7 @@ export class BasicDevice { * 查询设备的房间信息 * @since 10039 * @param {string} did DeviceID,默认为当前设备 - * @return {Promise} {code: 0, data: {roomId, homeId, roomName} } + * @return {Promise} {code: 0, data: {roomId, homeId, roomName, homeName} } */ @report getRoomInfoForCurrentHome(did = null) { diff --git a/miot-sdk/device/bluetooth/BluetoothDevice.js b/miot-sdk/device/bluetooth/BluetoothDevice.js index 17e71f709..4dce667ee 100644 --- a/miot-sdk/device/bluetooth/BluetoothDevice.js +++ b/miot-sdk/device/bluetooth/BluetoothDevice.js @@ -286,18 +286,30 @@ export class IBluetooth { return Promise.resolve(null); } /** - * 订阅ble spec 消息推送;如果手机没有连接ble设备(可以调用Device.getBluetoothLE().connect(...)建立连接),收不到推送 + * 订阅ble spec 消息推送;除了订阅之外,插件需要与设备建立蓝牙连接,并主动扫描设备的特征值,设备才会给插件推送消息。 * @since 10040 * @param {...string} propertyOrEventNames prop.2.1,event.2.1 * @example - * let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) => { + * //详细使用示例可以参考com.xiaomi.bledemo/Main/BleSpec.js + let listener0= DeviceEvent.BLESpecNotifyActionEvent.addListener((device, data) => { console.log('receive prop(event) changed notification:' + JSON.stringify(data)) data.forEach((key, value) => { console.log(`receive prop(event) changed notification,prop:${ key }`, JSON.stringify(value)); }); }); + this._s1 = BluetoothEvent.bluetoothSeviceDiscovered.addListener((blut, services) => { + if (services.length <= 0) { + return; + } + console.log('bluetoothSeviceDiscovered', blut.mac, services.map(s => s.UUID), bt.isConnected); + const s = services.map(s => ({ uuid: s.UUID, char: [] })); + services.forEach(s => { + s.startDiscoverCharacteristics(); + }); + } bt = Device.getBluetoothLE(); if(bt.isConnected){ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -306,6 +318,7 @@ export class IBluetooth { console.log('bluetoothConnectionStatusChanged', blut, isConnect); if (bt.mac === blut.mac) { if(isConnect){ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) @@ -316,6 +329,7 @@ export class IBluetooth { } }else{ bt.connect(scType,{ did: Device.deviceID }).then(res=>{ + bt.startDiscoverServices(); bt.subscribeMessages('prop.2.1','event.2.1').then(res => { console.log('subscribe exception success,res:',JSON.stringify(res)); }).catch(err => console.log('subscribe exception fail')) diff --git a/miot-sdk/device/bluetooth/CoreBluetooth.js b/miot-sdk/device/bluetooth/CoreBluetooth.js index 8c71b561c..ec4924e94 100644 --- a/miot-sdk/device/bluetooth/CoreBluetooth.js +++ b/miot-sdk/device/bluetooth/CoreBluetooth.js @@ -186,7 +186,6 @@ export class IBluetoothService { * @returns {IBluetoothCharacteristic} * */ - @report getCharacteristic(characteristicUUID) { return null } diff --git a/miot-sdk/device/bluetooth/LockDevice.js b/miot-sdk/device/bluetooth/LockDevice.js index 22edb58aa..8d92692f7 100644 --- a/miot-sdk/device/bluetooth/LockDevice.js +++ b/miot-sdk/device/bluetooth/LockDevice.js @@ -145,7 +145,6 @@ export default class IBluetoothLock { * resolve:{"result": :"encripted string"} result字段即为加密后的string * reject:{code: xxx, message: xxx} 1:必须16进制字符串 2:获取device token 失败 3:加密失败 */ - @report encryptMessageWithToken(data) { return Promise.resolve(null); } diff --git a/miot-sdk/device/bluetooth/blespec.js b/miot-sdk/device/bluetooth/blespec.js index 2c1223890..90170ca0e 100644 --- a/miot-sdk/device/bluetooth/blespec.js +++ b/miot-sdk/device/bluetooth/blespec.js @@ -11,7 +11,7 @@ */ class BleSpec { /** - * ble直连spec:设置property,调用前确保已连接蓝牙连接。 + * ble直连spec:设置property,调用前确保已建立蓝牙连接。 * @since 10040 * @param {string} mac 蓝牙设备的Mac地址,iOS设备传uuid * @param {string} json json格式:{objects[]{siid/piid/value/type}},type是number类型:其值用来标识value的值类型,取值如下: @@ -31,7 +31,7 @@ class BleSpec { return Promise.resolve(null); } /** - * ble直连spec:读property,调用前确保已连接蓝牙连接。 + * ble直连spec:读property,调用前确保已建立蓝牙连接。 * @since 10040 * @param {string} mac 蓝牙设备的Mac地址,iOS设备传uuid * @param {string} json json格式:{objects[]{siid/piid}} @@ -51,7 +51,7 @@ class BleSpec { return Promise.resolve(null); } /** - * ble直连spec:doAction,调用前确保已连接蓝牙连接。 + * ble直连spec:doAction,调用前确保已建立蓝牙连接。 * @since 10040 * @param {string} mac 蓝牙设备的Mac地址,iOS设备传uuid * @param {string} json json格式:{siid,aiid,objects[]{piid/value/type} },type是number类型:其值用来标识value的值类型,取值如下: diff --git a/miot-sdk/host/crypto.js b/miot-sdk/host/crypto.js index 54fb1513c..79fdc9196 100644 --- a/miot-sdk/host/crypto.js +++ b/miot-sdk/host/crypto.js @@ -11,7 +11,7 @@ * ... * const str = '123' * //async - * let md5 = await Host.crypto.endoceMD5(str) + * let md5 = await Host.crypto.encodeMD5(str) * * //normal * Host.crypto.encodeMD5(str).then(res => {//md5 value is res}) @@ -19,6 +19,37 @@ */ // import tr from "../resources/strings/tr"; import { report } from "../decorator/ReportDecorator"; +/** + * 椭圆曲线 + */ +export class ECCCrypto { + static CurveTypeSecp256r1 = 256; + static CurveTypeSecp384r1 = 384; + /** + * + * @param {number} curveType + */ + constructor(curveType) { + this.curveType = curveType; + } + /** + * 生成公私钥对 + * @returns {Promise} 成功则返回public key,失败则返回 {code: -1, message: error} + */ + @report + generateKeyPair() { + return Promise.resolve(null); + } + /** + * 生成shared secret + * @param {String} otherPublicKey 另一方的publickey, base64 encoded string + * @returns {Promise} 成功则返回shared secret,失败则返回 {code: -x, message: error} + */ + @report + generateSharedSecret(otherPublicKey) { + return Promise.resolve(null); + } +} /** * 加密 * @interface diff --git a/miot-sdk/host/file.js b/miot-sdk/host/file.js index baf441962..784077119 100644 --- a/miot-sdk/host/file.js +++ b/miot-sdk/host/file.js @@ -50,637 +50,664 @@ export const FileEvent = { * */ class IFile { - /** - * 读取沙盒内文件列表, 返回文件的名称和文件的大小, 注意文件夹大小为:-1, 大小单位为B(字节) - * * @param {string} subFolder 读取沙盒文件夹下某子文件夹中文件内容,用于解压缩文件中带有文件夹,或者读取指定文件夹解压后的文件,标准path结构,不以'/'开头 - * @returns {Promise} - * 成功时:[{name:'xxx', size: 'xxx'}, {name:'xxx', size: 'xxx'}, ...] 数组的形式返回数组 - * 失败时:result: {"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.file.readFileList().then(res => { - * console.log('read fiel list:', res) - * }).catch((isOk, result)=>{ - * console.log(isOk, result) - * }); - * - * Host.file.readFileList('mysubfolder/aaa').then(res => { - * console.log('read fiel list:', res) - * }) - */ - @report + /** + * 读取沙盒内文件列表, 返回文件的名称和文件的大小, 注意文件夹大小为:-1, 大小单位为B(字节) + * * @param {string} subFolder 读取沙盒文件夹下某子文件夹中文件内容,用于解压缩文件中带有文件夹,或者读取指定文件夹解压后的文件,标准path结构,不以'/'开头 + * @returns {Promise} + * 成功时:[{name:'xxx', size: 'xxx'}, {name:'xxx', size: 'xxx'}, ...] 数组的形式返回数组 + * 失败时:result: {"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.file.readFileList().then(res => { + * console.log('read fiel list:', res) + * }).catch((isOk, result)=>{ + * console.log(isOk, result) + * }); + * + * Host.file.readFileList('mysubfolder/aaa').then(res => { + * console.log('read fiel list:', res) + * }) + */ + @report readFileList(subFolder = '') { return Promise.resolve([]); } - /** - * 判断文件是否存在 - * @param {string} fileName 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @returns {Promise} - * 成功时:直接返回true or false - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * let fileExist = await Host.file.isFileExists('fileName') - * //or - * Host.file.isFileExists('fileName').then(res => { - * console.log('file exist at path:', res) - * }).catch(err => { - * // file name error or get file path with error - * }) - */ - @report - isFileExists(fileName) { - return Promise.resolve(false) - } - /** - * 读本地文件, 读取普通字符串, 与之对应的写文件为Host.file.writeFile(fileName, content) - * @param {string} fileName - 文件名,可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @param {json} [opt={}] - 其他设置项 - * @returns {Promise} - * 成功时:直接返回文件内容 - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.filereadFile('name').then(content =>{ - * console.log('file content:', content) - * }) - */ - @report - readFile(fileName) { - return Promise.resolve(null); - } - /** - * 读本地文件, 通常用于读取蓝牙设备需要的文件数据 - * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @returns {Promise} - * 成功时:直接返回文件内容 - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.filereadFileToHexString('name').then(content =>{ - * console.log('file content:', content) - * }) - */ - @report - readFileToHexString(fileName) { - return Promise.resolve(null); - } - /** - * 读文件,并转换为 Base64 编码 - * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @returns {Promise} - * 成功时:直接返回文件内容 - * 失败时:{"code":xxx, "message":"xxx" } - */ - @report - readFileToBase64(fileName) { - return Promise.resolve(null); - } - /** - * 写文件, 与之对应的读文件为Host.file.readFile(fileName) - * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @param {string} utf8Content - 文件内容字符串 - * @returns {Promise} - * 成功时:直接返回true - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.filewriteFile('name', 'content').then(_ =>{ - * //写入成功 - * console.log('write success') - * }) - * ... - * - */ - @report - writeFile(fileName, utf8Content) { - return Promise.resolve(null); - } - /** - * 写文件,输入为 Base64 编码的字符串, api内部会对字符串做 Base64 解码后存放到文件中 - * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @param {string} fileContent - 需要写入的文件内容 - * @returns {Promise} - * 成功时:直接返回true - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.filewriteFileThroughBase64('name', 'base64').then(_ =>{ - * //写入成功 - * console.log('write success') - * }) - * ... - */ - @report - writeFileThroughBase64(fileName, fileContent) { - return Promise.resolve(null); - } - /** - * 向已存在的文件追加内容, 通常是通过使用writeFile接口来写的文件 - * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @param {string} utf8Content - 文件内容字符串 - * @returns {Promise} - * 成功时:直接返回true - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.fileappendFile('name', 'base64').then(_ =>{ - * //写入成功 - * console.log('write success') - * }) - * ... - */ - @report - appendFile(fileName, utf8Content) { - return Promise.resolve(null); - } - /** - * 向已存在的文件追加内容,输入为 Base64 编码的字符串, api内部会对字符串做 Base64 解码后存放到文件中 - * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @param {string} fileContent - 需要写入的文件内容 - * @returns {Promise} - * 成功时:直接返回true - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.fileappendFileThroughBase64('name', 'base64').then(_ =>{ - * //写入成功 - * console.log('write success') - * }) - * ... - * - */ - @report - appendFileThroughBase64(fileName, fileContent) { - return Promise.resolve(null); - } - /** - * 删除文件 - * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @returns {Promise} - * 成功时:直接返回true - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.filedeleteFile('name').then(_ =>{ - * console.log('delete success') - * }) - * ... - */ - @report - deleteFile(fileName) { - return Promise.resolve(null); - } - /** - * 上传普通文件,需要申请权限使用 - * 获取用于上传FDS文件的obj_name以及用于上传的url - * 设备需要申请配置FDS权限,参考 https://iot.mi.com/new/doc/cloud-development/cloud-service/storage/fds.html - * @since 10004 - * @param {string} did 设备did - * @param {string} suffix 文件后缀 例如 'mp3', 'txt' - * @example - * let did = Device.deviceID; - let suffix = "mp3"; - Host.file.generateObjNameAndUrlForFDSUpload(did, suffix).then(res => { - if (res.hasOwnProperty(suffix) && res[suffix]) { - let obj = res[suffix]; - let obj_name = obj.obj_name; - let name = obj_name.substring(obj_name.length - 22) - let content = "AC"; - let time = obj.time; - this.file_obj_name = obj_name; - console.log("pre upload", res) - Host.file.writeFile(name, content).then(r => { - let param = { - uploadUrl: obj.url, - method: obj.method, - headers: { "Content-Type": "" }, - files: [{ filename: name }] - } - Host.file.uploadFileToFDS(param).then(rr => { - alert('上传成功' + JSON.stringify(rr)) - console.log('upload file success', rr) - }).catch(err => { - alert('上传失败' + JSON.stringify(err)) - console.log('upload file failed', err) - }) - }).catch(err => { - alert('存储临时文件失败' + JSON.stringify(err)) - console.log("write file failed", err) - }) - } - }) - */ - @report - generateObjNameAndUrlForFDSUpload(did, suffix) { - return Promise.resolve(null); - } - /** - * 上传日志文件。 - * 具体使用参考generateObjNameAndUrlForFDSUpload - * @since 10011 - * @param {string} did - * @param {string} suffix string or array - */ - @report - generateObjNameAndUrlForLogFileFDSUpload(did, suffix) { - return Promise.resolve(null); - } - /** - * 获取FDS文件的信息,包含下载地址等信息 - * 设备需要申请配置FDS权限,参考 https://iot.mi.com/new/guide.html?file=08-%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97/03-%E5%AD%98%E5%82%A8/01-%E4%BD%BF%E7%94%A8FDS%E5%AD%98%E5%82%A8%E7%94%A8%E6%88%B7%E6%96%87%E4%BB%B6 - * - * 对于手动上传到fds的文件(没有genObjName ,在平台端直接上传的),可直接设置成public,生成url。插件端需要用这个文件时,用通用下载接口下载此url即可。 - * getFDSFileInfoWithObjName,这个接口只是用来下载通过插件接口(Host.file.uploadFileToFDS)上传到FDS的文件 - * - * @since 10004 - * @param {string} obj_name generateObjNameAndUrlForFDSUpload 生成的 obj_name - * @example - * let did = Device.deviceID; - let suffix = "mp3"; - let file_obj_name = this.file_obj_name //从服务端获取或者本地获取,通过generateObjNameAndUrlForFDSUpload 生成 - if (file_obj_name) { - Host.file.getFDSFileInfoWithObjName(file_obj_name).then(res => { - console.log('getfileurl success', res) - alert('获取成功' + JSON.stringify(res)) - }).catch(err => { - console.log('getfileurl failed', err) - }) - } else { - alert("先上传文件") - } - */ - @report - getFDSFileInfoWithObjName(obj_name) { - return Promise.resolve(null); - } - /** - * @ typedef UploadParams - 参数字典 - * @ property {string} uploadUrl - * @ property {'POST' | 'PUT'} method - * @ property {{'Accept': 'application/json'}} headers - * @ property {{}} fields - * @ property {[{fileName: 'xxx'}]} files - */ - /** - * 上传文件 - * @param {UploadParams} params - 参数字典 - * @returns {Promise} - * @example - * import {Host} from 'miot' - * ... - * let params = { - * uploadUrl: 'http://127.0.0.1:3000', - * method: 'POST', // default 'POST',support 'POST' and 'PUT' - * headers: { - * 'Accept': 'application/json', - * }, - * fields: { - * 'hello': 'world', - * }, - * files: [ - * { - * filename: 'fileName.png', // 必选, 只能上传插件sandbox里的文件 - * range: {start: 10, length: 100} // 可选, since 10037, 从start开始读取lengt长度的文件,可选,不配置则表示文件从头到尾 - * formdata: {name: 'name1.png', filename: 'customFileName.png'} // 可选, since 10038, 用于自定义formdata中的name和filename - * }, - * ] - * }; - * Host.file.uploadFile(params).then(res => { - * console.log('upload success with res:', res) - * }).catch(err => { - * console.log('upload failed with err:', err) - * }) - * ... - */ - @report - uploadFile(params) { - return Promise.resolve(null); - } - /** - * 上传文件到小米云FDS - * @param {UploadParams} params - 参数字典 - * @returns {Promise} - * @example - * same as Host.file.uploadFile - */ - @report - uploadFileToFDS(params) { - return Promise.resolve(null); - } - /** - * @ typedef DownloadParams - 参数字典 - * @ property {string} taskID - 可选 since 10038 下载任务唯一标示, 如 MD5(url + timestamp) - */ - /** - * 下载文件到插件沙盒目录, 文件下载完成后才会回调 - * @param {string} url - 文件地址 - * @param {string} fileName - 存储到本地的文件名 - * @param {DownloadParams} params 参数字典 可选 since 10038 - * @returns {Promise} - * 成功时:{header:{}, path:xxx, filename:xxx,status:xxx} - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * import {Host} from 'miot' - * ... - * Host.file.downloadFile('url', 'targetName').then(res =>{ - * console.log('download success with res:', res) - * }).catch(err => { - * console.log('download failed with err:', err) - * }) - * ... - */ - @report - downloadFile(url, fileName, params = null) { - return Promise.resolve(null); - } - /** - * 取消指定的下载任务 - * @param {string} taskID - since 10038 下载任务的唯一ID, 与 downloadFile 传入的 taskID 一致 - * @returns {Promise} - * 成功时:{code:0, data:{}} - * 失败时:{code:-1, message:'xxx'} - */ - cancelDownloadFile(taskID) { - return Promise.resolve(null); - } - /** - * 获取 base64 编码的数据长度 - * @param {string} base64Data - base64 编码的字符串 - * @returns {Promise} 返回具体的长度 - * @example - * import {Host} from 'miot' - * ... - * let len = await Host.file.dataLengthOfBase64Data('data') - * //or - * Host.file.dataLengthOfBase64Data('data').then(len => console.log('len:', len)) - * ... - */ - @report - dataLengthOfBase64Data(base64Data) { - return Promise.resolve(null); - } - /** - * 获取一个data的子data(base64编码) - * @param {string} base64Data - base64 编码的数据 - * @param {number} loc - 起始位置 - * @param {number} len - 长度 - * @returns {Promise} - */ - @report - subBase64DataOfBase64Data(base64Data, loc, len) { - return Promise.resolve(null); - } - /** - * 解压缩一个zip文件,解压缩后的文件会直接存储在插件存储空间的根目录下 - * @param {string} fileName - 文件名(插件存储空间内的文件) - * * @param {string} desitinationPath - 目标解压缩文件夹,默认解压到当前文件夹,如果指定名称,压缩包内容会解压到指定文件夹 - * @returns {Promise} - * 成功时:返回true - * 失败时:{"code":xxx, "message":"xxx" } - */ - @report - unzipFile(fileName, desitinationPath = '') { - return Promise.resolve(null); - } - /** - * 解压缩一个gz文件, 并以base64编码的形式直接返回给插件, 不做本地存储 - * @param {string} fileName - 文件名(插件存储空间内的文件) - * @return {Promise} - * 成功时:返回文件的内容 - * 失败时:{"code":xxx, "message":"xxx" } - */ - @report - ungzFile(fileName) { - return Promise.resolve(null); - } - /** - * 保存指定照片文件到系统相册 - * @param {string} fileName 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @returns {Promise} - * 成功时:返回true - * 失败时:{"code":xxx, "message":"xxx" } - * @example 参考com.xiaomi.demo Host-->PhotoDemo.js - * import {Host} from 'miot' - * ... - * Host.file.saveImageToPhotosAlbum('name').then(_ =>{ - * console.log('successful save to PhotosAlbum') - * }) - * ... - */ - @report - saveImageToPhotosAlbum(fileName) { - return Promise.resolve(false) - } - /** - * 保存指定文件到系统相册 - * @since 10037 - * @param {string} fileName 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' - * @returns {Promise} - * 成功时:返回true - * 失败时:{"code":xxx, "message":"xxx" } - * @example 参考com.xiaomi.demo Host-->PhotoDemo.js - */ - @report - saveFileToPhotosAlbum(fileName) { - return Promise.resolve(false) - } - /** - * 保存指定图片文件到以did命名的相册中 - * 该方法会在系统相册中创建一个以did命名的相册(如果不存在),并将图片保存在其中 - * @since 10037 - * @param {string} fileName - * @returns {Promise} - * 成功时:返回true - * 失败时: - * {"code":-401, "message":"access to photo library denied" } - * {"code":-1, "message":"did cannot be empty" } - * {"code":-2, "message":"did cannot be empty" } - * {"code":-3, "message":"path is ilegal or file not exist" } - * {"code":-5, "message":"filepath cannot convert to a image, please check" } - * {"code":-100, "message":"failed to save image" } - * {"code":-101, "message":"failed to create album" } - * @example 参考com.xiaomi.demo Host-->PhotoDemo.js - */ - @report - saveImageToPhotosDidAlbum(fileName) { - return Promise.resolve(false) - } - /** - * 保存指定照片文件到以did命名的相册中 - * 该方法会在系统相册中创建一个以did命名的相册(如果不存在),并将视频保存在其中 - * @since 10037 - * @param {string} fileName - * @returns {Promise} - * 成功时:返回true - * 失败时: - * {"code":-401, "message":"access to photo library denied" } - * {"code":-1, "message":"did cannot be empty" } - * {"code":-2, "message":"did cannot be empty" } - * {"code":-3, "message":"path is ilegal or file not exist" } - * {"code":-4, "message":"filepath cannot seek to be video file" } - * {"code":-6, "message":"file cannot save to album as a video" } - * {"code":-100, "message":"failed to save video" } - * {"code":-101, "message":"failed to create album" } - * @example 参考com.xiaomi.demo Host-->PhotoDemo.js - */ - @report - saveVideoToPhotosDidAlbum(fileName) { - return Promise.resolve(false) - } - /** - * 从did命名的相册中 通过url获取视频文件的filepath - * @since 10037 - * @param {string} url - * @returns {Promise} - * 成功时:返回true - * 失败时: - * {"code":-401, "message":"access to photo library denied" } - * {"code":-1, "message":"did cannot be empty" } - * {"code":-2, "message":"did cannot be empty" } - * {"code":-3, "message":"url cannot be empty" } - * @example 参考com.xiaomi.demo Host-->PhotoDemo.js - */ - @report - fetchLocalVideoFilePathFromDidAlbumByUrl(url) { - return Promise.resolve(false) - } - /** - * 获取指定以did命名的相册中所有的图片和视频 - * 如果不存在该相册,返回空数组 - * @since 10037 - * @returns {Promise} - * 成功时:{"code":0, "data":[] } - * 返回图片和视频信息 - * ios 返回 图片scheme协议 miotph:// 视频scheme miotvideo:// - * android 返回图片和视频文件的fileurl - * 每个图片信息包含key - * {'url':<'miotph://XXXXXX'(ios) 'file://XXXXXX' (android)>, - * 'mediaType' : , // 0 : unknowntype, 1: image, 2:video, 3: audio(10037暂不支持) - * 'pixelWidth' :, // width信息,0 代表unknown - * 'pixelHeight' :, // height 0 代表unknown - * 'creationDate' :, // 创建时间信息,unix时间戳 - * 'modificationDate' : , // 修改时间信息, unix时间戳 - * 'duration' : , // 持续时间 信息 图片文件返回0 - * } - * 失败时: - * {"code":-401, "message":"access to photo library denied" } - * {"code":-1, "message":"did cannot be empty" } - * {"code":-2, "message":"did cannot be empty" } - * @example 参考com.xiaomi.demo Host-->PhotoDemo.js - */ - @report - getAllSourceFromPhotosDidAlbum() { - return Promise.resolve(false) - } - /** - * 在相册中通过url 删除指定的assets - * @since 10037 - * @param {array} urls - * @returns {Promise} - * 成功时:返回true - * 失败时: - * {"code":-401, "message":"access to photo library denied" } - * {"code":-1, "message":"did cannot be empty" } - * {"code":-2, "message":"did cannot be empty" } - * {"code":-3, "message":"urls cannot be parsed to a Array or it is empty" } - * {"code":-100, "message":"delete assets failed" } - * @example 参考com.xiaomi.demo Host-->PhotoDemo.js - */ - @report - deleteAssetsFromAlbumByUrls(urls) { - return Promise.resolve(false) - } - /** - * 屏幕全屏截图 - * @param {string} imageName - 图片名称,png, - * @return {Promise} - 截图成功回调函数返回存储图片的绝对路径,加载图片时直接使用即可 - * 成功时:返回图片的路径 - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * - * - */ - @report - screenShot(imageName) { - return Promise.resolve("..."); - } - /** - * 自定义范围的屏幕截图 - * @param {string} imageName - 图片名称,png - * @param {{l:int, t:int, w:int, h:int}} rect - 截屏范围 - * @return {Promise} - 截图成功 返回图片地址 - * 成功时:返回图片的路径 - * 失败时:{"code":xxx, "message":"xxx" } - * - */ - @report - screenShotInRect(imageName, rect) { - return Promise.resolve("..."); - } - /** - * 长截屏,用来截scrollView,会把超出屏幕的部分也截到 - * @param {number} viewRef - scrollView的引用 - * @param {string} imageName - 图片名称,png - * @returns {Promise} - * 成功时:返回图片的路径 - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * var findNodeHandle = require('findNodeHandle'); - * var myScrollView = findNodeHandle(this.refs.myScrollView); - * Host.file.longScreenShot(myScrollView, 'test2.png').then(imagePath=>{ - * console.log(imagePath); - * }); - */ - @report - longScreenShot(viewRef, imageName) { - return Promise.resolve(null); - } - /** - * 高德地图截屏 - * @param {number} viewRef - MAMapView(MHMapView的父类)的引用 - * @param {string} imageName - 图片名称,自动添加后缀png - * @return {Promise} - * 成功时:返回图片的路径 - * 失败时:{"code":xxx, "message":"xxx" } - * @example - * const findNodeHandle = require('findNodeHandle'); - * const myMapViewRef = findNodeHandle(this.refs.myMapView); - * const imageName = 'mapToShare.png'; - * let imageToShow = null; - * Host.file.amapScreenShot(myMapViewRef, imageName).then(() => { - * imageToShow = - * console.log("ok"); - * }); - */ - @report - amapScreenShot(viewRef, imageName) { - return Promise.resolve("..."); - } - /** - * 获取图片指定点的色值, 传空数组将返回所有点的色值 - * @param {string} imagePath - 图片文件路径 - * @param {Array<{x:int,y:int}>} points - 位置数组 - * @returns {Promise} - */ - @report - getRGBAValueFromImageAtPath(imagePath, points) { - return Promise.resolve(null); - } - /** - * 沙盒路径 - */ - get storageBasePath() { - } + /** + * 判断文件是否存在 + * @param {string} fileName 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @returns {Promise} + * 成功时:直接返回true or false + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * let fileExist = await Host.file.isFileExists('fileName') + * //or + * Host.file.isFileExists('fileName').then(res => { + * console.log('file exist at path:', res) + * }).catch(err => { + * // file name error or get file path with error + * }) + */ + @report + isFileExists(fileName) { + return Promise.resolve(false) + } + /** + * 读本地文件, 读取普通字符串, 与之对应的写文件为Host.file.writeFile(fileName, content) + * @param {string} fileName - 文件名,可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @param {json} [opt={}] - 其他设置项 + * @returns {Promise} + * 成功时:直接返回文件内容 + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.filereadFile('name').then(content =>{ + * console.log('file content:', content) + * }) + */ + @report + readFile(fileName) { + return Promise.resolve(null); + } + /** + * 读本地文件, 通常用于读取蓝牙设备需要的文件数据 + * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @returns {Promise} + * 成功时:直接返回文件内容 + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.filereadFileToHexString('name').then(content =>{ + * console.log('file content:', content) + * }) + */ + @report + readFileToHexString(fileName) { + return Promise.resolve(null); + } + /** + * 读文件,并转换为 Base64 编码 + * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @returns {Promise} + * 成功时:直接返回文件内容 + * 失败时:{"code":xxx, "message":"xxx" } + */ + @report + readFileToBase64(fileName) { + return Promise.resolve(null); + } + /** + * 写文件, 与之对应的读文件为Host.file.readFile(fileName) + * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @param {string} utf8Content - 文件内容字符串 + * @returns {Promise} + * 成功时:直接返回true + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.filewriteFile('name', 'content').then(_ =>{ + * //写入成功 + * console.log('write success') + * }) + * ... + * + */ + @report + writeFile(fileName, utf8Content) { + return Promise.resolve(null); + } + /** + * 写文件,输入为 Base64 编码的字符串, api内部会对字符串做 Base64 解码后存放到文件中 + * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @param {string} fileContent - 需要写入的文件内容 + * @returns {Promise} + * 成功时:直接返回true + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.filewriteFileThroughBase64('name', 'base64').then(_ =>{ + * //写入成功 + * console.log('write success') + * }) + * ... + */ + @report + writeFileThroughBase64(fileName, fileContent) { + return Promise.resolve(null); + } + /** + * 向已存在的文件追加内容, 通常是通过使用writeFile接口来写的文件 + * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @param {string} utf8Content - 文件内容字符串 + * @returns {Promise} + * 成功时:直接返回true + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.fileappendFile('name', 'base64').then(_ =>{ + * //写入成功 + * console.log('write success') + * }) + * ... + */ + @report + appendFile(fileName, utf8Content) { + return Promise.resolve(null); + } + /** + * 向已存在的文件追加内容,输入为 Base64 编码的字符串, api内部会对字符串做 Base64 解码后存放到文件中 + * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @param {string} fileContent - 需要写入的文件内容 + * @returns {Promise} + * 成功时:直接返回true + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.fileappendFileThroughBase64('name', 'base64').then(_ =>{ + * //写入成功 + * console.log('write success') + * }) + * ... + * + */ + @report + appendFileThroughBase64(fileName, fileContent) { + return Promise.resolve(null); + } + /** + * 删除文件 + * @param {string} fileName - 文件名, 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @returns {Promise} + * 成功时:直接返回true + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.filedeleteFile('name').then(_ =>{ + * console.log('delete success') + * }) + * ... + */ + @report + deleteFile(fileName) { + return Promise.resolve(null); + } + /** + * 上传普通文件,需要申请权限使用 + * 获取用于上传FDS文件的obj_name以及用于上传的url + * 设备需要申请配置FDS权限,参考 https://iot.mi.com/new/doc/cloud-development/cloud-service/storage/fds.html + * @since 10004 + * @param {string} did 设备did + * @param {string} suffix 文件后缀 例如 'mp3', 'txt' + * @example + * let did = Device.deviceID; + let suffix = "mp3"; + Host.file.generateObjNameAndUrlForFDSUpload(did, suffix).then(res => { + if (res.hasOwnProperty(suffix) && res[suffix]) { + let obj = res[suffix]; + let obj_name = obj.obj_name; + let name = obj_name.substring(obj_name.length - 22) + let content = "AC"; + let time = obj.time; + this.file_obj_name = obj_name; + console.log("pre upload", res) + Host.file.writeFile(name, content).then(r => { + let param = { + uploadUrl: obj.url, + method: obj.method, + headers: { "Content-Type": "" }, + files: [{ filename: name }] + } + Host.file.uploadFileToFDS(param).then(rr => { + alert('上传成功' + JSON.stringify(rr)) + console.log('upload file success', rr) + }).catch(err => { + alert('上传失败' + JSON.stringify(err)) + console.log('upload file failed', err) + }) + }).catch(err => { + alert('存储临时文件失败' + JSON.stringify(err)) + console.log("write file failed", err) + }) + } + }) + */ + @report + generateObjNameAndUrlForFDSUpload(did, suffix) { + return Promise.resolve(null); + } + /** + * 上传日志文件。 + * 具体使用参考generateObjNameAndUrlForFDSUpload + * @since 10011 + * @param {string} did + * @param {string} suffix string or array + */ + @report + generateObjNameAndUrlForLogFileFDSUpload(did, suffix) { + return Promise.resolve(null); + } + /** + * 获取FDS文件的信息,包含下载地址等信息 + * 设备需要申请配置FDS权限,参考 https://iot.mi.com/new/guide.html?file=08-%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97/03-%E5%AD%98%E5%82%A8/01-%E4%BD%BF%E7%94%A8FDS%E5%AD%98%E5%82%A8%E7%94%A8%E6%88%B7%E6%96%87%E4%BB%B6 + * + * 对于手动上传到fds的文件(没有genObjName ,在平台端直接上传的),可直接设置成public,生成url。插件端需要用这个文件时,用通用下载接口下载此url即可。 + * getFDSFileInfoWithObjName,这个接口只是用来下载通过插件接口(Host.file.uploadFileToFDS)上传到FDS的文件 + * + * @since 10004 + * @param {string} obj_name generateObjNameAndUrlForFDSUpload 生成的 obj_name + * @example + * let did = Device.deviceID; + let suffix = "mp3"; + let file_obj_name = this.file_obj_name //从服务端获取或者本地获取,通过generateObjNameAndUrlForFDSUpload 生成 + if (file_obj_name) { + Host.file.getFDSFileInfoWithObjName(file_obj_name).then(res => { + console.log('getfileurl success', res) + alert('获取成功' + JSON.stringify(res)) + }).catch(err => { + console.log('getfileurl failed', err) + }) + } else { + alert("先上传文件") + } + */ + @report + getFDSFileInfoWithObjName(obj_name) { + return Promise.resolve(null); + } + /** + * @ typedef UploadParams - 参数字典 + * @ property {string} uploadUrl + * @ property {'POST' | 'PUT'} method + * @ property {{'Accept': 'application/json'}} headers + * @ property {{}} fields + * @ property {[{fileName: 'xxx'}]} files + */ + /** + * 上传文件 + * @param {UploadParams} params - 参数字典 + * @returns {Promise} + * @example + * import {Host} from 'miot' + * ... + * let params = { + * uploadUrl: 'http://127.0.0.1:3000', + * method: 'POST', // default 'POST',support 'POST' and 'PUT' + * headers: { + * 'Accept': 'application/json', + * }, + * fields: { + * 'hello': 'world', + * }, + * files: [ + * { + * filename: 'fileName.png', // 必选, 只能上传插件sandbox里的文件 + * range: {start: 10, length: 100} // 可选, since 10037, 从start开始读取lengt长度的文件,可选,不配置则表示文件从头到尾 + * formdata: {name: 'name1.png', filename: 'customFileName.png'} // 可选, since 10038, 用于自定义formdata中的name和filename + * }, + * ] + * }; + * Host.file.uploadFile(params).then(res => { + * console.log('upload success with res:', res) + * }).catch(err => { + * console.log('upload failed with err:', err) + * }) + * ... + */ + @report + uploadFile(params) { + return Promise.resolve(null); + } + /** + * 上传文件到小米云FDS + * @param {UploadParams} params - 参数字典 + * @returns {Promise} + * @example + * same as Host.file.uploadFile + */ + @report + uploadFileToFDS(params) { + return Promise.resolve(null); + } + /** + * @ typedef DownloadParams - 参数字典 + * @ property {string} taskID - 可选 since 10038 下载任务唯一标示, 如 MD5(url + timestamp) + */ + /** + * 下载文件到插件沙盒目录, 文件下载完成后才会回调 + * @param {string} url - 文件地址 + * @param {string} fileName - 存储到本地的文件名 + * @param {DownloadParams} params 参数字典 可选 since 10038 + * @returns {Promise} + * 成功时:{header:{}, path:xxx, filename:xxx,status:xxx} + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * import {Host} from 'miot' + * ... + * Host.file.downloadFile('url', 'targetName').then(res =>{ + * console.log('download success with res:', res) + * }).catch(err => { + * console.log('download failed with err:', err) + * }) + * ... + */ + @report + downloadFile(url, fileName, params = null) { + return Promise.resolve(null); + } + /** + * 取消指定的下载任务 + * @param {string} taskID - since 10038 下载任务的唯一ID, 与 downloadFile 传入的 taskID 一致 + * @returns {Promise} + * 成功时:{code:0, data:{}} + * 失败时:{code:-1, message:'xxx'} + */ + cancelDownloadFile(taskID) { + return Promise.resolve(null); + } + /** + * 获取 base64 编码的数据长度 + * @param {string} base64Data - base64 编码的字符串 + * @returns {Promise} 返回具体的长度 + * @example + * import {Host} from 'miot' + * ... + * let len = await Host.file.dataLengthOfBase64Data('data') + * //or + * Host.file.dataLengthOfBase64Data('data').then(len => console.log('len:', len)) + * ... + */ + @report + dataLengthOfBase64Data(base64Data) { + return Promise.resolve(null); + } + /** + * 获取一个data的子data(base64编码) + * @param {string} base64Data - base64 编码的数据 + * @param {number} loc - 起始位置 + * @param {number} len - 长度 + * @returns {Promise} + */ + @report + subBase64DataOfBase64Data(base64Data, loc, len) { + return Promise.resolve(null); + } + /** + * 解压缩一个zip文件,解压缩后的文件会直接存储在插件存储空间的根目录下 + * @param {string} fileName - 文件名(插件存储空间内的文件) + * * @param {string} desitinationPath - 目标解压缩文件夹,默认解压到当前文件夹,如果指定名称,压缩包内容会解压到指定文件夹 + * @returns {Promise} + * 成功时:返回true + * 失败时:{"code":xxx, "message":"xxx" } + */ + @report + unzipFile(fileName, desitinationPath = '') { + return Promise.resolve(null); + } + /** + * 解压缩一个gz文件, 并以base64编码的形式直接返回给插件, 不做本地存储 + * @param {string} fileName - 文件名(插件存储空间内的文件) + * @return {Promise} + * 成功时:返回文件的内容 + * 失败时:{"code":xxx, "message":"xxx" } + */ + @report + ungzFile(fileName) { + return Promise.resolve(null); + } + /** + * 保存指定照片文件到系统相册 + * @param {string} fileName 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @returns {Promise} + * 成功时:返回true + * 失败时:{"code":xxx, "message":"xxx" } + * @example 参考com.xiaomi.demo Host-->PhotoDemo.js + * import {Host} from 'miot' + * ... + * Host.file.saveImageToPhotosAlbum('name').then(_ =>{ + * console.log('successful save to PhotosAlbum') + * }) + * ... + */ + @report + saveImageToPhotosAlbum(fileName) { + return Promise.resolve(false) + } + /** + * 保存指定文件到系统相册 + * @since 10037 + * @param {string} fileName 可以是多重文件夹嵌套文件, e.g 'path/path2/filename.txt' + * @returns {Promise} + * 成功时:返回true + * 失败时:{"code":xxx, "message":"xxx" } + * @example 参考com.xiaomi.demo Host-->PhotoDemo.js + */ + @report + saveFileToPhotosAlbum(fileName) { + return Promise.resolve(false) + } + /** + * 保存指定图片文件到以did命名的相册中 + * 该方法会在系统相册中创建一个以did[-customDirName]命名的相册(如果不存在),并将图片保存在其中 + * @since 10037 + * @param {string} fileName 图片在沙盒中的文件名 + * @param {string} customDirName 自定义相册名称,默认为null,since 10042 + * @returns {Promiste} + * 成功时:返回true + * 失败时: + * {"code":-401, "message":"access to photo library denied" } + * {"code":-1, "message":"did cannot be empty" } + * {"code":-2, "message":"did cannot be empty" } + * {"code":-3, "message":"path is ilegal or file not exist" } + * {"code":-5, "message":"filepath cannot convert to a image, please check" } + * {"code":-100, "message":"failed to save image" } + * {"code":-101, "message":"failed to create album" } + * @example 参考com.xiaomi.demo Host-->PhotoDemo.js + */ + @report + saveImageToPhotosDidAlbum(fileName, customDirName = null) { + return Promise.resolve(false) + } + /** + * 保存指定照片文件到以did命名的相册中 + * 该方法会在系统相册中创建一个以did命名的相册(如果不存在),并将视频保存在其中 + * @since 10037 + * @param {string} fileName + * @param {string} customDirName 自定义相册名称,默认为null, since 10042 + * @returns {Promise} + * 成功时:返回true + * 失败时: + * {"code":-401, "message":"access to photo library denied" } + * {"code":-1, "message":"did cannot be empty" } + * {"code":-2, "message":"did cannot be empty" } + * {"code":-3, "message":"path is ilegal or file not exist" } + * {"code":-4, "message":"filepath cannot seek to be video file" } + * {"code":-6, "message":"file cannot save to album as a video" } + * {"code":-100, "message":"failed to save video" } + * {"code":-101, "message":"failed to create album" } + * @example 参考com.xiaomi.demo Host-->PhotoDemo.js + */ + @report + saveVideoToPhotosDidAlbum(fileName, customDirName = null) { + return Promise.resolve(false) + } + /** + * 从did命名的相册中 通过url获取视频文件的filepath + * @since 10037 + * @param {string} url + * @param {string} customDirName 自定义相册名称,默认为null, since 10042 + * @returns {Promise} + * 成功时:返回true + * 失败时: + * {"code":-401, "message":"access to photo library denied" } + * {"code":-1, "message":"did cannot be empty" } + * {"code":-2, "message":"did cannot be empty" } + * {"code":-3, "message":"url cannot be empty" } + * @example 参考com.xiaomi.demo Host-->PhotoDemo.js + */ + @report + fetchLocalVideoFilePathFromDidAlbumByUrl(url, customDirName = null) { + return Promise.resolve(false) + } + /** + * 获取指定以did命名的相册中所有的图片和视频 + * 如果不存在该相册,返回空数组 + * @since 10037 + * @param {string} customDirName 自定义相册名称,默认为null, since 10042 + * @returns {Promise} + * 成功时:{"code":0, "data":[] } + * 返回图片和视频信息 + * ios 返回 图片scheme协议 miotph:// 视频scheme miotvideo:// + * android 返回图片和视频文件的fileurl + * 每个图片信息包含key + * {'url':<'miotph://XXXXXX'(ios) 'file://XXXXXX' (android)>, + * 'mediaType' : , // 0 : unknowntype, 1: image, 2:video, 3: audio(10037暂不支持) + * 'pixelWidth' :, // width信息,0 代表unknown + * 'pixelHeight' :, // height 0 代表unknown + * 'creationDate' :, // 创建时间信息,unix时间戳 + * 'modificationDate' : , // 修改时间信息, unix时间戳 + * 'duration' : , // 持续时间 信息 图片文件返回0 单位ms 10042之前ios返回的是秒,安卓返回的是ms 在10042 之后ios修正为ms + * } + * 失败时: + * {"code":-401, "message":"access to photo library denied" } + * {"code":-1, "message":"did cannot be empty" } + * {"code":-2, "message":"did cannot be empty" } + * @example 参考com.xiaomi.demo Host-->PhotoDemo.js + */ + @report + getAllSourceFromPhotosDidAlbum(customDirName = null) { + return Promise.resolve(false) + } + /** + * 在相册中通过url 删除指定的assets + * @since 10037 + * @param {array} urls + * @returns {Promise} + * 成功时:返回true + * 失败时: + * {"code":-401, "message":"access to photo library denied" } + * {"code":-1, "message":"did cannot be empty" } + * {"code":-2, "message":"did cannot be empty" } + * {"code":-3, "message":"urls cannot be parsed to a Array or it is empty" } + * {"code":-100, "message":"delete assets failed" } + * @example 参考com.xiaomi.demo Host-->PhotoDemo.js + */ + @report + deleteAssetsFromAlbumByUrls(urls) { + return Promise.resolve(false) + } + /** + * 屏幕全屏截图 + * @param {string} imageName - 图片名称,png, + * @return {Promise} - 截图成功回调函数返回存储图片的绝对路径,加载图片时直接使用即可 + * 成功时:返回图片的路径 + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * + * + */ + @report + screenShot(imageName) { + return Promise.resolve("..."); + } + /** + * 自定义范围的屏幕截图 + * @param {string} imageName - 图片名称,png + * @param {{l:int, t:int, w:int, h:int}} rect - 截屏范围 + * @return {Promise} - 截图成功 返回图片地址 + * 成功时:返回图片的路径 + * 失败时:{"code":xxx, "message":"xxx" } + * + */ + @report + screenShotInRect(imageName, rect) { + return Promise.resolve("..."); + } + /** + * 长截屏,用来截scrollView,会把超出屏幕的部分也截到 + * @param {number} viewRef - scrollView的引用 + * @param {string} imageName - 图片名称,png + * @returns {Promise} + * 成功时:返回图片的路径 + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * var findNodeHandle = require('findNodeHandle'); + * var myScrollView = findNodeHandle(this.refs.myScrollView); + * Host.file.longScreenShot(myScrollView, 'test2.png').then(imagePath=>{ + * console.log(imagePath); + * }); + */ + @report + longScreenShot(viewRef, imageName) { + return Promise.resolve(null); + } + /** + * 高德地图截屏 + * @param {number} viewRef - MAMapView(MHMapView的父类)的引用 + * @param {string} imageName - 图片名称,自动添加后缀png + * @return {Promise} + * 成功时:返回图片的路径 + * 失败时:{"code":xxx, "message":"xxx" } + * @example + * const findNodeHandle = require('findNodeHandle'); + * const myMapViewRef = findNodeHandle(this.refs.myMapView); + * const imageName = 'mapToShare.png'; + * let imageToShow = null; + * Host.file.amapScreenShot(myMapViewRef, imageName).then(() => { + * imageToShow = + * console.log("ok"); + * }); + */ + @report + amapScreenShot(viewRef, imageName) { + return Promise.resolve("..."); + } + /** + * 获取图片指定点的色值, 传空数组将返回所有点的色值 + * @param {string} imagePath - 图片文件路径 + * @param {Array<{x:int,y:int}>} points - 位置数组 + * @returns {Promise} + */ + @report + getRGBAValueFromImageAtPath(imagePath, points) { + return Promise.resolve(null); + } + /** + * 沙盒路径 + */ + get storageBasePath() { + } + /** + * 创建目录 + * @since 10042 + * @param {json} params {dirPath:‘xxx’,//本地路径如:dir0,/dir0/dir1 + * recursive: [true/false],//是否递归创建目录。如果为 true,则创建该目录和该目录下的所有子目录 + * } + * @returns {Promise} 成功时:{code:0,message:'success'}, + * 失败时可能的返回值有:{code:-1,message:'directory name is not valid'}, + * {code:-2,message:'file ${dirPath} already exist'}, + * {code:-3,message:'parent directory is not exist:${dirPath}'}, + * {code:-4,message:'permission denied,cannot access dir:${dirPath}'}, + * @example + * let params ={ + * dirPath: 'dir0/dir1', + * recursive: true, + * }; + * Host.file.mkdir(params) + * .then(res=>{alert(JSON.stringify(res))}) + * .catch(err=>{alert(JSON.stringify(err))}) + */ + @report + mkdir(params) { + } } const FileInstance = new IFile(); export default FileInstance; \ No newline at end of file diff --git a/miot-sdk/host/ui.js b/miot-sdk/host/ui.js index 3d3e81026..75bfa1c69 100644 --- a/miot-sdk/host/ui.js +++ b/miot-sdk/host/ui.js @@ -581,6 +581,40 @@ class IUi { @report openAndroidLocationServerSettingPage() { } + /** + * 打开设备重置页面 + * @since 10041 + */ + @report + openResetAndConnectDevicePage() { + } + /** + * 打开语音授权页面 + * @since 10041 + */ + @report + openVoiceCtrlDevListPage() { + } + /** + * 打开文件选择页面 only for iOS + * 在使用前建议判断平台 + * @since 10042 + * @return {Promise} + * + * 成功时返回 + * { code: 0 , data: [ { path: xxx, fileName: xxx, ext: xxx, fileSize: xxx}, {...}] } + * 其中 path 是文件的绝对地址,ext是扩展名,fileName是文件名,byteLen 是文件 size 单位是byte + * 需要特别说明的是: + * 1:data 返回的数组类型 在 10042 中目前仅返回一个文件信息,不支持多选 + * 2:如果用户没有选择任何文件,例如点击了左上角的取消按钮,那么 data 中会返回空数组,开发人员需要对此做处理。 + * 失败时返回 + * { code: -1, message: 'file authorized failed'} // 在ios中 获取icloud需要验证授权,此处错误代表授权失败,如果出现此错误,请联系米家开发人员或提交工单反馈。 + * { code: -2, message: 'file read error'} // 出现此种错误 代表 ios 获取授权文件路径失败,如果出现此错误,请联系米家开发人员或提交工单反馈。 + * { code: -3, message: 'method [openIOSDocumentFileChoosePage] can only be invoked on iOS, Android is not supported.' } + */ + @report + openIOSDocumentFileChoosePage() { + } } const UiInstance = new IUi(); export default UiInstance; \ No newline at end of file diff --git a/miot-sdk/index.js b/miot-sdk/index.js index de18671a2..9c80bd7c0 100644 --- a/miot-sdk/index.js +++ b/miot-sdk/index.js @@ -20,6 +20,7 @@ import ClassicBluetoothFactory, { ClassicBluetoothEvent as MIOTClassicBluetoothE import BluetoothFactory from './device/bluetooth'; import { BluetoothEvent as MIOTBluetoothEvent } from './device/bluetooth/BluetoothDevice'; import HostInstance, { HostEvent as HostEventNames } from './Host'; +import { ECCCrypto as ECCCryptoClass } from "./host/crypto"; import { AudioEvent as AudioEventNames } from './host/audio'; import { FileEvent as FileEventNames } from './host/file'; import PackageInstance, { Entrance as Entrances, PackageEvent as PackageEventNames } from './Package'; @@ -28,7 +29,7 @@ import ResourcesPack from './resources'; import ServiceInstance from './Service'; import { SceneType as SceneTypeNames } from './service/scene'; import DarkModeFactory from './darkmode'; -export const API_LEVEL = 10040 +export const API_LEVEL = 10042 /** * 插件包基本配置 * {@link module:miot/Package} @@ -113,6 +114,11 @@ export const ClassicBluetooth = ClassicBluetoothFactory; * @export */ export const ClassicBluetoothEvent = MIOTClassicBluetoothEvent; +/** + * 椭圆曲线 + * @export + */ +export const ECCCrypto = ECCCryptoClass; /** * 场景类型 * {@link module:miot/service/scene~SceneType} @@ -129,7 +135,7 @@ import * as Utils from './utils'; export default { Device, DeviceEvent, Bluetooth, BluetoothEvent, ClassicBluetooth, ClassicBluetoothEvent, API_LEVEL, Package, PackageEvent, Entrance, DeviceProperties, - Service, Host, HostEvent, Resources, + Service, Host, HostEvent, Resources, ECCCrypto, SceneType, FileEvent, AudioEvent, Utils, DarkMode diff --git a/miot-sdk/native/index.js b/miot-sdk/native/index.js index 8b1378917..e69de29bb 100644 --- a/miot-sdk/native/index.js +++ b/miot-sdk/native/index.js @@ -1 +0,0 @@ - diff --git a/miot-sdk/package.json b/miot-sdk/package.json index a07ab4ec3..82ced5f3f 100644 --- a/miot-sdk/package.json +++ b/miot-sdk/package.json @@ -1,4 +1,4 @@ { "name":"miot", -"version":"1.0.40", -"api_level":10040} \ No newline at end of file +"version":"1.0.42", +"api_level":10042} \ No newline at end of file diff --git a/miot-sdk/resources/Strings.js b/miot-sdk/resources/Strings.js index bd7afa1c0..b3a8b99b4 100644 --- a/miot-sdk/resources/Strings.js +++ b/miot-sdk/resources/Strings.js @@ -99,6 +99,16 @@ let strings = { linkConfirm: '', removeLinkConfirm: '', linking: '', + linkDeviceBracelet: '', + scanDeviceBracelet: '', + scanDeviceBraceletTip: '', + scanDeviceBraceletEmptyTitle: '', + scanDeviceBraceletEmptyTip1: '', + scanDeviceBraceletEmptyTip2: '', + linkedDeviceBraceletHeaderTip: '', + availableLinkDeviceBraceletHeaderTip: '', + linkedDeviceBraceletFooterTip: '', + availableLinkDeviceBraceletFooterTip: '', pluginVersion: '', helpAndFeedback: '' }; @@ -177,6 +187,16 @@ strings = getStrings({ linkConfirm: '确认关联该设备?', removeLinkConfirm: '确认解除关联?', linking: '正在关联...', + linkDeviceBracelet: '关联手环', + scanDeviceBracelet: '扫描手环中...', + scanDeviceBraceletTip: '请将小米手环与本设备保持在一定的范围内, 并确保手环蓝牙广播已开启', + scanDeviceBraceletEmptyTitle: '附近未发现可关联的小米手环', + scanDeviceBraceletEmptyTip1: '1.请确认小米手环已开启蓝牙广播', + scanDeviceBraceletEmptyTip2: '2.请确认小米手环在本设备附近', + linkedDeviceBraceletHeaderTip: '已关联如下手环', + availableLinkDeviceBraceletHeaderTip: '可关联如下手环', + linkedDeviceBraceletFooterTip: '如需更换关联的手环,请先解除关联。', + availableLinkDeviceBraceletFooterTip: '请将小米手环与本设备保持在一定的范围内并确保手环蓝牙广播已开启', pluginVersion: '插件版本号', helpAndFeedback: '帮助与反馈' }, @@ -204,26 +224,26 @@ strings = getStrings({ timezone: '裝置時區', addToDesktop: '新増捷徑至桌面', // MHDatePicker - cancel: '取消', - ok: '确定', - am: '上午', - pm: '下午', - months: '个月', - days: '天', - hours: '小时', - minutes: '分钟', - seconds: '秒钟', - month: '个月', - day: '天', - hour: '小时', - minute: '分钟', - second: '秒钟', - yearUnit: '年', - monthUnit: '月', - dayUnit: '日', - hourUnit: '时', - minuteUnit: '分', - secondUnit: '秒', + cancel: "取消", + ok: "確認", + am: "上午", + pm: "下午", + months: "個月", + days: "天", + hours: "小時", + minutes: "分鐘", + seconds: "秒鐘", + month: "個月", + day: "天", + hour: "小時", + minute: "分鐘", + second: "秒鐘", + yearUnit: "年", + monthUnit: "月", + dayUnit: "日", + hourUnit: "时", + minuteUnit: "分", + secondUnit: "秒", dateSubTitle: '{0}年{1}月{2}日', // 2019年06月03日 time24SubTitle: '{0}:{1}', // 11:43 time12SubTitle: '{0} {1}:{2}', // 上午 11:43 @@ -235,25 +255,35 @@ strings = getStrings({ firmwareUpgradeForceUpdate: '由於您目前的用戶端版本過低,一些功能可能無法正常使用。 請升級最新版本,以體驗更豐富的功能', firmwareUpgradeForceUpdating: '您的裝置正在升級,請稍後,以體驗更豐富的功能', firmwareUpgradeNew_pre: '檢測到裝置有最新韌體版本', - firmwareUpgradeNew_sub: ',是否升級', + firmwareUpgradeNew_sub: ',是否升級?', handling: '執行中...', error: '處理失敗,請重試', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', + createLightGroup: "建立燈組 (新)", + manageLightGroup: "燈組管理 (新)", + deleteLightGroup: "解散燈組", + linkDevice: "連結裝置", + noSuppurtedLinkageDevice: "當前無可關聯設備", + noSuppurtedLinkageTip: "1.請確保在米家APP中已添加需要關聯的設備,並按要求分配到對應房間下;\n 2.請將需要關聯的藍牙設備與本設備保持在一定範圍內,否則將無法建立關聯。", + supportedLinkageDevices: "可連結以下裝置", + linkageDistanceTip: "請將要連結的藍牙裝置與本裝置保持在一定範圍內,否則無法建立連結", + linkageRemoveTip: " 如需更換關聯的藍牙設備,請先解除關聯", + link: "連結", + removeLink: "解除連結", + linkFail: "連結失敗", + removeLinkFail: "解除關聯失敗", + linkConfirm: "確認要連結該裝置?", + removeLinkConfirm: "確認解除連結", + linking: "正在連結…", + linkDeviceBracelet: '关联手环', + scanDeviceBracelet: '扫描手环中...', + scanDeviceBraceletTip: '请将小米手环与本设备保持在一定的范围内, 并确保手环蓝牙广播已开启', + scanDeviceBraceletEmptyTitle: '附近未发现可关联的小米手环', + scanDeviceBraceletEmptyTip1: '1.请确认小米手环已开启蓝牙广播', + scanDeviceBraceletEmptyTip2: '2.请确认小米手环在本设备附近', + linkedDeviceBraceletHeaderTip: '已关联如下手环', + availableLinkDeviceBraceletHeaderTip: '可关联如下手环', + linkedDeviceBraceletFooterTip: '如需更换关联的手环,请先解除关联。', + availableLinkDeviceBraceletFooterTip: '请将小米手环与本设备保持在一定的范围内并确保手环蓝牙广播已开启', pluginVersion: '挿件版本號', helpAndFeedback: '幫助與反饋' }, @@ -281,26 +311,26 @@ strings = getStrings({ timezone: '裝置時區', addToDesktop: '新增捷徑到桌面', // MHDatePicker - cancel: '取消', - ok: '确定', - am: '上午', - pm: '下午', - months: '个月', - days: '天', - hours: '小时', - minutes: '分钟', - seconds: '秒钟', - month: '个月', - day: '天', - hour: '小时', - minute: '分钟', - second: '秒钟', - yearUnit: '年', - monthUnit: '月', - dayUnit: '日', - hourUnit: '时', - minuteUnit: '分', - secondUnit: '秒', + cancel: "取消", + ok: "確認", + am: "上午", + pm: "下午", + months: "個月", + days: "天", + hours: "小時", + minutes: "分鐘", + seconds: "秒鐘", + month: "個月", + day: "天", + hour: "小時", + minute: "分鐘", + second: "秒鐘", + yearUnit: "年", + monthUnit: "月", + dayUnit: "日", + hourUnit: "时", + minuteUnit: "分", + secondUnit: "秒", dateSubTitle: '{0}年{1}月{2}日', // 2019年06月03日 time24SubTitle: '{0}:{1}', // 11:43 time12SubTitle: '{0} {1}:{2}', // 上午 11:43 @@ -312,25 +342,35 @@ strings = getStrings({ firmwareUpgradeForceUpdate: '由於您目前的用戶端版本過低,一些功能可能無法正常使用。 請升級最新版本,以體驗更豐富的功能', firmwareUpgradeForceUpdating: '您的裝置正在升級,請稍後,以體驗更豐富的功能', firmwareUpgradeNew_pre: '檢測到裝置有最新韌體版本', - firmwareUpgradeNew_sub: ',是否升級', + firmwareUpgradeNew_sub: ',是否升級?', handling: '執行中...', error: '處理失敗,請重試', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', + createLightGroup: "建立燈組(新)", + manageLightGroup: "燈組管理(新)", + deleteLightGroup: "解散燈組", + linkDevice: "關聯裝置", + noSuppurtedLinkageDevice: "當前無可關聯設備", + noSuppurtedLinkageTip: "1.請確保在米家APP中已添加需要關聯的設備,並按要求分配到對應房間下;\n 2.請將需要關聯的藍牙設備與本設備保持在一定範圍內,否則將無法建立關聯。", + supportedLinkageDevices: "可關聯以下裝置", + linkageDistanceTip: "請將需要關聯的藍牙裝置與本裝置保持在一定範圍內,否則將無法建立關聯", + linkageRemoveTip: " 如需更換關聯的藍牙設備,請先解除關聯", + link: "關聯", + removeLink: "解除關聯", + linkFail: "關聯失敗", + removeLinkFail: "解除關聯失敗", + linkConfirm: "確認關聯該裝置?", + removeLinkConfirm: "確認解除關聯", + linking: "正在關聯…", + linkDeviceBracelet: '关联手环', + scanDeviceBracelet: '扫描手环中...', + scanDeviceBraceletTip: '请将小米手环与本设备保持在一定的范围内, 并确保手环蓝牙广播已开启', + scanDeviceBraceletEmptyTitle: '附近未发现可关联的小米手环', + scanDeviceBraceletEmptyTip1: '1.请确认小米手环已开启蓝牙广播', + scanDeviceBraceletEmptyTip2: '2.请确认小米手环在本设备附近', + linkedDeviceBraceletHeaderTip: '已关联如下手环', + availableLinkDeviceBraceletHeaderTip: '可关联如下手环', + linkedDeviceBraceletFooterTip: '如需更换关联的手环,请先解除关联。', + availableLinkDeviceBraceletFooterTip: '请将小米手环与本设备保持在一定的范围内并确保手环蓝牙广播已开启', pluginVersion: '挿件版本號', helpAndFeedback: '幫助與反饋' }, @@ -339,19 +379,19 @@ strings = getStrings({ featureSetting: 'Device settings', commonSetting: 'General settings', name: 'Device name', - location: 'Manage locations', + location: 'Manage location', memberSet: 'Key settings', share: 'Share device', btGateway: 'BLE Gateway', voiceAuth: 'Voice authorization', ifttt: 'Automation', - firmwareUpgrade: 'Firmware updates', + firmwareUpgrade: 'Firmware update', more: 'Additional settings', help: 'Help', legalInfo: 'Legal information', deleteDevice: 'Delete device', autoUpgrade: 'Automatically update firmware', - checkUpgrade: 'Check for firmware updates', + checkUpgrade: 'Check for firmware update', security: 'Security settings', networkInfo: 'Network info', feedback: 'Feedback', @@ -397,18 +437,28 @@ strings = getStrings({ deleteLightGroup: 'Disband light group', linkDevice: 'Link devices', noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', + noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n 2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', supportedLinkageDevices: 'Can be linked with the following devices', linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', link: 'Link', removeLink: 'Remove link', linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', + removeLinkFail: 'Couldn\'t remove link', linkConfirm: 'Link with this device now?', removeLinkConfirm: 'Remove link now?', linking: 'Linking…', - pluginVersion: 'Plugin version number', + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: 'Plugin version', helpAndFeedback: 'Help & Feedback' }, ko: { @@ -435,20 +485,20 @@ strings = getStrings({ timezone: '디바이스 시간대', addToDesktop: '홈 화면에 추가', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "취소", + ok: "정보 확인", + am: "오전", + pm: "오후", + months: "달", + days: "일", + hours: "시간", + minutes: "분", + seconds: "초", + month: "월", + day: "일", + hour: "시", + minute: "분", + second: "초", yearUnit: '', monthUnit: '', dayUnit: '', @@ -469,23 +519,33 @@ strings = getStrings({ firmwareUpgradeNew_sub: ' 가능, 지금 업데이트 하시겠습니까?', handling: '실행 중...', error: '다시 시도', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', + createLightGroup: "전등 그룹 생성(신규)", + manageLightGroup: "전등 그룹 관리(신규)", + deleteLightGroup: "전등 그룹 해제", + linkDevice: "연결 기기", + noSuppurtedLinkageDevice: "연결 가능한 기기가 없습니다.", + noSuppurtedLinkageTip: "1. 기기가 APP에 연결되고 대으의 방에 설치되는지 확인하십시오. \n 2. 연결할 블루투스 기기와 본 기기를 일정 거리 내로 유지해 주세요. 거리가 먼 경우 연결할 수 없습니다.", + supportedLinkageDevices: "연결 가능한 기기", + linkageDistanceTip: "연결할 블루투스 기기와 본 기기를 일정 거리 내로 유지해 주세요. 거리가 먼 경우 연결할 수 없습니다.", + linkageRemoveTip: "연결된 블루투스 기기를 바꾸려면 미리 연결을 해제 하십시오", + link: "연결", + removeLink: "연결 해제", + linkFail: "연결 실패", + removeLinkFail: "연결 해제 실패", + linkConfirm: "해당 기기와 연결하시겠습니까?", + removeLinkConfirm: "연결 해제", + linking: "연결 중...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "플러그인 버전", helpAndFeedback: '도움말 & 피드백' }, ru: { @@ -493,7 +553,7 @@ strings = getStrings({ featureSetting: 'Настройки устройств', commonSetting: 'Общие настройки', name: 'Имя устройства', - location: 'Управлять местами', + location: 'Управление местами', memberSet: 'Настройка кнопок', share: 'Поделиться устройством', btGateway: 'BLE шлюз', @@ -512,20 +572,20 @@ strings = getStrings({ timezone: 'Часовой пояс устройства', addToDesktop: 'Добавить на главный экран', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "Отменить", + ok: "Подтвердить", + am: "ДП", + pm: "ПП", + months: "месяцы", + days: "дни", + hours: "часы", + minutes: "минуты", + seconds: "секунды", + month: "месяц ", + day: "день", + hour: "час ", + minute: "минута", + second: "сеунда", yearUnit: '', monthUnit: '', dayUnit: '', @@ -546,23 +606,33 @@ strings = getStrings({ firmwareUpgradeNew_sub: ', обновить сейчас?', handling: 'Загрузка...', error: 'Попробовать снова', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', + createLightGroup: "Создать группу светильников (новинка)", + manageLightGroup: "Управление устройствами (новинка)", + deleteLightGroup: "Расформировать группу светильников", + linkDevice: "Связать устройства", + noSuppurtedLinkageDevice: "Нет доступных устройств для связи", + noSuppurtedLinkageTip: "1.Убедитесь, что связываемое устройство было добавлено в приложение и назначено для соответствующей комнаты.\n 2.Держите связываемое устройство Bluetooth рядом с этим устройством, иначе не удастся установить связь.", + supportedLinkageDevices: "Можно установить связь со следующими устройствами", + linkageDistanceTip: "Держите связываемое устройство Bluetooth рядом с этим устройством, иначе не удастся установить связь.", + linkageRemoveTip: "Если необходимо изменить связываемое устройство Bluetooth, сначала удалите связь.", + link: "Связать", + removeLink: "Удалить связь", + linkFail: "Не удалось установить связь", + removeLinkFail: "Не удалось удалить связь", + linkConfirm: "Связать с этим устройством?", + removeLinkConfirm: "Удалить связь", + linking: "Связывание...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "Версия плагина", helpAndFeedback: 'Справка и обратная связь' }, es: { @@ -589,20 +659,20 @@ strings = getStrings({ timezone: 'Zona horaria del dispositivo', addToDesktop: 'Añadir a la pantalla de Inicio', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "Cancelar", + ok: "Confirmar", + am: "AM", + pm: "PM", + months: "meses", + days: "días", + hours: "horas", + minutes: "minutos", + seconds: "segundos", + month: "meses", + day: "día", + hour: "hora", + minute: "minuto", + second: "segundo ", yearUnit: '', monthUnit: '', dayUnit: '', @@ -623,63 +693,73 @@ strings = getStrings({ firmwareUpgradeNew_sub: ' de firmware disponible, ¿actualizar ahora?', handling: 'Ejecutándose...', error: 'Reintentar', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', + createLightGroup: "Crear grupo de luces (nuevo)", + manageLightGroup: "Administrar dispositivos (nuevo)", + deleteLightGroup: "Deshacer grupo de luces", + linkDevice: "Vincular dispositivos", + noSuppurtedLinkageDevice: "No hay dispositivos disponibles para vincular ahora", + noSuppurtedLinkageTip: "1. Por favor, asegúreses que el dispositivo que quiere vincular se ha añadido a la aplicación, y asígnelo a la habitación preferida. \n 2.Por favor mantenga el dispositivo Bluetooth que quiere vincular cerca de este dispositivo,en caso contrario no podrá vincularse.", + supportedLinkageDevices: "Puede vincularse con los siguientes dispositivos", + linkageDistanceTip: "Mantenga el dispositivo Bluetooth que quiere vincular cerca de este dispositivo, de lo contrario no podrá vincularse.", + linkageRemoveTip: "Si el dispositivo Bluetooth necesita cargarse, por favor elimine el vinculo primero.", + link: "Vincular", + removeLink: "Eliminar vinculación", + linkFail: "No se ha podido vincular", + removeLinkFail: "No se pudo eliminar el enlace.", + linkConfirm: "¿Vincular ahora con este dispositivo?", + removeLinkConfirm: "Eliminar vinculación ahora", + linking: "Vinculando…", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "Versión de Plugin", helpAndFeedback: 'Ayuda y Comentarios' }, fr: { - setting: 'Paramètres', - featureSetting: 'Paramètres des appareils', - commonSetting: 'Paramètres généraux', + setting: "Paramètres", + featureSetting: "Paramètres de l'appareil", + commonSetting: "Paramètres généraux", name: "Nom de l'appareil", - location: 'Gérer les emplacements', - memberSet: 'Paramètres des boutons', + location: "Gérer emplacement", + memberSet: "Paramètres des boutons", share: "Partager l'appareil", - btGateway: 'Passerelle BLE', - voiceAuth: 'Autorisation vocale', - ifttt: 'Automatisation', - firmwareUpgrade: 'Les mises à jour du micrologiciel', - more: 'Paramètres supplémentaires', - help: 'Aide', - legalInfo: 'Information légale', + btGateway: "Passerelle BLE", + voiceAuth: "Autorisation vocale", + ifttt: "Automatisation", + firmwareUpgrade: "Mise à jour logiciel", + more: "Paramètres supplémentaires", + help: "Aide", + legalInfo: "Information légale", deleteDevice: "Supprimer l'appareil", - autoUpgrade: 'Mise à jour automatique du firmware', - checkUpgrade: 'Vérifier les mises à jour du micrologiciel', - security: 'Paramètres de sécurité', - networkInfo: 'Informations sur le réseau', - feedback: 'Commentaire', - timezone: 'Fuseau horaire de l’appareil', - addToDesktop: "Ajouter à l'écran d'accueil'", + autoUpgrade: "Mettre à jour le logiciel automatiquement", + checkUpgrade: "Vérifier les mises à jour du micrologiciel", + security: "Paramètres de sécurité", + networkInfo: "Informations sur le réseau", + feedback: "Commentaire", + timezone: "Fuseau horaire de l’appareil", + addToDesktop: "Ajouter à l'écran d'accueil", // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "Annuler", + ok: "Confirmer", + am: "AM", + pm: "PM", + months: "mois", + days: "jours", + hours: "heures", + minutes: "minutes", + seconds: "secondes", + month: "mois", + day: "jours", + hour: "heure", + minute: "minute", + second: "seconde", yearUnit: '', monthUnit: '', dayUnit: '', @@ -694,29 +774,39 @@ strings = getStrings({ firmwareUpgradeExit: 'Quitter', firmwareUpgradeUpdate: 'Mettre à jour', firmwareUpgradeLook: 'Jeter un coup d\'œil', - firmwareUpgradeForceUpdate: 'La version actuelle du micrologiciel est trop ancienne. Certaines fonctionnalités peuvent ne pas fonctionner correctement. Mettre à jour la dernière version pour une meilleure expérience', + firmwareUpgradeForceUpdate: "La version actuelle du micrologiciel est trop ancienne. Certaines fonctionnalités peuvent ne pas fonctionner correctement. Mettez à jour la dernière version pour une meilleure expérience", firmwareUpgradeForceUpdating: 'Votre appareil est en cours de mise à jour. Réessayez plus tard', firmwareUpgradeNew_pre: 'Mise à jour du micrologiciel ', firmwareUpgradeNew_sub: ' disponible. Mettre à jour maintenant ?', handling: 'En cours d’exécution…', - error: 'Réessayer', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', + error: "Échec de l'opération, veuillez réessayer plus tard", + createLightGroup: "Créer un groupe d’éclairage (nouveau)", + manageLightGroup: "Gérer les appareils (nouveau)", + deleteLightGroup: "Supprimer un groupe d’éclairage", + linkDevice: "Associer des appareils", + noSuppurtedLinkageDevice: "Pas d'appareils disponibles pour apparier", + noSuppurtedLinkageTip: "1. Veuillez vérifier que l'appareil à associer a été ajouté à l'app et attribué à la pièce préférée. \n 2. Veuillez garder l'appareil Bluetooth à associer à proximité de cet appareil, sinon vous ne pourrez pas l'associer.", + supportedLinkageDevices: "Peut être associé aux appareils suivants", + linkageDistanceTip: "Veuillez garder l’appareil Bluetooth à une certaine distance de cet appareil, sinon l’association ne fonctionnera pas.", + linkageRemoveTip: "Si l'appareil Bluetooth a besoin d'être remplacé, veuillez dissocier d'abord.", + link: "Associer", + removeLink: "Dissocier", + linkFail: "Association impossible", + removeLinkFail: "impossible de supprimer le lien", + linkConfirm: "Associer à cet appareil maintenant ?", + removeLinkConfirm: "Dissocier maintenant", + linking: "Association...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "Version plugin", helpAndFeedback: 'Aide et commentaires' }, it: { @@ -724,39 +814,39 @@ strings = getStrings({ featureSetting: 'Impostazioni dispositivo', commonSetting: 'Impostazioni generali', name: 'Nome dispositivo', - location: 'Gestisci posizioni', + location: "Gestisci posizione", memberSet: 'Impostazioni pulsante', share: 'Condividi dispositivo', btGateway: 'Gateway BLE', voiceAuth: 'Autorizzazione vocale', ifttt: 'Automazione', - firmwareUpgrade: 'Aggiornamenti firmware', + firmwareUpgrade: "Aggiornamento firmware", more: 'Impostazioni aggiuntive', help: 'Guida', legalInfo: 'Informazioni legali', deleteDevice: 'Rimuovi dispositivo', autoUpgrade: 'Aggiorna automaticamente il firmware', - checkUpgrade: 'Controlla aggiornamenti firmware', + checkUpgrade: "Controlla aggiornamento firmware", security: 'Impostazioni di sicurezza', networkInfo: 'Informazioni di rete', feedback: 'Feedback', timezone: 'Fuso orario del dispositivo', addToDesktop: 'Aggiungi a schermata iniziale', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "Annulla", + ok: "Conferma", + am: "AM", + pm: "PM", + months: "Mesi", + days: "Giorni", + hours: "Ore", + minutes: "Minuti", + seconds: "Secondi", + month: "Mese", + day: "Giorno", + hour: "Ora", + minute: "Minuto", + second: "Secondo", yearUnit: '', monthUnit: '', dayUnit: '', @@ -771,69 +861,79 @@ strings = getStrings({ firmwareUpgradeExit: 'Esci', firmwareUpgradeUpdate: 'Aggiorna', firmwareUpgradeLook: 'Guarda', - firmwareUpgradeForceUpdate: 'La versione firmware in uso è obsoleta. Alcune funzioni potrebbero non funzionare correttamente. Esegui l\'aggiornamento alla versione più recente per usufruire di prestazioni migliori.', + firmwareUpgradeForceUpdate: "La versione firmware in uso è obsoleta. Alcune funzioni potrebbero non funzionare correttamente. Aggiorna all'ultima versione per una migliore esperienza.", firmwareUpgradeForceUpdating: 'Il dispositivo è in fase di aggiornamento. Riprova più tardi', firmwareUpgradeNew_pre: 'Aggiornamento firmware ', firmwareUpgradeNew_sub: ' disponibile. Aggiornare adesso?', handling: 'In esecuzione…', - error: 'Riprova', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', + error: "Potrebbe non funzionare, riprova più tardi", + createLightGroup: "Crea gruppo luci(nuovo)", + manageLightGroup: "Gestisci dispositivi(nuovo)", + deleteLightGroup: "Elimina gruppo luci", + linkDevice: "Collega dispositivi", + noSuppurtedLinkageDevice: " Nessun dispositivo disponibile adesso per il collegamento ", + noSuppurtedLinkageTip: "1. Assicurati che il dispositivo da collegare sia stato aggiunto alla app e assegnato alla stanza preferita. \n 2. Mantieni il dispositivo Bluetooth da collegare entro una certa distanza con questo dispositivo, altrimenti non sarà possibile di collegarlo.", + supportedLinkageDevices: "Può essere collegato ai seguenti dispositivi", + linkageDistanceTip: "Tieni il dispositivo Bluetooth da collegare entro una certa distanza da questo dispositivo o non sarà possibile collegarlo.", + linkageRemoveTip: "Se il dispositivo Bluetooth collegato necessita di essere cambiato, prima rimuovi il collegamento", + link: "Collega", + removeLink: "Rimuovi il collegamento", + linkFail: "Impossibile collegare", + removeLinkFail: "Impossibile rimuovere il collegamento", + linkConfirm: "Collegare questo dispositivo?", + removeLinkConfirm: "Rimuovi il collegamento", + linking: "Collegamento...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: 'Versione plugin', helpAndFeedback: 'Guida e feedback' }, de: { - setting: 'Einstellungen', - featureSetting: 'Geräteeinstellungen', - commonSetting: 'Allgemeine einstellungen', - name: 'Gerätename', - location: 'Standorte verwalten', - memberSet: 'Schaltflächen-einstellungen', - share: 'Gerät teilen', - btGateway: 'BLE-Gateway', - voiceAuth: 'Identitätsnachweis über die Stimme', - ifttt: 'Automatisierung', - firmwareUpgrade: 'Firmware-Aktualisierungen', - more: 'Zusätzliche Einstellungen', - help: 'Hilfe', - legalInfo: 'Rechtsinformation', - deleteDevice: 'Geräte entfernen', - autoUpgrade: 'Firmware automatisch aktualisieren', - checkUpgrade: 'Nach Firmware-Aktualisierungen suchen', + setting: "Einstellungen", + featureSetting: "Geräteinstellungen", + commonSetting: "Allgemeine einstellungen", + name: "Gerätename", + location: "Standort verwalten", + memberSet: "Schaltflächen-Einstellungen", + share: "Gerät teilen", + btGateway: "BLE-Gateway", + voiceAuth: "Sprachautorisierung", + ifttt: "Automatisierung", + firmwareUpgrade: "Firmware-Aktualisierung", + more: "Zusätzliche Einstellungen", + help: "Hilfe", + legalInfo: "Rechtsinformation", + deleteDevice: "Gerät entfernen", + autoUpgrade: "Firmware automatisch aktualisieren", + checkUpgrade: "Nach Firmware-Aktualisierung suchen.", security: 'Sicherheitseinstellungen', networkInfo: 'Netzwerk-Info', feedback: 'Feedback', timezone: 'Gerätezeitzone', addToDesktop: 'Zum Startbildschirm hinzufügen', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "Abbrechen", + ok: "Bestätigen", + am: "AM", + pm: "PM", + months: "Monate", + days: "Tage", + hours: "Stunden", + minutes: "Minuten", + seconds: "Sekunden", + month: "Monat ", + day: "Tag ", + hour: "Stunde ", + minute: "Minute ", + second: "Sekunde ", yearUnit: '', monthUnit: '', dayUnit: '', @@ -848,30 +948,40 @@ strings = getStrings({ firmwareUpgradeExit: 'Beenden', firmwareUpgradeUpdate: 'Aktualisieren', firmwareUpgradeLook: 'Ansehen', - firmwareUpgradeForceUpdate: 'Aktuelle Firmware-Version ist zu alt, einige Funktionen arbeiten möglicherweise nicht korrekt. Aktualisieren Sie auf die neueste Version, um eine verbesserte Funktionsausführung zu erzielen.', + firmwareUpgradeForceUpdate: "Die aktuelle Firmware ist möglicherweise zu alt, um einige Funktionen auszuführen. Aktualisieren Sie auf die neueste Version, um eine verbesserte Funktionsausführung zu erzielen.", firmwareUpgradeForceUpdating: 'Ihr Gerät wird aktualisiert, versuchen Sie es später erneut', firmwareUpgradeNew_pre: 'Firmware-Aktualisierung ', firmwareUpgradeNew_sub: ' verfügbar, jetzt aktualisieren?', handling: 'Wird ausgeführt...', - error: 'Erneut versuchen', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', - helpAndFeedback: 'Hilfe und Feedback' + error: "Funktionierte nicht, bitte versuchen Sie es später erneut.", + createLightGroup: "Lichtgruppe erstellen (neu)", + manageLightGroup: "Geräte verwalten (neu)", + deleteLightGroup: "Lichtgruppe auflösen", + linkDevice: "Geräte verbinden", + noSuppurtedLinkageDevice: "Derzeit sind keine Geräte zur Verbindung verfügbar", + noSuppurtedLinkageTip: "1.Bitte stellen Sie sicher, dass das Gerät, mit dem eine Verbindung hergestellt werden soll, zur App hinzugefügt wurde und dem bevorzugten Raum zugewiesen ist. \n 2.Bitte halten Sie das Bluetooth-Gerät, mit dem eine Verbindung hergestellt werden soll, in einem bestimmten Abstand von diesem Gerät, da sonst keine Verbindung möglich ist.", + supportedLinkageDevices: "Kann mit den folgenden Geräten verbunden werden", + linkageDistanceTip: "Stellen Sie sicher, dass sich das zu verbindende Bluetooth-Gerät innerhalb einer bestimmten Entfernung zu diesem Gerät befindet, andernfalls kann es nicht verbunden werden.", + linkageRemoveTip: "Wenn das verbundete Bluetooth-Gerät geändert werden muss, entfernen Sie bitte zuerst den Link.", + link: "Verbinden", + removeLink: "Verbindung entfernen", + linkFail: "Verbindung konnte nicht hergestellt werden", + removeLinkFail: "Verbindung konnte nicht entfernt werden", + linkConfirm: "Mit diesem Gerät jetzt verbinden?", + removeLinkConfirm: "Verbindung jetzt entfernen?", + linking: "Wird verbunden...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "Plugin Version", + helpAndFeedback: "Hilfe und Feedback" }, id: { setting: 'Pengaturan', @@ -897,20 +1007,20 @@ strings = getStrings({ timezone: 'Zona waktu perangkat', addToDesktop: 'Tambahkan ke layar Beranda', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "Batal", + ok: "Konfirmasi", + am: "AM", + pm: "PM", + months: "bulan", + days: "hari", + hours: "jam", + minutes: "menit", + seconds: "detik", + month: "bulan", + day: "hari ", + hour: "jam", + minute: "menit", + second: "detik", yearUnit: '', monthUnit: '', dayUnit: '', @@ -930,29 +1040,39 @@ strings = getStrings({ firmwareUpgradeNew_pre: 'Pembaruan firmware ', firmwareUpgradeNew_sub: ' tersedia, perbarui sekarang?', handling: 'Menjalankan...', - error: 'Coba lagi', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', - helpAndFeedback: 'Bantuan & Umpan Balik' + error: "Tidak dapat beroperasi, coba lagi nanti", + createLightGroup: "Buat grup lampu(baru)", + manageLightGroup: "Kelola perangkat(baru)", + deleteLightGroup: "Hapus grup lampu", + linkDevice: "Tautkan perangkat", + noSuppurtedLinkageDevice: "Tidak ada perangkat yang tersedia untuk ditautkan sekarang", + noSuppurtedLinkageTip: "1.Pastikan perangkat yang akan ditautkan telah ditambahkan ke aplikasi, dan ditugaskan ke ruang pilihan. \n 2.Harap simpan perangkat Bluetooth yang akan ditautkan dengan jarak tertentu dari perangkat ini, jika tidak maka perangkat ini tidak akan dapat ditautkan.", + supportedLinkageDevices: "Dapat ditautkan dengan perangkat berikut", + linkageDistanceTip: "Pastikan perangkat Bluetooth yang akan ditautkan berada dalam jarak tertentu dari perangkat ini, jika tidak, perangkat tidak akan dapat ditautkan.", + linkageRemoveTip: "Jika perangkat Bluetooth yang ditautkan perlu diubah, harap hapus tautan terlebih dahulu.", + link: "Tautkan", + removeLink: "Hapus tautan", + linkFail: "Tidak dapat menautkan", + removeLinkFail: "Tidak dapat menghapus tautan", + linkConfirm: "Tautkan dengan perangkat ini sekarang?", + removeLinkConfirm: "Hapus tautan sekarang", + linking: "Menautkan...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "Versi Plugin", + helpAndFeedback: "Bantuan & Umpan Balik" }, pl: { setting: 'Ustawienia', - featureSetting: 'Ustawienia urządzeń', + featureSetting: 'Ustawienia urządzenia', commonSetting: 'Ustawienia ogólne', name: 'Nazwa urządzenia', location: 'Zarządzaj lokalizacją', @@ -961,33 +1081,33 @@ strings = getStrings({ btGateway: 'Bramka BLE', voiceAuth: 'Autoryzacja głosu', ifttt: 'Automatyzacja', - firmwareUpgrade: 'Aktualizacje oprogramowania sprzętowe', + firmwareUpgrade: 'Aktualizacja oprogramowania sprzętowego', more: 'Dodatkowe ustawienia', help: 'Pomoc', legalInfo: 'Informacje prawne', deleteDevice: 'Usuń urządzenie', - autoUpgrade: 'Automatyczna aktualizacja oprogramowania układowego', - checkUpgrade: 'Sprawdź aktualizacje oprogramowania sprzętowe', + autoUpgrade: 'Automatyczna aktualizacja oprogramowania sprzętowego', + checkUpgrade: 'Sprawdź aktualizacje oprogramowania sprzętowego', security: 'Ustawienia bezpieczeństwa', networkInfo: 'Informacje o sieci', feedback: 'Informacje zwrotne', timezone: 'Strefa czasowa urządzenia', addToDesktop: 'Dodaj do ekranu głównego', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "Anuluj", + ok: "Potwierdź", + am: "AM ", + pm: "PM", + months: "miesiące", + days: "dni", + hours: "godziny", + minutes: "minuty", + seconds: "sekundy", + month: "miesiąc", + day: "dzień", + hour: "godzina", + minute: "minuta", + second: "sekunda", yearUnit: '', monthUnit: '', dayUnit: '', @@ -1001,38 +1121,48 @@ strings = getStrings({ // 升级相关 firmwareUpgradeExit: 'Wyjdź', firmwareUpgradeUpdate: 'Aktualizuj', - firmwareUpgradeLook: 'Przegląd', - firmwareUpgradeForceUpdate: 'Aktualna wersja oprogramowania sprzętowego jest zbyt stara, aby niektóre funkcje działały poprawnie. Zaktualizuj do najnowszej wersji, aby poprawić użytkowanie.', + firmwareUpgradeLook: "Przeglądaj", + firmwareUpgradeForceUpdate: "Aktualna wersja oprogramowania sprzętowego jest zbyt stara, aby niektóre funkcje działały poprawnie. Zaktualizuj do najnowszej wersji, aby działo sprawniej.", firmwareUpgradeForceUpdating: 'Urządzenie jest aktualizowane, spróbuj ponownie później.', - firmwareUpgradeNew_pre: 'Dostępna jest aktualizacja oprogramowania sprzętowego dla ', + firmwareUpgradeNew_pre: "Dostępna jest aktualizacja oprogramowania sprzętowego", firmwareUpgradeNew_sub: '. Zaktualizować teraz?', handling: 'Pracuje…', error: 'Spróbuj ponownie', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', - helpAndFeedback: 'Pomoc i informacje zwrotne' + createLightGroup: "Utwórz grupę oświetleniową (nowość)", + manageLightGroup: "Zarządzaj urządzeniami (nowość)", + deleteLightGroup: "Rozgrupuj grupę oświetleniową", + linkDevice: "Połącz urządzenia", + noSuppurtedLinkageDevice: "Brak urządzeń do połączenia", + noSuppurtedLinkageTip: "1. Upewnij się, że urządzenie do połączenia zostało dodane do aplikacji i przydzielone do preferowanego pomieszczenia.\n2. Trzymaj urządzenie Bluetooth w odpowiedniej odległości. W przeciwnym razie urządzenie nie będzie w stanie nawiązać połączenia.", + supportedLinkageDevices: "Można połączyć z następującymi urządzeniami", + linkageDistanceTip: "Trzymaj urządzenie Bluetooth w pewnej odległości od tego urządzenia, w przeciwnym razie nie będzie ono w stanie nawiązać połączenia.", + linkageRemoveTip: "Usuń najpierw istniejące połączenie, jeśli połączone urządzenie Bluetooth trzeba zmienić.", + link: "Połącz", + removeLink: "Usuń połączenie", + linkFail: "Nie można połączyć", + removeLinkFail: "Nie można usunąć linku", + linkConfirm: "Czy połączyć z tym urządzeniem teraz?", + removeLinkConfirm: "Usuń połączenie", + linking: "Łączenie...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "Wersja wtyczki", + helpAndFeedback: "Pomoc i informacja zwrotna" }, vi: { setting: 'Cài đặt', featureSetting: 'Cài đặt thiết bị', commonSetting: 'Cài đặt chung', name: 'Tên thiết bị', - location: 'Quản lý các vị trí', + location: 'Quản lí vị trí', memberSet: 'Cài đặt nút', share: 'Chia sẻ thiết bị', btGateway: 'Cổng BLE', @@ -1051,26 +1181,26 @@ strings = getStrings({ timezone: 'Múi giờ thiết bị', addToDesktop: 'Thêm vào Màn hình chính', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', - yearUnit: '', - monthUnit: '', - dayUnit: '', - hourUnit: '', - minuteUnit: '', - secondUnit: '', + cancel: "Huỷ bỏ", + ok: "Xác nhận", + am: "Sáng", + pm: "Tối", + months: "Tháng", + days: "Ngày", + hours: "Giờ", + minutes: "Phút", + seconds: "Giây", + month: "Tháng", + day: "Ngày", + hour: "Giờ", + minute: "Phút", + second: "Giây", + yearUnit: "Năm", + monthUnit: "Tháng", + dayUnit: "Ngày", + hourUnit: "Giờ", + minuteUnit: "Phút", + secondUnit: "Giây", dateSubTitle: '{0}-{1}-{2}', // 2019-06-03 time24SubTitle: '{0}:{1}', // 11:43 time12SubTitle: '{1}:{2} {0}', // 11:43 am @@ -1085,24 +1215,34 @@ strings = getStrings({ firmwareUpgradeNew_sub: ', cập nhật ngay bây giờ?', handling: 'Đang thực hiện', error: 'Thử lại', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', - helpAndFeedback: 'Trợ giúp và phản hồi' + createLightGroup: "Tạo nhóm đèn (mới)", + manageLightGroup: "Quản lý thiết bị (mới)", + deleteLightGroup: "Hủy nhóm đèn", + linkDevice: "Liên kết thiết bị", + noSuppurtedLinkageDevice: "Không tìm thấy thiết bị để liên kết", + noSuppurtedLinkageTip: "1. Vui lòng đảm bảo thiết bị cần liên kết đã được thêm vào ứng dụng và được chỉ định cho phòng tương ứng theo yêu cầu. \n 2. Vui lòng đặt thiết bị cần liên kết Bluetooth trong phạm vi cho phép của thiết bị để liên kết thành công, nếu không, liên kết sẽ không thể thiết lập.", + supportedLinkageDevices: "Có thể liên kết với những thiết bị sau", + linkageDistanceTip: "Vui lòng đặt thiết bị Bluetooth bạn muốn liên kết ở gần thiết bị này. Nếu không thì bạn sẽ không liên kết được.", + linkageRemoveTip: "Nếu muốn thay đổi thiết bị Bluetooth được liên kết, vui lòng huỷ kết nối liên kết trước.", + link: "Liên kết", + removeLink: "Gỡ liên kết", + linkFail: "Không thể liên kết", + removeLinkFail: "Kết nối thất bại", + linkConfirm: "Liên kết ngay với thiết bị này?", + removeLinkConfirm: "Hủy liên kết ngay", + linking: "Đang liên kết…", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "Phiên bản Plugin", + helpAndFeedback: "Trợ giúp và phản hồi" }, ja: { setting: '設定', @@ -1110,7 +1250,7 @@ strings = getStrings({ commonSetting: '全般設定', name: 'デバイス名', location: '位置を管理する', - memberSet: 'ボタンの設定', + memberSet: 'ボタン設定', share: 'デバイスを共有する', btGateway: 'BLE ゲートウェイ', voiceAuth: '音声承認', @@ -1118,36 +1258,36 @@ strings = getStrings({ firmwareUpgrade: 'ファームウェア更新する', more: '詳細設定', help: 'ヘルプ', - legalInfo: '法律情報', + legalInfo: '法情報', deleteDevice: 'デバイスを削除する', autoUpgrade: 'ファームウェアの自動アップグレード', checkUpgrade: 'ファームウェア更新プログラムの有無を確認する', security: 'セキュリティ設定', - networkInfo: 'ネットワーク設定', + networkInfo: 'ネットワーク情報', feedback: 'フィードバック', timezone: 'デバイスタイムゾーン', addToDesktop: 'ホーム画面に追加する', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', - yearUnit: '', - monthUnit: '', - dayUnit: '', - hourUnit: '', - minuteUnit: '', - secondUnit: '', + cancel: "キャンセル", + ok: "確定", + am: "午前", + pm: "午後", + months: "月", + days: "日", + hours: "時間", + minutes: "分", + seconds: "秒", + month: "月", + day: "日", + hour: "時間", + minute: "分", + second: "秒", + yearUnit: "年", + monthUnit: "月", + dayUnit: "日", + hourUnit: "時", + minuteUnit: "分", + secondUnit: "秒", dateSubTitle: '{0}-{1}-{2}', // 2019-06-03 time24SubTitle: '{0}:{1}', // 11:43 time12SubTitle: '{1}:{2} {0}', // 11:43 am @@ -1156,30 +1296,40 @@ strings = getStrings({ firmwareUpgradeExit: '終了', firmwareUpgradeUpdate: '更新', firmwareUpgradeLook: '調べる', - firmwareUpgradeForceUpdate: '現在のファームウェア バージョンは古すぎます。一部の機能が正しく動作しないおそれがあります。ユーザー エクスペリエンスを高めるため、最新バージョンに更新してください。', - firmwareUpgradeForceUpdating: 'デバイスは更新中です。後で再試行してください', - firmwareUpgradeNew_pre: 'ファームウェア更新プログラム ', - firmwareUpgradeNew_sub: ' が公開されています。今すぐ更新しますか?', + firmwareUpgradeForceUpdate: "現在ご使用のファームウェアは旧バージョンのため、一部の機能が正しく作動しない場合があります。より良いエクスペリエンスのために、最新バージョンに更新してください。", + firmwareUpgradeForceUpdating: "デバイス更新中です。後ほど再試行してください。", + firmwareUpgradeNew_pre: "ファームウェア更新", + firmwareUpgradeNew_sub: "使用可能です。今すぐ更新しますか?", handling: '実行中', error: '再試行する', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', - helpAndFeedback: 'ヘルプおよびフィードバック' + createLightGroup: "照明グループ作成(新)", + manageLightGroup: "照明グループ管理(新)", + deleteLightGroup: "照明グループ解除", + linkDevice: "デバイス連結", + noSuppurtedLinkageDevice: "連結されているデバイスがありません", + noSuppurtedLinkageTip: "1.デバイスがアプリにきちんと繋がれていること、お好みのルームに設定されていることを確認してください。このデバイスから一定の範囲内にBluetoothデバイスを置いてください。そうしなければ連結できません。", + supportedLinkageDevices: "以下のデバイスと連結できます", + linkageDistanceTip: "このデバイスから一定の範囲内にBluetoothデバイスを置いてください。そうしなければ連結できません。", + linkageRemoveTip: "連結するBluetoothデバイスを変更したい場合は、初めに同期化を解除してください。", + link: "連結", + removeLink: "連結を解除する", + linkFail: "連結に失敗しました", + removeLinkFail: "連結の解除に失敗しました", + linkConfirm: "このデバイスと連結しますか", + removeLinkConfirm: "連結を解除します", + linking: "連結中", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "プラグインのバージョン", + helpAndFeedback: "ヘルプおよびフィードバック" }, th: { setting: 'การตั้งค่า', @@ -1192,7 +1342,7 @@ strings = getStrings({ btGateway: 'เกตเวย์ BLE', voiceAuth: 'การอนุญาตด้วยเสียง', ifttt: 'ระบบอัตโนมัติ', - firmwareUpgrade: 'ตรวจสอบหาการอัปเดตเฟิร์มแวร์', + firmwareUpgrade: 'การอัปเดตเฟิร์มแวร์', more: 'การตั้งค่าเพิ่มเติม', help: 'ความช่วยเหลือ', legalInfo: 'ข้อมูลทางกฎหมาย', @@ -1205,26 +1355,26 @@ strings = getStrings({ timezone: 'โซนเวลาของอุปกรณ์', addToDesktop: 'เพิ่มไปยังหน้าโฮม', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', - yearUnit: '', - monthUnit: '', - dayUnit: '', - hourUnit: '', - minuteUnit: '', - secondUnit: '', + cancel: "ยกเลิก", + ok: "ตกลง", + am: "AM", + pm: "PM", + months: "เดือน", + days: "วัน", + hours: "ชั่วโมง", + minutes: "นาที", + seconds: "วินาที", + month: "เดือน", + day: "วัน", + hour: "ชั่วโมง", + minute: "นาที", + second: "วินาที", + yearUnit: "ปี", + monthUnit: "เดือน", + dayUnit: "วัน", + hourUnit: "ชั่วโมง", + minuteUnit: "นาที", + secondUnit: "วินาที", dateSubTitle: '{0}-{1}-{2}', // 2019-06-03 time24SubTitle: '{0}:{1}', // 11:43 time12SubTitle: '{1}:{2} {0}', // 11:43 am @@ -1239,24 +1389,34 @@ strings = getStrings({ firmwareUpgradeNew_sub: ' ใช้ได้แล้ว อัปเดตตอนนี้หรือไม่', handling: 'ในการดำเนินการ', error: 'ลองอีกครั้ง', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', - helpAndFeedback: 'ความช่วยเหลือและคำติชม' + createLightGroup: "สร้างกลุ่มแสงไฟ(ใหม่)", + manageLightGroup: "จัดการอุปกรณ์(ใหม่)", + deleteLightGroup: "สลายกลุ่มแสงไฟ", + linkDevice: "เชื่อมโยงอุปกรณ์", + noSuppurtedLinkageDevice: "ขณะนี้ไม่มีอุปกรณ์ให้เชื่อมโยง", + noSuppurtedLinkageTip: "1. โปรดตรวจสอบให้แน่ใจว่าได้เพิ่มอุปกรณ์ที่จะเชื่อมโยงเข้ากับแอปและกำหนดให้กับห้องที่ต้องการ 2. โปรดวางอุปกรณ์บลูทูธที่ต้องการเชื่อมโยงกับอุปกรณ์นี้ในระยะที่กำหนดมิฉะนั้นอุปกรณ์นั้นจะไม่สามารถเชื่อมโยงได้", + supportedLinkageDevices: "สามารถเชื่อมโยงกับอุปกรณ์ต่อไปนี้ได้", + linkageDistanceTip: "โปรดนำอุปกรณ์บลูทูธที่ต้องการเชื่อมโยงไปวางไว้ในระยะที่กำหนดของอุปกรณ์นี้ มิฉะนั้นจะไม่สามารถเชื่อมโยงได้", + linkageRemoveTip: "หากต้องการเปลี่ยนอุปกรณ์บลูทูธที่เชื่อมโยง โปรดยกเลิกการเชื่อมโยงอันแรกออกก่อน", + link: "เชื่อมโยง", + removeLink: "ยกเลิกการเชื่อมโยง", + linkFail: "ไม่สามารถเชื่อมโยงได้", + removeLinkFail: "การยกเลิกการเชื่อมโยงล้มเหลว", + linkConfirm: "เชื่อมโยงกับอุปกรณ์เครื่องนี้ตอนนี้เลยหรือไม่", + removeLinkConfirm: "ยกเลิกการเชื่อมโยงตอนนี้", + linking: "กำลังเชื่อมโยง…", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "เวอร์ชั่นปลั๊กอิน", + helpAndFeedback: "ความช่วยเหลือและคำติชม" }, tr: { setting: 'Ayarlar', @@ -1282,26 +1442,26 @@ strings = getStrings({ timezone: 'Cihazın saat dilimi', addToDesktop: 'Ana ekrana ekleyin', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', - yearUnit: '', - monthUnit: '', - dayUnit: '', - hourUnit: '', - minuteUnit: '', - secondUnit: '', + cancel: "İptal ", + ok: "Onayla", + am: "AM", + pm: "PM", + months: "aylar", + days: "günler", + hours: "saatler", + minutes: "dakikalar", + seconds: "saniyeler", + month: "ay", + day: "gün", + hour: "saat", + minute: "dakika", + second: "saniye", + yearUnit: "", + monthUnit: "", + dayUnit: "", + hourUnit: "sa. ", + minuteUnit: "dk.", + secondUnit: "sn.", dateSubTitle: '{0}-{1}-{2}', // 2019-06-03 time24SubTitle: '{0}:{1}', // 11:43 time12SubTitle: '{1}:{2} {0}', // 11:43 am @@ -1316,24 +1476,34 @@ strings = getStrings({ firmwareUpgradeNew_sub: 'kullanılabilir. Şimdi güncelleştir', handling: 'İşleniyor…', error: 'Kon niet werken, probeer het later opnieuw.', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', - helpAndFeedback: 'Yardım ve Geri Bildirim' + createLightGroup: "Işık grubu oluştur (yeni)", + manageLightGroup: "Cihazları yönet (yeni)", + deleteLightGroup: "Işık grubunu kaldır", + linkDevice: "Cihazları bağla", + noSuppurtedLinkageDevice: "Şu anda bağlantı için cihaz yok", + noSuppurtedLinkageTip: "1. Lütfen bağlanacak cihazın uygulamaya eklendiğinden ve tercih edilen odaya atandığından emin olun. \n 2.Lütfen bağlanmak için Bluetooth cihazını bu cihaza belirli bir uzaklıkta tutun, aksi takdirde bağlantı kurulamaz. ", + supportedLinkageDevices: "Aşağıdaki cihazlara bağlanabilir", + linkageDistanceTip: "Lütfen bağlanmak için Bluetooth cihazını bu cihaza belirli bir uzaklıkta tutun, aksi takdirde bağlantı kurulamaz.", + linkageRemoveTip: "Bağlı Bluetooth cihazının değiştirilmesi gerekiyorsa, lütfen önce bağlantıyı kaldırın.", + link: "Bağlantı", + removeLink: "Bağlantıyı kaldır", + linkFail: "Bağlanılamadı", + removeLinkFail: "Bağlantı kaldırılamadı", + linkConfirm: "Bu cihaz bağlanılsın mı?", + removeLinkConfirm: "Bağlantıyı şimdi kaldır", + linking: "Bağlanıyor...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: "Eklenti sürümü", + helpAndFeedback: "Yardım ve Geri Bildirim" }, nl: { setting: 'Instellingen', @@ -1359,20 +1529,20 @@ strings = getStrings({ timezone: 'Tijdzone van het apparaat', addToDesktop: 'Toevoegen aan het startscherm', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', + cancel: "Annuleren", + ok: "Bevestigen", + am: "AM", + pm: "PM", + months: "Maanden", + days: "Dagen", + hours: "Uren", + minutes: "Minuten", + seconds: "Seconden", + month: "Maand ", + day: "Dag ", + hour: "Uur", + minute: "Minuut", + second: "Seconde ", yearUnit: '', monthUnit: '', dayUnit: '', @@ -1393,23 +1563,33 @@ strings = getStrings({ firmwareUpgradeNew_sub: 'beschikbaar. Nu updaten', handling: 'Verwerken...', error: 'Kon niet werken, probeer het later opnieuw', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', + createLightGroup: "Lichtgroep aanmaken (nieuw)", + manageLightGroup: "Apparaten beheren (nieuw)", + deleteLightGroup: "Lichtgroep opheffen", + linkDevice: "Apparaten koppelen", + noSuppurtedLinkageDevice: "Geen apparaten beschikbaar om te verbinden", + noSuppurtedLinkageTip: "Bevestig het apparaat is verbonden met de app. En is verwezen naar de aanbevolen kamer.\n2. Houd het Bluetooth apparaat binnen bereik, anders zal de verbinding verbroken worden.", + supportedLinkageDevices: "Kan met de volgende apparaten worden gekoppeld", + linkageDistanceTip: "Hou het apparaat met Bluetooth waarmee moet worden gekoppeld dicht bij het apparaat, anders mislukt het.", + linkageRemoveTip: "Als het Bluetooth apparaat moet gewijzigd worden, verwijder dan de verbinding eerst.", + link: "Koppelen", + removeLink: "Koppeling verwijderen", + linkFail: "Koppelen mislukt", + removeLinkFail: "Kan link niet verwijderen", + linkConfirm: "Met dit apparaat koppelen?", + removeLinkConfirm: "Koppeling verwijderen", + linking: "Koppelen...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: 'Plugin versie', helpAndFeedback: 'Help & Feedback' }, pt: { @@ -1418,7 +1598,7 @@ strings = getStrings({ commonSetting: 'Configurações gerais', name: 'Nome do dispositivo', location: 'Gerenciamento de localização', - memberSet: 'Configurações do tecla', + memberSet: 'Configurações do teclado', share: 'Compartilhar dispositivo', btGateway: 'Gateway BLE', voiceAuth: 'Autorização de voz', @@ -1436,26 +1616,26 @@ strings = getStrings({ timezone: 'Fuso horário do dispositivo', addToDesktop: 'Adicionar à tela de início', // MHDatePicker - cancel: 'Cancel', - ok: 'Confirm', - am: 'AM', - pm: 'PM', - months: 'months', - days: 'days', - hours: 'hours', - minutes: 'minutes', - seconds: 'seconds', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', - yearUnit: '', - monthUnit: '', - dayUnit: '', - hourUnit: '', - minuteUnit: '', - secondUnit: '', + cancel: "Cancelar", + ok: "Confirmar", + am: "Manhã", + pm: "Tarde", + months: "meses", + days: "dias", + hours: "horas", + minutes: "minutos", + seconds: "segundos", + month: "mês", + day: "dia", + hour: "hora", + minute: "minuto", + second: "segundo", + yearUnit: "a", + monthUnit: "m", + dayUnit: "d", + hourUnit: "h", + minuteUnit: "min", + secondUnit: "s", dateSubTitle: '{0}-{1}-{2}', // 2019-06-03 time24SubTitle: '{0}:{1}', // 11:43 time12SubTitle: '{1}:{2} {0}', // 11:43 am @@ -1470,23 +1650,33 @@ strings = getStrings({ firmwareUpgradeNew_sub: 'disponível. Atualizar agora', handling: 'Processando...', error: 'Não foi possível operar, tente novamente mais tarde', - createLightGroup: 'Create light group(new)', - manageLightGroup: 'Manage devices(new)', - deleteLightGroup: 'Disband light group', - linkDevice: 'Link devices', - noSuppurtedLinkageDevice: 'No devices available for linking now', - noSuppurtedLinkageTip: '1.Please make sure the device to link with has been added to the app, and is assigned to the preferred room.\n2.Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - supportedLinkageDevices: 'Can be linked with the following devices', - linkageDistanceTip: 'Please keep the Bluetooth device to link with within a certain distance of this device, otherwise it will be unable to link.', - linkageRemoveTip: 'If the linked Bluetooth device needs to be changed, please remove link first.', - link: 'Link', - removeLink: 'Remove link', - linkFail: 'Couldn\'t link', - removeLinkFail: 'Couldn\'t remove the link', - linkConfirm: 'Link with this device now?', - removeLinkConfirm: 'Remove link now?', - linking: 'Linking…', - pluginVersion: 'Plugin version number', + createLightGroup: "Criar grupo de lâmpadas (novo)", + manageLightGroup: "Gerenciar dispositivos (novo)", + deleteLightGroup: "Desfazer grupo de lâmpadas", + linkDevice: "Conectar dispositivos", + noSuppurtedLinkageDevice: "Não há dispositivos disponíveis para conexão agora", + noSuppurtedLinkageTip: "1.Por favor, verifique se o dispositivo a ser conectado foi adicionado ao aplicativo e se está atribuído à sala preferida.\n2.Mantenha o dispositivo Bluetooth a ser conectado a uma certa distância deste dispositivo. Caso contrário, não será possível se conectar.", + supportedLinkageDevices: "Podem ser conectados aos seguintes dispositivos", + linkageDistanceTip: "Mantenha o dispositivo Bluetooth a ser conectado a uma determinada distância deste dispositivo. Caso contrário, não será possível se conectar.", + linkageRemoveTip: "Se o dispositivo Bluetooth conectado precisar ser alterado, remova a conexão primeiro.", + link: "Conectar", + removeLink: "Remover conexão", + linkFail: "Não foi possível conectar", + removeLinkFail: "Não foi possível remover a conexão", + linkConfirm: "Conectar a este dispositivo agora?", + removeLinkConfirm: "Remover conexão agora", + linking: "Conectando...", + linkDeviceBracelet: 'Link band', + scanDeviceBracelet: 'Scanning for band…', + scanDeviceBraceletTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + scanDeviceBraceletEmptyTitle: 'No Mi band to link with nearby', + scanDeviceBraceletEmptyTip1: '1.Please ensure the Bluetooth Broadcasting of the Mi band is enabled.', + scanDeviceBraceletEmptyTip2: '2.Please ensure the Mi band is close to this device.', + linkedDeviceBraceletHeaderTip: 'Linked with the following bands', + availableLinkDeviceBraceletHeaderTip: 'Can be linked with the following bands', + linkedDeviceBraceletFooterTip: 'If the linked band needs to be changed, please remove link first.', + availableLinkDeviceBraceletFooterTip: 'Please keep the Mi band within a certain distance of this device, and make sure the band\'s Bluetooth is enabled.', + pluginVersion: 'Versão do plugin', helpAndFeedback: 'Ajuda e feedback' } }); diff --git a/miot-sdk/resources/Styles.js b/miot-sdk/resources/Styles.js index 476789e88..2d2806479 100644 --- a/miot-sdk/resources/Styles.js +++ b/miot-sdk/resources/Styles.js @@ -46,7 +46,7 @@ export default { }, modal: { // 弹窗 position: 'absolute', - bottom: 20, // 距离屏幕底部的边距 + bottom: 0, // 距离屏幕底部的边距 marginHorizontal: MODAL_MARGIN, // 两端边距 width: MODAL_WIDTH, // 宽度 borderRadius: 20, // 圆角 diff --git a/miot-sdk/resources/images/airer-center@2x.png b/miot-sdk/resources/images/airer-center@2x.png index 23b3f07ff..c1115edff 100644 Binary files a/miot-sdk/resources/images/airer-center@2x.png and b/miot-sdk/resources/images/airer-center@2x.png differ diff --git a/miot-sdk/resources/images/airer-center@3x.png b/miot-sdk/resources/images/airer-center@3x.png index 23f2ffda7..ad56969a5 100644 Binary files a/miot-sdk/resources/images/airer-center@3x.png and b/miot-sdk/resources/images/airer-center@3x.png differ diff --git a/miot-sdk/resources/images/blank_page_icon@3x.png b/miot-sdk/resources/images/blank_page_icon@3x.png index 3b95c3b3f..36700f51a 100644 Binary files a/miot-sdk/resources/images/blank_page_icon@3x.png and b/miot-sdk/resources/images/blank_page_icon@3x.png differ diff --git a/miot-sdk/resources/images/bracelet_gray@3x.png b/miot-sdk/resources/images/bracelet_gray@3x.png new file mode 100644 index 000000000..40502cfd0 Binary files /dev/null and b/miot-sdk/resources/images/bracelet_gray@3x.png differ diff --git a/miot-sdk/resources/images/bracelet_red@3x.png b/miot-sdk/resources/images/bracelet_red@3x.png new file mode 100644 index 000000000..f7729b340 Binary files /dev/null and b/miot-sdk/resources/images/bracelet_red@3x.png differ diff --git a/miot-sdk/resources/images/circle_red@3x.png b/miot-sdk/resources/images/circle_red@3x.png new file mode 100644 index 000000000..0649d7572 Binary files /dev/null and b/miot-sdk/resources/images/circle_red@3x.png differ diff --git a/miot-sdk/resources/images/light-control-guide-updown.png b/miot-sdk/resources/images/light-control-guide-updown.png new file mode 100644 index 000000000..10eeba6dc Binary files /dev/null and b/miot-sdk/resources/images/light-control-guide-updown.png differ diff --git a/miot-sdk/resources/images/light-control-guide.png b/miot-sdk/resources/images/light-control-guide.png new file mode 100644 index 000000000..1f6ece7df Binary files /dev/null and b/miot-sdk/resources/images/light-control-guide.png differ diff --git a/miot-sdk/resources/images/loading_circle@3x.png b/miot-sdk/resources/images/loading_circle@3x.png new file mode 100644 index 000000000..6d8b91b96 Binary files /dev/null and b/miot-sdk/resources/images/loading_circle@3x.png differ diff --git a/miot-sdk/resources/images/mihome.png b/miot-sdk/resources/images/mihome.png index 84bdbf938..53ca98d32 100644 Binary files a/miot-sdk/resources/images/mihome.png and b/miot-sdk/resources/images/mihome.png differ diff --git a/miot-sdk/resources/index.js b/miot-sdk/resources/index.js index 99194f77d..3762ab2bf 100644 --- a/miot-sdk/resources/index.js +++ b/miot-sdk/resources/index.js @@ -162,7 +162,7 @@ export const Language = { tr: "tr" }; Object.freeze(Language); -const i18n={system:createI18n({zh,en,zh_tw,zh_hk,zh_bo,es,ko,ru,it,fr,de,id,pl,vi,ja,th}, Language.zh), custom:{}, lang:false} + const i18n={system:createI18n({zh,en,zh_tw,zh_hk,zh_bo,es,ko,ru,it,fr,de,id,pl,vi,ja,th}, Language.zh), custom:{}, lang:false} export default { /** * 米家标志 diff --git a/miot-sdk/service/apiRepo.js b/miot-sdk/service/apiRepo.js index 39c7cd5cc..f6ad87d4f 100644 --- a/miot-sdk/service/apiRepo.js +++ b/miot-sdk/service/apiRepo.js @@ -111,6 +111,7 @@ const API_REPO = { '/v2/aftersale/create': {}, '/v2/aftersale/list': {}, '/v2/aftersale/detail': {}, + '/v2/homeroom/gethome': {}, // 摄像机API '/wx/app/v1/get/pushSwitch': {}, '/wx/app/v1/put/pushSwitch': {}, @@ -136,18 +137,32 @@ const API_REPO = { '/common/app/m3u8': {}, '/common/app/v1/img': {}, '/miot/camera/app/v1/put/faceSwitch': {}, - // '/miot/camera/app/v1/put/babyCrySwitch': {}, - // '/v2/device/multi_check_device_version':{}, '/miot/camera/app/v1/put/babyCrySwitch': {}, '/miot/camera/app/v2/get/alarmSwitch': {}, '/miot/camera/app/v2/put/motionDetectionSwitch': {}, '/v2/public/get_weekday_info': {}, '/v2/device/blt_get_beaconkey': {}, + '/v2/device/set_alarm_info': {}, + '/v2/device/get_alarm_info': {}, + '/v2/device/del_alarm_info': {}, + '/miot/camera/app/v1/get/allDetectionSwitch': {}, + '/miot/camera/app/v1/put/genericEventPushSwitch': {}, + '/user/del_user_device_data_batch': {}, + '/miot/camera/app/v1/tags': {}, + '/miot/camera/app/v1/feedback': {}, + '/miot/camera/app/v1/alarm/playlist/limit': {}, + '/miot/camera/app/v1/alarm/delete': {}, + '/miot/camera/app/v1/alarm/videoStoreId': {}, + '/user/send_user_opt_notify': {}, + '/home/genfilepresignedurl': {}, + '/device/devicepass': {}, // 保险箱门锁类 报警电话和胁迫指纹的api权限 '/v2/device/set_break_lock_alarm_info': {}, '/v2/device/get_break_lock_alarm_info': {}, '/v2/device/set_hijack_alarm_info': {}, '/v2/device/get_hijack_alarm_info': {}, - '/v2/device/del_alarm_info': {} + '/v2/home/get_interim_file_url_pro': {}, + '/home/getfileurl_v3': {}, + '/v2/recipes/query': {} }; export default API_REPO; \ No newline at end of file diff --git a/miot-sdk/service/miotcamera.js b/miot-sdk/service/miotcamera.js index 2dd4ec742..ab8b798a4 100644 --- a/miot-sdk/service/miotcamera.js +++ b/miot-sdk/service/miotcamera.js @@ -124,13 +124,42 @@ class IMiotCamera { /** * 发送miss命令到设备 * @param {MISSCommand} command miss 命令 - * @param {object} params 参数 + * @param {object} paramsJson 参数 要求是符合jsonObj形式的数据 * @returns {Promise} a promise with return code */ @report - sendP2PCommandToDevice(command, params, did = Device.deviceID) { + sendP2PCommandToDevice(command, paramsJson, did = Device.deviceID) { return Promise.resolve(null); } + /** + * 发送miss命令到设备 主要处理部分model发送命令的参数不是json格式,也不是 byte数组编码得到的str,而是普通的字串 + * @param {MISSCommand} command miss 命令 如果是tutk,米家标准的命令号要转为用Miss的命令号,如果是自定义命令 直接发送 + * @param {string} paramStr 参数: string参数,非json 非 base64 + * @returns {Promise} a promise with return code + */ + @report + sendP2PCommandToDeviceWithStringParam(command, paramStr, did = Device.deviceID) { + if (Platform.OS === 'android') { + return Promise.resolve(null); + } else { + return Promise.reject("ios platform currently unsupport"); + } + } + /** + * 发送miss命令到设备 主要处理部分model发送命令的参数不是json格式,而是byte数组形式的命令。 byte数组请用base64编码得到string再调用这个接口。 + * @warn miss固件 android端不支持直接发送byte[],此时调用该接口会直接返回错误。 + * @param {MISSCommand} command miss 命令 如果是tutk,米家标准的命令号要转为用Miss的命令号,如果是自定义命令 直接发送 + * @param {string} base64Param 参数: byte[]数组base64 encode后的字串 + * @returns {Promise} a promise with return code + */ + @report + sendP2PCommandToDeviceWithBase64Param(command, base64Param, did = Device.deviceID) { + if (Platform.OS === 'android') { + return Promise.resolve(null); + } else { + return Promise.reject("ios platform currently unsupport"); + } + } /** * 注册接收命令回调 * @param {string} callbackName 收到p2p command回调 { command: MISSCommand, data: Object/Base64String } @@ -227,7 +256,7 @@ class IMiotCamera { /* * 拉取当前正在播放时间戳 js端控制拉取节奏 */ - // @report + @report getCurrentFrameInfo(did = Device.deviceID) { return Promise.resolve(null); } @@ -288,6 +317,18 @@ class IMiotCamera { getFaceImgWithDid(faceId, did = Device.deviceID) { return Promise.resolve(null); } + /** + * 获取通用图片接口(如云存储视频缩略图) + * @since 10041 + * @param {string} imgId 图片唯一标识ID 如imgStoreId + * @param {json string} hostParams 接口信息: 如获取云存储缩略图{"prefix":"business.smartcamera.", "method":"GET", "path":"/miot/camera/app/v1/img"} 注:key固定的 + * @param {json string} pathParams 请求参数: 如获取云存储缩略图{"did":"xxxx", "fileId":"xxxx", "stoId":"xxxxxxxx"} + * @returns {Promise} 文件路径 + */ + @report + getCommonImgWithParams(imgId, hostParams, pathParams, did = Device.deviceID) { + return Promise.resolve(null); + } /** * 通知native端现在是不是回看时间轴模式 * @since 10038 @@ -322,6 +363,7 @@ class IMiotCamera { * @param boolean isMissFirmware 是否是miss固件,true 是; false tutk固件。 * @since 10038 */ + @report setCurrentDeviceIsMissFirmware(isMissFirmware, did = Device.deviceID) { return null } @@ -365,12 +407,81 @@ class IMiotCamera { */ @report tryBindAlarmNotifyWithWechatMijia(did = Device.deviceID) { + return Promise.resolve(null); + } + /** + * 查询设备的pipUid和password,提供给部分model进行固件交互 + * 仅仅允许华来部分model使用,其他model访问会得到一个错误。 + * resolve返回的值即为服务器返回的json字串。 + * @param did 设备did + * @since 10041 + */ + @report + queryDevicePassword(did = Device.deviceID) { if (Platform.OS == "android") { return Promise.resolve(null); } else { return Promise.reject(" ios platform did not implement this function yet."); } } + /** + * 使用chacha20_xor解密大文件 + * @param {string} fileData byte array encoded into string 待解密的文件体 + * @param {*} nonce byte array encoded into string chacha20_xor解密需要的nonce + * @param {*} shareKey byte array encoded into string chacha20_xor解密需要的sharekey + * @since 10041 + */ + @report + decryptBigFile(fileData, nonce, did = Device.deviceID) { + if (Platform.OS == "android") { + return Promise.resolve(null); + } else { + return Promise.reject("ios platform not support yet; to be done"); + } + } + /** + * 使用chacha20_xor解密小文件 + * @param {string} fileData byte array base64 encoded into string 待解密的文件体 + * @param {string} nonce byte array base64 encoded into string chacha20_xor解密需要的nonce + * @param {string} shareKey byte array base64 encoded into string chacha20_xor解密需要的sharekey + * @since 10041 + */ + @report + decryptSmallFile(fileData, nonce, did = Device.deviceID) { + if (Platform.OS == "android") { + return Promise.resolve(null); + } else { + return Promise.reject("ios platform not support yet; to be done"); + } + } + /** + * 标记当前是否使用华来的音视频解密方案,只对tutk生效,需要在连接成功之后,收到视频流之前调用 + * @param {bool} isEncrypted + * @param {string} did + * @since 10042 + */ + @report + markCurrentDeviceUseHualaiEncrypted(isEncrypted, did = Device.deviceID) { + if (Platform.OS == "android") { + return null + } else { + return Promise.reject("ios platform not support yet; to be done"); + } + } + /** + * 在连接成功后,发送rdt命令前调用,标记当前设备是否使用固定rdtChannel方案。 + * @param {bool} useFixedRdtChannel + * @param {string} did + * @since 10042 + */ + @report + setCurrentDeviceUseFixedRdtChannel(useFixedRdtChannel, did = Device.deviceID) { + if (Platform.OS == "android") { + return null + } else { + return Promise.reject("ios platform not support yet; to be done"); + } + } } const MiotCameraInstance = new IMiotCamera(); export default MiotCameraInstance; \ No newline at end of file diff --git a/miot-sdk/service/room.js b/miot-sdk/service/room.js index 5bfe46928..b5e7e9070 100644 --- a/miot-sdk/service/room.js +++ b/miot-sdk/service/room.js @@ -48,6 +48,12 @@ export class IMHRoom { get shareFlag() { return 0 } + /** + * 房间支持的设备did列表,目前只有小爱音箱有权限 + */ + get didList() { + return [] + } /** * 更新房间名称 * @since 10020 @@ -65,7 +71,7 @@ export class IMHRoom { */ class IMiotRoom { /** - * 获取所有房间列表 + * 获取当前家庭所有房间列表 * @since 10020 * @param {boolean} [forceReload=false] 是否从强制从网络获取; false:表示从缓存获取 true:从网络获取; 默认为false * @returns {Rromise} Promise, 带有房间列表的结果, IMHRoom的数据结构参考IMHRoom类 diff --git a/miot-sdk/service/smarthome.js b/miot-sdk/service/smarthome.js index 6bc672fe3..9e750a0fc 100644 --- a/miot-sdk/service/smarthome.js +++ b/miot-sdk/service/smarthome.js @@ -150,7 +150,7 @@ class ISmartHome { return Promise.resolve(null); } /** - * 获取服务器中 最新的版本信息, + * 获取服务器中可用的固件更新版本信息 * 内部调用米家代理接口/v2/device/latest_ver * @since 10004 * @param {string} did 设备did @@ -184,7 +184,6 @@ class ISmartHome { * Package.isDebug&&Service.smarthome.reportLog(...) * */ - @report reportLog(model, log) { } /** diff --git a/miot-sdk/ui/BTInterconnection.js b/miot-sdk/ui/BTInterconnection.js index 579d89ce8..fefebc338 100644 --- a/miot-sdk/ui/BTInterconnection.js +++ b/miot-sdk/ui/BTInterconnection.js @@ -243,11 +243,11 @@ export default class BTInterconnection extends Component { accessible }} /> ) : ( - + }} /> )} - - - - - {this.props.message} - - {this.props.desc - ? - {this.props.desc || ''} - - : null - } - - ); - } - /** - * 底部的按钮或者下划线 - */ - renderBottom() { - if (this.props.type === TYPE.UNDERLINE) { - const { text, callback, textStyle } = this.props.underline; - return ( - - this.onPress(callback)} - numberOfLines={1} - style={[ - styles.desc, - { - textDecorationLine: 'underline', - color: Styles.common.MHGreen, - textAlign: 'center' - }, - textStyle - ]} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.link, - accessibilityLabel: text, - accessibilityHint: this.props.accessibilityHint - })} - > - {text} - - - ); - } else { - let fontFamily = {}; - if (Platform.OS === 'android') fontFamily = { fontFamily: 'Kmedium' }; - const { text, callback, buttonStyle, textStyle } = this.props.button; - return ( - - {this.props.extraInfo - ? - {this.props.extraInfo} - - : null - } - this.onPress(callback)} - activeOpacity={0.8} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.button, - accessibilityLabel: text, - accessibilityHint: this.props.accessibilityHint - })} - > - - {text} - - - - ); - } - } - onPress(callback) { - if (typeof callback === 'function') { - callback(); - } else { - if (__DEV__ && console.warn) { - console.warn('请传入有效的点击回调函数'); - } - } - } - render() { - return ( - - {this.renderCenter()} - - {this.renderBottom()} - - ); - } -} -const styles = StyleSheet.create({ - container: { - backgroundColor: '#f7f7f7', - flex: 1, - width - }, - center: { - marginTop: imageMarginTop, - width, - alignItems: 'center' - }, - imageContainer: { - width: imageContainerSize, - height: imageContainerSize, - alignItems: 'center' - }, - image: { - width: imageWidth, - height: imageHeight, - marginTop: 5 - }, - message: { - width, - fontSize: 15, - color: '#999', - textAlign: 'center' - }, - desc: { - width, - paddingHorizontal: padding, - fontSize: 13, - color: '#999', - lineHeight: 18 - }, - bottom: { - width, - marginBottom: safeBottom - }, - buttonContainer: { - width: width - Styles.common.padding * 2, - height: 42, - borderRadius: 5, - marginTop: 21, - backgroundColor: Styles.common.MHGreen, - marginHorizontal: Styles.common.padding - }, - buttonText: { - flex: 1, - fontSize: 13, - fontWeight: 'bold', - textAlign: 'center', - color: '#ffffff', - lineHeight: 18 - } -}); \ No newline at end of file +import { BlankPage } from 'mhui-rn'; +export default BlankPage; \ No newline at end of file diff --git a/miot-sdk/ui/BraceletInterconnection.js b/miot-sdk/ui/BraceletInterconnection.js new file mode 100644 index 000000000..be27f107e --- /dev/null +++ b/miot-sdk/ui/BraceletInterconnection.js @@ -0,0 +1,380 @@ +import React from 'react'; +import { StyleSheet, View, Text, TouchableOpacity, Image, ImageBackground, ScrollView, Animated, Easing } from 'react-native'; +import PropTypes from 'prop-types'; +import { Device } from 'miot'; +import NavigationBar from './NavigationBar'; +import MessageDialog from './Dialog/MessageDialog'; +import LoadingDialog from './Dialog/LoadingDialog'; +import { FontDefault } from '../utils/fonts'; +import { strings as I18n } from '../resources/'; +import { Styles as styles } from 'miot/resources'; +const STATUS = { + SEARCHING: 0, + SEARCH_EMPTY: 1, + LIST: 2 +}; +Object.freeze(STATUS); +export default class BraceletInterconnection extends React.Component { + static navigationOptions = ({ navigation }) => { + return { + header: ( + navigation.goBack() + }]} + title={navigation.getParam('title' || I18n.linkDeviceBracelet)} + /> + ) + }; + }; + constructor(props) { + super(props); + this.state = { + status: null, + loadingVisiable: false, + loadingMessage: '', + dialogVisiable: false, + dialogMessage: '', + dialogConfirm: null, + toastVisiable: false, + toastMessage: null, + datasources: [], + linked: false + }; + this.rotateValue = new Animated.Value(0); + this.rotateData = this.rotateValue.interpolate({ + inputRange: [0, 10], + outputRange: ['0deg', '3600deg'] + }); + } + componentDidMount() { + this._searchBracelet(); + } + render() { + const { status } = this.state; + return ( + + { + status === STATUS.SEARCHING ? + : + ( + status === STATUS.SEARCH_EMPTY ? + { this._searchBracelet(); }} + /> : + ( + status === STATUS.LIST ? + { + linked ? this._alertRemoveConnection(mac) : this._alertAddConnection(mac); + }} + headerMessage={this.state.linked ? I18n.linkedDeviceBraceletHeaderTip : I18n.availableLinkDeviceBraceletHeaderTip} + footerMessage={this.state.linked ? I18n.linkedDeviceBraceletFooterTip : I18n.availableLinkDeviceBraceletFooterTip} + /> : null + ) + ) + } + { this.setState({ dialogVisiable: false }); }} + buttons={[ + { text: I18n.cancel, callback: () => { this.setState({ dialogVisiable: false }); } }, + { text: I18n.ok, callback: this.state.dialogConfirm } + ]} + /> + + + + ); + } + _searchBracelet(time = 10 * 1000) { + const mac = this.props.navigation.getParam('mac', ''); + if (mac.length > 0) { + this.setState({ + status: STATUS.LIST, + datasources: [{ name: mac, linked: true }], + linked: true + }); + } else { + this.setState({ + status: STATUS.SEARCHING + }); + Promise.all([ + this._scanBracelet(time), + this._getBrecelet(time) + ]).then((res) => { + let items = []; + if (res.length == 2 && res[0].code == 0 && res[1].code == 0 && res[1].result.length > 0) { + items = res[1].result.map((item) => { + item.linked = item.mac == mac; + item.name = item.mac; + return item; + }); + } + this.setState({ + status: items.length > 0 ? STATUS.LIST : STATUS.SEARCH_EMPTY, + datasources: items, + linked: false + }); + }).catch((err) => { + this.setState({ + status: STATUS.SEARCH_EMPTY, + datasources: [] + }); + }); + } + } + _scanBracelet(time) { + this.__rotate(time); + return new Promise((resolve, reject) => { + Device.getDeviceWifi().callMethod('miIO.bleStartSearchBand', [ + time + ]).then((res) => { + resolve(res); + }).catch((err) => { + console.log('扫描失败:', JSON.stringify(err)); + reject(err); + }); + }); + } + _getBrecelet(time) { + return new Promise((resolve, reject) => { + setTimeout(() => { + Device.getDeviceWifi().callMethod('miIO.bleGetNearbyBandList', []).then((res) => { + resolve(res); + }).catch((err) => { + console.log('获取失败:', JSON.stringify(err)); + reject(err); + }); + }, time); + }); + } + __rotate(duration) { + this.rotateValue.setValue(0); + Animated.timing(this.rotateValue, { + toValue: duration / 1000, + duration: duration, + easing: Easing.linear + }).start(); + } + _alertRemoveConnection(mac) { + this.setState({ + dialogVisiable: true, + dialogMessage: I18n.removeLinkConfirm, + dialogConfirm: () => { this.__removeConnection(mac); } + }); + } + __removeConnection(mac) { + this.setState({ + dialogVisiable: false + // loadingVisiable: true + }); + let onDisconnect = this.props.navigation.getParam('onDisconnect', null); + onDisconnect ? onDisconnect(mac, (res) => { + // this.setState({ loadingVisiable: false }); + if (res) { + this.props.navigation.setParams({ mac: '' }); + this._searchBracelet(5 * 1000); + } else { + this._showToast(I18n.removeLinkFail); + } + }) : console.log( + ` + 请配置 navigation.props.onDisconnect, 例如 + onDisconnect:{mac, callback}=>{ + // do something + callback(true) + } + 当前为:${ onDisconnect }` + ); + } + _alertAddConnection(mac) { + this.setState({ + dialogVisiable: true, + dialogMessage: I18n.linkConfirm, + dialogConfirm: () => { this.__addConnection(mac); } + }); + } + __addConnection(mac) { + this.setState({ + dialogVisiable: false, + loadingVisiable: true + }); + let onConnect = this.props.navigation.getParam('onConnect', null); + onConnect ? onConnect(mac, (res) => { + this.setState({ loadingVisiable: false }); + if (res) { + this.props.navigation.setParams({ mac: mac }); + this._searchBracelet(5 * 1000); + } else { + this._showToast(I18n.linkFail); + } + }) : console.log( + ` + 请配置 navigation.props.onConnect, 例如 + onConnect:{mac, callback}=>{ + // do something + callback(true) + } + 当前为:${ onConnect }` + ); + } + _showToast(message, duration = 1000) { + console.log(message, duration); + this.setState(() => { + const toastMessage = message; + const toastVisiable = true; + return { + toastMessage, + toastVisiable + }; + }); + setTimeout(() => { + this.setState(() => { + const toastMessage = null; + const toastVisiable = false; + return { + toastMessage, + toastVisiable + }; + }); + }, duration); + } +} +const Styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: styles.common.backgroundColor + }, + title: { + fontFamily: FontDefault, + fontWeight: 'bold', + fontSize: 16, + color: '#000' + }, + detail: { + fontFamily: FontDefault, + fontSize: 12, + color: '#999' + } +}); +function Search({ icon, iconBack, title, messages, rotate, onPress }) { + return ( + + + + + + + {title} + + + { + messages.map((message, index) => { + return ( + + {message} + + ); + }) + } + + ); +} +Search.propTypes = { + icon: PropTypes.node, + iconBack: PropTypes.node, + title: PropTypes.string, + message: PropTypes.arrayOf(PropTypes.string), + rotate: PropTypes.any, + onPress: PropTypes.func +}; +Search.defaultProps = { + icon: null, + iconBack: null, + title: '', + message: [], + rotate: '0deg', + onPress: null +}; +function List({ items, handle, headerMessage, footerMessage }) { + return ( + + { + headerMessage ? {headerMessage} : null + } + { + items.map((item, index) => { + return ( + + {item.name} + { + handle && handle(item.mac, item.linked); + }}> + {item.linked ? I18n.removeLink : I18n.link} + + + ); + }) + } + { + headerMessage ? {footerMessage} : null + } + + ); +} +List.propTypes = { + items: PropTypes.array, + handle: PropTypes.func, + headerMessage: PropTypes.string, + footerMessage: PropTypes.string +}; +List.defaultProps = { + items: [], + handle: null, + headerMessage: null, + footerMessage: null +}; +function Toast({ visible, message }) { + if (!visible || !message) { + return null; + } + return ( + + {message} + + ); +} +Toast.propTypes = { + visible: PropTypes.bool, + message: PropTypes.string +}; +Toast.defaultProps = { + visible: false, + message: '' +}; \ No newline at end of file diff --git a/miot-sdk/ui/CameraRenderView.js b/miot-sdk/ui/CameraRenderView.js index 09b65adf1..0f73ca491 100644 --- a/miot-sdk/ui/CameraRenderView.js +++ b/miot-sdk/ui/CameraRenderView.js @@ -36,6 +36,8 @@ * @property {number} osdy 畸变矫正-osdy default 0.0 * @property {bool} fullscreenState 是否是全屏状态 since 10033 * @property {bool} forceSoftDecode 强制软解 since 10033 + * @property {object} recordingVideoParam 限制录制视频时的分辨率,开始录制视频前,要调整分辨率到指定分辨率。 since 10041 {width:111, height:111} + * @property {boolean} isFull 画面是否填充满屏幕 */ /** * 音视频codec @@ -132,6 +134,8 @@ export default class CameraRenderView extends React.Component { osdy: PropTypes.number, fullscreenState: PropTypes.bool, forceSoftDecode: PropTypes.bool, + recordingVideoParam: PropTypes.object, + isFull: PropTypes.bool, /** * 用户单击回调 * @member {func} diff --git a/miot-sdk/ui/Card/Card.js b/miot-sdk/ui/Card/Card.js index addab969d..a645126e4 100644 --- a/miot-sdk/ui/Card/Card.js +++ b/miot-sdk/ui/Card/Card.js @@ -1,168 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, Platform, StyleSheet } from 'react-native'; -import { BoxShadow } from 'react-native-shadow'; -import CardBase from './CardBase'; -import { AccessibilityPropTypes } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const { width } = Dimensions.get('window'); -const DURATION = 250; -const DEFAULT_STYLE = { - HEIGHT: 66, - WIDTH: width - 15 * 2, - RADIUS: 8, - MARGIN_TOP: { marginTop: 15 } -}; -/** - * @export - * @author Geeook - * @since 10010 - * @module Card - * @description 带阴影的卡片 - * @property {component} innerView - 卡片内部 View, 不传该参数将显示默认的 icon + text - * @property {int} icon - 左侧图标的资源 id, 参照`Image`的`resource`属性, 不传将不显示图标 - * @property {string} text - 右侧文案 - * @property {bool} visible - 是否显示卡片, 默认值 true - * @property {bool} showDismiss - 是否显示右上角的关闭按钮, 默认值 false - * @property {bool} disabled - 是否禁用卡片点击, 默认值 false - * @property {function} dismiss - 点右上角关闭按钮的回调函数 - * @property {bool} showShadow - 是否显示卡片阴影, 默认值 true - * @property {function} onPress - 点击事件, 不传该参数将显示禁用态 - * @property {style} cardStyle - 卡片容器的自定义样式, 默认样式 `{ width: screenWidth - 30, height:66 }` - * @property {style} iconStyle - 左侧图标的自定义样式 - * @property {style} textStyle - 右侧文案的自定义样式 - * @property {string} underlayColor - 卡片点击态颜色,默认 rgba(0,0,0,0.05) - * @property {string} shadowColor - 阴影颜色,默认 '#000',❗️android 平台只支持16进制的 shadowColor - * @property {number} shadowOpacity - 阴影透明度,默认 0.03 - * @property {bool} unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @property {bool} allowFontScaling - 10040新增 设置卡片字体是否随系统设置的字体大小的设置改变而改变 默认为true。 - * @property {number} numberOfLines - 10040新增 设置卡片字体显示的最大行数 默认为1 - */ -export default class Card extends React.Component { - static propTypes = { - innerView: PropTypes.object, - icon: PropTypes.number, - text: PropTypes.string, - visible: PropTypes.bool, - showDismiss: PropTypes.bool, - disabled: PropTypes.bool, - dismiss: PropTypes.func, - showShadow: PropTypes.bool, - onPress: PropTypes.func, - cardStyle: PropTypes.object, - iconStyle: PropTypes.object, - textStyle: PropTypes.object, - underlayColor: PropTypes.string, - shadowColor: PropTypes.string, - shadowOpacity: PropTypes.number, - unlimitedHeightEnable: PropTypes.bool, - allowFontScaling: PropTypes.bool, - numberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint, - dismissAccessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - dismissAccessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - visible: true, - showDismiss: false, - disabled: false, - showShadow: true, - cardStyle: {}, - shadowColor: '#000', - shadowOpacity: 0.03, - unlimitedHeightEnable: false, - allowFontScaling: true - } - constructor(props, context) { - super(props, context); - referenceReport('Card'); - this.state = { - showShadow: this.props.visible && this.props.showShadow - }; - } - // android 卡片动效对于阴影的处理 - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.showShadow === false) return; - if (newProps.visible === this.props.visible) return; - if (newProps.visible === false) { - // 隐藏 - this.setState({ showShadow: false }); - } else if (newProps.visible === true) { - // 显示 - setTimeout(() => this.setState({ showShadow: true }), DURATION); - } - } - renderCardIOS() { - const shadowIOS = this.props.showShadow - ? { - position: 'relative', - shadowColor: this.props.shadowColor, - shadowOpacity: this.props.shadowOpacity, - shadowOffset: { width: 0, height: 8 } - } - : {}; - const cardStyle = StyleSheet.flatten([{}, DEFAULT_STYLE.MARGIN_TOP, this.props.cardStyle, shadowIOS]); - return ( - - ); - } - renderCardAndroid() { - if (!this.state.showShadow) { - const cardStyle = StyleSheet.flatten([{}, DEFAULT_STYLE.MARGIN_TOP, this.props.cardStyle]); - return ( - - ); - } else { - const { width, height, borderRadius } = this.props.cardStyle; - const { shadowAndroidStyle, cardStyle } = this.getCorrectStyle(); - const shadowAndroid = { - width: width || DEFAULT_STYLE.WIDTH, - height: height || DEFAULT_STYLE.HEIGHT, - radius: borderRadius || DEFAULT_STYLE.RADIUS, - color: this.props.shadowColor, - border: 10, - opacity: this.props.shadowOpacity, - x: 0, - y: 6, - style: shadowAndroidStyle - }; - return ( - - - - ); - } - } - /** - * @description 筛选出`this.props.cardStyle`中的定位信息,传给`shadowAndroid`的`style` - */ - getCorrectStyle() { - const shadowAndroidStyle = Object.assign({}, DEFAULT_STYLE.MARGIN_TOP); - const cardStyle = {}; - Object.keys(this.props.cardStyle).forEach((key) => { - if (key.toString().startsWith('margin')) { - shadowAndroidStyle[key] = this.props.cardStyle[key]; - } else { - cardStyle[key] = this.props.cardStyle[key]; - } - }); - return { shadowAndroidStyle, cardStyle }; - } - render() { - return Platform.select({ - android: this.renderCardAndroid(), - ios: this.renderCardIOS() - }); - } -} \ No newline at end of file +import Card from 'mhui-rn/dist/components/card/Card'; +export default Card; \ No newline at end of file diff --git a/miot-sdk/ui/Card/CardBase.js b/miot-sdk/ui/Card/CardBase.js index ee380c21d..8d1d46ea9 100644 --- a/miot-sdk/ui/Card/CardBase.js +++ b/miot-sdk/ui/Card/CardBase.js @@ -1,306 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Animated, Dimensions, Easing, Image, StyleSheet, Text, TouchableHighlight, View } from 'react-native'; -import { Images, Styles } from '../../resources'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const { width } = Dimensions.get('window'); -const DURATION_OUT = 250; -const DURATION_IN = 250; -const DEFAULT_STYLE = { - MARGIN_H: 15, - HEIGHT: 66, - WIDTH: width - 15 * 2, - // RADIUS: 8, - ICON_SIZE: 35, - CLOSE_AREA: 30, - CLOSE_SIZE: 20 -}; -/** - * @export - * @author Geeook - * @since 10010 - * @module CardBase - * @description 基础卡片 - * @property {component} innerView - 卡片内部 View, 不传该参数将显示默认的 icon + text - * @property {int} icon - 左侧图标的资源 id, 参照`Image`的`resource`属性, 不传将不显示图标 - * @property {string} text - 右侧文案 - * @property {bool} visible - 是否显示卡片, 默认值 true - * @property {bool} showDismiss - 是否显示右上角的关闭按钮, 默认值 false - * @property {bool} disabled - 是否禁用卡片点击, 默认值 false - * @property {function} dismiss - 点右上角关闭按钮的回调函数 - * @property {function} onPress - 点击事件, 不传该参数将显示禁用态 - * @property {style} cardStyle - 卡片容器的自定义样式, 默认样式 `{ width: screenWidth - 30, height:66 }` - * @property {style} iconStyle - 左侧图标的自定义样式 - * @property {style} textStyle - 右侧文案的自定义样式 - * @property {string} underlayColor - 卡片点击态颜色,默认 rgba(0,0,0,0.05) - * @property {bool} allowFontScaling - 10040新增 设置卡片字体是否随系统设置的字体大小的设置改变而改变 默认为true。 - * @property {bool} unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @property {number} numberOfLines - 10040新增 设置卡片字体显示的最大行数 默认为1 - */ -export default class CardBase extends React.Component { - static propTypes = { - innerView: PropTypes.object, - icon: PropTypes.number, - text: PropTypes.string, - showDismiss: PropTypes.bool, - disabled: PropTypes.bool, - dismiss: PropTypes.func, - visible: PropTypes.bool, - onPress: PropTypes.func, - cardStyle: PropTypes.object, - iconStyle: PropTypes.object, - textStyle: PropTypes.object, - underlayColor: PropTypes.string, - unlimitedHeightEnable: PropTypes.bool, - allowFontScaling: PropTypes.bool, - numberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint, - dismissAccessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - dismissAccessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - showDismiss: false, - disabled: false, - visible: true, - underlayColor: Styles.common.underlayColor, - unlimitedHeightEnable: false, - allowFontScaling: true - } - constructor(props, context) { - super(props, context); - referenceReport('CardBase'); - const { height, marginTop } = this.props.cardStyle; - this.cardHeight = height || DEFAULT_STYLE.HEIGHT; - const initValue = this.props.visible ? 1 : 0; - this.height = new Animated.Value(initValue); - this.opacity = new Animated.Value(initValue); - this.marginTop = marginTop || 0; - } - componentDidMount() { - this.height.addListener((e) => { - // this.refs.card.setNativeProps({ - // marginTop: this.marginTop * e.value - // }); - this.refCard && this.refCard.setNativeProps({ - marginTop: this.marginTop * e.value - }); - }); - } - onAccessibilityAction = ({ nativeEvent: { actionName } }) => { - const { disabled, onPress } = this.props; - if (disabled) { - return; - } - if (onPress && actionName === 'activate') { - onPress(); - } - } - /** - * @description 渲染卡片内部View。默认显示 icon + text - */ - renderInner() { - if (this.props.innerView === undefined) { - const { icon, text, iconStyle, textStyle } = this.props; - let textLine = this.props.numberOfLines == undefined ? 1 : this.props.numberOfLines; - if (textLine < 0) textLine = 0; - return ( - - {icon ? ( - - ) : null} - - {text || ''} - - - ); - } - return ( - - {this.props.innerView} - - ); - } - /** - * @description 渲染右上角的关闭按钮, 默认不显示 - */ - renderClose() { - if (!this.props.showDismiss) return null; - return ( - this.dismiss()} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.button, - accessibilityLabel: this.props.dismissAccessibilityLabel || 'close', - accessibilityHint: this.props.dismissAccessibilityHint || 'close' - })} - > - - - ); - } - /** - * @description 筛选出`cardStyle`中的大小定位信息 - */ - getCorrectStyle(cardStyle) { - const animatedViewStyle = {}; - const containerStyle = {}; - Object.keys(cardStyle).forEach((key) => { - if (key.toString().startsWith('margin') - || key.toString() === 'width') { - animatedViewStyle[key] = cardStyle[key]; - } else { - containerStyle[key] = cardStyle[key]; - } - }); - return { animatedViewStyle, containerStyle }; - } - render() { - const toValue = this.props.visible ? 1 : 0; - if (!this.props.visible) { - // 消失 - Animated.parallel( - [ - Animated.timing(this.height, { - toValue, - duration: DURATION_OUT, - easing: Easing.ease - }), - Animated.timing(this.opacity, { - toValue, - duration: DURATION_OUT * 0.4, - easing: Easing.ease - }) - ], - { - stopTogether: false - } - ).start(); - } else { - // 出现 - Animated.parallel( - [ - Animated.timing(this.opacity, { - toValue, - duration: DURATION_IN * 0.5, - easing: Easing.ease, - delay: DURATION_IN * 0.5 - }), - Animated.timing(this.height, { - toValue, - duration: DURATION_IN, - easing: Easing.ease - }) - ] - ).start(); - } - const cardStyle = StyleSheet.flatten([styles.container, this.props.cardStyle]); - const { animatedViewStyle, containerStyle } = this.getCorrectStyle(cardStyle); - return ( - { this.refCard = ref; }} - style={[animatedViewStyle, { - opacity: this.opacity, - height: this.props.unlimitedHeightEnable ? undefined : this.height.interpolate({ - inputRange: [0, 1], - outputRange: [0, this.cardHeight] - }) - }]} - > - - - {this.renderInner()} - {this.renderClose()} - - - - ); - } - dismiss() { - this.props.dismiss && this.props.dismiss(); - } -} -const styles = StyleSheet.create({ - container: { - // height: DEFAULT_STYLE.HEIGHT, - width: DEFAULT_STYLE.WIDTH, - backgroundColor: '#fff' - // borderRadius: DEFAULT_STYLE.RADIUS - }, - innerContainer: { - flex: 1, - alignItems: 'center', - flexDirection: 'row', - paddingHorizontal: DEFAULT_STYLE.MARGIN_H - }, - innerIcon: { - width: DEFAULT_STYLE.ICON_SIZE, - height: DEFAULT_STYLE.ICON_SIZE, - marginRight: DEFAULT_STYLE.MARGIN_H - }, - innerText: { - flex: 1, - fontSize: 14, - color: '#000' - }, - closeArea: { - width: DEFAULT_STYLE.CLOSE_AREA, - height: DEFAULT_STYLE.CLOSE_AREA, - position: 'absolute', - top: 0, - right: 0, - justifyContent: 'center', - alignItems: 'center' - }, - close: { - width: DEFAULT_STYLE.CLOSE_SIZE, - height: DEFAULT_STYLE.CLOSE_SIZE - } -}); \ No newline at end of file +import CardBase from 'mhui-rn/dist/components/card/CardBase'; +export default CardBase; \ No newline at end of file diff --git a/miot-sdk/ui/Card/MHCard.js b/miot-sdk/ui/Card/MHCard.js index ff1f2e820..3aea75145 100644 --- a/miot-sdk/ui/Card/MHCard.js +++ b/miot-sdk/ui/Card/MHCard.js @@ -1,354 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, Image, Platform, StyleSheet, Text, View } from 'react-native'; -import { Images, Styles } from '../../resources'; -import Card from "../Card"; -import Switch from '../Switch'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -/** - * @description 卡片类型 - * @enum {string} - */ -const CARD_TYPE = { - /** - * 普通卡片,卡片右侧不是开关 - */ - NORMAL: 'normal', - /** - * 开关卡片,卡片右侧是开关 - */ - SWITCH: 'switch' -}; -Object.freeze(CARD_TYPE); -/** - * @description 卡片圆角类型 - * @enum {string} - */ -const CARD_RADIUS_TYPE = { - /** - * 四角都是圆角 - */ - ALL: 'all', - /** - * 四角都是直角 - */ - NONE: 'none', - /** - * 上方圆角下方直角 - */ - TOP: 'top', - /** - * 上方直角下方圆角 - */ - BOTTOM: 'bottom' -}; -Object.freeze(CARD_RADIUS_TYPE); -const { width } = Dimensions.get('window'); -const cardMargin = 10; // 卡片左右间距 -const cardWidth = width - cardMargin * 2; // 卡片的宽度 -const cardHeight = 80; // 卡片的高度 -const cardPadding = 20; // 卡片内边距 -const ICON_SIZE = 40; // 左侧图标尺寸 -const ARROW_SIZE = Platform.select({ android: 26, ios: 24 }); // 当android设置24的时候,图形会挤压形成锯齿 -const disabledOpacity = 0.35; -/** - * @export - * @author Geeook - * @since 10020 - * @module MHCard - * @description 米家插件首页常用卡片, 包括普通卡片(右侧箭头)和开关卡片(右侧开关),使用 `miot/ui/Card` 作为容器 - * @property {CARD_TYPE} cardType - 卡片类型,右侧是否是开关,默认是 `CARD_TYPE.NORMAL` - * @property {CARD_RADIUS_TYPE} cardRadiusType - 卡片圆角类型,定义四个角是圆角还是直角,默认是 `CARD_RADIUS_TYPE.ALL`,所有的卡片类型有效 - * @property {style} iconContainerStyle - 图标容器的样式 - * @property {number} icon - 左侧图标的资源 id, 参照`Image`的`resource`属性,所有的卡片类型有效 - * @property {style} iconStyle - 图标的样式 - * @property {string} title - 左侧主标题,所有的卡片类型有效 - * @property {style} titleStyle - 左侧主标题的自定义样式,所有的卡片类型有效 - * @property {string} subtitle - 左侧副标题,如果有的话,显示在主标题的下方,没有则不显示,所有的卡片类型有效 - * @property {style} subtitleStyle - 左侧副标题的自定义样式,所有的卡片类型有效 - * @property {string} rightText - 右侧文案,如果有的话,显示在右箭头的左侧,没有则不显示,当卡片类型是`CARD_TYPE.NORMAL`有效 - * @property {style} rightTextStyle - 右侧文案的自定义样式,当卡片类型是`CARD_TYPE.NORMAL`有效 - * @property {bool} hideArrow - 是否隐藏右侧箭头图片,默认值 `false`,当卡片类型是`CARD_TYPE.NORMAL`有效 - * @property {function} onPress - 点击卡片的回调函数,所有的卡片类型有效 - * @property {bool} switchValue - 开关的状态,默认是 `false`,当卡片类型是`CARD_TYPE.SWITCH`有效 - * @property {string} onTintColor - 开关打开时的背景颜色,当卡片类型是`CARD_TYPE.SWITCH`有效 - * @property {string} tintColor - 开关关闭时的背景颜色,当卡片类型是`CARD_TYPE.SWITCH`有效 - * @property {function} onValueChange - 点击卡片开关的回调函数,当卡片类型是`CARD_TYPE.SWITCH`有效 - * @property {bool} disabled - 是否禁用卡片,默认是 `false`,禁用时显示不可点击态,所有的卡片类型有效 - * @property {bool} visible - 是否显示卡片,默认是 `true`,改变该值将显示/隐藏卡片,有弹出和收起动效,所有的卡片类型有效 - * @property {bool} showShadow - 是否显示卡片阴影,默认是 `false`,所有的卡片类型有效 - * @property {number} marginTop - 10039废弃 请在style中设置 卡片的上边距,默认 `0`,所有的卡片类型有效 - * @property {object} style - 10039新增 ,style - * @property {bool} unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @property {bool} allowFontScaling - 10040新增 设置卡片字体是否随系统设置的字体大小的设置改变而改变 默认为true。 - * @property {number} titleNumberOfLines - 10040新增 设置title显示的最大行数 默认为1 - * @property {number} subtitleNumberOfLines - 10040新增 设置subtitle显示的最大行数 默认为1 - * @property {number} rightTextNumberOfLines - 10040新增 设置rightText显示的最大行数 默认为2 - */ -export default class MHCard extends React.Component { - static propTypes = { - cardType: PropTypes.oneOf([CARD_TYPE.NORMAL, CARD_TYPE.SWITCH]), - cardRadiusType: PropTypes.oneOf([ - CARD_RADIUS_TYPE.ALL, - CARD_RADIUS_TYPE.NONE, - CARD_RADIUS_TYPE.TOP, - CARD_RADIUS_TYPE.BOTTOM - ]), - style: PropTypes.object, - iconContainerStyle: PropTypes.object, - icon: PropTypes.number.isRequired, - iconStyle: PropTypes.object, - title: PropTypes.string.isRequired, - titleStyle: PropTypes.object, - subtitle: PropTypes.string, - subtitleStyle: PropTypes.object, - rightText: PropTypes.string, - rightTextStyle: PropTypes.object, - hideArrow: PropTypes.bool, - onPress: PropTypes.func, - switchValue: PropTypes.bool, - onTintColor: PropTypes.string, - tintColor: PropTypes.string, - onValueChange: PropTypes.func, - disabled: PropTypes.bool, - visible: PropTypes.bool, - showShadow: PropTypes.bool, - marginTop: PropTypes.number, - unlimitedHeightEnable: PropTypes.bool, - allowFontScaling: PropTypes.bool, - titleNumberOfLines: PropTypes.number, - subtitleNumberOfLines: PropTypes.number, - rightTextNumberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - cardType: CARD_TYPE.NORMAL, - cardRadiusType: CARD_RADIUS_TYPE.ALL, - icon: Images.common.mihome, - hideArrow: false, - switchValue: false, - disabled: false, - visible: true, - showShadow: false, - marginTop: 0, - unlimitedHeightEnable: false, - allowFontScaling: true - } - /** - * @description 卡片类型 - * @enum {string} - */ - static CARD_TYPE = CARD_TYPE - /** - * @description 卡片圆角类型 - * @enum {string} - */ - static CARD_RADIUS_TYPE = CARD_RADIUS_TYPE - constructor(props) { - super(props); - referenceReport('MHCard'); - this.radiusStyle = { - [CARD_RADIUS_TYPE.ALL]: { - borderRadius: 10 - }, - [CARD_RADIUS_TYPE.NONE]: { - borderRadius: 0 - }, - [CARD_RADIUS_TYPE.TOP]: { - borderTopLeftRadius: 10, - borderTopRightRadius: 10 - }, - [CARD_RADIUS_TYPE.BOTTOM]: { - borderBottomLeftRadius: 10, - borderBottomRightRadius: 10 - } - }[this.props.cardRadiusType]; - /** - * 将样式作为属性传入组件的时候,要保证 - * 1. 要么在传入的时候扁平化成一个object - * 2. 要么在组件接收传参的时候做扁平化 - */ - this.cardStyle = StyleSheet.flatten([this.radiusStyle, { - width: cardWidth, - height: cardHeight, - marginTop: this.props.marginTop - }]); - } - onAccessibilityAction = ({ nativeEvent: { actionName } }) => { - const { disabled, cardType, onPress, onValueChange, switchValue } = this.props; - if (disabled) { - return; - } - if (actionName === 'activate' && cardType === CARD_TYPE.SWITCH && typeof onValueChange === 'function') { - onValueChange(!switchValue); - } - if (actionName === 'activate' && cardType === CARD_TYPE.NORMAL && typeof onPress === 'function') { - onPress(); - } - } - renderInnerView() { - const opacityStyle = { - opacity: this.props.disabled ? disabledOpacity : 1 - }; - let titleLine = this.props.titleNumberOfLines == undefined ? 1 : this.props.titleNumberOfLines; - if (titleLine < 0) titleLine = 0; - let subtitleLine = this.props.subtitleNumberOfLines == undefined ? 1 : this.props.subtitleNumberOfLines; - if (subtitleLine < 0) subtitleLine = 0; - let rightTextLine = this.props.rightTextNumberOfLines == undefined ? 2 : this.props.rightTextNumberOfLines; - if (rightTextLine < 0) rightTextLine = 0; - return ( - - - - - - - - {this.props.title || ''} - - { - this.props.subtitle ? - {this.props.subtitle} - - : null - } - - { - this.props.rightText ? - - - {this.props.rightText || ''} - - - : null - } - - {this.renderRight()} - - ); - } - renderRight() { - if (this.props.cardType === CARD_TYPE.NORMAL) { - if (this.props.hideArrow) return null; - return ( - - ); - } else if (this.props.cardType === CARD_TYPE.SWITCH) { - return ( - - ); - } else { - if (__DEV__ && console.warn) { - console.warn('cardType must be one of CARD_TYPE'); - } - } - } - render() { - const cardStyle = StyleSheet.flatten([this.cardStyle, !this.props.allowFontScaling ? { height: undefined } : {}]); - return ( - - ); - } -} -const styles = StyleSheet.create({ - container: { - flex: 1, - paddingHorizontal: cardPadding, - backgroundColor: '#fff', - flexDirection: 'row', - alignItems: 'center' - }, - iconContainer: { - width: ICON_SIZE, - height: ICON_SIZE, - justifyContent: 'center', - alignItems: 'center' - }, - icon: { - width: ICON_SIZE, - height: ICON_SIZE, - borderRadius: ICON_SIZE / 2 - }, - textContainer: { - flex: 1, - flexDirection: 'row', - alignItems: 'center', - marginLeft: 14 - }, - titleContainer: { - flex: 1, - justifyContent: 'center' - }, - subtitle: { - fontSize: 12, - lineHeight: 16, - color: '#666' - }, - rightText: { - paddingLeft: 10, - textAlign: 'right', - fontSize: 16, - color: '#000' - }, - arrow: { - width: ARROW_SIZE, - height: ARROW_SIZE - } -}); \ No newline at end of file +import MHCard from 'mhui-rn/dist/components/card/MHCard'; +export default MHCard; \ No newline at end of file diff --git a/miot-sdk/ui/Card/ModeCard.js b/miot-sdk/ui/Card/ModeCard.js index 995d24176..6be4e3a6d 100644 --- a/miot-sdk/ui/Card/ModeCard.js +++ b/miot-sdk/ui/Card/ModeCard.js @@ -1,378 +1,2 @@ -import PropTypes from 'prop-types'; -import React, { Component } from 'react'; -import { Dimensions, Image, StyleSheet, Text, TouchableWithoutFeedback, View } from 'react-native'; -import { Styles } from '../../resources'; -import Card from './Card'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -/** - * @export - * @author Li Yue - * @since 10021 - * @module ModeCard - * @description 档位/模式卡片 - * @property {string} radiusType - 卡片圆角类型:四个圆角、没有圆角、只有上圆角、只有下圆角。对应值:all(默认), none, top, bottom - * @property {array} modes - 模式数组,默认值:[] 其中的object个数决定显示在卡片中的个数,支持的所有key值:{description:'',icon: {normal: require(''),press: require(''),active: require(''),activeDisabled: require(''),},isDisabled:false,isActive:false,isPressing: false} - * @property {function} pressIn - 按下模式时执行的函数,默认值:function(){} - * @property {function} pressOut - 手指抬起模式时执行的函数,默认值:function(){} - * @property {string} modesKey - 模式数组对应的 key,默认值:'' - * @property {style} descriptionStyle - 描述文字的样式,默认值:{} - * @property {style} activeDescriptionStyle - 描述文字的高亮样式,默认值:{} - * @property {bool} showShadow - 是否显示卡片阴影, 默认值 true。由于安卓的阴影显示存在问题,在和标题进行卡片拼接时,不能显示阴影,请传入 false - * @property {style} modeCardStyle - 模式卡片样式, 默认值 {} - * @property {bool} unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @property {bool} allowFontScaling - 10040新增 设置卡片字体是否随系统设置的字体大小的设置改变而改变 默认为true。 - * @property {number} numberOfLines - 10040新增 设置卡片字体显示的最大行数 默认为1 - */ -const radiusValue = 10; -let iconLength = 56; -const padding3 = 30; -const padding4 = 28; -const padding5 = 20; -const CARD_RADIUS_TYPE = { - /** - * 四角都是圆角 - */ - ALL: 'all', - /** - * 四角都是直角 - */ - NONE: 'none', - /** - * 上方圆角下方直角 - */ - TOP: 'top', - /** - * 上方直角下方圆角 - */ - BOTTOM: 'bottom' -}; -const { width } = Dimensions.get('window'); -class ModeCard extends Component { - constructor(props) { - super(props); - referenceReport('ModeCard'); - this.cardWrapStyle = {}; - // 设置 Card 组件的样式 - let { modes } = props; - let { length } = modes; - let cardWrapStyle = { - height: 116 - }; - let hasDescription = modes.some((mode) => { - return mode.description; - }); - if (length === 3 && hasDescription) { - // 3模式有描述 - cardWrapStyle = { - height: 140 - }; - } else if (length === 4 && !hasDescription) { - // 4模式无描述 - cardWrapStyle = { - height: 106 - }; - } else if (length === 4 && hasDescription) { - // 4模式有描述 - cardWrapStyle = { - height: 130 - }; - } else if (length === 5) { - // 5模式 - cardWrapStyle = { - height: 86 - }; - } - this.cardWrapStyle = cardWrapStyle; - // 根据 radiusType 设置卡片圆角 - this.radius = { - [CARD_RADIUS_TYPE.ALL]: { - borderRadius: radiusValue - }, - [CARD_RADIUS_TYPE.NONE]: { - borderRadius: 0 - }, - [CARD_RADIUS_TYPE.TOP]: { - borderTopLeftRadius: radiusValue, - borderTopRightRadius: radiusValue - }, - [CARD_RADIUS_TYPE.BOTTOM]: { - borderBottomLeftRadius: radiusValue, - borderBottomRightRadius: radiusValue - } - }[props.radiusType]; - } - componentDidMount() { - } - // 生成模式结构 - createModesRN = () => { - let { - modes, descriptionStyle, activeDescriptionStyle, - accessible - } = this.props; - let { length } = modes; - let modeStyle = {}; - let iconStyle = {}; - if (length === 4) { - // 4模式 - iconLength = 50; - modeStyle = { - width: iconLength, - marginRight: 33 - }; - iconStyle = { - width: iconLength, - height: iconLength - }; - } else if (length === 5) { - // 5模式 - iconLength = 46; - modeStyle = { - width: iconLength, - marginRight: 17 - }; - iconStyle = { - width: iconLength, - height: iconLength - }; - } - let modesRN = modes.map((mode, index) => { - let { - isDisabled, isActive, icon, description, isPressing, - accessibilityLabel, accessibilityHint - } = mode; - let iconSource = -1; - let iconOpacity = 1; - let descriptionRN = null; - let last = {}; - let activeDescription = {}; - let descriptionOpacity = 1; - if (isDisabled && isActive) { - // 高亮不可点 - iconSource = icon.activeDisabled; - } else if (isDisabled) { - // 不可点 - iconSource = icon.normal; - iconOpacity = .3; - } else if (isActive) { - // 高亮 - iconSource = icon.active; - activeDescription = { color: Styles.common.MHGreen }; - Object.assign(activeDescription, activeDescriptionStyle); - } else if (isPressing) { - // 按下 - iconSource = icon.press; - } else { - // 正常 - iconSource = icon.normal; - } - if (isDisabled) { - // 不可点 - descriptionOpacity = .3; - } - if (description && length < 5) { - // 模式3、4有描述文字 - const style = StyleSheet.flatten([styles.description, this.props.unlimitedHeightEnable ? { fontSize: undefined, lineHeight: undefined } : {}]); - let textLine = this.props.numberOfLines == undefined ? 1 : this.props.numberOfLines; - if (textLine < 0) textLine = 0; - descriptionRN = ( - {description} - ); - } - if (index === length - 1) { - // 最后一个 - last = { marginRight: 0 }; - } - return ( - { - this.pressInIcon(index); - }} - onPressOut={() => { - this.pressOutIcon(index); - }} - {...getAccessibilityConfig({ - accessible, - accessibilityRole: AccessibilityRoles.radio, - accessibilityLabel: accessibilityLabel || description, - accessibilityHint: accessibilityHint, - accessibilityState: { - disabled: !!isDisabled, - selected: !!isActive - } - })} - > - - - {descriptionRN} - - - ); - }); - return modesRN; - } - // 按下图标 - pressInIcon = (index) => { - let { pressIn, modesKey } = this.props; - if (pressIn && modesKey) { - // 传入了按下函数、模式数组对应的 key - pressIn(index, modesKey); - } - } - // 手指抬起图标 - pressOutIcon = (index) => { - let { pressOut, modesKey } = this.props; - if (pressOut && modesKey) { - // 传入了手指抬起函数、模式数组对应的 key - pressOut(index, modesKey); - } - } - // 渲染模式卡片结构 - renderModeCard = () => { - let { modes } = this.props; - let { length } = modes; - let cardPadding = {}; - if (length === 4) { - // 4模式 - cardPadding = { - paddingTop: padding4, - paddingBottom: padding4 - }; - } else if (length === 5) { - // 5模式 - cardPadding = { - paddingTop: padding5, - paddingBottom: padding5 - }; - } - return ( - - - {this.createModesRN()} - - - ); - } - render() { - let { showShadow, modeCardStyle } = this.props; - let defaultCardStyle = { - marginTop: 0, - width: width - 10 * 2 - }; - let mixCardStyle = Object.assign({}, defaultCardStyle, modeCardStyle, this.cardWrapStyle, this.radius, !this.props.allowFontScaling ? { height: undefined } : {}); - return ( - - ); - } -} -ModeCard.defaultProps = { - radiusType: 'all', - modes: [ - { - description: '', - icon: { - /* normal: require(''), - press: require(''), - active: require(''), - activeDisabled: require(''), */ - }, - isDisabled: false, - isActive: false, - isPressing: false - } - ], - pressIn: function() { }, - pressOut: function() { }, - modesKey: '', - descriptionStyle: {}, - activeDescriptionStyle: {}, - showShadow: true, - modeCardStyle: {}, - unlimitedHeightEnable: false, - allowFontScaling: true -}; -ModeCard.propTypes = { - radiusType: PropTypes.string, - modesKey: PropTypes.string, - modes: PropTypes.arrayOf(PropTypes.shape({ - isDisabled: PropTypes.bool, - isActive: PropTypes.bool, - icon: PropTypes.shape({ - normal: PropTypes.any, - press: PropTypes.any, - active: PropTypes.any, - activeDisabled: PropTypes.any - }), - description: PropTypes.string, - isPressing: PropTypes.bool, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - pressIn: PropTypes.func, - pressOut: PropTypes.func, - descriptionStyle: PropTypes.object, - activeDescriptionStyle: PropTypes.object, - showShadow: PropTypes.bool, - modeCardStyle: PropTypes.object, - allowFontScaling: PropTypes.bool, - unlimitedHeightEnable: PropTypes.bool, - numberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible -}; -const styles = StyleSheet.create({ - card: { - paddingTop: padding3, - paddingBottom: padding3, - backgroundColor: 'white' - }, - main: { - flexDirection: 'row', - justifyContent: 'center' - }, - mode: { - width: iconLength, - marginRight: 40 - }, - icon: { - width: iconLength, - height: iconLength - }, - description: { - fontSize: 13, - color: '#7F7F7F', - marginTop: 10, - textAlign: 'center', - lineHeight: 14 - } -}); +import ModeCard from 'mhui-rn/dist/components/card/ModeCard'; export default ModeCard; \ No newline at end of file diff --git a/miot-sdk/ui/CardButton.js b/miot-sdk/ui/CardButton.js index 257d25c85..11289fb8b 100644 --- a/miot-sdk/ui/CardButton.js +++ b/miot-sdk/ui/CardButton.js @@ -1,149 +1,2 @@ -import React, { PureComponent, Fragment } from 'react'; -import { StyleSheet, View, Text, Image, TouchableHighlight } from 'react-native'; -import PropTypes from 'prop-types'; -import Switch from './Switch'; -import ContainerWithShadowAndSeparator from './ContainerWithShadowAndSeparator'; -import { adjustSize } from '../utils/sizes'; -import { FontDefault, FontKmedium } from '../utils/fonts'; -import { ColorGreen } from '../utils/colors'; -import { referenceReport } from '../decorator/ReportDecorator'; -const SourceArrow = require('../resources/images/right_arrow.png'); -export default class CardButton extends PureComponent { - static propTypes = { - containerStyle: PropTypes.any, - disabled: PropTypes.bool, - themeColor: PropTypes.string, - themeBackgroundColor: PropTypes.string, - underlayColor: PropTypes.string, - hasShadow: PropTypes.bool, - iconContainerStyle: PropTypes.any, - iconStyle: PropTypes.any, - icon: PropTypes.any, - iconText: PropTypes.string, - title: PropTypes.string, - subtitle: PropTypes.string, - onPress: PropTypes.func, - onSwitch: PropTypes.func, - switchOn: PropTypes.bool, - rightText: PropTypes.string, - rightArrow: PropTypes.bool - }; - static defaultProps = { - underlayColor: 'rgba(0, 0, 0, 0.05)', - hasShadow: true - }; - onPress = () => { - let { disabled, onPress } = this.props; - if (typeof onPress === 'function' && !disabled) { - onPress(); - } - } - constructor(props, context) { - super(props, context); - referenceReport('CardButton'); - } - render() { - let { containerStyle, themeColor, themeBackgroundColor, underlayColor, hasShadow, iconContainerStyle, iconStyle, icon, iconText, title, subtitle, onSwitch, switchOn, disabled, onPress, rightText, rightArrow } = this.props; - let opacity = disabled ? 0.3 : 1; - if (!icon && !iconText && !title && !subtitle && !onSwitch) { - return null; - } - let Wrap = hasShadow ? ContainerWithShadowAndSeparator : Fragment; - return ( - - - - {icon || iconText ? ( - - {icon ? ( - - ) : ( - {iconText} - )} - - ) : null} - - {title ? ( - {title} - ) : null} - {subtitle ? ( - {subtitle} - ) : null} - - {onSwitch ? ( - - - - ) : (rightText || rightArrow ? ( - - {rightText ? ( - {rightText} - ) : null} - {rightArrow ? ( - - ) : null} - - ) : null)} - - - - ); - } -} -const Styles = StyleSheet.create({ - container: { - height: adjustSize(240), - paddingHorizontal: adjustSize(60), - flexDirection: 'row', - alignItems: 'center', - backgroundColor: '#fff' - }, - iconContainer: { - marginRight: adjustSize(39), - width: adjustSize(120), - height: adjustSize(120), - borderRadius: adjustSize(60), - justifyContent: 'center', - alignItems: 'center' - }, - icon: { - width: adjustSize(72), - height: adjustSize(72), - resizeMode: 'contain' - }, - iconText: { - fontFamily: FontKmedium, - fontSize: adjustSize(60), - color: '#fff' - }, - titleContainer: { - flex: 1 - }, - title: { - fontFamily: FontDefault, - fontSize: adjustSize(45), - color: '#000' - }, - subtitle: { - fontFamily: FontDefault, - fontSize: adjustSize(36), - lineHeight: adjustSize(42), - color: '#999' - }, - switchContainer: { - marginLeft: adjustSize(30) - }, - rightText: { - fontFamily: FontDefault, - fontSize: adjustSize(36), - color: '#999', - marginLeft: adjustSize(30) - } -}); \ No newline at end of file +import CardButton from 'mhui-rn/dist/modules/cardButton/CardButton'; +export default CardButton; \ No newline at end of file diff --git a/miot-sdk/ui/Checkbox/Checkable.js b/miot-sdk/ui/Checkbox/Checkable.js index 97fd93fbd..68d1fd796 100644 --- a/miot-sdk/ui/Checkbox/Checkable.js +++ b/miot-sdk/ui/Checkbox/Checkable.js @@ -1,132 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Animated, ART, View } from 'react-native'; -import { getAccessibilityConfig } from '../../utils/accessibility-helper'; -const { - Surface, - Shape, - Path, - Transform -} = ART; -/** - * @description 两端圆角的矩形 - */ -class Rectangle extends React.Component { - static propTypes = { - width: PropTypes.number.isRequired, - height: PropTypes.number.isRequired, - degree: PropTypes.number.isRequired - }; - render() { - const { width, height } = this.props; - if (width < height) return null; - const newWidth = width - height; - const path = Path() - .moveTo(height / 2 - width / 2, height / 2) - .arc(0, -height, height / 2) - .line(newWidth, 0) - .arc(0, height, height / 2) - .line(-newWidth, 0) - .close(); - return ( - - ); - } -} -const AnimatedRectangle = Animated.createAnimatedComponent(Rectangle); -const degree = 43; // 旋转角度 -/** - * @author Geeook - * @description `Checkbox` 勾选动效 - * @property {number} size - 整体尺寸大小,和 `Checkbox` 的尺寸相等,默认 50 - * @property {bool} visible - 是否显示 - */ -export default class Checkable extends React.Component { - static propTypes = { - size: PropTypes.number.isRequired, - visible: PropTypes.bool.isRequired - } - static defaultProps = { - size: 50, - visible: false - } - constructor(props, context) { - console.log('constructor checkable'); - super(props, context); - this.state = { - animatedWidth: new Animated.Value(0) - }; - // 计算各种数值 - const { size } = this.props; - const containerHeight = size; // 容器高度 - const leftWidth = size * 0.45; // 左侧宽度 - const rightWidth = size - leftWidth; // 右侧宽度 - const intersectionHeight = Math.floor(size * 2 / 3); // 交点坐标 - const leftRectangleWidth = intersectionHeight; // 左矩形的长度 - const rightRectangleWidth = size; // 右矩形的长度 - const rectangleHeight = size / 10; // 矩形的宽度 - this.animationConfig = { // 动画配置参数 - toValue: rightRectangleWidth, - speed: 9, - bounciness: 9 - }; - this.containerHeight = containerHeight; - this.leftWidth = leftWidth; - this.rightWidth = rightWidth; - this.intersectionHeight = intersectionHeight; - this.leftRectangleWidth = leftRectangleWidth; - this.rightRectangleWidth = rightRectangleWidth; - this.rectangleHeight = rectangleHeight; - } - render() { - if (!this.props.visible) { - this.preVisible = false; - return ; - } - if (!this.preVisible) { - this.state.animatedWidth.setValue(0); - Animated.spring(this.state.animatedWidth, this.animationConfig).start(); - } - this.preVisible = true; - return ( - - - - - - - - - ); - } -} \ No newline at end of file +import Checkable from 'mhui-rn/dist/components/checkbox/Checkable'; +export default Checkable; \ No newline at end of file diff --git a/miot-sdk/ui/Checkbox/Checkbox.js b/miot-sdk/ui/Checkbox/Checkbox.js index d888a94e5..c87803c85 100644 --- a/miot-sdk/ui/Checkbox/Checkbox.js +++ b/miot-sdk/ui/Checkbox/Checkbox.js @@ -1,118 +1,2 @@ -import { Styles } from 'miot/resources'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Animated, StyleSheet, TouchableWithoutFeedback, View } from 'react-native'; -import Checkable from './Checkable'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const SIZE = 40; -const UNCHECKED_BACKGROUNDCOLOR = '#f0f0f0'; -const UNCHECKED_BORDER_COLOR = 'rgba(0,0,0,0.1)'; -/** - * @export - * @author Geeook - * @since 10011 - * @module Checkbox - * @description 带动效的复选框 - * @property {style} style - 样式 - * @property {bool} disabled - 是否禁用,默认 false - * @property {bool} checked - 是否勾选,默认 false - * @property {string} checkedColor - 勾选背景颜色,默认米家绿 - * @property {function} onValueChange - 点击回调函数 - */ -export default class Checkbox extends React.Component { - static propTypes = { - style: PropTypes.object, - disabled: PropTypes.bool, - checked: PropTypes.bool, - onValueChange: PropTypes.func, - checkedColor: PropTypes.string, - label: PropTypes.string, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - style: {}, - disabled: false, - checked: false, - checkedColor: Styles.common.MHGreen - } - constructor(props, context) { - super(props, context); - referenceReport('Checkbox'); - this.state = { - checked: this.props.checked - }; - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.checked !== this.state.checked) { - this.setState({ checked: newProps.checked }); - } - } - backgroundColor = new Animated.Value(0); - render() { - const toValue = this.state.checked ? 1 : 0; - const backgroundColor = this.backgroundColor.interpolate({ - inputRange: [0, 1], - outputRange: [UNCHECKED_BACKGROUNDCOLOR, this.props.checkedColor] - }); - const { borderWidth, borderColor, width, height } = this.props.style; - const size = Math.min(width || SIZE, height || SIZE); - const borderStyle = this.state.checked - ? { borderWidth: 0 } - : { - borderWidth: borderWidth || 1, - borderColor: borderColor || UNCHECKED_BORDER_COLOR - }; - Animated.timing(this.backgroundColor, - { - toValue, - duration: 200 - } - ).start(); - return ( - - this._onValueChange()} - {...getAccessibilityConfig({ - ...this.props, - accessibilityRole: AccessibilityRoles.checkbox, - accessibilityLabel: this.props.accessibilityLabel || this.props.label, - accessibilityState: { - disabled: !!this.props.disabled, - checked: !!this.state.checked - } - })} - > - - - - - - ); - } - _onValueChange() { - const checked = !this.state.checked; - if (this.props.onValueChange) { - this.props.onValueChange(checked); - } - this.setState({ checked }); - } -} -const styles = StyleSheet.create({ - container: { - width: SIZE, - height: SIZE - } -}); \ No newline at end of file +import { Checkbox } from 'mhui-rn'; +export default Checkbox; \ No newline at end of file diff --git a/miot-sdk/ui/CircleButton.js b/miot-sdk/ui/CircleButton.js index 713638554..eb37053e2 100644 --- a/miot-sdk/ui/CircleButton.js +++ b/miot-sdk/ui/CircleButton.js @@ -1,194 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, TouchableOpacity, View, Text, Image } from 'react-native'; -import PropTypes from 'prop-types'; -import { ColorGreen } from '../utils/colors'; -import { adjustSize } from '../utils/sizes'; -import { FontDefault } from '../utils/fonts'; -import { NOOP } from '../utils/fns'; -import { referenceReport } from '../decorator/ReportDecorator'; -// const Size168 = adjustSize(168); -// const Size150 = adjustSize(150); -// const Size138 = adjustSize(138); -// const Size120 = adjustSize(120); -// const Size72 = adjustSize(72); -// const Size66 = adjustSize(66); -// const Size60 = adjustSize(60); -const Size72 = adjustSize(72); -const Size120 = adjustSize(120); -const Size168 = adjustSize(168); -const Size150 = adjustSize(150); -const Size138 = adjustSize(138); -export default class CircleButton extends Component { - static propTypes = { - sizeLevel: PropTypes.oneOf([0, 1, 2, 3]), - themeColor: PropTypes.any, - disabled: PropTypes.bool, - showHighlight: PropTypes.bool, - selected: PropTypes.bool, - horizontal: PropTypes.bool, - onPress: PropTypes.func, - title: PropTypes.string, - icon: PropTypes.any, - iconSelected: PropTypes.any, - iconText: PropTypes.oneOfType([ - PropTypes.number, - PropTypes.string - ]) - }; - static defaultProps = { - sizeLevel: 0, - themeColor: '', - disabled: false, - showHighlight: false, - selected: false, - horizontal: false, - onPress: NOOP, - title: '', - icon: null, - iconSelected: null, - iconText: '' - }; - state = { - isPressing: false - }; - onPress = () => { - let { disabled, onPress } = this.props; - if (disabled) { - return; - } - onPress(); - } - onPressIn = () => { - let { showHighlight } = this.props; - if (showHighlight) { - this.setState({ - isPressing: true - }); - } - } - onPressOut = () => { - this.setState({ - isPressing: false - }); - } - constructor(props, context) { - super(props, context); - referenceReport('CircleButton'); - } - render() { - let { sizeLevel, selected, title, icon, iconSelected, iconText, themeColor, disabled, horizontal } = this.props; - let { isPressing } = this.state; - let containerSizeStyle = Styles[['container0', 'container1', 'container2', 'container3'][sizeLevel || 0]] || Styles.container0; - let iconContainerSizeStyle = Styles[['iconContainer0', 'iconContainer1', 'iconContainer2', 'iconContainer3'][sizeLevel || 0]] || Styles.iconContainer0; - selected = selected || isPressing; - return ( - - - {icon ? ( - - ) : ( - {iconText} - )} - - {title ? ( - {title} - ) : null} - - ); - } -} -const Styles = StyleSheet.create({ - container: { - alignItems: 'center' - }, - container0: { - width: Size120 - }, - container1: { - width: Size168 - }, - container2: { - width: Size150 - }, - container3: { - width: Size138 - }, - containerHorizontal: { - width: 'auto', - flex: 1, - flexDirection: 'row' - }, - iconContainer: { - justifyContent: 'center', - alignItems: 'center', - borderWidth: 1, - borderColor: 'rgba(176, 182, 184, 0.4)' - }, - iconContainer0: { - width: Size120, - height: Size120, - borderRadius: Size120 / 2 - }, - iconContainer1: { - width: Size168, - height: Size168, - borderRadius: Size168 / 2 - }, - iconContainer2: { - width: Size150, - height: Size150, - borderRadius: Size150 / 2 - }, - iconContainer3: { - width: Size138, - height: Size138, - borderRadius: Size138 / 2 - }, - iconContainerDisabled: { - backgroundColor: 'transparent', - borderColor: 'rgba(197, 201, 203, 1)' - }, - iconContainerDisabledSelected: { - backgroundColor: 'rgba(197, 201, 203, 0.3)', - borderColor: 'rgba(197, 201, 203, 1)' - }, - icon: { - resizeMode: 'contain', - width: Size72, - height: Size72 - }, - iconText: { - fontFamily: FontDefault, - fontSize: adjustSize(36), - color: '#000' - }, - iconTextSelected: { - color: '#FFF' - }, - title: { - marginTop: adjustSize(27), - textAlign: 'center', - fontSize: adjustSize(42), - fontFamily: FontDefault, - color: '#7F7F7F' - }, - title3: { - display: 'none' - }, - titleDisabled: { - color: '#7F7F7F' - }, - titleHorizontal: { - marginTop: 0, - flex: 1, - textAlign: 'left', - marginLeft: adjustSize(39) - } -}); \ No newline at end of file +import CircleButton from 'mhui-rn/dist/modules/circleButton/CircleButton'; +export default CircleButton; \ No newline at end of file diff --git a/miot-sdk/ui/ColorPicker.js b/miot-sdk/ui/ColorPicker.js new file mode 100644 index 000000000..567b213a8 --- /dev/null +++ b/miot-sdk/ui/ColorPicker.js @@ -0,0 +1,91 @@ +import React, { useImperativeHandle, useRef } from 'react'; +import { + requireNativeComponent, + UIManager, + findNodeHandle +} from 'react-native'; +import PropTypes from 'prop-types'; +const RCTColorPickerView = requireNativeComponent('RCTColorPickerView'); +const RCTWhitePickerView = requireNativeComponent('RCTWhitePickerView'); +const ColorPickerView = ( + { style, type = 'color', onInit, onColorChange }, + ref +) => { + const view = useRef(null); + const colorPickerConfig = () => { + const colorTmpConfigParams = [ + ['#EDF4FF', '#EDF4FF', '#FEFDD9', '#FBD26C', '#FFB127', '#FF9E42', '#F67F00'], + [0.0, 0.166, 0.332, 0.5, 0.666, 0.832, 1.0], + 10.0 + ]; + const colorConfigParams = [ + ['#E6312E', '#E6842E', '#E6D72E', '#98E62E', '#2EE62F', '#2EE67C', '#2ED5E6', '#2E79E6', '#302EE6', '#7D2EE6', '#E62EE3', '#E62EB5', '#E6312E'], + [], + 10.0 + ]; + UIManager.dispatchViewManagerCommand( + findNodeHandle(view.current), + UIManager.getViewManagerConfig( + type === 'color' ? 'RCTColorPickerView' : 'RCTWhitePickerView' + ).Commands.configDrawPicker, + type === 'color' ? colorConfigParams : colorTmpConfigParams + ); + }; + useImperativeHandle(ref, () => ({ + setColor: (color) => { + UIManager.dispatchViewManagerCommand( + findNodeHandle(view.current), + UIManager.getViewManagerConfig( + type === 'color' ? 'RCTColorPickerView' : 'RCTWhitePickerView' + ).Commands.showColor, + [color] + ); + } + })); + if (type === 'color') { + return ( + { + if (onInit) { + onInit(); + // 设置颜色值,渐变范围,高斯模糊半径 + colorPickerConfig(); + } + }} + onColorChange={(event) => { + if (onColorChange) { + onColorChange(event.nativeEvent.color, event.nativeEvent.trackType); + } + }} + /> + ); + } else { + return ( + { + if (onInit) { + onInit(); + // 设置颜色值,渐变范围,高斯模糊半径 + colorPickerConfig(); + } + }} + onColorChange={(event) => { + if (onColorChange) { + onColorChange(event.nativeEvent.color, event.nativeEvent.trackType); + } + }} + /> + ); + } +}; +export const ColorPicker = React.forwardRef(ColorPickerView); +ColorPicker.propTypes = { + style: PropTypes.any, + type: PropTypes.oneOf(['color', 'white']), + onInit: PropTypes.func, + onColorChange: PropTypes.func +}; \ No newline at end of file diff --git a/miot-sdk/ui/CommonSetting/CommonSetting.js b/miot-sdk/ui/CommonSetting/CommonSetting.js index 21697d474..a28e467b5 100644 --- a/miot-sdk/ui/CommonSetting/CommonSetting.js +++ b/miot-sdk/ui/CommonSetting/CommonSetting.js @@ -18,6 +18,9 @@ function getModelType() { return; } Service.spec.getSpecString(Device.deviceID).then((instance) => { + if (typeof instance === 'string') { + instance = JSON.parse(instance); + } if (instance && instance.type) { modelType = instance.type.split(':')[3]; resolve(modelType); @@ -344,19 +347,9 @@ export default class CommonSetting extends React.Component { AllOptions.FIRMWARE_UPGRADE, // AllOptions.CREATE_GROUP, // AllOptions.MANAGE_GROUP, - AllOptions.AUTO_UPGRADE, - AllOptions.TIMEZONE, - AllOptions.SECURITY, - AllOptions.USER_EXPERIENCE_PROGRAM + AllOptions.SECURITY ], secondOptions: [ - AllOptions.SHARE, - // AllOptions.BTGATEWAY, - // AllOptions.VOICE_AUTH, - AllOptions.IFTTT, - AllOptions.FIRMWARE_UPGRADE, - // AllOptions.CREATE_GROUP, - // AllOptions.MANAGE_GROUP, AllOptions.AUTO_UPGRADE, AllOptions.TIMEZONE, AllOptions.SECURITY, @@ -599,7 +592,8 @@ export default class CommonSetting extends React.Component { } const requireKeys2 = [ AllOptions.MORE, - AllOptions.HELP + AllOptions.HELP, + AllOptions.SECURITY ]; // 2. 去掉杂质 let options = [...(this.props.firstOptions || []), ...(this.props.secondOptions || [])].filter((key) => key && Object.values(AllOptions).includes(key)); @@ -647,11 +641,11 @@ export default class CommonSetting extends React.Component { {strings.commonSetting} - + {/* */} { items.map((item, index) => { if (!item || !item.title) return null; - const showSeparator = index !== items.length - 1; + const showSeparator = false;// index !== items.length - 1; return ( + {/* */} {!Device.isFamily ? ( secondSharedOptions[key]); // 如果是共享设备或者家庭设备,需要过滤一下 } keys = keys.filter((key) => !this.excludeRequiredOptions.includes(key)); + keys = keys.filter((key) => !(excludeOptions[key] || []).includes(Device.type)); const items = keys.map((key) => this.moreSetting[key]).filter((item) => { return item && !item.hide; }); diff --git a/miot-sdk/ui/Consumable.js b/miot-sdk/ui/Consumable.js index 63f479e14..c0c4820a6 100644 --- a/miot-sdk/ui/Consumable.js +++ b/miot-sdk/ui/Consumable.js @@ -1,147 +1,2 @@ -import React from 'react'; -import { StyleSheet, View, Text, TouchableOpacity, Image } from 'react-native'; -import PropTypes from 'prop-types'; -import PrimeButton from './PrimeButton'; -import { ColorGreen } from '../utils/colors'; -import { FontDefault } from '../utils/fonts'; -import { adjustSize } from '../utils/sizes'; -import { NOOP } from '../utils/fns'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -export default function Consumable(props) { - let { title, titleColor, subtitle, subtitleColor, reset, buy, icon, onBuy, onReset } = props; - return ( - - - {icon ? ( - - ) : null} - {title ? ( - {title} - ) : null} - {subtitle ? ( - {subtitle} - ) : null} - - {buy && reset ? ( - - - {buy} - - - {reset} - - - ) : buy ? ( - - ) : reset ? ( - - ) : null} - - ); -} -Consumable.propTypes = { - title: PropTypes.string, - titleColor: PropTypes.any, - subtitle: PropTypes.string, - subtitleColor: PropTypes.any, - reset: PropTypes.string, - buy: PropTypes.string, - icon: PropTypes.any, - onBuy: PropTypes.func, - onReset: PropTypes.func, - accessible: AccessibilityPropTypes.accessible, - resetAccessibilityHint: AccessibilityPropTypes.accessibilityHint, - buyAccessibilityHint: AccessibilityPropTypes.accessibilityHint -}; -Consumable.defaultProps = { - title: '', - titleColor: '', - subtitle: '', - subtitleColor: '', - reset: '', - buy: '', - icon: null, - onBuy: NOOP, - onReset: NOOP -}; -const Styles = StyleSheet.create({ - container: { - flex: 1 - }, - content: { - flex: 1, - marginTop: adjustSize(144) - }, - imageWrap: { - width: adjustSize(684), - height: adjustSize(1056), - alignSelf: 'center', - resizeMode: 'contain', - marginBottom: adjustSize(75) - }, - title: { - fontFamily: FontDefault, - fontSize: adjustSize(60), - fontWeight: '700', - color: '#000', - alignSelf: 'center', - marginHorizontal: adjustSize(72), - marginBottom: adjustSize(6) - }, - subtitle: { - fontFamily: FontDefault, - fontSize: adjustSize(54), - color: '#000', - alignSelf: 'center', - marginHorizontal: adjustSize(72) - }, - buttons: { - flexDirection: 'row', - marginHorizontal: adjustSize(72), - borderWidth: StyleSheet.hairlineWidth, - borderColor: 'rgba(0, 0, 0, 0.2)', - borderRadius: adjustSize(15) - }, - buttonWrap: { - flex: 1, - height: adjustSize(144), - justifyContent: 'center', - alignItems: 'center', - borderWidth: 0, - borderColor: 'rgba(0, 0, 0, 0.2)' - }, - button: { - fontFamily: FontDefault, - fontSize: adjustSize(39), - color: '#4C4C4C' - }, - normalButton: { - marginHorizontal: 0, - flex: 1 - } -}); \ No newline at end of file +import Consumable from 'mhui-rn/dist/modules/consumable/Consumable'; +export default Consumable; \ No newline at end of file diff --git a/miot-sdk/ui/ContainerWithGap.js b/miot-sdk/ui/ContainerWithGap.js index f1d4e4106..01b3adab7 100644 --- a/miot-sdk/ui/ContainerWithGap.js +++ b/miot-sdk/ui/ContainerWithGap.js @@ -1,100 +1,2 @@ -import React, { PureComponent, Fragment } from 'react'; -import { StyleSheet, View } from 'react-native'; -import PropTypes from 'prop-types'; -// import { adjustSize } from '../utils/sizes'; -class GapWrap extends PureComponent { - static propTypes = { - gap: PropTypes.number, - horizontal: PropTypes.bool - }; - state = { - shown: true - }; - onLayout = (e) => { - this.setState({ - shown: e.nativeEvent.layout.height > 0 - }); - } - render() { - let { gap, horizontal, children } = this.props; - let { shown } = this.state; - if (!children) { - return null; - } - let gapSize = shown ? gap : 0; - return ( - - - {children} - - - - ); - // return ( - // - // {children} - // - // ); - } -} -export default class ContainerWithGap extends PureComponent { - static propTypes = { - containerStyle: PropTypes.any, - horizontal: PropTypes.bool, - gap: PropTypes.number, - outerGap: PropTypes.number - }; - static defaultProps = { - containerStyle: {}, - horizontal: false, - gap: 7, - outerGap: 0 - }; - getContents() { - let { children, horizontal, gap } = this.props; - if (!children) { - return null; - } - let length = children.length; - let lengtEdge = length - 1; - return children.map((child, index) => { - return ( - - {child} - - ); - }); - } - render() { - let contents = this.getContents(); - let { containerStyle, horizontal, outerGap } = this.props; - if (!contents) { - return null; - } - return ( - - {contents} - - ); - } -} -const Styles = StyleSheet.create({ - container: {} -}); -const StylesGap = StyleSheet.create({ - gap: { - alignSelf: 'stretch' - } -}); \ No newline at end of file +import ContainerWithGap from 'mhui-rn/dist/modules/containerWithGap/ContainerWithGap'; +export default ContainerWithGap; \ No newline at end of file diff --git a/miot-sdk/ui/ContainerWithShadowAndSeparator.js b/miot-sdk/ui/ContainerWithShadowAndSeparator.js index 2afe11ea3..0b5bbd29c 100644 --- a/miot-sdk/ui/ContainerWithShadowAndSeparator.js +++ b/miot-sdk/ui/ContainerWithShadowAndSeparator.js @@ -1,122 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, View } from 'react-native'; -import PropTypes from 'prop-types'; -import { BoxShadow } from 'react-native-shadow'; -import Separator from './Separator'; -import { adjustSize } from '../utils/sizes'; -class GapWrap extends Component { - static propTypes = { - hasSeparator: PropTypes.bool, - separatorStyle: PropTypes.any - }; - state = { - shown: true - }; - onLayout = (e) => { - this.setState({ - shown: e.nativeEvent.layout.height > adjustSize(3.1) - }); - } - render() { - let { hasSeparator, separatorStyle, children } = this.props; - let { shown } = this.state; - if (!children) { - return null; - } - return ( - - {hasSeparator && shown ? ( - - ) : null} - {children} - - ); - } -} -export default class ContainerWithShadowAndSeparator extends Component { - static propTypes = { - containerStyle: PropTypes.any, - separatorStyle: PropTypes.any, - horizontal: PropTypes.bool - }; - static defaultProps = { - containerStyle: {}, - separatorStyle: {}, - horizontal: false - }; - state = { - width: adjustSize(1020), - height: adjustSize(240) - }; - getContents() { - let { children, separatorStyle, horizontal } = this.props; - if (!children) { - return null; - } - // let type = horizontal ? 'column' : 'row'; - return (Array.isArray(children) ? children : [children]).filter((child) => { - return !!child; - }).map((child, index) => { - return ( - 0} horizontal={horizontal} separatorStyle={separatorStyle}> - {child} - - ); - }); - } - onLayout = (e) => { - let { width, height } = e.nativeEvent.layout; - this.setState({ - width, - height - }); - } - render() { - let contents = this.getContents(); - let { containerStyle, horizontal } = this.props; - let { width, height } = this.state; - if (!contents) { - return null; - } - return ( - - - - - - {contents} - - - ); - } -} -const Styles = StyleSheet.create({ - box: { - position: 'relative' - }, - container: { - borderRadius: adjustSize(30), - overflow: 'hidden', - backgroundColor: '#fff' - }, - containerHorizontal: { - flexDirection: 'row' - } -}); \ No newline at end of file +import ContainerWithShadowAndSeparator from 'mhui-rn/dist/modules/containerWithShadowAndSeparator/ContainerWithShadowAndSeparator'; +export default ContainerWithShadowAndSeparator; \ No newline at end of file diff --git a/miot-sdk/ui/Curtain.js b/miot-sdk/ui/Curtain.js index 8e19e073b..3d2fbf3e7 100644 --- a/miot-sdk/ui/Curtain.js +++ b/miot-sdk/ui/Curtain.js @@ -1,259 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, View, Image, Animated, Easing, PanResponder } from 'react-native'; -import PropTypes from 'prop-types'; -import { adjustSize } from '../utils/sizes'; -import { log } from '../utils/fns'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -const SourceCurtainPole = require('../resources/images/curtain-pole.png'); -const SourceCurtainLight = require('../resources/images/curtain-light.png'); -const SourceCurtainDark = require('../resources/images/curtain-dark.png'); -const SourceCurtainBg = require('../resources/images/curtain-bg.png'); -const Width858 = adjustSize(858); -const Width429 = adjustSize(429); -const Width108 = adjustSize(108); -function getCurrentValue(type, isLeft, lastValue, moveX, min = 0, max = 100) { - let diffValue = 100 / (type === 0 ? Width429 : Width858) * moveX; - let value = lastValue + (isLeft ? -1 : 1) * diffValue; - return Math.min(max, Math.max(min, value)); -} -export default class Curtain extends Component { - static propTypes = { - // 0:双开,1:左,2:右 - type: PropTypes.oneOf([0, 1, 2]), - position: PropTypes.number, - onValueChanging: PropTypes.func, - onValueChange: PropTypes.func, - accessible: AccessibilityPropTypes.accessible, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - }; - static defaultProps = { - type: 0, - position: 0, - onValueChanging: log, - onValueChange: log - }; - currValue = 0; - lastValue = 0; - value = new Animated.Value(0); - leftX = new Animated.Value(0); - rightX = new Animated.Value(0); - animateToPosition(position, duration = 30) { - if (isNaN(position) || !isFinite(position)) { - return; - } - this.stopAnimation(); - let currValue = this.currValue; - this.aniPosition = Animated.timing(this.value, { - toValue: position, - duration: Math.abs(currValue - position) * duration, - easing: Easing.inOut(Easing.linear) - }).start(); - } - stopAnimation() { - this.aniPosition && this.aniPosition.stop(); - } - initPanResponder() { - this.panResponderLeft = PanResponder.create({ - onStartShouldSetPanResponder: () => true, - onMoveShouldSetPanResponder: () => true, - onPanResponderGrant: log, - onPanResponderMove: Animated.event([null, { - dx: this.leftX - }]), - onPanResponderRelease: this.touchEnd.bind(this), - onPanResponderTerminate: this.touchEnd.bind(this) - }); - this.panResponderRight = PanResponder.create({ - onStartShouldSetPanResponder: () => true, - onMoveShouldSetPanResponder: () => true, - onPanResponderGrant: log, - onPanResponderMove: Animated.event([null, { - dx: this.rightX - }]), - onPanResponderRelease: this.touchEnd.bind(this), - onPanResponderTerminate: this.touchEnd.bind(this) - }); - } - touchEnd() { - this.lastValue = this.currValue; - this.props.onValueChange(this.lastValue); - } - UNSAFE_componentWillReceiveProps(nextProps) { - let props = this.props; - this.lastValue = nextProps.position; - if (nextProps.type !== props.type) { - this.initPanResponder(nextProps.type); - } - if (nextProps.position !== props.position) { - this.animateToPosition(nextProps.position); - } - } - UNSAFE_componentWillMount() { - this.leftX.addListener((e) => { - let currValue = getCurrentValue(this.props.type, true, this.lastValue, e.value); - this.animateToPosition(currValue, 0); - this.props.onValueChanging(currValue); - }); - this.rightX.addListener((e) => { - let currValue = getCurrentValue(this.props.type, false, this.lastValue, e.value); - this.animateToPosition(currValue, 0); - this.props.onValueChanging(currValue); - }); - this.initPanResponder(this.props.type); - } - componentDidMount() { - this.value.addListener(({ value }) => { - this.currValue = value; - }); - } - componentWillUnmount() { - this.stopAnimation(); - } - getCurtains() { - let { type } = this.props; - let ret = []; - let l = type === 0 ? 7 : 13; - for (let i = 0; i < l; i++) { - ret.push( - - ); - } - return ret; - } - onAccessibilityAction = ({ nativeEvent: { actionName } }) => { - const { onValueChange } = this.props; - let targetValue = this.lastValue; - switch (actionName) { - case 'increment': - targetValue += 10; - break; - case 'decrement': - targetValue -= 10; - break; - } - targetValue = Math.min(100, Math.max(0, targetValue)); - this.value.setValue(targetValue); - this.lastValue = targetValue; - onValueChange(targetValue); - } - render() { - let { type } = this.props; - let value = this.value; - let curtains = this.getCurtains(); - let width = value.interpolate({ - inputRange: [0, 100], - outputRange: type === 0 ? [Width429, Width108] : [Width858, Width108] - }); - return ( - - - - - {[0, 1].indexOf(type) === -1 ? null : ( - - - {curtains} - - - - - - )} - {[0, 2].indexOf(type) === -1 ? null : ( - - - {curtains} - - - - - - )} - - - ); - } -} -const Styles = StyleSheet.create({ - container: { - alignItems: 'center', - marginTop: adjustSize(249), - paddingBottom: adjustSize(60) - }, - bg: { - position: 'absolute', - left: '50%', - marginLeft: adjustSize(-540), - // top: adjustSize(249), - width: adjustSize(1080), - height: adjustSize(879), - resizeMode: 'contain' - }, - pole: { - width: adjustSize(882), - height: adjustSize(21), - resizeMode: 'contain' - }, - curtains: { - flexDirection: 'row', - justifyContent: 'space-between', - width: adjustSize(858) - }, - curtainWrap: { - flex: 1, - height: adjustSize(858) - }, - curtain: { - position: 'absolute', - height: adjustSize(858), - flexDirection: 'row', - overflow: 'hidden' - }, - curtainSingle: { - flex: 1, - height: adjustSize(858) - }, - curtainLeft: { - left: 0 - }, - curtainRight: { - right: 0, - transform: [{ - scaleX: -1 - }] - }, - curtainBtn: { - position: 'absolute', - width: adjustSize(120), - height: adjustSize(120), - top: '50%', - marginTop: adjustSize(-60), - borderRadius: adjustSize(60), - right: 0, - marginRight: adjustSize(-60), - justifyContent: 'center', - backgroundColor: '#fff' - }, - curtainBtnInner: { - width: adjustSize(9), - height: adjustSize(48), - borderRadius: adjustSize(6), - backgroundColor: '#5898FF', - marginLeft: adjustSize(30) - } -}); \ No newline at end of file +import Curtain from 'mhui-rn/dist/modules/curtain/Curtain'; +export default Curtain; \ No newline at end of file diff --git a/miot-sdk/ui/CurtainStyle.js b/miot-sdk/ui/CurtainStyle.js index a1a62da53..1601eb1bf 100644 --- a/miot-sdk/ui/CurtainStyle.js +++ b/miot-sdk/ui/CurtainStyle.js @@ -1,103 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, View, Image, Text } from 'react-native'; -import PropTypes from 'prop-types'; -import Radio from './Radio'; -import { adjustSize } from '../utils/sizes'; -import { FontDefault } from '../utils/fonts'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -export default class CurtainStyle extends Component { - static propTypes = { - icons: PropTypes.array, - titles: PropTypes.arrayOf(PropTypes.string), - ids: PropTypes.array, - checkedId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - disabled: PropTypes.bool, - onValueChange: PropTypes.func, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabels: PropTypes.arrayOf(AccessibilityPropTypes.accessibilityLabel), - accessibilityHints: PropTypes.arrayOf(AccessibilityPropTypes.accessibilityHint) - }; - onAccessibilityAction = ({ nativeEvent: { actionName } }, id) => { - switch (actionName) { - case 'activate': - this.onCheckChange(id); - break; - } - } - getItems() { - let { icons = [], titles = [], ids = [], checkedId, disabled, accessibilityLabels = [], accessibilityHints = [] } = this.props; - return titles.map((_, index) => { - let title = titles[index]; - let icon = icons[index]; - let id = ids[index]; - return (title && icon ? ( - { - this.onAccessibilityAction(e, id); - }}> - - {title} - - - ) : null); - }); - } - onCheckChange = (id) => { - let { onValueChange } = this.props; - if (typeof onValueChange === 'function') { - onValueChange(id); - } - } - render() { - let items = this.getItems(); - return ( - - {items} - - ); - } -} -const Styles = StyleSheet.create({ - container: { - }, - item: { - marginTop: adjustSize(30), - marginHorizontal: adjustSize(30), - paddingLeft: adjustSize(57), - paddingRight: adjustSize(60), - paddingVertical: adjustSize(54), - flexDirection: 'row', - alignItems: 'center', - backgroundColor: '#fff' - }, - icon: { - width: adjustSize(312), - height: adjustSize(306), - resizeMode: 'contain', - marginRight: adjustSize(57) - }, - title: { - fontFamily: FontDefault, - fontSize: adjustSize(45), - color: '#000', - flex: 1 - } -}); \ No newline at end of file +import CurtainStyle from 'mhui-rn/dist/modules/curtainStyle/CurtainStyle'; +export default CurtainStyle; \ No newline at end of file diff --git a/miot-sdk/ui/DeviceWithInfo.js b/miot-sdk/ui/DeviceWithInfo.js index afb769149..cf91c7a5e 100644 --- a/miot-sdk/ui/DeviceWithInfo.js +++ b/miot-sdk/ui/DeviceWithInfo.js @@ -1,124 +1,2 @@ -import React, { PureComponent } from 'react'; -import { StyleSheet, View, Text, Image, ART } from 'react-native'; -import PropTypes from 'prop-types'; -import { fixHex } from '../utils/colors'; -import { adjustSize } from '../utils/sizes'; -import { FontDefault } from '../utils/fonts'; -// import { NOOP } from '../utils/fns'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -const { Surface, Group, Shape, Path } = ART; -const PI = Math.PI; -export default class DeviceWithInfo extends PureComponent { - static propTypes = { - icon: PropTypes.any, - title: PropTypes.string, - subtitle: PropTypes.string, - holdPlace: PropTypes.bool, - progress: PropTypes.number, - themeColor: PropTypes.any, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel - }; - render() { - let { icon, title, subtitle, holdPlace, progress, themeColor } = this.props; - if (!progress) { - progress = 0; - } - progress = Math.min(1, Math.max(0, progress)); - let r = adjustSize(648 / 2); - let rDot = adjustSize(15 / 2); - let startX = r + Math.cos(-0.5 * PI) * r; - let startY = r + Math.sin(-0.5 * PI) * r; - let halfX = r + Math.cos(0.5 * PI) * r; - let halfY = r + Math.sin(0.5 * PI) * r; - let endX = r + Math.cos(progress * 2 * PI - 0.5 * PI) * r; - let endY = r + Math.sin(progress * 2 * PI - 0.5 * PI) * r; - let PathCircleBase = new Path() - .moveTo(startX, startY) - .arcTo(halfX, halfY, r, r, false, false) - .arcTo(startX, startY, r, r, false, false); - let PathCircle = new Path() - .moveTo(startX, startY); - if (progress >= 0.5) { - PathCircle.arcTo(halfX, halfY, r, r, false, false); - } - PathCircle.arcTo(endX, endY, r, r, false, false); - let PathDot = new Path() - .moveTo(endX, endY - rDot) - .arcTo(endX, endY + rDot, rDot, rDot, false, false) - .arcTo(endX, endY - rDot, rDot, rDot, false, false); - return ( - - - - - {progress > 0 ? ( - - - - - ) : null} - - - - - - - {title || (holdPlace ? ' ' : '')} - {subtitle || (holdPlace ? ' ' : '')} - - - ); - } -} -const Styles = StyleSheet.create({ - container: { - alignItems: 'center', - marginTop: adjustSize(300) - }, - deviceContainer: { - width: adjustSize(663), - height: adjustSize(663), - justifyContent: 'center', - alignItems: 'center' - }, - deviceInner: { - width: adjustSize(558), - height: adjustSize(558), - borderRadius: adjustSize(279), - justifyContent: 'center', - alignItems: 'center', - backgroundColor: '#43C2FA' - }, - deviceIcon: { - width: adjustSize(264), - height: adjustSize(228) - }, - infoContainer: { - marginTop: adjustSize(33), - alignItems: 'center' - }, - infoTitle: { - fontFamily: FontDefault, - fontSize: adjustSize(45), - lineHeight: adjustSize(60), - color: '#000' - }, - infoSubtitle: { - marginTop: adjustSize(9), - fontFamily: FontDefault, - fontSize: adjustSize(36), - lineHeight: adjustSize(48), - color: '#B2B2B2' - } -}); \ No newline at end of file +import DeviceWithInfo from 'mhui-rn/dist/modules/deviceWithInfo/DeviceWithInfo'; +export default DeviceWithInfo; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/AbstractDialog.js b/miot-sdk/ui/Dialog/AbstractDialog.js index c86a54286..8ad284b22 100644 --- a/miot-sdk/ui/Dialog/AbstractDialog.js +++ b/miot-sdk/ui/Dialog/AbstractDialog.js @@ -1,428 +1,2 @@ -import { Host } from 'miot'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, Modal, Platform, StyleSheet, Text, TouchableHighlight, TouchableWithoutFeedback, View } from 'react-native'; -import { strings, Styles } from '../../resources'; -import Separator from '../Separator'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const { width, height } = Dimensions.get('window'); -const underlayColor = 'rgba(0,0,0,.05)'; -/** - * 按钮 - * @typedef {Object} Button - * @property {string} text - 按钮的文字 - * @property {style} style - 按钮的样式 - * @param {bool} allowFontScaling - 10040新增 text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {number} numberOfLines - 10040新增 text文字的行数, 默认 undefined (兼容旧版) - * @property {function} callback - 点击按钮的回调函数 - */ -/** - * @export - * @author Geeook - * @since 10021 - * @module AbstractDialog - * @description 通用弹窗容器,包括头部标题和底部按钮,内容自定义 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {style} style - modal 的自定义样式 - * @param {string} title - 标题 - * @param {string} subtitle - 副标题 - * @param {bool} showTitle - 是否显示标题,如果`false`,整个标题都不显示(包括副标题),默认`true` - * @param {bool} showSubtitle - 是否显示副标题,默认`false` - * @param {bool} canDismiss - 是否允许点击蒙层背景隐藏 Modal,默认`true` - * @param {Button[]} buttons - 按钮数组,定义底部按钮的属性,只能显示1~2个按钮,多传将失效。默认左取消右确定,左灰右绿,点击回调都是隐藏 Modal - * @param {bool} showButton - 是否显示按钮,默认`true` - * @param {Object} dialogStyle - 10040新增 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {bool} dialogStyle.allowFontScaling - 10040新增 dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {number} dialogStyle.titleNumberOfLines - 10040新增 控制title 文字的行数, 默认 1行 - * @param {number} dialogStyle.subTitleNumberOfLines - 10040新增 控制subTitle 文字的行数,默认 1行 - * @param {ViewPropTypes.style} dialogStyle.titleStyle - 10040新增 控制title 文字的样式 - * @param {ViewPropTypes.style} dialogStyle.subTitleStyle - 10040新增 控制subTitle 文字的样式 - * @param {function} onDismiss - 点击`Modal`内容外面/取消按钮/确定按钮,Modal隐藏时的回调函数 - */ -export default class AbstractDialog extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - style: PropTypes.oneOfType([PropTypes.object, PropTypes.number]), - title: PropTypes.string, - subtitle: PropTypes.string, - showTitle: PropTypes.bool, - showSubtitle: PropTypes.bool, - canDismiss: PropTypes.bool, - buttons: PropTypes.arrayOf(PropTypes.shape({ - text: PropTypes.string, - style: PropTypes.any, - callback: PropTypes.func, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - showButton: PropTypes.bool, - dialogStyle: PropTypes.object, - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible - } - static defaultProps = { - animationType: 'fade', - visible: false, - showTitle: true, - showSubtitle: false, - dialogStyle: { - unlimitedHeightEnable: false, - allowFontScaling: true, - titleNumberOfLines: 1, - subTitleNumberOfLines: 1, - titleStyle: {}, - subTitleStyle: {} - }, - canDismiss: true, - buttons: [ - { - text: strings.cancel - }, - { - text: strings.ok, - style: { - color: Styles.common.MHGreen - } - } - ], - showButton: true - } - constructor(props, context) { - super(props, context); - referenceReport('Dialog/AbstractDialog'); - this.state = { - visible: this.props.visible - }; - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.visible !== this.state.visible) { - this.setState({ visible: newProps.visible }); - } - } - /** - * 判断 控件高度是否自适应, true: 自适应,高度不固定, false: 高度固定 - * @private - */ - _checkUnlimitedHeightEnable() { - let result = false; - if (this.props.dialogStyle && this.props.dialogStyle.hasOwnProperty('unlimitedHeightEnable')) { - result = this.props.dialogStyle.unlimitedHeightEnable; - } - return result; - } - /** - * 标题部分 - */ - renderTitle() { - if (!this.props.showTitle) return null; - const { titleHeightFat, titleHeightThin } = Styles.dialog.title; - let height = { - height: this.props.showSubtitle ? titleHeightFat : titleHeightThin - }; - const marginBottom = this.props.showSubtitle ? { marginBottom: 6 } : {}; - let language = Host.locale.language; - let titleLines = 1; - if (language !== 'zh') { - // 当前米家 app 语言不是中文 - titleLines = 3; - height.maxHeight = 86; - } - // 只给安卓手机设置字体为空字符串 - let fontFamily = {}; - if (Platform.OS === 'android') { - // Android 设备或模拟器 - fontFamily.fontFamily = ''; - } - let titleNumberOfLines = titleLines; - let subTitleNumberOfLines = 1; - if (this.props.dialogStyle) { - if (this.props.dialogStyle.hasOwnProperty('titleNumberOfLines') && this.props.dialogStyle.titleNumberOfLines > 1) { - titleNumberOfLines = this.props.dialogStyle.titleNumberOfLines; - height = null; - } - if (this.props.dialogStyle.hasOwnProperty('subTitleNumberOfLines') && this.props.dialogStyle.subTitleNumberOfLines > 1) { - subTitleNumberOfLines = this.props.dialogStyle.subTitleNumberOfLines; - height = null; - } - if (this._checkUnlimitedHeightEnable()) { - // unlimitedHeightEnable = true, 不限制高度 - height = null; - } - } - return ( - - - {this.props.title || ''} - - {this.props.showSubtitle - ? - {this.props.subtitle} - - : null - } - - ); - } - /** - * 中间内容 - */ - renderContent() { - if (this.props.children) return this.props.children; - return ( - - - - ⬆️可自定义标题和副标题⬆️ - 可自定义内容 - ⬇️可自定义按钮文字和样式⬇️ - - - - ); - } - /** - * 底部按钮 - */ - renderButtonGroup() { - if (!this.props.showButton) return null; - const buttons = this.props.buttons; - if (!(buttons instanceof Array)) return null; - if (buttons.length === 1) return this.renderOneButton(buttons); - if (buttons.length === 2) return this.renderTwoButtons(buttons); - else { - if (__DEV__ && console.warn) { - console.warn('只允许设置1~2个按钮'); - } - return null; - } - } - /** - * 一个按钮 - * @param {object[]} buttons - */ - renderOneButton(buttons) { - const button0 = buttons[0]; - if (typeof button0 !== 'object') return null; - let callback = button0.callback; - if (callback === undefined || !(callback instanceof Function)) { - callback = () => this.dismiss(); - } - let height = Styles.dialog.buttons.height; - let buttonNumberOfLines; - if (button0.hasOwnProperty('numberOfLines')) { - buttonNumberOfLines = button0.numberOfLines; - if (buttonNumberOfLines > 1) { - height = null; - } - } - let allowFontScaling = this.props.dialogStyle.allowFontScaling; - if (button0.hasOwnProperty('allowFontScaling')) { - allowFontScaling = button0.allowFontScaling; - } - if (this._checkUnlimitedHeightEnable()) { - height = null; - } - return ( - - - - {button0.text || strings.ok} - - - - ); - } - /** - * 两个按钮 - * @param {object[]} buttons - */ - renderTwoButtons(buttons) { - const button0 = buttons[0], button1 = buttons[1]; - if (typeof button0 !== 'object' - || typeof button1 !== 'object') return null; - let callback0 = button0.callback; - let callback1 = button1.callback; - if (callback0 === undefined || !(callback0 instanceof Function)) { - callback0 = () => this.dismiss(); - } - if (callback1 === undefined || !(callback1 instanceof Function)) { - callback1 = () => this.dismiss(); - } - let height = Styles.dialog.buttons.height; - let button0NumberOfLines; - let button1NumberOfLines; - if (button0.hasOwnProperty('numberOfLines')) { - button0NumberOfLines = button0.numberOfLines; - if (button0NumberOfLines > 1) { - height = null; - } - } - if (button1.hasOwnProperty('numberOfLines')) { - button1NumberOfLines = button1.numberOfLines; - if (button1NumberOfLines > 1) { - height = null; - } - } - if (this._checkUnlimitedHeightEnable()) { - height = null; - } - let button0AllowFontScaling = this.props.dialogStyle.allowFontScaling; - let button1AllowFontScaling = button0AllowFontScaling; - if (button0.hasOwnProperty('allowFontScaling')) { - button0AllowFontScaling = button0.allowFontScaling; - } - if (button1.hasOwnProperty('allowFontScaling')) { - button1AllowFontScaling = button0.allowFontScaling; - } - return ( - - - - {button0.text || strings.cancel} - - - { - Platform.select({ - android: - , - ios: - - }) - } - - - {button1.text || strings.ok} - - - - ); - } - render() { - return ( - this.dismiss()} - > - - this.dismiss()} > - - - - {this.renderTitle()} - {this.renderContent()} - {this.renderButtonGroup()} - - - - ); - } - /** - * 隐藏 Modal - */ - dismiss() { - if (this.props.canDismiss) { - this.setState({ visible: false }); - this.props.onDismiss && this.props.onDismiss(); - } - } -} -const styles = StyleSheet.create({ - titleContainer: { - justifyContent: 'center', - alignItems: 'center' - }, - content: { - width: Styles.dialog.modal.width, - height: 150, - justifyContent: 'center', - alignItems: 'center' - } -}); \ No newline at end of file +import { AbstractDialog } from 'mhui-rn'; +export default AbstractDialog; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/ActionSheet.js b/miot-sdk/ui/Dialog/ActionSheet.js index 0c8a496ad..3a2738344 100644 --- a/miot-sdk/ui/Dialog/ActionSheet.js +++ b/miot-sdk/ui/Dialog/ActionSheet.js @@ -1,144 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { View } from 'react-native'; -import ChoiceItem from '../ListItem/ChoiceItem'; -import Separator from '../Separator'; -import AbstractDialog from './AbstractDialog'; -import tr from "../../resources/strings/tr"; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -/** - * 可点击的选项 - * @typedef {Object} Opiton - * @property {string} title - 主文案 - * @property {string} subtitle - 副文案 - * @property {function} onPress - 点击回调函数 - */ -/** - * 按钮 - * @typedef {Object} Button - * @property {string} text - 按钮的文字 - * @property {style} style - 按钮的样式 - * @property {bool} allowFontScaling - text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @property {number} numberOfLines - text文字的行数, 默认 undefined (兼容旧版) - * @property {function} callback - 点击按钮的回调函数 - */ -/** - * @export - * @author Geeook - * @since 10022 - * @module ActionSheet - * @description 选项弹窗,无选择态,点击后弹窗消失 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {Opiton[]} options - 可点击的选项 - * @param {Button[]} buttons - 按钮数组,定义底部按钮的属性,只能显示1~2个按钮,多传将失效。默认左取消右确定,左灰右绿,点击回调都是隐藏 Modal - * @param {Object} dialogStyle - 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.allowFontScaling - dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {bool} dialogStyle.unlimitedHeightEnable - 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {style} dialogStyle.itemTitleStyle - 控制item title 样式 - * @param {style} dialogStyle.itemSubtitleStyle - 控制item subtitle 样式 - * @param {bool} dialogStyle.itemTitleNumberOfLines - 控制item title 行数 默认为1 - * @param {bool} dialogStyle.itemSubtitleNumberOfLines - 控制item subtitle 行数 默认为1 - * @param {function} onDismiss - Modal 隐藏时的回调函数 - * @param {bool} canDismiss - 点击背景时是否隐藏,默认ture - */ -export default class ActionSheet extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - dialogStyle: PropTypes.object, - options: PropTypes.arrayOf(PropTypes.shape({ - title: PropTypes.string, - subtitle: PropTypes.string, - onPress: PropTypes.func, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - buttons: PropTypes.arrayOf(PropTypes.shape({ - text: PropTypes.string, - style: PropTypes.any, - callback: PropTypes.func, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - onDismiss: PropTypes.func, - canDismiss: PropTypes.bool, - accessible: AccessibilityPropTypes.accessible - } - static defaultProps = { - options: [], - canDismiss: true, - dialogStyle: { - allowFontScaling: true, - unlimitedHeightEnable: false, - itemTitleStyle: {}, - itemSubtitleStyle: {}, - itemTitleNumberOfLines: 1, - itemSubtitleNumberOfLines: 1 - } - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.visible !== this.state.visible) { - this.setState({ visible: newProps.visible }); - } - } - constructor(props, context) { - super(props, context); - referenceReport('ActionSheet'); - this.state = { - visible: props.visible - }; - } - render() { - return ( - this._onDismiss()} - canDismiss={this.props.canDismiss} - {...getAccessibilityConfig({ - accessible: this.props.accessible - })} - > - {this.props.options.map((option, index) => { - return ( - - this._onPress(option.onPress)} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.button, - accessibilityLabel: option.accessibilityLabel, - accessibilityHint: option.accessibilityHint - })} - /> - - - ); - })} - - ); - } - _onPress(callback) { - callback && callback(); - this.setState({ visible: false }); - this._onDismiss(); - } - _onDismiss() { - this.props.onDismiss && this.props.onDismiss(); - } -} \ No newline at end of file +import { ActionSheet } from 'mhui-rn'; +export default ActionSheet; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/ChoiceDialog.js b/miot-sdk/ui/Dialog/ChoiceDialog.js index 184c8c011..78ebf3856 100644 --- a/miot-sdk/ui/Dialog/ChoiceDialog.js +++ b/miot-sdk/ui/Dialog/ChoiceDialog.js @@ -1,211 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { View } from 'react-native'; -import ChoiceItem from '../ListItem/ChoiceItem'; -import Separator from '../Separator'; -import AbstractDialog from './AbstractDialog'; -import { AccessibilityPropTypes, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -/** - * @description 选择弹窗的类型 - * @enum {string} - */ -const TYPE = { - /** - * 单选弹窗,将不显示底部按钮,点击某项之后弹窗消失 - */ - SINGLE: 'single', - /** - * 多选弹窗 - */ - MULTIPLE: 'multiple' -}; -Object.freeze(TYPE); -/** - * 可选项 - * @typedef {Object} Opiton - * @property {string} title - 主文案 - * @property {string} subtitle - 副文案 - */ -/** - * 按钮 - * @typedef {Object} Button - * @property {string} text - 按钮的文字 - * @property {style} style - 按钮的样式 - * @property {function} callback - 点击按钮的回调函数 - */ -/** - * @export - * @author Geeook - * @since 10022 - * @module ChoiceDialog - * @description 选项弹窗,有选择态,可以定义是单选还是多选 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {TYPE} type - 选项弹窗类型,定义是单选弹窗还是多选弹窗,默认是单选弹窗 - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {string} title - 标题 - * @param {Opiton[]} options - 可选项 - * @param {number[]} selectedIndexArray - 选中选项的下标,默认全部未选中 - * @param {string} color - 选中态颜色,单选时表示选中文字颜色,多选时表示勾选框勾选背景颜色,默认米家绿 - * @param {number} icon - 选项被选中时的选中图标,放在文字前面,`TYPE.SINGLE`可用,默认绿色右箭头图片 - * @param {Button[]} buttons - 按钮数组,定义底部按钮的属性,只能显示1~2个按钮,多传将失效。默认左取消右确定,左灰右绿,点击回调都是隐藏 Modal - * @param {Object} dialogStyle - 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.allowFontScaling - dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {bool} dialogStyle.unlimitedHeightEnable - 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {ViewPropTypes.style} dialogStyle.titleStyle - 控制title 文字的样式 - * @param {style} dialogStyle.itemTitleStyle - 控制item title 样式 - * @param {style} dialogStyle.itemSubtitleStyle - 控制item subtitle 样式 - * @param {bool} dialogStyle.itemTitleNumberOfLines - 控制item title 行数 默认为1 - * @param {bool} dialogStyle.itemSubtitleNumberOfLines - 控制item subtitle 行数 默认为1 - * @param {function} onSelect - 选项选择后的确认回调,返回选中选项的下标数组,`TYPE.SINGLE`可用 - * @param {function} onDismiss - Modal 隐藏时的回调函数 - */ -export default class ChoiceDialog extends React.Component { - static propTypes = { - animationType: PropTypes.string, - type: PropTypes.oneOf([TYPE.STATELESS, TYPE.SINGLE, TYPE.MULTIPLE]), - visible: PropTypes.bool, - options: PropTypes.arrayOf(PropTypes.shape({ - title: PropTypes.string, - subtitle: PropTypes.string, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - selectedIndexArray: PropTypes.arrayOf(PropTypes.number), - color: PropTypes.string, - icon: PropTypes.number, - buttons: PropTypes.arrayOf(PropTypes.shape({ - text: PropTypes.string, - style: PropTypes.any, - callback: PropTypes.func - })), - title: PropTypes.string, - dialogStyle: PropTypes.object, - onSelect: PropTypes.func, - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible - } - static defaultProps = { - type: TYPE.SINGLE, - options: [], - selectedIndexArray: [], - dialogStyle: { - allowFontScaling: true, - unlimitedHeightEnable: false, - titleStyle: {}, - itemTitleStyle: {}, - itemSubtitleStyle: {}, - itemTitleNumberOfLines: 1, - itemSubtitleNumberOfLines: 1 - } - } - /** - * @description 选择弹窗的类型 - * @enum {string} - */ - static TYPE = TYPE - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.visible !== this.state.visible) { - this.setState({ visible: newProps.visible }); - } - const selectedArray = Array.from({ length: newProps.options.length }, - (v, i) => newProps.selectedIndexArray.includes(i)); - this.setState({ selectedArray }); - } - constructor(props, context) { - super(props, context); - referenceReport('Dialog/ChoiceDialog'); - const buttons = props.buttons; - if (buttons instanceof Array) { - const button = buttons[buttons.length - 1]; // 取最后一个按钮进行拦截 - if (button && button.callback) { - const callbackOrigin = button.callback; - button.callback = () => { - const selectedIndexArray = []; - for (let i = 0; i < this.state.selectedArray.length; i++) { - const item = this.state.selectedArray[i]; - if (item) selectedIndexArray.push(i); - } - callbackOrigin(selectedIndexArray); - }; - } - } - this.buttons = buttons; - this.state = { - visible: props.visible, - selectedArray: [] - }; - } - render() { - if (!this.props.visible) return null; - return ( - this._onDismiss()} - {...getAccessibilityConfig({ - accessibilityLabel: this.props.accessible - })} - > - {this.props.options.map((option, index) => { - return ( - - - this._onPress(selected, index)} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityLabel: option.accessibilityLabel, - accessibilityHint: option.accessibilityHint - })} - /> - - ); - })} - {this.props.type === TYPE.MULTIPLE - ? - : null - } - - ); - } - _onPress(selected, index) { - if (selected) console.log(`第${ index + 1 }项被选中`); - else console.log(`第${ index + 1 }项取消选中`); - if (this.props.type === TYPE.SINGLE) { - const selectedArray = Array.from({ length: this.props.options.length }, () => false); - selectedArray[index] = selected; - this.setState({ - selectedArray, - visible: false - }); - this._onDismiss(); - this.props.onSelect && this.props.onSelect([index]); - } else { - const selectedArray = this.state.selectedArray; - selectedArray[index] = selected; - this.setState({ selectedArray }); - } - } - _onDismiss() { - this.props.onDismiss && this.props.onDismiss(); - } -} \ No newline at end of file +import { ChoiceDialog } from 'mhui-rn'; +export default ChoiceDialog; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/InputDialog.js b/miot-sdk/ui/Dialog/InputDialog.js index bce7a3056..077c77ec6 100644 --- a/miot-sdk/ui/Dialog/InputDialog.js +++ b/miot-sdk/ui/Dialog/InputDialog.js @@ -1,431 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, StyleSheet, Text, TouchableOpacity, View, Platform } from 'react-native'; -import { RkTextInput, RkTheme } from 'react-native-ui-kitten'; -import { Styles } from '../../resources'; -import Checkbox from '../Checkbox/Checkbox'; -import Separator from '../Separator'; -import AbstractDialog from "./AbstractDialog"; -import { AccessibilityRoles, AccessibilityPropTypes, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const paddingHorizontal = 29; // 内容的左右边距 -const paddingVertical = 23; // 内容的上下边距 -const paddingTop = 13; // 输入框和下方内容的间距 -const paddingBottom = 6; // 输入框和上方内容的间距 -const { height } = Dimensions.get('window'); -/** - * @description 输入弹窗的类型 - * @enum {string} - */ -const TYPE = { - /** - * 普通,只有输入框 - */ - SIMPLE: 'simple', - /** - * 输入框上方有文字说明和下划线超链接 - */ - UNDERLINE: 'underline', - /** - * 输入框下方有勾选框和文字 - */ - CHECKBOX: 'checkbox', - /** - * 输入框上方有文字说明和下划线超链接 - * 输入框下方有勾选框和文字 - */ - BOTH: 'both' -}; -Object.freeze(TYPE); -/** - * 输入框上方的数据 - * @typedef {Object} UnderlineData - * @property {string} leftText - 左侧说明文字 - * @property {number} leftTextNumberOfLines - 10040新增 左侧文字 默认为1 - * @property {ViewPropTypes.style} leftTextStyle - 10040新增 左侧文字的样式 - * @property {string} underlineText - 右侧下划线文字 - * @property {number} underlineTextNumberOfLines - 10040新增 右侧下划线文字能够显示的行数 默认为1 - * @property {ViewPropTypes.style} underlineTextStyle - 10040新增 右侧下划线文字的样式 - * @property {function} onPress - 点击下划线文字的回调函数 - */ -/** - * 输入框 - * @typedef {Object} Input - * @property {string} placeholder - 占位文字,参考 https://facebook.github.io/react-native/docs/0.54/textinput#placeholder - * @property {string} defaultValue - 初始默认文字,参考 https://facebook.github.io/react-native/docs/0.54/textinput#defaultvalue - * @property {function} onChangeText - 文字变化回调,参考 https://facebook.github.io/react-native/docs/0.54/textinput#onchangetext - * @property {Object} textInputProps - 其他 TextInput 支持的属性,参考 https://facebook.github.io/react-native/docs/0.54/textinput#props - */ -/** - * 勾选框相关数据 - * @typedef {Object} CheckboxData - * @property {boolean} checked - 勾选框的初始勾选状态 - * @property {string} text - 勾选框右侧的说明文字 - * @property {number} numberOfLines - 10040新增 勾选框右侧的说明文字能够显示的行数 默认为1 - * @property {ViewPropTypes.style} textStyle - 10040新增 勾选框右侧说明文字的样式 - */ -/** - * 按钮 - * @typedef {Object} Button - * @property {string} text - 按钮的文字 - * @property {style} style - 按钮的样式 - * @property {bool} allowFontScaling - 10040新增 text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @property {number} numberOfLines - 10040新增 text文字的行数, 默认 undefined (兼容旧版) - * @property {function} callback - 点击按钮的回调函数 - */ -/** - * @export - * @author Geeook - * @since 10021 - * @module InputDialog - * @description 输入弹窗,提示用户录入信息并记录。输入框弹窗的业务场景有时候会很复杂,如果本组件无法满足你的业务需求,请使用 `AbstractDialog` 参考本组件源码自行实现 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {TYPE} type - 输入弹窗的类型。是否只有输入框,输入框上方是否有下划线超链接,输入框下方是否有勾选项,详见 `TYPE`,默认 `TYPE.SIMPLE` - * @param {string} color - 下划线超链接的文字颜色 / 勾选框的勾选颜色,默认米家绿 - * @param {string} title - 标题文字 - * @param {UnderlineData} underlineData - 输入框上方的数据,包括左侧说明文字,右侧下划线文字及其点击回调函数,只对 `TYPE.UNDERLINE` 和 `TYPE.BOTH` 有效 - * @param {Input[]} inputs - 输入框数组,定义输入框的属性,对所有的 `TYPE` 有效 - * @param {CheckboxData} checkboxData - 输入框下方的数据,包括勾选状态,描述文字,只对 `TYPE.CHECKBOX` 和 `TYPE.BOTH` 有效 - * @param {Button[]} buttons - 按钮数组,定义底部按钮的属性,只能显示1~2个按钮,多传将失效。默认左取消右确定,左灰右绿,点击回调都是隐藏 Modal - * @param {Object} dialogStyle - 10040新增 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.allowFontScaling - 10040新增 dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {number} dialogStyle.titleNumberOfLines - 10040新增 控制title 文字的行数, 默认 1行 - * @param {bool} dialogStyle.unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {ViewPropTypes.style} dialogStyle.titleStyle - 10040新增 控制title 文字的样式 - * @param {function} onDismiss - Modal 隐藏时的回调函数 - */ -export default class InputDialog extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - type: PropTypes.oneOf([TYPE.SIMPLE, TYPE.UNDERLINE, TYPE.CHECKBOX, TYPE.BOTH]), - color: PropTypes.string, - title: PropTypes.string, - dialogStyle: PropTypes.object, - extra: PropTypes.object, - underlineData: PropTypes.shape({ - leftText: PropTypes.string, - underlineText: PropTypes.string, - onPress: PropTypes.func, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - }), - inputs: PropTypes.arrayOf(PropTypes.shape({ - placeholder: PropTypes.string, - defaultValue: PropTypes.string, - onChangeText: PropTypes.func, - textInputProps: PropTypes.object, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - checkboxData: PropTypes.shape({ - checked: PropTypes.bool, - text: PropTypes.string, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - }), - buttons: PropTypes.arrayOf(PropTypes.shape({ - text: PropTypes.string, - style: PropTypes.any, - callback: PropTypes.func, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible - } - static defaultProps = { - type: TYPE.SIMPLE, - color: Styles.common.MHGreen, - underlineData: {}, - checkboxData: {}, - dialogStyle: { - allowFontScaling: true, - unlimitedHeightEnable: false, - titleNumberOfLines: 1, - titleStyle: {} - } - } - /** - * @description 输入弹窗的类型 - * @enum {string} - */ - static TYPE = TYPE - constructor(props, context) { - super(props, context); - referenceReport('Dialog/InputDialog'); - this.state = { - checked: props.checkboxData.checked || false - }; - RkTheme.setType('RkTextInput', 'mhtextinput', { - input: { - marginVertical: 0, - color: '#000000', - marginLeft: 16, - fontSize: 14 - }, - underlineWidth: 0.3, - marginVertical: 0, - placeholderTextColor: '#999999', - minHeight: 40, - backgroundColor: '#f9f9f9', - borderRadius: 6, - borderWidth: 0.3, - borderColor: '#e5e5e5' - }); - this.process(props); - } - UNSAFE_componentWillReceiveProps(props) { - this.setState({ - checked: props.checkboxData.checked || false - }); - this.process(props); - } - process(props) { - // 默认一个 Input - this.textInputArray = []; - this.inputs = props.inputs || [{ - placeholder: '自定义占位字符', - defaultValue: '自定义默认值', - textInputProps: { autoFocus: true } - }]; - // 拦截 onChangeText,记录输入文字 - for (let i = 0; i < this.inputs.length; i++) { - const input = this.inputs[i]; - if (input !== undefined) { - this.textInputArray.push(input.defaultValue || ''); - const onChangeTextOrigin = input.onChangeText; - input.onChangeText = (text) => { - this._onChangeText(text, i); - if (onChangeTextOrigin instanceof Function) { - onChangeTextOrigin(text); - } - }; - } - } - // this.state.checked = props.checkboxData.checked || false; - // this.setState({ - // checked: props.checkboxData.checked || false - // }); - this.hasPressUnderlineText = false; - // 拦截确认按钮的回调函数,传入 InputDialog 的一些信息 - const buttons = props.buttons; - if (buttons instanceof Array) { - const button = buttons[buttons.length - 1]; - if (button && button.callback) { - const callbackOrigin = button.callback; - button.callback = () => { - callbackOrigin({ - hasPressUnderlineText: this.hasPressUnderlineText, - checked: this.state.checked, - textInputArray: this.textInputArray - }); - }; - } - } - this.buttons = buttons; - } - /** - * 拦截onChangeText事件,记录输入值 - */ - _onChangeText(text, index) { - this.textInputArray[index] = text; - } - /** - * 输入框上方的文字说明和下划线超链接 - */ - renderUpExtra() { - if (this.props.type === TYPE.BOTH - || this.props.type === TYPE.UNDERLINE) { - const { leftText, underlineText, accessibilityLabel, accessibilityHint } = this.props.underlineData; - let leftTextNumberOfLines = 1; - let underlineTextNumberOfLines = 1; - if (this.props.underlineData && this.props.underlineData.hasOwnProperty('leftTextNumberOfLines')) { - leftTextNumberOfLines = this.props.underlineData.leftTextNumberOfLines; - } - if (this.props.underlineData && this.props.underlineData.hasOwnProperty('underlineTextNumberOfLines')) { - underlineTextNumberOfLines = this.props.underlineData.underlineTextNumberOfLines; - } - return ( - - - {leftText || ''} - - this.onPressUnderlineText()} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.link, - accessibilityLabel, - accessibilityHint - })} - > - {underlineText || ''} - - - ); - } else return null; - } - /** - * 一组输入框 - */ - renderInputGroup() { - return this.inputs.map((input, index) => { - if (input === undefined) return null; - const margin = index === 0 ? {} : { marginTop: 12 }; - return ( - - ); - }); - } - /** - * 输入框下方的勾选框和文字 - */ - renderDownExtra() { - if (this.props.type === TYPE.BOTH - || this.props.type === TYPE.CHECKBOX) { - const { text, accessibilityLabel, accessibilityHint } = this.props.checkboxData; - let numberOfLines = 1; - if (this.props.checkboxData && this.props.checkboxData.hasOwnProperty('numberOfLines')) { - numberOfLines = this.props.checkboxData.numberOfLines; - } - return ( - this.onPressCheckbox()} - activeOpacity={1} - style={{ paddingTop }} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.checkbox, - accessibilityLabel: accessibilityLabel || text, - accessibilityHint: accessibilityHint, - accessibilityState: { - disabled: false, - checked: this.state.checked - } - })} - > - - { - this.setState({ - checked: checked - }); - }} - /> - - {text || ''} - - - - ); - } else return null; - } - render() { - if (!this.props.visible) return null; - const absDialogStyle = Platform.OS === 'ios' ? { bottom: ~~(height * 0.45) } : {}; - return ( - this._onDismiss()} - style={absDialogStyle} - {...getAccessibilityConfig({ - accessible: this.props.accessible - })} - > - - {this.renderUpExtra()} - {this.renderInputGroup()} - {this.renderDownExtra()} - - - - ); - } - _onDismiss() { - this.props.onDismiss && this.props.onDismiss(); - } - onPressUnderlineText() { - this.hasPressUnderlineText = true; - const { onPress } = this.props.underlineData; - onPress && onPress(); - } - onPressCheckbox() { - this.setState({ checked: !this.state.checked }); - } -} -const styles = StyleSheet.create({ - container: { - paddingHorizontal, - paddingBottom: paddingVertical, - backgroundColor: '#fff', - borderRadius: Styles.dialog.modal.borderRadius - }, - underlineContainer: { - paddingBottom, - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'space-around' - }, - label: { - fontSize: 14, - color: 'rgba(0,0,0,0.8)', - flex: 1 - }, - underlineText: { - flex: 1, - textAlign: 'right', - textDecorationLine: 'underline', - fontSize: 14 - }, - checkboxContainer: { - flexDirection: 'row', - alignItems: 'center' - }, - checkboxText: { - flex: 1, - marginLeft: 8, - fontSize: 14, - color: '#999' - } -}); \ No newline at end of file +import { InputDialog } from 'mhui-rn'; +export default InputDialog; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/LoadingDialog.js b/miot-sdk/ui/Dialog/LoadingDialog.js index f27805afe..970c5b02a 100644 --- a/miot-sdk/ui/Dialog/LoadingDialog.js +++ b/miot-sdk/ui/Dialog/LoadingDialog.js @@ -1,139 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { StyleSheet, Text, View } from 'react-native'; -import { BallIndicator } from 'react-native-indicators'; -import { Styles } from '../../resources'; -import AbstractDialog from "./AbstractDialog"; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -/** - * @export - * @author Geeook - * @since 10021 - * @module LoadingDialog - * @description 加载弹窗,显示加载旋转动画和提示信息 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {string} message - 显示文字 - * @param {number} timeout - Modal 隐藏的超时时间,如果不主动设置隐藏的话 - * @param {Object} dialogStyle - 10040新增 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.allowFontScaling - 10040新增 dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {number} dialogStyle.textNumberOfLines - 10040新增 控制message 文字的行数, 默认 undefined (兼容旧版) - * @param {bool} dialogStyle.unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {ViewPropTypes.style} dialogStyle.messageStyle - 10040新增 控制message 文字的样式 - * @param {function} onDismiss - Modal隐藏时的回调函数 - */ -export default class LoadingDialog extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - message: PropTypes.string, - timeout: PropTypes.number, - dialogStyle: PropTypes.object, - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible - } - static defaultProps = { - dialogStyle: { - allowFontScaling: true, - unlimitedHeightEnable: false, - messageStyle: {} - } - } - constructor(props, context) { - super(props, context); - referenceReport('Dialog/LoadingDialog'); - this.state = { - visible: this.props.visible - }; - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.visible !== this.state.visible) { - this.setState({ visible: newProps.visible }); - } - } - render() { - const timeout = this.props.timeout; - if (timeout && typeof parseInt(timeout) === "number") { - if (!this.state.visible) { - this.timer = null; - clearTimeout(this.timer); - } else { - if (!this.timer) { - this.timer = setTimeout(() => { - this.setState({ visible: false }); - this.props.onDismiss && this.props.onDismiss(); - }, parseInt(timeout)); - } - } - } - let heightStyle = { - height: styles.container.height, - minHeight: styles.container.height - }; - if (this.props.dialogStyle && this.props.dialogStyle.hasOwnProperty('textNumberOfLines')) { - if (this.props.dialogStyle.textNumberOfLines > 1) { - heightStyle.height = null; - } - } - if (this.props.dialogStyle && this.props.dialogStyle.unlimitedHeightEnable) { - heightStyle.height = null; - } - return ( - - - - - {this.props.message || ''} - - - - ); - } - componentWillUnmount() { - this.timer = null; - clearTimeout(this.timer); - } -} -const styles = StyleSheet.create({ - container: { - height: 74, - flexDirection: 'row', - alignItems: 'center', - backgroundColor: '#fff', - paddingHorizontal: 27, - borderRadius: Styles.dialog.modal.borderRadius - }, - indicator: { - position: 'absolute', - left: 27, - height: 20 - }, - message: { - marginLeft: 15 + 20, - flex: 1, - fontSize: 15, - color: 'rgba(0,0,0,0.8)' - } -}); \ No newline at end of file +import { LoadingDialog } from 'mhui-rn'; +export default LoadingDialog; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/MessageDialog.js b/miot-sdk/ui/Dialog/MessageDialog.js index e8f2fe491..30c29cc4c 100644 --- a/miot-sdk/ui/Dialog/MessageDialog.js +++ b/miot-sdk/ui/Dialog/MessageDialog.js @@ -1,306 +1,2 @@ -import PropTypes, { array } from 'prop-types'; -import React from 'react'; -import { StyleSheet, Text, TouchableOpacity, View } from 'react-native'; -import { Styles } from '../../resources'; -import Checkbox from '../Checkbox/Checkbox'; -import Separator from '../Separator'; -import AbstractDialog from "./AbstractDialog"; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const paddingHorizontal = 29; // 内容的左右边距 -const paddingVertical = 27; // 内容的上下边距 -const paddingTop = 13; // 内容和下划线文字间距 -/** - * @description 消息弹窗的类型 - * @enum {string} - */ -const TYPE = { - /** - * 普通,只有提示文字 - */ - SIMPLE: 'simple', - /** - * 带下划线超链接 - */ - UNDERLINE: 'underline', - /** - * 带勾选框 - */ - CHECKBOX: 'checkbox' -}; -Object.freeze(TYPE); -/** - * 下划线超链接或者勾选框需要的其他数据 - * @typedef {Object} Extra - * @property {boolean} checked - 勾选框的初始勾选状态,只对`TYPE.CHECKBOX`有效 - * @property {function} onPress - 点击下划线链接的回调函数,只对`TYPE.UNDERLINE`有效 - */ -/** - * 按钮 - * @typedef {Object} Button - * @property {string} text - 按钮的文字 - * @property {style} style - 按钮的样式 - * @property {bool} allowFontScaling - 10040新增 text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @property {number} numberOfLines - 10040新增 text文字的行数, 默认 undefined (兼容旧版) - * @property {function} callback - 点击按钮的回调函数 - */ -/** - * @export - * @author Geeook - * @since 10021 - * @module MessageDialog - * @description 消息弹窗,用于提示用户 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {TYPE} type - 消息弹窗的类型。是否只有提示文字,是否有下划线超链接,或者是否有勾选项,详见 `TYPE`,默认 `TYPE.SIMPLE` - * @param {string} color - 下划线超链接的文字颜色 / 勾选框的勾选颜色,默认米家绿 - * @param {string} title - 标题文字,不传或者为空字符串将不显示标题栏,默认不显示 - * @param {string} message - 提示信息文字,可显示单行或者多行,最多**15**行 - * @param {ViewPropTypes.style} messageStyle - 提示信息文字自定义样式 - * @param {string} extraText - 下划线超链接的文字 / 勾选框右侧的说明文字 - * @param {Extra} extra - 下划线超链接或者勾选框需要的其他数据,只对`TYPE.UNDERLINE`和`TYPE.CHECKBOX`有效 - * @param {Button[]} buttons - 按钮数组,定义底部按钮的属性,只能显示1~2个按钮,多传将失效。默认左取消右确定,左灰右绿,点击回调都是隐藏 Modal - * @param {Object} dialogStyle - 10040新增 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.allowFontScaling - 10040新增 dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {number} dialogStyle.titleNumberOfLines - 10040新增 控制 title 文字的行数, 默认 1行 - * @param {number} dialogStyle.messageNumberOfLines - 10040新增 控制 message 文字的行数,默认 15行 - * @param {number} dialogStyle.extraTextNumberOfLines - 10040新增 控制 extraText 文字的行数,默认 1行 - * @param {bool} dialogStyle.unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {ViewPropTypes.style} dialogStyle.titleStyle - 10040新增 控制title 文字的样式 - * @param {ViewPropTypes.style} dialogStyle.extraTextStyle - 10040新增 控制extraText 文字的样式 - * @param {function} onDismiss - Modal 隐藏时的回调函数 - */ -export default class MessageDialog extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - type: PropTypes.oneOf([TYPE.SIMPLE, TYPE.UNDERLINE, TYPE.CHECKBOX]), - color: PropTypes.string, - title: PropTypes.string, - message: PropTypes.string, - messageStyle: Text.propTypes.style, - extraText: PropTypes.string, - extra: PropTypes.object, - buttons: PropTypes.arrayOf(PropTypes.object), - dialogStyle: PropTypes.object, - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible, - // UNDERLINE 或CHECKBOX 才有效 - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - type: TYPE.SIMPLE, - color: Styles.common.MHGreen, - message: `请自定义提示文案`, - messageStyle: {}, - dialogStyle: { - allowFontScaling: true, - unlimitedHeightEnable: false, - titleNumberOfLines: 1, - messageNumberOfLines: 15, - extraTextNumberOfLines: 1, - titleStyle: {}, - extraTextStyle: {} - }, - extra: {} - } - /** - * @description 消息弹窗的类型 - * @enum {string} - */ - static TYPE = TYPE - constructor(props, context) { - super(props, context); - referenceReport('Dialog/MessageDialog'); - this.state = { - checked: props.extra.checked || false - }; - this.process(props); - } - UNSAFE_componentWillReceiveProps(props) { - this.setState({ - checked: props.extra.checked || false - }); - this.process(props); - } - process(props) { - // this.state.checked = props.extra.checked || false; - // this.setState({ - // checked: props.extra.checked || false - // }); - this.hasPressUnderlineText = false; - // 拦截确认按钮的回调函数,传入 MesaageDialog 的一些信息 - const buttons = props.buttons; - if (buttons instanceof Array) { - const button = buttons[buttons.length - 1]; - if (button && button.callback) { - const callbackOrigin = button.callback; - button.callback = () => { - if (props.type === TYPE.UNDERLINE) { - callbackOrigin({ hasPressUnderlineText: this.hasPressUnderlineText }); - } else if (props.type === TYPE.CHECKBOX) { - callbackOrigin({ checked: this.state.checked }); - } else { - callbackOrigin({}); - } - }; - } - } - this.buttons = buttons; - } - renderExtra() { - let extraTextNumberOfLines = 1; - if (this.props.dialogStyle && this.props.dialogStyle.hasOwnProperty('extraTextNumberOfLines')) { - extraTextNumberOfLines = this.props.dialogStyle.extraTextNumberOfLines; - } - switch (this.props.type) { - case TYPE.SIMPLE: - return null; - case TYPE.UNDERLINE: - return ( - - this.onPressUnderlineText()} - > - {this.props.extraText || ''} - - - ); - case TYPE.CHECKBOX: - return ( - this.onPressCheckbox()} - activeOpacity={1} - style={{ paddingTop }} - {...getAccessibilityConfig({ - accessible: false - })} - > - - { - this.setState({ - checked: checked - }); - }} - /> - - {this.props.extraText || ''} - - - - ); - default: - return null; - } - } - render() { - if (!this.props.visible) return null; - const showTitle = !!this.props.title; - const paddingTop = showTitle ? { paddingTop: 0 } : {}; // 有标题的时候,去掉顶部边距 - let messageNumberOfLines = 15; - if (this.props.dialogStyle && this.props.dialogStyle.hasOwnProperty('messageNumberOfLines')) { - messageNumberOfLines = this.props.dialogStyle.messageNumberOfLines; - } - return ( - this._onDismiss()} - {...getAccessibilityConfig({ - accessible: this.props.accessible - })} - > - - - {this.props.message || ''} - - {this.renderExtra()} - - - - ); - } - _onDismiss() { - this.props.onDismiss && this.props.onDismiss(); - } - onPressUnderlineText() { - this.hasPressUnderlineText = true; - const { onPress } = this.props.extra; - onPress && onPress(); - } - onPressCheckbox() { - this.setState({ checked: !this.state.checked }); - } -} -const styles = StyleSheet.create({ - container: { - paddingHorizontal, - paddingVertical, - backgroundColor: '#fff', - borderRadius: Styles.dialog.modal.borderRadius - }, - message: { - fontSize: 15, - color: '#666', - lineHeight: 22, - fontFamily: 'MI-LANTING--GBK1-Light', - fontWeight: '400' - }, - underlineText: { - flex: 1, - textDecorationLine: 'underline', - fontSize: 14 - }, - extraContainer: { - flexDirection: 'row', - alignItems: 'center' - }, - checkboxText: { - flex: 1, - marginLeft: 8, - fontSize: 14, - color: '#999' - } -}); \ No newline at end of file +import { MessageDialog } from 'mhui-rn'; +export default MessageDialog; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/PinCodeDialog.js b/miot-sdk/ui/Dialog/PinCodeDialog.js index cb7b9e677..02d286e27 100644 --- a/miot-sdk/ui/Dialog/PinCodeDialog.js +++ b/miot-sdk/ui/Dialog/PinCodeDialog.js @@ -1,359 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, StyleSheet, Text, TextInput, TouchableOpacity, View, Platform } from 'react-native'; -import { Styles } from '../../resources'; -import Checkbox from '../Checkbox/Checkbox'; -import Separator from '../Separator'; -import AbstractDialog from "./AbstractDialog"; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const paddingHorizontal = 29; // 内容的左右边距 -const paddingVertical = 26; // 内容的上下边距 -const marginVertical = 30; // 输入框和上下内容的间距 -const blockSize = 45; // 小方块的尺寸 -const { height } = Dimensions.get('window'); -/** - * 勾选框相关数据 - * @typedef {Object} CheckboxData - * @property {boolean} checked - 勾选框的初始勾选状态 - * @property {string} text - 勾选框右侧的说明文字 - * @property {number} numberOfLines - 10040新增 勾选框右侧的说明文字能够显示的行数 默认为1 - * @property {ViewPropTypes.style} textStyle - 10040新增 控制text 文字的样式 - */ -/** - * 按钮 - * @typedef {Object} Button - * @property {string} text - 按钮的文字 - * @property {style} style - 按钮的样式 - * @property {bool} allowFontScaling - 10040新增 text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @property {number} numberOfLines - 10040新增 text文字的行数, 默认 undefined (兼容旧版) - * @property {function} callback - 点击按钮的回调函数 - */ -/** - * @export - * @author Geeook - * @since 10021 - * @module PinCodeDialog - * @description 密码/验证码弹窗,用于输入密码/验证码 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {string} title - 标题文字 - * @param {string} message - 文字说明 - * @param {number} digit - 输入框数量,允许3~6个,默认是6个 - * @param {string} color - 勾选框的勾选颜色 / 输入框focus时的边框颜色,默认米家绿 - * @param {CheckboxData} checkboxData - 输入框下方的勾选状态和描述文字,如果不传将不显示 - * @param {Button[]} buttons - 按钮数组,定义底部按钮的属性,只能显示1~2个按钮,多传将失效。默认左取消右确定,左灰右绿,点击回调都是隐藏 Modal - * @param {Object} dialogStyle - 10040新增 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.allowFontScaling - 10040新增 dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {number} dialogStyle.titleNumberOfLines - 10040新增 控制title 文字的行数, 默认 1行 - * @param {number} dialogStyle.messageNumberOfLines - 10040新增 控制message 文字的行数, 默认 15行 - * @param {bool} dialogStyle.unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {ViewPropTypes.style} dialogStyle.titleStyle - 10040新增 控制title 文字的样式 - * @param {ViewPropTypes.style} dialogStyle.messageStyle - 10040新增 控制message 文字的样式 - * @param {ViewPropTypes.style} dialogStyle.digitStyle - 10040新增 控制digit 输入框中的 文字的样式 - * @param {function} onDismiss - Modal 隐藏时的回调函数 - */ -export default class PinCodeDialog extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - title: PropTypes.string, - message: PropTypes.string, - digit: PropTypes.oneOf([3, 4, 5, 6]), - color: PropTypes.any, - dialogStyle: PropTypes.object, - checkboxData: PropTypes.shape({ - checked: PropTypes.bool, - text: PropTypes.string, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - }), - buttons: PropTypes.arrayOf(PropTypes.shape({ - text: PropTypes.string, - style: PropTypes.any, - callback: PropTypes.func, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible - } - static defaultProps = { - digit: 6, - color: Styles.common.MHGreen, - checkboxData: {}, - dialogStyle: { - unlimitedHeightEnable: false, - allowFontScaling: true, - titleNumberOfLines: 1, - messageNumberOfLines: 15, - titleStyle: {}, - messageStyle: {}, - digitStyle: {} - } - } - UNSAFE_componentWillReceiveProps(props) { - if (props.visible === true) { - this.setState({ - numArr: Array.from({ length: this.digit }, () => undefined), - value: '' - }); - } - this.setState({ - checked: (props.checkboxData || {})['checked'] || false - }); - this.process(props); - } - constructor(props, context) { - super(props, context); - referenceReport('Dialog/PinCodeDialog'); - this.digit = this.props.digit; - if (this.digit > 6 || this.digit < 3) { - this.digit = 6; - if (__DEV__ && console.warn) { - console.warn('digit should range within [3, 6]'); - } - } - const numArr = Array.from({ length: this.digit }, () => undefined); - this.state = { - numArr, - value: '', - checked: (props.checkboxData || {})['checked'] || false - }; - this.process(props); - } - process(props) { - const buttons = props.buttons; - if (buttons instanceof Array) { - const button = buttons[buttons.length - 1]; // 取最后一个按钮进行拦截 - if (button && button.callback) { - const callbackOrigin = button.callback; - button.callback = () => { - callbackOrigin({ - checked: this.state.checked, - numArr: this.state.numArr - }); - }; - } - } - this.buttons = buttons; - } - /** - * - * @param {string} text - */ - _onChangeText(text) { - console.log(text); - if (/^\d*$/.test(text)) { - if (text.length <= this.digit) { - const numArr = this.state.numArr.map((v, i) => text[i]); - this.setState({ numArr }); - } - this.setState({ value: text.slice(0, this.digit) }); - } else { - const value = text.match(/\d*/)[0]; - this.setState({ value }); - } - } - /** - * 输入框上方的文字说明 - */ - renderUpExtra() { - if (!this.props.message) return null; - let numberOfLines = 15; - if (this.props.dialogStyle && this.props.dialogStyle.hasOwnProperty('messageNumberOfLines')) { - numberOfLines = this.props.dialogStyle.messageNumberOfLines; - } - return ( - - {this.props.message || ''} - - ); - } - /** - * 一组Text - */ - renderTextGroup() { - return Array.from({ length: this.digit }, (v, i) => i) - .map((v, i) => { - const marginLeft = i === 0 ? {} : { marginLeft: 66 / this.digit }; - const focusIndex = this.state.numArr.indexOf(undefined); - const borderColor = i === focusIndex ? { borderColor: this.props.color } : {}; - return ( - - - {this.state.numArr[i] || ''} - - - ); - }); - } - /** - * 输入框下方的勾选框和文字 - */ - renderDownExtra() { - if (!(this.props.checkboxData instanceof Object)) return null; - let numberOfLines = 1; - if (this.props.checkboxData && this.props.checkboxData.hasOwnProperty('numberOfLines')) { - numberOfLines = this.props.checkboxData.numberOfLines; - } - const { text, accessibilityLabel, accessibilityHint } = this.props.checkboxData; - return ( - this.onPressCheckbox()} - activeOpacity={1} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.checkbox, - accessibilityLabel, - accessibilityHint, - accessibilityState: { - disabled: false, - checked: this.state.checked - } - })} - > - - { - this.setState({ - checked: checked - }); - }} - /> - - {text || ''} - - - - ); - } - render() { - if (!this.props.visible) return null; - const absDialogStyle = Platform.OS === 'ios' ? { bottom: ~~(height * 0.38) } : {}; - return ( - this._onDismiss()} - style={absDialogStyle} - {...getAccessibilityConfig({ - accessible: this.props.accessible - })} - > - - {this.renderUpExtra()} - - - {this.renderTextGroup()} - - this._onChangeText(text)} - keyboardType="numeric" - /> - - {this.renderDownExtra()} - - - - ); - } - _onDismiss() { - this.props.onDismiss && this.props.onDismiss(); - } - onPressCheckbox() { - this.setState({ checked: !this.state.checked }); - } -} -const styles = StyleSheet.create({ - container: { - paddingHorizontal, - paddingBottom: paddingVertical, - backgroundColor: '#fff', - borderRadius: Styles.dialog.modal.borderRadius - }, - message: { - fontSize: 15, - color: '#666666', - lineHeight: 18, - flex: 1 - }, - pinCodeContainer: { - marginVertical, - alignItems: 'center', - justifyContent: 'center' - }, - textinput: { - position: 'absolute', - width: Styles.dialog.modal.width - paddingHorizontal * 2, - height: 45 + marginVertical * 2, - backgroundColor: 'transparent', - color: 'transparent' - }, - textGroup: { - flexDirection: 'row', - alignItems: 'center', - backgroundColor: '#fff' - }, - blockContainer: { - height: blockSize, - width: blockSize, - backgroundColor: '#ffffff', - borderRadius: 2, - borderWidth: 0.8, - borderColor: '#cccccc', - alignItems: 'center', - justifyContent: 'center' - }, - blockText: { - color: '#000000', - fontSize: 30 - }, - checkboxContainer: { - flexDirection: 'row', - alignItems: 'center' - }, - checkboxText: { - flex: 1, - marginLeft: 8, - fontSize: 14, - color: '#999' - } -}); \ No newline at end of file +import { PinCodeDialog } from 'mhui-rn'; +export default PinCodeDialog; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/ProgressDialog.js b/miot-sdk/ui/Dialog/ProgressDialog.js index 11f2f6958..7744bcc11 100644 --- a/miot-sdk/ui/Dialog/ProgressDialog.js +++ b/miot-sdk/ui/Dialog/ProgressDialog.js @@ -1,167 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { StyleSheet, Text, View } from 'react-native'; -import * as Progress from 'react-native-progress'; -import { Styles } from '../../resources'; -import AbstractDialog from "./AbstractDialog"; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const padding = 37; -/** - * @export - * @author Geeook - * @since 10021 - * @module ProgressDialog - * @description 进度条弹窗,显示进度条和提示信息 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {string} message - 提示信息文字 - * @param {number} progress - 当前进度,默认`0` - * @param {string} color - progressBar 填充颜色,默认米家绿 - * @param {string} unfilledColor - progressBar 未填充颜色,默认`#f1f1f1` - * @param {string} textColor - 进度百分比文字颜色,默认米家绿 - * @param {bool} autoDismiss - 是否在进度条读完之后自动隐藏 Modal, 默认`false` - * @param {Object} dialogStyle - 10040新增 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.allowFontScaling - 10040新增 dialog中message是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {number} dialogStyle.messageNumberOfLines - 10040新增 控制message 文字的行数, 默认 1行 - * @param {ViewPropTypes.style} dialogStyle.messageStyle - 10040新增 控制message 文字的样式 - * @param {ViewPropTypes.style} dialogStyle.progressTextStyle - 10040新增 进度百分比 文字的样式 - * @param {function} onDismiss - Modal 隐藏时的回调函数 - */ -export default class ProgressDialog extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - message: PropTypes.string, - progress: PropTypes.number, - color: PropTypes.string, - unfilledColor: PropTypes.string, - textColor: PropTypes.string, - autoDismiss: PropTypes.bool, - dialogStyle: PropTypes.object, - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityValue: AccessibilityPropTypes.accessibilityValue - } - static defaultProps = { - progress: 0, - color: Styles.common.MHGreen, - unfilledColor: '#f1f1f1', - textColor: Styles.common.MHGreen, - autoDismiss: false, - dialogStyle: { - allowFontScaling: true, - messageNumberOfLines: 1, - messageStyle: {}, - progressTextStyle: {} - } - } - constructor(props, context) { - super(props, context); - referenceReport('Dialog/ProgressDialog'); - this.state = { - visible: this.props.visible - }; - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.visible !== this.state.visible) { - this.setState({ visible: newProps.visible }); - } - } - render() { - if (this.props.autoDismiss - && this.state.visible === true - && this.props.progress >= 1) { // 传参不一定刚好等于1,可能大于1 - this.timer = setTimeout(() => { - this.setState({ visible: false }); - this.props.onDismiss && this.props.onDismiss(); - }, 100); - } - const progressText = `${ Math.round(this.props.progress * 100) }%`; - let messageNumberOfLines = 1; - if (this.props.dialogStyle) { - if (this.props.dialogStyle.hasOwnProperty('messageNumberOfLines') && this.props.dialogStyle.messageNumberOfLines > 1) { - messageNumberOfLines = this.props.dialogStyle.messageNumberOfLines; - } - } - return ( - - - - - {this.props.message || ''} - - - {progressText} - - - 1 ? 10 : 0 }} - progress={this.props.progress} - color={this.props.color} - unfilledColor={this.props.unfilledColor} - width={Styles.dialog.modal.width - padding * 2} - height={3} - borderRadius={2.5} - borderWidth={0.3} - borderColor="#e5e5e5" - useNativeDriver={true} - /> - - - ); - } - componentWillUnmount() { - this.timer = null; - clearTimeout(this.timer); - } -} -const styles = StyleSheet.create({ - container: { - minHeight: 86, - backgroundColor: '#fff', - paddingHorizontal: padding, - justifyContent: 'center', - borderRadius: Styles.dialog.modal.borderRadius - }, - messageContainer: { - flexDirection: 'row', - justifyContent: 'center', - alignItems: 'center', - marginBottom: 12 - }, - message: { - fontSize: 15, - color: 'rgba(0,0,0,0.8)' - } -}); \ No newline at end of file +import { ProgressDialog } from 'mhui-rn'; +export default ProgressDialog; \ No newline at end of file diff --git a/miot-sdk/ui/Dialog/ShareDialog.js b/miot-sdk/ui/Dialog/ShareDialog.js index 504d0bf6b..83b9eb03d 100644 --- a/miot-sdk/ui/Dialog/ShareDialog.js +++ b/miot-sdk/ui/Dialog/ShareDialog.js @@ -1,251 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Image, StyleSheet, Text, TouchableWithoutFeedback, View } from 'react-native'; -import Swiper from 'react-native-swiper'; -import { Images, Styles } from '../../resources'; -import Separator from '../Separator'; -import AbstractDialog from "./AbstractDialog"; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const paddingHorizontal = 40; // 内容的左右边距 -const paddingBottomSmall = 20; // 内容的上下边距 -const paddingBottomLarge = 28; // 内容的上下边距 -const iconSize = 55; // 图标尺寸 -const optionHeight = iconSize + 40; // 单个选项的高度 -const margin = ~~((Styles.dialog.modal.width - paddingHorizontal * 2 - iconSize * 4) / 3); -const testIcon = Images.common.mihome; -/** - * 分享选项 - * @typedef {Object} Opiton - * @property {number} icon - 图标的资源, require('../xx/xx.png') - * @property {string} text - 图标下方的文字说明 - * @property {function} callback - 点击图标的回调函数 - */ -/** - * 按钮 - * @typedef {Object} Button - * @property {string} text - 按钮的文字 - * @property {style} style - 按钮的样式 - * @property {bool} allowFontScaling - 10040新增 text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @property {number} numberOfLines - 10040新增 text文字的行数, 默认 undefined (兼容旧版) - * @property {function} callback - 点击按钮的回调函数 - */ -/** - * @export - * @author Geeook - * @since 10021 - * @module ShareDialog - * @description 分享弹窗,弹窗让用户指定分享渠道 - * @param {string} animationType - modal 显示动效, 默认`'fade'`,参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 默认`false`,参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {string} title - 标题文字 - * @param {Object} dialogStyle - 10040新增 控制dialog 一些特有的样式 - * @param {bool} dialogStyle.allowFontScaling - 10040新增 dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {number} dialogStyle.titleNumberOfLines - 10040新增 控制title 文字的行数, 默认 1行 - * @param {number} dialogStyle.itemTextNumberOfLines - 10040新增 控制每个选项 文字的行数, 默认 1行 - * @param {bool} dialogStyle.unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {ViewPropTypes.style} dialogStyle.titleStyle - 10040新增 控制title 文字的样式 - * @param {ViewPropTypes.style} dialogStyle.itemTextStyle - 10040新增 控制item 文字的样式 - * @param {Opiton[]} options - 分享选项,当可选项 >8 个时,允许左右滑动分页 - * @param {Button[]} buttons - 按钮数组,定义底部按钮的属性,只能显示1~2个按钮,多传将失效。默认左取消右确定,左灰右绿,点击回调都是隐藏 Modal - * @param {function} onDismiss - Modal 隐藏时的回调函数 - */ -export default class ShareDialog extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - title: PropTypes.string, - dialogStyle: PropTypes.object, - options: PropTypes.arrayOf(PropTypes.shape({ - icon: PropTypes.any, - text: PropTypes.string, - callback: PropTypes.func, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - buttons: PropTypes.arrayOf(PropTypes.shape({ - text: PropTypes.string, - style: PropTypes.any, - callback: PropTypes.func, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible - } - static defaultProps = { - options: Array.from({ length: 6 }, () => ({ - icon: testIcon, - text: [`米家`, `微信`, `QQ`, `微博`, `朋友圈`, `收藏`, `即刻`][~~(Math.random() * 7)], - callback: () => console.log('分享成功') - })), - dialogStyle: { - unlimitedHeightEnable: false, - allowFontScaling: true, - titleNumberOfLines: 1, - itemTextNumberOfLines: 1 - } - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.visible === true) { - // Android modal swiper bug:在 modal 🀄️不显示 swiper 的内容 - // 解决办法:先显示 modal 再显示 swiper - // reference: https://github.com/leecade/react-native-swiper/issues/435#issuecomment-354585864 - setTimeout(() => this.setState({ swiperVisible: true })); - } else { - this.setState({ swiperVisible: false }); - } - } - constructor(props, context) { - super(props, context); - referenceReport('Dialog/ShareDialog'); - this.state = { - swiperVisible: false, - pressed: -1 - }; - // 分页 - this.pages = Array.from({ length: Math.ceil(props.options.length / 8) }, (v, i) => props.options.slice(8 * i, 8 * i + 8)); - } - /** - * 一页 icons - * @param {Opiton[]} options - * @param {number} index - */ - renderIcons(options, index) { - let numberOfLines = 1; - if (this.props.dialogStyle && this.props.dialogStyle.hasOwnProperty('itemTextNumberOfLines')) { - numberOfLines = this.props.dialogStyle.itemTextNumberOfLines; - } - return ( - - {options.map((option, index) => { - if (option === undefined) return null; - const marginLeft = index % 4 === 0 ? {} : { marginLeft: margin }; - const scale = this.state.pressed === index ? 0.95 : 1; - const opacity = this.state.pressed === index ? 0.88 : 1; - return ( - this.setState({ pressed: index })} - onPressOut={() => this.setState({ pressed: -1 })} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.button, - accessibilityLabel: option.accessibilityLabel, - accessibilityHint: option.accessibilityHint - })} - > - - - - {option.text || ''} - - - - ); - })} - - ); - } - /** - * 一页或者分页 - * @param {Opiton[]} options - */ - renderIconsPages(options) { - if (options.length < 9) return this.renderIcons(options, 0); - if (!this.state.swiperVisible) return ; - return ( - - {this.pages.map((options, index) => this.renderIcons(options, index))} - - ); - } - render() { - const paddingBottom = this.props.options.length > 8 - ? { paddingBottom: paddingBottomLarge } - : { paddingBottom: paddingBottomSmall }; - return ( - this._onDismiss()} - > - - {this.renderIconsPages(this.props.options)} - - - - ); - } - _onDismiss() { - this.setState({ swiperVisible: false }); - this.props.onDismiss && this.props.onDismiss(); - } -} -const styles = StyleSheet.create({ - container: { - paddingHorizontal, - backgroundColor: '#fff', - borderRadius: Styles.dialog.modal.borderRadius - }, - swiper: { - minHeight: optionHeight * 2 + 19, - paddingBottom: 19 - }, - optionsPage: { - flexDirection: 'row', - flexWrap: 'wrap' - }, - optionContainer: { - minHeight: optionHeight, - alignItems: 'center' - }, - icon: { - width: iconSize, - height: iconSize - }, - optionText: { - marginTop: 4, - marginBottom: 10, - width: iconSize, - textAlign: 'center', - fontSize: 12, - color: '#333' - }, - paginationStyle: { - position: 'absolute', - bottom: 0 - }, - dot: { - width: 6, - height: 6 - } -}); \ No newline at end of file +import { ShareDialog } from 'mhui-rn'; +export default ShareDialog; \ No newline at end of file diff --git a/miot-sdk/ui/DoubleSelectors.js b/miot-sdk/ui/DoubleSelectors.js index 44b145ec5..ef6b9a6ec 100644 --- a/miot-sdk/ui/DoubleSelectors.js +++ b/miot-sdk/ui/DoubleSelectors.js @@ -1,59 +1,2 @@ -import React, { Component, Fragment } from 'react'; -import { StyleSheet } from 'react-native'; -import PropTypes from 'prop-types'; -import SelectorWithButton from './SelectorWithButton'; -import ContainerWithShadowAndSeparator from './ContainerWithShadowAndSeparator'; -import { adjustSize } from 'miot/utils/sizes'; -/** - * @deprecated - */ -export default class DoubleSelectors extends Component { - static propTypes = { - title: PropTypes.string, - subtitle: PropTypes.string, - disabled: PropTypes.bool, - secondShow: PropTypes.bool, - secondDisabled: PropTypes.bool, - themeColor: PropTypes.any, - first: PropTypes.shape({ - ...SelectorWithButton.propTypes - }), - second: PropTypes.shape({ - ...SelectorWithButton.propTypes - }), - hasShadow: PropTypes.bool - }; - static defaultProps = { - title: '', - subtitle: '', - disabled: false, - secondShow: true, - secondDisabled: true, - first: { - items: [] - }, - second: { - items: [] - }, - hasShadow: true - }; - render() { - let { - title, subtitle, themeColor, disabled, secondShow, secondDisabled, first, second, hasShadow - } = this.props; - let Wrap = hasShadow ? ContainerWithShadowAndSeparator : Fragment; - return ( - - - {secondShow ? ( - - ) : null} - - ); - } -} -const Styles = StyleSheet.create({ - separator: { - marginHorizontal: adjustSize(60) - } -}); \ No newline at end of file +import DoubleSelectors from 'mhui-rn/dist/modules/doubleSelectors/DoubleSelectors'; +export default DoubleSelectors; \ No newline at end of file diff --git a/miot-sdk/ui/Fan.js b/miot-sdk/ui/Fan.js index a07c28ec7..887b2304e 100644 --- a/miot-sdk/ui/Fan.js +++ b/miot-sdk/ui/Fan.js @@ -1,221 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, View, Animated, Easing } from 'react-native'; -import { Svg, Defs, LinearGradient, Stop, Path } from 'react-native-svg'; -import PropTypes from 'prop-types'; -import { adjustSize } from '../utils/sizes'; -import { getAccessibilityConfig } from '../utils/accessibility-helper'; -const Size708 = adjustSize(708); -function getCircleCenter(type, index) { - switch (type) { - case 0: - case 1: - return { - x: 0, - y: 0 - }; - case 2: - return { - x: ([3, -2, -1, 2])[index] || 0, - y: 0 - }; - case 3: - return { - x: ([2, -2, -1, 0])[index] || 0, - y: 0 - }; - case -1: - default: - return { - x: 0, - y: 0 - }; - } -} -function getCircleColors(type, index) { - switch (type) { - case 0: - return ([['#475154'], ['#475154', '#4A5867'], ['#2D3947'], ['#F7F7F7']])[index] || '#475154'; - case 1: - return ([['#00AEFF'], ['#00AEFF', '#5BCCFF'], ['#007DFF'], ['#F7F7F7']])[index] || '#00AEFF'; - case 2: - return ([['#00B7AF'], ['#00B7AF', '#0BCEB7'], ['#05CFC6'], ['#F7F7F7']])[index] || '#00B7AF'; - case 3: - return ([['#7538F7'], ['#7538F7', '#B88CFF'], ['#7231FB'], ['#F7F7F7']])[index] || '#7538F7'; - case 4: - return ([['#5067F9'], ['#5067F9', '#589BFB'], ['#2240F7'], ['#F7F7F7']])[index] || '#5067F9'; - default: - return ([['#FFFFFF'], ['#FFFFFF', '#FFFFFF'], ['#FFFFFF'], ['#F7F7F7']])[index] || '#FFFFFF'; - } -} -function getCircleOpacity(type, index) { - switch (type) { - case 0: - case 1: - case 2: - case 3: - case 4: - return ([0.2, 1, 1, 1])[index] || 1; - case -1: - default: - return ([0.2, 0.6, 1, 1])[index] || 1; - } -} -class Circle extends Component { - static propTypes = { - disabled: PropTypes.bool, - duration: PropTypes.number, - color: PropTypes.string, - opacity: PropTypes.number, - rx: PropTypes.number, - ry: PropTypes.number, - center: PropTypes.shape({ - x: PropTypes.number, - y: PropTypes.number - }), - centerInner: PropTypes.shape({ - x: PropTypes.number, - y: PropTypes.number - }), - counterClock: PropTypes.bool, - rxInner: PropTypes.number, - ryInner: PropTypes.number - }; - state = { - rotation: new Animated.Value(0) - }; - inited = false; - currentValue = 0; - rotate({ disabled, duration = 4000 }) { - if (!this.inited) { - return; - } - if (disabled) { - this.stopRotation(); - return; - } - this.startRotation(duration); - } - startRotation(duration = 4000, isReset = false) { - this.stopRotation(); - this.aniRotation = Animated.timing(this.state.rotation, { - toValue: 1, - duration: isReset ? duration : duration * ((1 - this.currentValue) || 0.01), - easing: Easing.inOut(Easing.linear) - }).start(({ finished }) => { - if (finished) { - if (this.props.disabled) { - return; - } - this.state.rotation.setValue(0); - this.startRotation(this.props.duration, true); - } - }); - } - stopRotation() { - // this.aniRotation && this.aniRotation.stop(); - this.state.rotation.stopAnimation((v) => { - this.currentValue = v; - }); - this.aniRotation = null; - } - UNSAFE_componentWillReceiveProps(nextProps) { - if (nextProps && nextProps.disabled) { - this.stopRotation(); - return; - } - if (nextProps && this.props && nextProps.duration === this.props.duration && nextProps.disabled === this.props.disabled) { - return; - } - this.rotate(nextProps || {}); - } - componentDidMount() { - this.inited = true; - this.rotate(this.props); - } - componentWillUnmount() { - this.stopRotation(); - } - render() { - let { color, opacity, rx, ry, center: { x, y }, counterClock, centerInner: { x: ix, y: iy }, rxInner, ryInner } = this.props; - let { rotation } = this.state; - let r = rotation.interpolate({ - inputRange: [0, 1], - outputRange: !counterClock ? ['0deg', '360deg'] : ['360deg', '0deg'] - }); - let d = ` - M${ 118 + x - rx } ${ 118 + y } - A${ rx } ${ ry } 0 0 1 ${ 118 + x + rx } ${ 118 + y } - L${ 118 + ix + rxInner } ${ 118 + iy } - A${ rxInner } ${ ryInner } 0 0 0 ${ 118 + ix - rxInner } ${ 118 + iy } - A${ rxInner } ${ ryInner } 0 0 0 ${ 118 + ix + rxInner } ${ 118 + iy } - L${ 118 + x + rx } ${ 118 + y } - A${ rx } ${ ry } 0 0 1 ${ 118 + x - rx } ${ 118 + y } - `; - return ( - - - - - - - - - - - - ); - } -} -export default class Fan extends Component { - static propTypes = { - disabled: PropTypes.bool, - // 默认情况下,disable时为黑色,当此值为true时,可以在暂停动画的基础上,使用type对应的颜色 - noDisableColor: PropTypes.bool, - speedLevel: PropTypes.number, - // 白色/关闭/直吹风/自然风/睡眠风/自动 - type: PropTypes.oneOf([-1, 0, 1, 2, 3, 4]) - // 中心颜色一定要填,因为根据ui动效分解图,用多个圆叠加起来实现,中心会有外层圆的颜色 - // 20/02/18优化逻辑,可以去掉此参数 - // centerColor: PropTypes.any - }; - static defaultProps = { - disabled: false, - noDisableColor: false, - speedLevel: 1, - type: -1 - }; - render() { - let { disabled, type, speedLevel, noDisableColor } = this.props; - let centerInner = getCircleCenter(type, 3); - let rxInner = 91; - let ryInner = 91; - return ( - - - - - - ); - } -} -const Styles = StyleSheet.create({ - container: { - marginVertical: adjustSize(165), - width: Size708, - height: Size708, - alignSelf: 'center' - }, - circleWrap: { - position: 'absolute', - width: '100%', - height: '100%', - left: 0, - top: 0 - } -}); \ No newline at end of file +import Fan from 'mhui-rn/dist/modules/fan/Fan'; +export default Fan; \ No newline at end of file diff --git a/miot-sdk/ui/Gear/Block.js b/miot-sdk/ui/Gear/Block.js index ca1e8950d..71d6974ad 100644 --- a/miot-sdk/ui/Gear/Block.js +++ b/miot-sdk/ui/Gear/Block.js @@ -1,30 +1,2 @@ -import React from 'react'; -import { Animated, TouchableWithoutFeedback } from 'react-native'; -import PropTypes from 'prop-types'; -import { AccessibilityPropTypes, getAccessibilityConfig } from '../../utils/accessibility-helper'; -export default class Block extends React.Component { - static propTypes = { - style: PropTypes.any, - panHandlers: PropTypes.object, - onLongPress: PropTypes.func, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel - }; - render() { - return ( - - - {this.props.children} - - - ); - } -} \ No newline at end of file +import Block from 'mhui-rn/dist/components/gear/Block'; +export default Block; \ No newline at end of file diff --git a/miot-sdk/ui/Gear/Clickable.js b/miot-sdk/ui/Gear/Clickable.js index 01777e651..7062dd318 100644 --- a/miot-sdk/ui/Gear/Clickable.js +++ b/miot-sdk/ui/Gear/Clickable.js @@ -1,106 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Animated, StyleSheet, Text, TouchableWithoutFeedback, View } from 'react-native'; -import tr from "../../resources/strings/tr"; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -const SIZE = 40; -const TEXT_COLOR = '#bbb'; -const BORDER_COLOR = '#ccc'; -/** - * @export - * @author Geeook - * @since 10011 - * @module Clickable - * @description 点击动效 - * @property {bool} select - 是否被选择 - * @property {string} selectColor - 被选择的背景色 - * @property {string|number} text - 中间的文字内容 - * @property {style} style - 整体容器的样式 - * @property {style} textStyle - 中间的文字大小 - * @property {bool} allowFontScaling - 10040新增 字体大小是否随系统大小变化而变化, 默认值为true - * @property {number} numberOfLines - 10040新增 文字最多显示的行数 - * @property {function} onPress - 点击回调函数 - */ -export default class Clickable extends React.Component { - static propTypes = { - select: PropTypes.bool, - selectColor: PropTypes.string, - style: PropTypes.object, - onPress: PropTypes.func.isRequired, - text: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, - textStyle: PropTypes.object, - allowFontScaling: PropTypes.bool, - numberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - select: false, - selectColor: '#f0ac3d', - allowFontScaling: true - } - animatedValue = new Animated.Value(0); - render() { - // const toValue = this.props.select ? 1 : 0; - // 文本颜色不能应用 animation - const color = this.props.select ? '#fff' : TEXT_COLOR; - // 容器 border 变化 - const boderStyle = this.props.select ? { borderWidth: 0 } : { borderColor: BORDER_COLOR, borderWidth: 1 }; - // 容器 backgroundColor 变化 - const backgroundColor = this.props.select ? this.props.selectColor : '#fff'; - // const backgroundColor = this.animatedValue.interpolate({ - // inputRange: [0, 1], - // outputRange: ['#fff', this.props.selectColor] - // }); - // Animated.timing(this.animatedValue, { - // toValue, - // duration: 200, - // easing: Easing.ease - // }).start(); - return ( - - - - - {this.props.text} - - - - - ); - } -} -const styles = StyleSheet.create({ - animationContainer: { - width: SIZE, - height: SIZE, - borderRadius: SIZE / 2 - }, - container: { - flex: 1, - justifyContent: 'center', - alignItems: 'center' - }, - text: { - fontSize: 11, - textAlign: 'center' - } -}); \ No newline at end of file +import Clickable from 'mhui-rn/dist/components/gear/Clickable'; +export default Clickable; \ No newline at end of file diff --git a/miot-sdk/ui/Gear/DragGear.js b/miot-sdk/ui/Gear/DragGear.js index e2fac55c2..211e495af 100644 --- a/miot-sdk/ui/Gear/DragGear.js +++ b/miot-sdk/ui/Gear/DragGear.js @@ -1,394 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Animated, Dimensions, PanResponder, Platform, StyleSheet, Text, View } from 'react-native'; -import Block from "./Block"; -import Clickable from './Clickable'; -import { AccessibilityPropTypes, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const { width: screenWidth } = Dimensions.get('window'); -const DEFAULT_SIZE = 50; -const DEFAULT_MARGIN = 12; -const BIGGER_SIZE = 1.35; -const dragStartAnimationConfig = { - toValue: BIGGER_SIZE, - duration: 50, - useNativeDriver: true -}; -const releaseAnimationConfig = { - toValue: 1, - duration: Platform.select({ ios: 160, android: 100 }), - useNativeDriver: true -}; -/** - * @export - * @author Geeook - * @since 10011 - * @module DragGear - * @description 档位控件,拖拽选择 - * (❗️注意:考虑到性能优化,android 系统在拖拽和移动动效中不会实时更新中间的文字) - * @property {array|array} options - 档位可选项,以字符串数组表示,必填 - * @property {number} margin - 档位选项之间的间距,默认 12, 示意图 |12🛑12⭕️12| - * @property {number} maxWidth - * 容器宽度最大值,不传则默认屏幕宽度。 - * 如果所有档位的宽度 + 间距占据的宽度 <= maxWidth,则取实际宽度; - * 否则容器宽度取 maxWidth,各个档位的宽度和间距自适应减小。 - * @property {style} containerStyle - 容器样式,设置宽高无效 - * @property {style} normalStyle - 普通档位样式,如果没有设置宽高,则默认宽高为 50 - * @property {style} textStyle - 档位文字的样式 - * @property {string} selectColor - 被选择档位的背景色 - * @property {number} selectIndex - 被选择档位的数组下标 - * @property {bool} allowFontScaling - 10040新增 字体大小是否随系统大小变化而变化, 默认值为true - * @property {number} numberOfLines - 10040新增 文字最多显示的行数 - * @property {function} onSelect - 选择某档位后的回调函数 - */ -export default class DragGear extends React.Component { - static propTypes = { - options: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).isRequired, - containerStyle: PropTypes.object, - normalStyle: PropTypes.object, - textStyle: PropTypes.object, - margin: PropTypes.number, - maxWidth: PropTypes.number, - selectColor: PropTypes.string, - selectIndex: PropTypes.number, - onSelect: PropTypes.func.isRequired, - allowFontScaling: PropTypes.bool, - numberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - clickAccessibilityLables: PropTypes.arrayOf(AccessibilityPropTypes.accessibilityLabel), - clickAccessibilityHints: PropTypes.arrayOf(AccessibilityPropTypes.accessibilityHint) - } - static defaultProps = { - options: [], - normalStyle: {}, - margin: DEFAULT_MARGIN, - maxWidth: screenWidth, - selectColor: '#f0ac3d', - selectIndex: 0, - allowFontScaling: true, - clickAccessibilityLables: [], - clickAccessibilityHints: [] - } - constructor(props, context) { - super(props, context); - referenceReport('DragGear'); - if (this.props.options.length === 0) { - this.showNothing = true; - return; - } - // 计算容器实际宽度,选项实际宽度,实际间距 - const { optionWidth, margin, containerWidth } = this.getCorrectLayout(); - this.optionWidth = optionWidth; - this.margin = margin; - this.containerWidth = containerWidth; - console.log(`选项宽度 ${ optionWidth } 间距 ${ margin } 总体宽度 ${ containerWidth }`); - // 也不能太拥挤吧 - if (this.optionWidth < 20) { - this.showNothing = true; - if (__DEV__ && console.warn) { - console.warn('在目前maxWidth下显示不了这么多选项,请重新规划'); - } - return; - } - this.state = { - pan: new Animated.Value(0), - moveX: new Animated.Value(0), - scale: new Animated.Value(1), - selectIndex: this.props.selectIndex, - currentOption: this.props.options[this.props.selectIndex], - dragToValueMin: 0, - dragToValueMax: 0 - }; - this.offset = 0; // 手势触摸点和中心左边偏差值 - this.panResponder = PanResponder.create({ - onStartShouldSetPanResponder: () => true, - onStartShouldSetPanResponderCapture: () => false, - onMoveShouldSetPanResponder: () => true, - onMoveShouldSetPanResponderCapture: () => true, - onShouldBlockNativeResponder: () => false, - onPanResponderTerminationRequest: () => false, - onPanResponderGrant: this._onPanResponderGrant.bind(this), - onPanResponderMove: Animated.event([null, { dx: this.state.pan, moveX: this.state.moveX }]), - onPanResponderRelease: this._onPanResponderRelease.bind(this) - }); - } - UNSAFE_componentWillReceiveProps(newProps) { - if (this.showNothing) return; - const { selectIndex } = newProps; - if (selectIndex !== this.props.selectIndex) { - if (selectIndex < 0 || selectIndex >= this.props.options.length) return; - this.onPress(selectIndex); // 动画更新 - // this.animated2TargetIndex(newProps.selectIndex); // 直接更新 - } - } - UNSAFE_componentWillMount() { - // 拖拽变化值监听 - this.state.pan.addListener((e) => { - // 拖拽的时候,如果在这里更新文字,偶尔不准,并且更新不及时 - // 但是点击应该可以 - if (this.pressToChoose && Platform.OS === 'ios') { - const moveX = this.currentCoord + e.value; - const index = this.getClosetIndex(moveX); - this.setState({ currentOption: this.props.options[index] }); - } - }); - // 拖拽手势坐标监听,为了更新中间的文字 - if (Platform.OS === 'ios') { - this.state.moveX.addListener((e) => { - const index = this.getClosetIndex(e.value); - this.setState({ currentOption: this.props.options[index] }); - }); - } - } - /** - * @description 获取距离拖拽元素最近的选项下标 - * 根据释放时的绝对坐标和各个选项的绝对坐标距离做对比 - */ - getClosetIndex(moveX) { - const adjustCoord = moveX - this.offset; // 拖拽过程中Block的中心点坐标 - const diffs = this.coords.map((coord) => Math.abs(coord - adjustCoord)); - return diffs.indexOf(Math.min(...diffs)); - } - /** - * @description 手势开始回调 - */ - _onPanResponderGrant(e) { - // 放大动画 - Animated.timing(this.state.scale, dragStartAnimationConfig).start(); - // 为了准确确定释放位置,需要在起手的时候,计算出手势触摸点和中心点的偏差 - const { pageX } = e.nativeEvent; - this.offset = pageX - this.currentCoord; - this.pressToChoose = false; - console.log('⬇️⬇️⬇️⬇️⬇️⬇️⬇️拖拽开始⬇️⬇️⬇️⬇️⬇️⬇️⬇️'); - console.log(`被选项中心坐标 ${ this.currentCoord }`); - console.log(`触摸点坐标 ${ pageX }`); - } - /** - * @description 手势释放回调 - */ - _onPanResponderRelease(e, gesture) { - const index = this.getClosetIndex(gesture.moveX); - this.animated2TargetIndex(index); - if (this.props.onSelect) { - this.props.onSelect(index); - } - } - /** - * @description 以动画效果移动到目标选项,不管是释放还是点击 - */ - animated2TargetIndex(index) { - console.log(`移动到第${ index }个`); - this.offset = 0; - // 重置 selectIndex - this.setState({ selectIndex: index }, () => { - this.getDragRange(() => { - // 这行十分重要!!! - // 在计算出新的可拖拽范围之后,Block position 重新定位在新的 -min - // 此时pan.setValue(0),直接将 Block 吸附在了新的位置上 - this.state.pan.setValue(0); - Animated.timing(this.state.scale, releaseAnimationConfig).start(() => { - if (Platform.OS == 'android') { - this.setState({ - currentOption: this.props.options[index] - }); - } - }); - console.log('⬆️⬆️⬆️⬆️⬆️⬆️⬆️结束⬆️⬆️⬆️⬆️⬆️⬆️⬆️'); - }); - }); - } - /** - * @description 根据选项的宽度、间距和 maxWidth ,计算容器实际宽度,选项实际宽度,实际间距 - * @returns {{optionWidth, margin, containerWidth}} - */ - getCorrectLayout() { - const optionWidth = this.props.normalStyle.width || DEFAULT_SIZE; // 选项宽度 - const { margin, maxWidth } = this.props; // 间距、容器最大宽度 - const length = this.props.options.length; // 选项个数 - this.length = length; - const containerWidth = (optionWidth + margin) * length + margin; // 容器宽度 - // 如果宽度不溢出,则取原值 - if (containerWidth <= maxWidth) return { optionWidth, margin, containerWidth }; - // 如果宽度溢出,则按照 `optionWidth = 2 * margin` 策略重新计算 - const newOptionWidth = Math.floor(maxWidth / (length + (length + 1) * 0.5)); - const newMargin = newOptionWidth / 2; - const newContainerWidth = (3 * length + 1) * newMargin; - return { - optionWidth: newOptionWidth, - margin: newMargin, - containerWidth: newContainerWidth - }; - } - /** - * @description 计算整个容器的大小和在屏幕上的位置,从而确定每个选项的圆心坐标 - */ - calculateCoord() { - this._container.measure((x, y, w, h, px, py) => { - console.log(`容器起始坐标 ${ x },宽度 ${ w }`); - let startCoord = x - this.optionWidth / 2; - this.coords = []; - for (let i = 0; i < this.props.options.length; i++) { - this.coords[i] = startCoord + (this.optionWidth + this.margin) * (i + 1); - } - console.log('measure', x, y, w, h, px, py); - console.log('各选项中心坐标', this.coords); - this.getDragRange(); - }); - } - /** - * @description 计算可拖拽的范围,以及当前被选项到其余选项的拖拽距离,每次释放之后都需要刷新 - */ - getDragRange(callback) { - this.currentCoord = this.coords[this.state.selectIndex]; - this.dragToValueArray = this.coords.map((coord) => coord - this.currentCoord); - this.setState({ - dragToValueMin: this.dragToValueArray[0] || 0, - dragToValueMax: this.dragToValueArray[this.length - 1] || 0 - }, () => { - callback && callback(); - }); - console.log('被选项中心坐标', this.currentCoord); - console.log('被选项到其余选项的距离', this.dragToValueArray); - } - /** - * @description 所有的固定选项 - */ - renderOptions() { - const style = StyleSheet.flatten([ - this.props.normalStyle, - { - width: this.optionWidth, - height: this.optionWidth, - borderRadius: this.optionWidth / 2, - borderWidth: 0 - } - ]); - const { selectIndex } = this.state; - return this.props.options.map((option, index) => { - return ( - this.onPress(index)} - text={option} - select={selectIndex === index} - style={style} - textStyle={this.props.textStyle} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityLabel: this.props.clickAccessibilityLables[index] || option, - accessibilityHint: this.props.clickAccessibilityHints[index] - })} - /> - ); - }); - } - /** - * @description 可拖拽元素 - */ - renderDraggable() { - const { dragToValueMin: min, dragToValueMax: max } = this.state; - // 在没有找到自我定位的时候,要在舞台后面低调 - if (min === undefined) return null; - // 可拖拽元素初始绝对定位 - const position = { - position: 'absolute', - left: -min - }; - // 显示区域 - const innerCircle = { - width: this.optionWidth, - height: this.optionWidth, - borderRadius: this.optionWidth / 2, - backgroundColor: this.props.selectColor, - alignItems: 'center', - justifyContent: 'center' - }; - // 手势响应区域 - const touchArea = { - width: this.optionWidth + this.margin * 2, - height: this.optionWidth * BIGGER_SIZE, - backgroundColor: 'transparent', - alignItems: 'center', - justifyContent: 'center' - }; - // 动效 - const panStyle = { - transform: [ - { - translateX: this.state.pan.interpolate({ - inputRange: [min - 1, min, max, max + 1], - outputRange: [min, min, max, max] - }) - }, - { - scale: this.state.scale - } - ] - }; - return ( - - - - - {this.state.currentOption} - - - - - ); - } - render() { - if (this.showNothing) return null; - const container = { - width: this.containerWidth, - height: this.optionWidth * BIGGER_SIZE - }; - return ( - this.calculateCoord()} - ref={(container) => this._container = container} - style={[this.props.containerStyle, styles.container, container]}> - {this.renderOptions()} - {this.renderDraggable()} - - ); - } - onPress(index) { - console.log('⬇️⬇️⬇️⬇️⬇️⬇️⬇️点击开始⬇️⬇️⬇️⬇️⬇️⬇️⬇️'); - this.pressToChoose = true; - Animated.sequence( - [ - Animated.timing(this.state.scale, dragStartAnimationConfig), - Animated.timing(this.state.pan, - { - toValue: this.dragToValueArray[index], - duration: 200, - useNativeDriver: true - } - ) - ] - ).start(() => this.animated2TargetIndex(index)); - if (this.props.onSelect) { - this.props.onSelect(index); - } - } -} -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'space-evenly' - } -}); \ No newline at end of file +import { DragGear } from 'mhui-rn'; +export default DragGear; \ No newline at end of file diff --git a/miot-sdk/ui/Gear/NormalGear.js b/miot-sdk/ui/Gear/NormalGear.js index 17402f670..674cab597 100644 --- a/miot-sdk/ui/Gear/NormalGear.js +++ b/miot-sdk/ui/Gear/NormalGear.js @@ -1,169 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, StyleSheet, View } from 'react-native'; -import Clickable from './Clickable'; -import { AccessibilityPropTypes, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const { width: screenWidth } = Dimensions.get('window'); -const DEFAULT_SIZE = 50; -const DEFAULT_MARGIN = 12; -/** - * @export - * @author Geeook - * @since 10011 - * @module NormalGear - * @description 档位控件,点按选择 - * @property {array|array} options - 档位可选项,以字符串数组表示,必填 - * @property {number} margin - 档位选项之间的间距,默认 12, 示意图 |12🛑12⭕️12| - * @property {number} maxWidth - * 容器宽度最大值,不传则默认屏幕宽度。 - * 如果所有档位的宽度 + 间距占据的宽度 <= maxWidth,则取实际宽度; - * 否则容器宽度取 maxWidth,各个档位的宽度和间距自适应减小。 - * @property {style} containerStyle - 容器样式,设置宽高无效 - * @property {style} normalStyle - 普通档位样式,如果没有设置宽高,则默认宽高为 50 - * @property {style} textStyle - 档位文字的样式 - * @property {string} selectColor - 被选择档位的背景色 - * @property {number} selectIndex - 被选择档位的数组下标 - * @property {bool} allowFontScaling - 10040新增 字体大小是否随系统大小变化而变化, 默认值为true - * @property {number} numberOfLines - 10040新增 文字最多显示的行数 - * @property {function} onSelect - 选择某档位后的回调函数 - */ -export default class NormalGear extends React.Component { - static propTypes = { - options: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).isRequired, - containerStyle: PropTypes.object, - normalStyle: PropTypes.object, - textStyle: PropTypes.object, - margin: PropTypes.number, - maxWidth: PropTypes.number, - selectColor: PropTypes.string, - selectIndex: PropTypes.number, - onSelect: PropTypes.func.isRequired, - allowFontScaling: PropTypes.bool, - numberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - clickAccessibilityLables: PropTypes.arrayOf(AccessibilityPropTypes.accessibilityLabel), - clickAccessibilityHints: PropTypes.arrayOf(AccessibilityPropTypes.accessibilityHint) - } - static defaultProps = { - options: [], - normalStyle: {}, - margin: DEFAULT_MARGIN, - maxWidth: screenWidth, - selectIndex: 0, - allowFontScaling: true, - clickAccessibilityLables: [], - clickAccessibilityHints: [] - } - constructor(props, context) { - super(props, context); - referenceReport('NormalGear'); - if (this.props.options.length === 0) { - this.showNothing = true; - return; - } - // 计算容器实际宽度,选项实际宽度,实际间距 - const { optionWidth, margin, containerWidth } = this.getCorrectLayout(); - this.optionWidth = optionWidth; - this.margin = margin; - this.containerWidth = containerWidth; - console.log(`选项宽度 ${ optionWidth } 间距 ${ margin } 总体宽度 ${ containerWidth }`); - // 也不能太拥挤吧 - if (this.optionWidth < 20) { - this.showNothing = true; - if (__DEV__ && console.warn) { - console.warn('在目前maxWidth下显示不了这么多选项,请重新规划'); - } - return; - } - // 初始状态,全部为 false - this.selectArray = Array.from({ length: this.props.options.length }, () => false); - const selectArray = Array.from(this.selectArray); - selectArray[this.props.selectIndex] = true; - this.state = { - selectArray - }; - } - UNSAFE_componentWillReceiveProps(newProps) { - if (this.showNothing) return; - const { selectIndex } = newProps; - if (selectIndex !== this.props.selectIndex) { - if (selectIndex < 0 || selectIndex >= this.props.options.length) return; - this.onPress(selectIndex); - } - } - renderOptions() { - const style = StyleSheet.flatten([ - this.props.normalStyle, - { - width: this.optionWidth, - height: this.optionWidth, - borderRadius: this.optionWidth / 2 - } - ]); - return this.props.options.map((option, index) => { - return ( - this.onPress(index)} - text={option} - style={style} - textStyle={this.props.textStyle} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityLabel: this.props.clickAccessibilityLables[index] || option, - accessibilityHint: this.props.clickAccessibilityHints[index] - })} - /> - ); - }); - } - /** - * @description 根据选项的宽度、间距和 maxWidth ,计算容器实际宽度,选项实际宽度,实际间距 - * @returns {{optionWidth, margin, containerWidth}} - */ - getCorrectLayout() { - const optionWidth = this.props.normalStyle.width || DEFAULT_SIZE; // 选项宽度 - const { margin, maxWidth } = this.props; // 间距、容器最大宽度 - const length = this.props.options.length; // 选项个数 - const containerWidth = (optionWidth + margin) * length + margin; // 容器宽度 - // 如果宽度不溢出,则取原值 - if (containerWidth <= maxWidth) return { optionWidth, margin, containerWidth }; - // 如果宽度溢出,则按照 `optionWidth = 2 * margin` 策略重新计算 - const newOptionWidth = Math.floor(maxWidth / (length + (length + 1) * 0.5)); - const newMargin = newOptionWidth / 2; - const newContainerWidth = (3 * length + 1) * newMargin; - return { - optionWidth: newOptionWidth, - margin: newMargin, - containerWidth: newContainerWidth - }; - } - render() { - if (this.showNothing) return null; - return ( - - {this.renderOptions()} - - ); - } - onPress(index) { - const selectArray = Array.from(this.selectArray); // copy instead of use directly - selectArray[index] = true; - this.setState({ selectArray }); - if (this.props.onSelect) { - this.props.onSelect(index); - } - } -} -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'space-evenly' - } -}); \ No newline at end of file +import { NormalGear } from 'mhui-rn'; +export default NormalGear; \ No newline at end of file diff --git a/miot-sdk/ui/Gear/SlideGear.js b/miot-sdk/ui/Gear/SlideGear.js index 221e9a5a9..6ad163c8c 100644 --- a/miot-sdk/ui/Gear/SlideGear.js +++ b/miot-sdk/ui/Gear/SlideGear.js @@ -1,707 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Animated, PanResponder, StyleSheet, Text, View, ViewPropTypes } from 'react-native'; -import Styles from '../../resources/Styles'; -import Block from "./Block"; -import LinearGradient from 'react-native-linear-gradient'; -import { transformHexToDigtal, transformDigtalToHex, colorGetterforRange } from '../../utils/colors'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -/** - * @description 容器和滑块的圆角类型 - * @enum {string} - */ -const TYPE = { - /** - * 圆形 ⭕️ - */ - CIRCLE: 'circle', - /** - * 方形 ⬜️ - */ - RECTANGLE: 'rectangle' -}; -/** - * @description 滑动内容的类型 - * @enum {string} - */ -const CONTENTTYPE = { - /** - * 数值 - */ - NUM: 'num', - /** - * 颜色 - */ - COLOR: 'color', - /** - * 色温 - */ - COLORTEM: 'colorTem' -}; -const COLORRANGE = { - "0.00": '#FFA100', - "0.10": '#FFFA00', - "0.20": '#9AFF00', - "0.30": '#01FF00', - "0.40": '#00FDA4', - "0.50": '#00EEFF', - "0.60": '#007CFF', - "0.70": '#0600F9', - "0.80": '#BF00FC', - "0.90": '#FF0081', - "1.00": '#FF0000' -}; -const COLORTEMRANGE = { - "0.00": '#FFAE00', - "0.50": '#F6EFD6', - "1.00": '#8AB2D4' -}; -Object.freeze(TYPE); -Object.freeze(CONTENTTYPE); -// const { width: screenWidth } = Dimensions.get('window'); -const DEFAULT_SIZE = 40; // 滑块默认大小 -const MIN_MARGIN = 5; // 滑块和容器的最小间距 -const MARGIN = 7.5; // 滑块和容器的默认间距 -const MAX_MARGIN = 10; // 滑块和容器的最大间距 -const DEFAULT_HEIGHT = DEFAULT_SIZE + MARGIN * 2; // 容器默认高度 -const DEFAULT_BLOCK_COLOR = '#fff'; // 滑块默认颜色 -/** - * @export - * @author Geeook - * @since 10022 - * @module SlideGear - * @description 档位控件,滑动选择 - * @property {TYPE} type - 容器和滑块的圆角类型 - * @property {array} options - 档位可选项,以字符串数组表示,必填 - * @property {bool} showEndText - 是否显示两端的文字,即`options`的第一个和最后一个,默认`true` - * @property {style} containerStyle - 容器样式,设置背景颜色无效 - * @property {style} blockStyle - 滑块样式,尺寸始终比容器小 - * @property {string} minimumTrackTintColor - 滑块左侧填充颜色 - * @property {string} leftTextColor - 最左侧文字颜色,`showEndText = true`时有效 (10040 废弃, 建议使用 leftTextStyle) - * @property {ViewPropTypes.style} leftTextStyle - 10040新增 最左侧文字颜色的样式 , `showEndText = true`时有效 - * @property {string} maximumTrackTintColor - 滑块右侧填充颜色 - * @property {string} rightTextColor - 最右侧文字颜色,`showEndText = true`时有效 (10040 废弃, 建议使用 rightTextStyle) - * @property {ViewPropTypes.style} rightTextStyle - 10040新增 最右侧文字的样式 , `showEndText = true`时有效 - * @property {number} value - 被选择档位的数组下标, `0<=value<=options.length -1` 或者是位于optionMin、optionMax直接的某一个值 - * @property {boolean} disabled - 是否禁用交互,默认`false` - * @property {function} onValueChange - 滑动时的回调函数 - * @property {function} onSlidingComplete - 滑动结束的回调函数 - * @property {number} optionMin - 按范围和步长进行拖拽时的最小范围 - * @property {number} optionMax - 按范围和步长进行拖拽时的最大范围 - * @property {number} optionStep - 按范围和步长进行拖拽时的步长 - * @property {number} contentType - 滑动内容的类型,数值(默认)、颜色、色温 - * @property {object} colorRangeObject - 颜色对象 - * @property {object} colorTemRangeObject - 色温对象 - * @property {bool} allowFontScaling - 10040新增 字体大小是否随系统大小变化而变化, 默认值为true - * @property {number} numberOfLines - 10040新增 文字最多显示的行数 - */ -export default class SlideGear extends React.Component { - static propTypes = { - type: PropTypes.oneOf([TYPE.CIRCLE, TYPE.RECTANGLE]), - options: PropTypes.array.isRequired, - showEndText: PropTypes.bool, - containerStyle: PropTypes.object, - blockStyle: PropTypes.object, - minimumTrackTintColor: PropTypes.string, - leftTextColor: PropTypes.string, - leftTextStyle: Text.propTypes.style, - maximumTrackTintColor: PropTypes.string, - rightTextColor: PropTypes.string, - rightTextStyle: Text.propTypes.style, - value: PropTypes.number, - disabled: PropTypes.bool, - onValueChange: PropTypes.func, - onSlidingComplete: PropTypes.func.isRequired, - optionMin: PropTypes.number, - optionMax: PropTypes.number, - optionStep: PropTypes.number, - contentType: PropTypes.oneOf([CONTENTTYPE.NUM, CONTENTTYPE.COLOR, CONTENTTYPE.COLORTEM]), - colorRangeObject: PropTypes.object, - colorTemRangeObject: PropTypes.object, - allowFontScaling: PropTypes.bool, - numberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - type: TYPE.CIRCLE, - options: [], - showEndText: true, - containerStyle: {}, - blockStyle: {}, - minimumTrackTintColor: Styles.common.MHGreen, - leftTextColor: '#eee', - leftTextStyle: {}, - maximumTrackTintColor: '#dfe2e3', - rightTextColor: '#999', - rightTextStyle: {}, - value: 0, - disabled: false, - optionMin: 0, - optionMax: 0, - optionStep: 0, - contentType: CONTENTTYPE.NUM, - colorRangeObject: COLORRANGE, - colorTemRangeObject: COLORTEMRANGE, - allowFontScaling: true - } - /** - * @description 容器和滑块的圆角类型 - * @enum {string} - */ - static TYPE = TYPE - static CONTENTTYPE = CONTENTTYPE - constructor(props, context) { - super(props, context); - referenceReport('SlideGear'); - if (this.props.options.length === 0) { - if (!this.props.optionStep) { - if (__DEV__ && console.warn) { - console.warn('options 为空数组 且无 optionStep'); - } - this.showNothing = true; - return; - } else { // option为range、step形式 - this.optionMin = this.props.optionMin; - this.optionMax = this.props.optionMax; - this.optionStep = this.props.optionStep; - this.length = (this.optionMax - this.optionMin) / this.optionStep + 1; - } - } else { // options为数组形式 - this.options = this.props.options; - this.length = this.props.options.length; - } - const { margin, blockWidth, blockHeight, containerHeight } = this.getCorrectLayout(); - this.margin = margin; - this.blockWidth = blockWidth; - this.blockHeight = blockHeight; - this.containerHeight = containerHeight; - // console.log(`滑块高度: ${ blockHeight }\n滑块宽度: ${ blockWidth }\n滑块周围间距: ${ margin }\n容器高度: ${ containerHeight }`); - this.value = this.props.value; - this.state = { - pan: new Animated.Value(0), - moveX: new Animated.Value(0), - value: this.props.value, - dragToValueMin: 0, - dragToValueMax: 0 - }; - this.translateX = 0; // 记录拖拽距离 - this.offset = 0; // 手势触摸点和中心左边偏差值 - this.constructPanResponder(props); - } - /** - * 根据传参动态创建手势控制器 - * @param {object} props - */ - constructPanResponder(props) { - this.panResponder = PanResponder.create({ - onStartShouldSetPanResponder: () => true, - onStartShouldSetPanResponderCapture: () => false, - onMoveShouldSetPanResponder: () => !props.disabled, - onMoveShouldSetPanResponderCapture: () => !props.disabled, - onShouldBlockNativeResponder: () => true, - onPanResponderTerminationRequest: () => false, - onPanResponderGrant: this._onPanResponderGrant.bind(this), - onPanResponderMove: Animated.event([null, { dx: this.state.pan, moveX: this.state.moveX }]), - onPanResponderRelease: this._onPanResponderRelease.bind(this), - onPanResponderTerminate: this._onPanResponderRelease.bind(this) - }); - } - /** - * 接收 options / value 动态变化 - * @param {object} newProps - */ - UNSAFE_componentWillReceiveProps(newProps) { - console.log(11111111, newProps); - if (this.sliding) { // 为了避免不必要的冲突,在滑动时,拒绝一切外部状态更新 - return; - } - const { value, disabled } = newProps; - if (disabled !== this.props.disabled) { - this.constructPanResponder(newProps); - } - if (this.optionStep) { // option为range、step形式 - const { optionMin, optionMax, optionStep } = newProps; - if (optionMin === this.state.optionMin && - optionMax === this.state.optionMax && - optionStep === this.state.optionStep && - value === this.props.value) { - return; - } - this.optionMin = optionMin; - this.optionMax = optionMax; - this.optionStep = optionStep; - this.length = (this.optionMax - this.optionMin) / this.optionStep + 1; - if (value !== this.props.value) { - this.value = value; - } - } else { // options为数组形式 - const { options } = newProps; - if ((value === this.value) && this.isSameArray(options, this.props.options)) return; // 没有变化 - if (!this.isSameArray(options, this.props.options)) { // options 变化 - if (!(options instanceof Array) || options.length === 0) { // 更新后的 options 不是数组或者是空数组 - if (__DEV__ && console.warn) { - console.warn('options 不是数组或者是空数组'); - } - this.showNothing = true; - return; - } else { // options 正确更新 - this.showNothing = false; - this.options = options; - this.length = options.length; - } - } - if (value !== this.props.value) { // value 变化 - if (value < 0 || value >= this.length) { // 更新后的 value 越界 - if (__DEV__ && console.warn) { - console.warn(`value 不在 options 范围内 value=${ value } length=${ this.length }`); - } - this.value = 0; // 如果越界,设置一个默认值 - } else { - this.value = value; // value 正确更新 - } - } - } - this.calculateCoord(this.containerLayout); // 根据更新后的 options 和 value 重新计算 滑块坐标 和各个选项坐标或者间隙d - } - /** - * 判断两个数组是否完全相等 - * @param {array} arr1 - * @param {array} arr2 - */ - isSameArray(arr1, arr2) { - if (!(arr1 instanceof Array) || !(arr2 instanceof Array)) return false; - if (arr1.length !== arr2.length) return false; - for (let i = 0; i < arr1.length; i++) { - if (arr1[i] !== arr2[i]) return false; - } - return true; - } - UNSAFE_componentWillMount() { - // 拖拽变化值监听 - this.state.pan.addListener((e) => { - const { dragToValueMin: min, dragToValueMax: max } = this.state; - if (e.value >= min && e.value <= max) { - this.translateX = e.value; - } else { - this.translateX = e.value < min ? min : max; - } - this._background.setNativeProps({ - width: this.translateX + this.margin * 2 + this.blockWidth - this.state.dragToValueMin - }); - }); - // 拖拽手势坐标监听 - this.state.moveX.addListener((e) => { - const index = this.getClosetIndex(e.value); // 滑块滑动后的物理值(options数组情况下是数组的下标,option为范围时是范围内的具体值) - if (this.props.onValueChange) { - if (this.props.contentType === CONTENTTYPE.COLOR) { // 根据滑块滑动后的物理值,计算该值对应的颜色值 - const colorValue = this.getColorFromValue(index); - this.props.onValueChange(colorValue); - } else { - this.props.onValueChange(index); - } - } - }); - } - /** - * @description - * options数组情况下:获取距离拖拽元素最近的选项下标 - * 根据释放时的绝对坐标和各个选项的绝对坐标距离做对比 - * options范围情况下:根据step计算出范围内的某一值 - */ - getClosetIndex(moveX) { - const adjustCoord = moveX - this.offset; // 拖拽过程中Block的中心点坐标 - if (this.optionStep) { // 返回范围内的value值 - let value; - if (adjustCoord <= this.firstCoord) { - value = this.optionMin; - } else if (adjustCoord >= this.endCoord) { - value = this.optionMax; - } else { - const index = Math.round((adjustCoord - this.firstCoord) / this.d); - value = index * this.optionStep + this.optionMin; - if (value > this.optionMax) value = this.optionMax; - } - return value; - } else { // 返回options数组的某个下标 - const diffs = this.coords.map((coord) => Math.abs(coord - adjustCoord)); - return diffs.indexOf(Math.min(...diffs)); - } - } - /** - * @description contentType为“color”类型时,物理滑块范围比如0至#fff:即optionMin=0至optionMax=16777215,这时滑块滑动的物理范围计算是按此范围计算, - * 但是颜色值是按照this.props.colorRange渐变的,所以需要将物理范围的value值即滑块的位置转变成真正的渐变颜色colorValue - */ - getColorFromValue(value) { - const getter = colorGetterforRange(this.props.colorRangeObject); - const colorHex = getter.getColorFromPercent((value - this.props.optionMin) / (this.props.optionMax - this.props.optionMin) * 100); - const colorValue = transformHexToDigtal(colorHex); - return colorValue; - } - /** - * @description contentType为“color”类型时,物理滑块范围比如0至#fff:即optionMin=0至optionMax=16777215,这时滑块滑动的物理范围计算是按此范围计算, - * 但是组件的属性值this.props.value是真正的颜色值colorValue,所以需要按照this.props.colorRange渐变的算法,计算出物理范围的value值即滑块的位置(optionMin=0至optionMax=16777215之间的某值) - */ - getValueFromColor(colorValue) { - const getter = colorGetterforRange(this.props.colorRangeObject); - const percent = getter.getPercentFromColor(transformDigtalToHex(colorValue)); - const value = this.props.optionMin + (this.props.optionMax - this.props.optionMin) * (percent / 100); - return value; - } - /** - * @description 手势开始回调 - */ - _onPanResponderGrant(e) { - // 每次拖拽手势开始时,需要重置 - this.sliding = true; // 表示正在滑动交互 - this.state.pan.setOffset(this.translateX); - this.state.pan.setValue(0); - // 为了准确确定释放位置,需要在起手的时候,计算出手势触摸点和中心点的偏差 - const { pageX } = e.nativeEvent; - this.offset = pageX - this.currentCoord; - // console.log('⬇️⬇️⬇️⬇️⬇️⬇️⬇️滑动开始⬇️⬇️⬇️⬇️⬇️⬇️⬇️'); - // console.log(`滑块中心坐标: ${ this.currentCoord }\n触摸点坐标: ${ pageX }\nthis.translateX: ${ this.translateX }`); - } - /** - * @description 手势释放回调 - */ - _onPanResponderRelease(e, gesture) { - const coord = gesture.moveX - this.offset; - if (this.optionStep) { - if (coord >= this.firstCoord && coord <= this.endCoord) { - this.currentCoord = coord; - } else { - console.log("coord越界"); - this.currentCoord = coord < this.firstCoord ? this.firstCoord : this.endCoord; - } - } else { - const min = this.coords[0]; - const max = this.coords[this.length - 1]; - if (coord >= min && coord <= max) { - this.currentCoord = coord; - } else { - this.currentCoord = coord < min ? min : max; - } - } - const index = this.getClosetIndex(gesture.moveX); - if (this.props.contentType !== CONTENTTYPE.COLOR) { - this.value = index; - } - if (this.props.onSlidingComplete) { - if (this.props.contentType === CONTENTTYPE.COLOR) { - const colorValue = this.getColorFromValue(index); - this.value = colorValue; - this.props.onSlidingComplete(colorValue); - } else { - this.props.onSlidingComplete(index); - this.value = index; - } - } - this.offset = 0; - // console.log(`手势结束坐标: ${ coord }\n滑块最终坐标: ${ this.currentCoord }\n离滑块最近的选项下标: ${ index }`); - // console.log('⬆️⬆️⬆️⬆️⬆️⬆️⬆️滑动结束⬆️⬆️⬆️⬆️⬆️⬆️⬆️'); - this.sliding = false; - } - /** - * @description 根据选项的宽度、间距和 maxWidth ,计算容器实际宽度,选项实际宽度,实际间距 - * @returns {{margin,blockWidth, blockHeight,containerHeight, containerWidth}} - */ - getCorrectLayout() { - const containerHeight = this.props.containerStyle.height || DEFAULT_HEIGHT; // 容器高度 50 - const blockWidth = this.props.blockStyle.width || DEFAULT_SIZE; // 滑块宽度 - // 重新计算 - let margin = ~~(containerHeight / 10); // 5 - margin = margin > MAX_MARGIN ? MAX_MARGIN : margin; // 5 - margin = margin < MIN_MARGIN ? MIN_MARGIN : margin; // 5 - const blockHeight = containerHeight - margin * 2; // 50 - 10 - return { - margin, - blockWidth: this.props.type === TYPE.CIRCLE ? blockHeight : blockWidth, - blockHeight, - containerHeight - }; - } - _onLayout() { - this._container.measure((x, y, w, h, px, py) => { - this.calculateCoord({ x, y, w, h, px, py }); - }); - } - /** - * @description 计算整个容器的大小和在屏幕上的位置,从而确定每个选项的圆心坐标 - */ - calculateCoord(obj) { - if (!obj) { - return; - } - const { x, w } = obj; - this.containerLayout = obj; - const offset = this.margin * 2 + this.blockWidth; - const startCoord = x + offset / 2; - const d = this.optionStep ? (w - offset) / this.length : (w - offset) / (this.length - 1); - this.d = d; - // console.log(`容器起始坐标: ${ x }\n实际宽度: ${ w }\n各选项中心坐标间距: ${ d }`); - if (d <= 0) { - if (__DEV__ && console.warn) { - console.warn('容器实际宽度 < 滑块宽度,滑块无法移动,请仔细检查 containerStyle 或者增加容器的宽度'); - } - } - if (!this.optionStep) { - this.coords = this.options.map((v, i) => d > 0 ? (startCoord + d * i) : 0); - this.currentCoord = this.coords[this.value]; - } else { - this.firstCoord = startCoord; - this.endCoord = startCoord + d * this.length; - if (this.props.contentType !== CONTENTTYPE.COLOR) { - this.currentCoord = startCoord + d * ((this.value - this.optionMin) / this.optionStep); - } else { - const value = this.getValueFromColor(this.value); // 从传入的颜色十进制值换算出滑块的位置value - this.currentCoord = startCoord + d * (Math.round((value - this.optionMin) / this.optionStep)); - } - } - this.totalWidth = w; - this.getDragRange(); - } - /** - * @description 计算可拖拽的范围 - */ - getDragRange(callback) { - if (!this.optionStep) { - this.setState({ - dragToValueMin: this.coords[0] - this.currentCoord || 0, - dragToValueMax: this.coords[this.length - 1] - this.currentCoord || 0 - }, () => { - // console.log(`滑块中心坐标: ${ this.currentCoord }\n可滑动范围: ${ this.state.dragToValueMin } ~ ${ this.state.dragToValueMax }`); - callback && callback(); - this.state.pan.setOffset(0); - this.state.pan.setValue(0); - }); - } else { - this.setState({ - dragToValueMin: this.firstCoord - this.currentCoord || 0, - dragToValueMax: this.endCoord - this.currentCoord || 0 - }, () => { - // console.log(`滑块中心坐标: ${ this.currentCoord }\n可滑动范围: ${ this.state.dragToValueMin } ~ ${ this.state.dragToValueMax }`); - callback && callback(); - this.state.pan.setOffset(0); - this.state.pan.setValue(0); - }); - } - } - /** - * @description 滑块 - */ - renderDraggable() { - const { dragToValueMin: min, dragToValueMax: max } = this.state; - // 在没有找到自我定位的时候,要在舞台后面低调 - if (min === undefined) return null; - // 可拖拽元素初始绝对定位 - const position = { - position: 'absolute', - // left: -min, - left: -min - this.margin, - top: -this.margin - }; - // 显示区域 - const innerCircle = this.props.type === TYPE.CIRCLE - ? { - width: this.blockHeight, - height: this.blockHeight, - borderRadius: this.blockHeight / 2 - } - : { - width: this.blockWidth, - height: this.blockHeight, - borderRadius: 0 - }; - // 手势响应区域 - const touchArea = { - // width: this.blockWidth + this.margin * 2, //40 + 10 - width: this.blockWidth + this.margin * 4, // 40 + 20 - // height: this.containerHeight, //50 - height: this.containerHeight + this.margin * 2, // 50 + 10 - backgroundColor: 'transparent', - alignItems: 'center', - justifyContent: 'center' - }; - // 动效 - const panStyle = { - transform: [ - { - translateX: this.state.pan.interpolate({ - inputRange: [min - 1, min, max, max + 1], - outputRange: [min, min, max, max] - }) - } - ] - }; - return ( - - - - - - ); - } - /** - * 滑块左侧背景 - */ - renderBackground() { - const { dragToValueMin: min, dragToValueMax: max } = this.state; - // 在没有找到自我定位的时候,要在舞台后面低调 - if (min === undefined) return null; - return ( - this._background = background} - style={{ - position: 'absolute', - // width: this.margin * 2 + this.blockWidth - (this.state.dragToValueMin || 0), - width: this.state.pan.interpolate({ - inputRange: [min - 1, min, max, max + 1], - outputRange: [this.margin * 2 + this.blockWidth, this.margin * 2 + this.blockWidth, this.totalWidth, this.totalWidth] - }), - height: this.containerHeight, - borderRadius: this.props.type === TYPE.CIRCLE ? this.containerHeight / 2 : 0, - backgroundColor: this.props.contentType === CONTENTTYPE.NUM ? this.props.minimumTrackTintColor : '' - }} - > - {this.props.showEndText - ? - - {this.optionStep ? this.optionMin : this.options[0]} - - - : null - } - - ); - } - /** - * 最右侧文字 - */ - renderRightText() { - let width = this.blockWidth + this.margin * 2; - if (this.optionStep && this.optionMax > 999999) { - width += 20; - } - return ( - - { - this.props.showEndText - ? - {this.optionStep ? this.optionMax : this.options[this.length - 1]} - - : null - } - - ); - } - render() { - if (this.showNothing) return null; - const containerStyle = { - height: this.containerHeight, - borderRadius: this.props.type === TYPE.CIRCLE ? this.containerHeight / 2 : 0, - backgroundColor: this.props.contentType === CONTENTTYPE.NUM ? this.props.maximumTrackTintColor : '' - }; - const opacity = this.props.disabled ? 0.3 : 1; - return ( - this._onLayout()} - ref={(container) => this._container = container} - style={[ - this.props.containerStyle, - containerStyle, - { opacity } - ]} - > - { - this.props.contentType === CONTENTTYPE.NUM - ? ( - - {this.renderRightText()} - {this.renderBackground()} - {this.renderDraggable()} - - ) - : ( - Number(value)) - : Object.keys(this.props.colorTemRangeObject).map((value) => Number(value)) - } - colors={this.props.contentType === CONTENTTYPE.COLOR ? Object.values(this.props.colorRangeObject) : Object.values(this.props.colorTemRangeObject)} - style={{ borderRadius: this.props.type === TYPE.CIRCLE ? this.containerHeight / 2 : 0 }} - > - {this.renderRightText()} - {this.renderBackground()} - {this.renderDraggable()} - - ) - } - - ); - } -} -const styles = StyleSheet.create({ - textContainer: { - justifyContent: 'center', - alignItems: 'center' - }, - text: { - fontSize: 15, - width: '100%', - textAlign: 'center' - } -}); \ No newline at end of file +import { SlideGear } from 'mhui-rn'; +export default SlideGear; \ No newline at end of file diff --git a/miot-sdk/ui/HeaterHeader.js b/miot-sdk/ui/HeaterHeader.js index 4b230706b..2d11407aa 100644 --- a/miot-sdk/ui/HeaterHeader.js +++ b/miot-sdk/ui/HeaterHeader.js @@ -1,208 +1,5 @@ -import React, { Component, PureComponent } from 'react'; -import { StyleSheet, View, Text, Animated } from 'react-native'; -import PropTypes from 'prop-types'; -import { adjustSize } from '../utils/sizes'; -import { FontDefault } from '../utils/fonts'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -const Source0 = require('../resources/images/heater-dot0.png'); -const Source1 = require('../resources/images/heater-dot1.png'); -const Source2 = require('../resources/images/heater-dot2.png'); -const Source3 = require('../resources/images/heater-dot3.png'); -const Source4 = require('../resources/images/heater-dot4.png'); -const Source5 = require('../resources/images/heater-dot5.png'); -const Source6 = require('../resources/images/heater-dot6.png'); -function getRandomBetween(min, max) { - return Math.random() * (max - min) + min; -} -export default class HeaterHeader extends PureComponent { - static propTypes = { - title: PropTypes.string, - disabled: PropTypes.bool, - themeColor: PropTypes.any, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel - }; - render() { - let { title, disabled, themeColor } = this.props; - let color = disabled ? '#47525F' : (themeColor || '#FA9E19'); - if (!title) { - return null; - } - return ( - - {title} - - ); - } -} -class Dot extends Component { - static propTypes = { - width: PropTypes.number, - height: PropTypes.height, - source: PropTypes.any - }; - state = { - progress: new Animated.Value(0) - }; - startAnimation() { - this.ani && this.ani.stop(); - this.ani = Animated.timing(this.state.progress, { - toValue: 1, - duration: getRandomBetween(12000, 24000) - }).start(({ finished }) => { - if (finished) { - this.state.progress.setValue(0); - this.startAnimation(); - } - }); - } - stopAnimation() { - this.ani && this.ani.stop(); - } - componentDidMount() { - this.startAnimation(); - } - componentWillUnmount() { - this.stopAnimation(); - } - render() { - let { width, height, source } = this.props; - let { progress } = this.state; - let originLeft = getRandomBetween(20, 350); - let opacity = progress.interpolate({ - inputRange: [0, 1], - outputRange: [1, 0] - }); - let bottom = progress.interpolate({ - inputRange: [0, 1], - outputRange: [`${ getRandomBetween(0, 20) }%`, '100%'] - }); - let left = progress.interpolate({ - inputRange: [0, 1], - outputRange: [originLeft - 3, originLeft + 3] - }); - return ( - - ); - } -} -class Dot0 extends Component { - render() { - return ( - - ); - } -} -class Dot1 extends Component { - render() { - return ( - - ); - } -} -class Dot2 extends Component { - render() { - return ( - - ); - } -} -class Dot3 extends Component { - render() { - return ( - - ); - } -} -class Dot4 extends Component { - render() { - return ( - - ); - } -} -class Dot5 extends Component { - render() { - return ( - - ); - } -} -class Dot6 extends Component { - render() { - return ( - - ); - } -} -export class Background extends Component { - static propTypes = { - on: PropTypes.bool, - themeColor: PropTypes.any - }; - static defaultProps = { - on: false, - themeColor: null - }; - getDots() { - // let { themeColor } = this.props; - let dots = []; - let Dots = [Dot0, Dot1, Dot2, Dot3, Dot4, Dot5, Dot6].reverse(); - let dotCount = [14, 11, 18, 10, 11, 10, 11].reverse(); - dotCount.forEach((c, index) => { - let DotN = Dots[index]; - for (let i = 0; i < c; i++) { - dots.push( - - ); - } - }); - return dots; - } - render() { - let { on } = this.props; - if (!on) { - return null; - } - let dots = this.getDots(); - return ( - - {dots} - - ); - } -} -const Styles = StyleSheet.create({ - container: { - paddingVertical: adjustSize(195) - }, - title: { - fontFamily: FontDefault, - fontSize: adjustSize(210), - textAlign: 'center', - color: '#f00' - } -}); -const StylesDot = StyleSheet.create({ - container: { - position: 'absolute', - resizeMode: 'contain' - } -}); -const StylesBackground = StyleSheet.create({ - container: { - height: adjustSize(1263) - } -}); \ No newline at end of file +import HeaterHeader, { Background } from 'mhui-rn/dist/modules/heaterHeader/HeaterHeader'; +export { + Background +}; +export default HeaterHeader; \ No newline at end of file diff --git a/miot-sdk/ui/ImageHeader.js b/miot-sdk/ui/ImageHeader.js index cf770a7ee..d5b652a02 100644 --- a/miot-sdk/ui/ImageHeader.js +++ b/miot-sdk/ui/ImageHeader.js @@ -1,41 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, View, Image } from 'react-native'; -import PropTypes from 'prop-types'; -import { adjustSize } from '../utils/sizes'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -export default class ImageHeader extends Component { - static propTypes = { - icon: PropTypes.any, - iconStyle: PropTypes.any, - containerStyle: PropTypes.any, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel - }; - render() { - let { icon, iconStyle, containerStyle } = this.props; - if (!icon) { - return null; - } - return ( - - - - ); - } -} -const Styles = StyleSheet.create({ - container: { - paddingTop: adjustSize(210), - paddingBottom: adjustSize(63), - alignSelf: 'center', - alignItems: 'center' - }, - icon: { - width: adjustSize(540), - height: adjustSize(540) - } -}); \ No newline at end of file +import ImageHeader from 'mhui-rn/dist/modules/imageHeader/ImageHeader'; +export default ImageHeader; \ No newline at end of file diff --git a/miot-sdk/ui/ListItem/ChoiceItem.js b/miot-sdk/ui/ListItem/ChoiceItem.js index 429a08bf2..d8bebb72e 100644 --- a/miot-sdk/ui/ListItem/ChoiceItem.js +++ b/miot-sdk/ui/ListItem/ChoiceItem.js @@ -1,254 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Image, StyleSheet, Text, TouchableHighlight, View } from 'react-native'; -import { Images, Styles } from '../../resources'; -import Checkbox from '../Checkbox/Checkbox'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const thinHeight = 50; // 无副标题时的高度 -const fatHeight = 60; // 有副标题时的高度 -const checkboxSize = 20; -/** - * @description 选择列表项的类型 - * @enum {string} - */ -const TYPE = { - /** - * 无状态列表项 - */ - STATELESS: 'stateless', - /** - * 单选列表项 - */ - SINGLE: 'single', - /** - * 多选列表项 - */ - MULTIPLE: 'multiple' -}; -Object.freeze(TYPE); -/** - * @export - * @author Geeook - * @since 10022 - * @module ChoiceItem - * @description 可选择的列表项,可以单选或者多选 - * @property {TYPE} type - 列表项的类型,是单选还是多选 - * @property {string} title - 标题文字 - * @property {string} subtitle - 副标题文字 - * @property {style} titleStyle - 10040新增 设置title的style - * @property {style} subtitleStyle - 10040新增 设置subtitle的style - * @property {boolean} selected - 是否选中,`TYPE.SINGLE`和`TYPE.MULTIPLE`可用 - * @property {string} color - 选中态颜色,单选时表示选中文字颜色,多选时表示勾选框勾选背景颜色,`TYPE.SINGLE`和`TYPE.MULTIPLE`可用 - * @property {number} icon - 列表项被选中时的选中图标,放在文字前面,`TYPE.SINGLE`可用 - * @property {function} onPress - 点击列表项的回调函数 - * @property {bool} allowFontScaling - 10040新增 设置字体是否随系统设置的字体大小的设置改变而改变 默认为true。 - * @property {bool} unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @property {number} titleNumberOfLines - 10040新增 设置title字体显示的最大行数 默认为1 - * @property {number} subtitleNumberOfLines - 10040新增 设置title字体显示的最大行数 默认为1 - */ -export default class ChoiceItem extends React.Component { - static propTypes = { - type: PropTypes.oneOf([TYPE.STATELESS, TYPE.SINGLE, TYPE.MULTIPLE]), - title: PropTypes.string, - subtitle: PropTypes.string, - selected: PropTypes.bool, - color: PropTypes.string, - icon: PropTypes.number, - onPress: PropTypes.func, - unlimitedHeightEnable: PropTypes.bool, - allowFontScaling: PropTypes.bool, - titleNumberOfLines: PropTypes.number, - subtitleNumberOfLines: PropTypes.number, - titleStyle: Text.propTypes.style, - subtitleStyle: Text.propTypes.style, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - type: TYPE.STATELESS, - selected: false, - color: Styles.common.MHGreen, - icon: Images.common.selectIcon, - unlimitedHeightEnable: false, - allowFontScaling: true, - titleNumberOfLines: 1, - subtitleNumberOfLines: 1, - titleStyle: {}, - subtitleStyle: {} - } - /** - * @description 选择列表项的类型 - * @enum {string} - */ - static TYPE = TYPE - constructor(props, context) { - super(props, context); - referenceReport('ChoiceItem'); - this.state = { - selected: props.selected - }; - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.selected !== this.state.selected) { - this.setState({ selected: newProps.selected }); - } - } - renderIcon() { - if (this.props.type === TYPE.STATELESS) return null; - if (!this.state.selected - || this.props.type === TYPE.MULTIPLE) { - return ( - ); - } - const paddingTop = { paddingTop: 20 }; - if (this.props.subtitle) paddingTop.paddingTop = 16; - return ( - - - - ); - } - renderText() { - const color = { color: "#000000" }; - const textAlign = {}; - if (this.state.selected) color.color = this.props.color; - if (this.props.type === TYPE.STATELESS) textAlign.textAlign = 'center'; - let adaptedFontStyle = {}; - if (!this.props.unlimitedHeightEnable) { - adaptedFontStyle = { height: undefined, lineHeight: undefined }; - } - return ( - - - {this.props.title} - - { - this.props.subtitle - ? - {this.props.subtitle} - - : null - } - - ); - } - renderCheckbox() { - if (this.props.type !== TYPE.MULTIPLE) return null; - return ( - this._onValueChange(selected)} - /> - ); - } - render() { - const height = { height: thinHeight }; - if (this.props.subtitle) { - height.height = fatHeight; - } - let heightStyle = { - minHeight: height.height, - height: height.height - }; - if (this.props.unlimitedHeightEnable) { - heightStyle.height = null; - } - return ( - this._onPress()} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityRole: AccessibilityRoles.radio, - accessibilityLabel: this.props.accessibilityLabel, - accessibilityHint: this.props.accessibilityHint, - accessibilityState: { - selected: this.state.selected, - checked: this.state.selected - } - })} - > - - {this.renderIcon()} - {this.renderText()} - {this.renderCheckbox()} - - - ); - } - _onValueChange(selected) { - // this.state.selected = selected; - this.setState({ - selected - }); - if (this.props.onPress) { - this.props.onPress(selected); - } - } - _onPress() { - const { type } = this.props; - let selected = this.state.selected; - if (type !== TYPE.STATELESS) { - if (type === TYPE.MULTIPLE) selected = !selected; - if (type === TYPE.SINGLE) selected = true; - this.setState({ selected }); - } - if (this.props.onPress) { - this.props.onPress(selected); - } - } -} -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - alignItems: 'center' - }, - iconContainer: { - width: 38, - alignSelf: 'stretch', - alignItems: 'center' - }, - icon: { - width: 10, - height: 10 - }, - textContainer: { - flex: 1, - justifyContent: 'center' - }, - title: { - alignSelf: 'stretch', - fontSize: 15, - lineHeight: 20 - }, - subtitle: { - alignSelf: 'stretch', - fontSize: 12, - color: "#666666", - lineHeight: 16 - } -}); \ No newline at end of file +import { ChoiceItem } from 'mhui-rn'; +export default ChoiceItem; \ No newline at end of file diff --git a/miot-sdk/ui/ListItem/ListItem.js b/miot-sdk/ui/ListItem/ListItem.js index 3a07cf484..576a6c407 100644 --- a/miot-sdk/ui/ListItem/ListItem.js +++ b/miot-sdk/ui/ListItem/ListItem.js @@ -1,241 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, Image, Platform, StyleSheet, Text, View } from 'react-native'; -import TouchableView from '../TouchableView'; -import { Images, Styles } from '../../resources'; -import Separator from "../Separator"; -import { AccessibilityRoles, AccessibilityPropTypes, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const { width } = Dimensions.get('window'); -const dot = require('../../resources/title/dot.png'); -const THIN_HEIGHT = 50; -const PADDING = 24; -const dotSize = 8; -const ICON_SIZE = Platform.select({ android: 26, ios: 24 }); // 当android设置24的时候,图形会挤压形成锯齿 -/** - * @export public - * @doc_name 列表控件 - * @doc_index 2 - * @doc_directory ui - * @author Geeook - * @since 10004 - * @module ListItem - * @description 普通列表项 - * @property {string} title - 左侧主标题 - * @property {string} subtitle - 右侧副标题 - * @property {string} value - 右侧文案 - * @property {function} onPress - 点击事件 - * @property {bool} disabled - 是否禁用点击,默认值 false - * @property {bool} showSeparator - 是否显示分割线,默认值 true - * @property {bool} hideArrow - 是否隐藏右侧箭头图片,默认值 `false` - * @property {bool} showDot - 是否显示小红点,默认值 `false` - * @property {component} separator - 自定义分割线,不传将显示默认样式的分割线 - * @property {style} containerStyle - 列表项的自定义样式 - * @property {style} titleStyle - 标题的自定义样式 - * @property {style} subtitleStyle - 副标题的自定义样式 - * @property {style} valueStyle - 右侧文案的自定义样式 - * @property {bool} dotStyle - 10040新增 title右上角红点的style 建议设置宽高为8,以免图片失真 - * @property {bool} allowFontScaling - 10040新增 设置字体是否随系统设置的字体大小的设置改变而改变 默认为true。 - * @property {bool} unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @property {number} titleNumberOfLines - 10040新增 设置title字体显示的最大行数 默认为1 - * @property {number} subtitleNumberOfLines - 10040新增 设置subtitle字体显示的最大行数 默认为2 - * @property {number} valueNumberOfLines - 10040新增 设置value字体显示的最大行数 默认为1 - */ -export default class ListItem extends React.Component { - static propTypes = { - title: PropTypes.string.isRequired, - subtitle: PropTypes.string, - value: PropTypes.string, - onPress: PropTypes.func.isRequired, - disabled: PropTypes.bool, - showSeparator: PropTypes.bool, - hideArrow: PropTypes.bool, - showDot: PropTypes.bool, - separator: PropTypes.element, - containerStyle: PropTypes.object, - titleStyle: PropTypes.object, - subtitleStyle: PropTypes.object, - valueStyle: PropTypes.object, - dotStyle: PropTypes.object, - allowFontScaling: PropTypes.bool, - unlimitedHeightEnable: PropTypes.bool, - titleNumberOfLines: PropTypes.number, - subtitleNumberOfLines: PropTypes.number, - valueNumberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - title: '', - subtitle: '', - value: '', - onPress: () => { }, - disabled: false, - showSeparator: true, - hideArrow: false, - showDot: false, - containerStyle: {}, - titleStyle: {}, - subtitleStyle: {}, - valueStyle: {}, - dotStyle: {}, - unlimitedHeightEnable: false, - allowFontScaling: true - } - constructor(props, context) { - super(props, context); - referenceReport('ListItem'); - } - render() { - let extraContainerStyle = { - height: THIN_HEIGHT - }; - if (this.props.subtitle) { - extraContainerStyle = { - paddingVertical: 8, - height: undefined - }; - } - let extraRightStyle = { - // flex: 0 - maxWidth: '40%' - }; - // if (this.props.value) { - // extraRightStyle.flex = 8; - // } - const valueStyle = { - marginRight: -7, - textAlignVertical: 'center', - // flex: 1, - textAlign: 'right' - }; - let adaptedFontStyle = {}; - if (this.props.unlimitedHeightEnable) { - adaptedFontStyle = { height: undefined, lineHeight: undefined }; - } - let titleLine = this.props.titleNumberOfLines == undefined ? 1 : this.props.titleNumberOfLines; - let subtitleLine = this.props.subtitleNumberOfLines == undefined ? 2 : this.props.subtitleNumberOfLines; - let valueLine = this.props.valueNumberOfLines == undefined ? 2 : this.props.valueNumberOfLines; - if (titleLine < 0) titleLine = 0; - if (subtitleLine < 0) subtitleLine = 0; - if (valueLine < 0) valueLine = 0; - // 如果不设置英文字体,那么外文字符串将显示不全(Android) - let fontFamily = {}; - if (Platform.OS === 'android') { - fontFamily = { fontFamily: 'Kmedium' }; - valueStyle.height = THIN_HEIGHT; - } - return ( - - - - - - {this.props.title} - - {this.props.showDot - ? - : null - } - - {this.props.subtitle ? - - {this.props.subtitle} - - : null - } - - - - {this.props.value ? - - {this.props.value} - - : null - } - - {!this.props.hideArrow - ? - : null - } - - {this.renderSeparator()} - - ); - } - renderSeparator() { - if (!this.props.showSeparator) return null; - return this.props.separator || ; - } -} -const styles = StyleSheet.create({ - container: { - width: width, - backgroundColor: '#fff', - paddingHorizontal: PADDING, - flexDirection: 'row', - alignItems: 'center' - }, - left: { - flex: 1 - }, - right: { - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'flex-start' - }, - icon: { - width: ICON_SIZE, - height: ICON_SIZE - }, - dot: { - marginTop: -1, - marginLeft: 1, - width: dotSize, - height: dotSize - } -}); \ No newline at end of file +import { ListItem } from 'mhui-rn'; +export default ListItem; \ No newline at end of file diff --git a/miot-sdk/ui/ListItem/ListItemWithSlider.js b/miot-sdk/ui/ListItem/ListItemWithSlider.js index 235c2aac8..2c1106e95 100644 --- a/miot-sdk/ui/ListItem/ListItemWithSlider.js +++ b/miot-sdk/ui/ListItem/ListItemWithSlider.js @@ -1,308 +1,2 @@ -'use strict'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, StyleSheet, Text, View } from 'react-native'; -import Slider from "react-native-slider"; -import { Styles } from '../../resources'; -import Separator from "../Separator"; -import { FontDefault } from '../../utils/fonts'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const { width } = Dimensions.get('window'); -const HEIGHT = 77; -const PADDING = 24; -const THUMB_SIZE = 24; -const THUMB_TOUCH_SIZE = { width: 50, height: 50 }; -/** - * @export public - * @doc_name 列表控件 - * @doc_index 2 - * @doc_directory ui - * @author Geeook - * @since 10004 - * @module ListItemWithSlider - * @description 带滑动条的列表项 - * @property {string} title - 标题 - * @property {string} subtitle - 副标题,优先级高于自动计算的值 - * @property {object} sliderProps - slider的属性值,默认值 {minimumValue:0,maximumValue:100,step:1,value:50} - * minimumValue:最小值;maximumValue:最大值;step:步长;value:当前值 - * @property {bool} showWithPercent - 是否以百分比显示当前值,默认值 true - * @property {string} unit - 当前值的单位。`showWithPercent = true` 将不显示单位 - * @property {object} sliderStyle - slider 的自定义样式 - * 默认值 - * { - * minimumTrackTintColor: "#32BAC0", // slider 左侧已填充颜色 - * maximumTrackTintColor: "rgba(0,0,0,0.15)", // slider 右侧未填充颜色 - * thumbTintColor: "#32BAC0", // 可移动圆圈的填充颜色 - * style: {}, // slider 容器的自定义样式 - * trackStyle: { height: 2, borderRadius: 1 }, // 轨 的自定义样式 - * thumbStyle: { width: 24, height: 24, borderRadius: 12 }, // 可移动圆圈 的自定义样式 - * } - * @property {function} onValueChange - 滑动回调函数,返回实时的滑动值 - * @property {function} onSlidingComplete - 滑动结束回调函数 - * @property {bool} disabled - 是否禁用滑动,默认值 false - * @property {style} containerStyle - 列表项的自定义样式 - * @property {style} titleStyle - 标题的自定义样式 - * @property {style} valueStyle - value的自定义样式 - * @property {bool} showSeparator - 是否显示分割线,默认值 true - * @property {component} separator - 自定义分割线,不传将显示默认样式的分割线 - * @property {bool} allowFontScaling - 10040新增 设置字体是否随系统设置的字体大小的设置改变而改变 默认为true。 - * @property {bool} unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @property {number} titleNumberOfLines - 10040新增 设置title字体显示的最大行数 默认为1 - * @property {number} valueNumberOfLines - 10040新增 设置value字体显示的最大行数 默认为1 - */ -export default class ListItemWithSlider extends React.Component { - static propTypes = { - title: PropTypes.string.isRequired, - subtitle: PropTypes.string, - sliderProps: PropTypes.object, - showWithPercent: PropTypes.bool, - unit: PropTypes.string, - sliderStyle: PropTypes.object, - onValueChange: PropTypes.func, - onSlidingComplete: PropTypes.func.isRequired, - disabled: PropTypes.bool, - containerStyle: PropTypes.object, - titleStyle: PropTypes.object, - valueStyle: PropTypes.object, - showSeparator: PropTypes.bool, - separator: PropTypes.element, - allowFontScaling: PropTypes.bool, - unlimitedHeightEnable: PropTypes.bool, - titleNumberOfLines: PropTypes.number, - valueNumberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - title: '', - subtitle: '', - showWithPercent: true, - unit: '', - disabled: false, - containerStyle: {}, - titleStyle: {}, - valueStyle: {}, - showSeparator: true, - onSlidingComplete: () => { }, - unlimitedHeightEnable: false, - allowFontScaling: true - } - constructor(props, context) { - super(props, context); - referenceReport('ListItemWithSlider'); - this.sliderProps = Object.assign({ - minimumValue: 0, - maximumValue: 100, - step: 1, - value: 50 - }, this.props.sliderProps); - this.sliderStyle = Object.assign({ - minimumTrackTintColor: Styles.common.MHGreen, - maximumTrackTintColor: "rgba(0,0,0,0.15)", - thumbTintColor: Styles.common.MHGreen - }, this.props.sliderStyle); - this.state = { - value: this.sliderProps.value, - valueStr: this.format(this.sliderProps.value) - }; - } - render() { - let extraStyle = { - maxWidth: (width - PADDING * 2) * 0.7, - fontFamily: FontDefault - }; - if (this.props.containerStyle.width) { - extraStyle = { - maxWidth: (this.props.containerStyle.width - PADDING * 2) * 0.7 - }; - } - let adaptedFontStyle = {}; - if (this.props.unlimitedHeightEnable) { - adaptedFontStyle = { height: undefined, lineHeight: undefined }; - } - let titleLine = this.props.titleNumberOfLines == undefined ? 1 : this.props.titleNumberOfLines; - let valueLine = this.props.valueNumberOfLines == undefined ? 1 : this.props.valueNumberOfLines; - if (titleLine < 0) titleLine = 0; - if (valueLine < 0) valueLine = 0; - return ( - - - - - {this.props.title} - - - - {this.props.subtitle || this.state.valueStr} - - - - this._onValueChange(value)} - onSlidingComplete={(value) => this._onSlidingComplete(value)} - {...getAccessibilityConfig({ - accessible: false - })} - /> - - - {this.renderSeparator()} - - ); - } - renderSeparator() { - if (!this.props.showSeparator) return null; - return this.props.separator || ; - } - format(val) { - if (this.props.showWithPercent) { - const { minimumValue: min, maximumValue: max } = this.sliderProps; - return `${ Math.round((val - min) / (max - min) * 100) } %`; - } - return `${ val } ${ this.props.unit }`; - } - // 父组件更新数据 - UNSAFE_componentWillReceiveProps(nextProps) { - if (nextProps.sliderProps === undefined) return; - if (typeof nextProps.sliderProps.value !== 'number') { - if (__DEV__ && console.warn) { - console.warn('sliderProps.value is not a number'); - } - return; - } - const { value, minimumValue, maximumValue } = nextProps.sliderProps; - if (minimumValue !== undefined && minimumValue !== this.sliderProps.minimumValue) { - this.sliderProps.minimumValue = minimumValue; - } - if (maximumValue !== undefined && maximumValue !== this.sliderProps.maximumValue) { - this.sliderProps.maximumValue = maximumValue; - } - if (value !== this.state.value) { - this.setState({ - value, - valueStr: this.format(value) - }); - } - } - _onValueChange(value) { - this.setState({ - value, - valueStr: this.format(value) - }); - if (this.props.onValueChange) { - this.props.onValueChange(value); - } - } - onAccessibilityAction = ({ nativeEvent: { actionName } }) => { - const { minimumValue, maximumValue, step } = this.sliderProps; - const { disabled } = this.props; - if (disabled) { - return; - } - const { value } = this.state; - const totalSteps = (maximumValue - minimumValue) / step; - const everyStep = totalSteps >= 10 ? Math.floor(totalSteps / 10) : 1; - const currentStep = (value - minimumValue) / step; - let actionStep = currentStep; - switch (actionName) { - case 'increment': - actionStep += everyStep; - break; - case 'decrement': - actionStep -= everyStep; - break; - } - const targetValue = Math.min(maximumValue, Math.max(minimumValue, actionStep * step + minimumValue)); - this._onValueChange(targetValue, () => { - this._onSlidingComplete(targetValue); - }); - } - _onSlidingComplete(value) { - if (this.props.onSlidingComplete) { - this.props.onSlidingComplete(value); - } - } -} -const styles = StyleSheet.create({ - container: { - width: width, - backgroundColor: '#fff', - paddingHorizontal: PADDING, - height: HEIGHT - }, - up: { - marginTop: 11, - flexDirection: 'row', - alignItems: 'center' - }, - down: { - flex: 1, - justifyContent: 'center' - }, - separatorCol: { - height: 14, - width: 0.5, - marginHorizontal: 5, - backgroundColor: 'rgba(0,0,0,0.2)' - }, - value: { - fontSize: 12, - color: Styles.common.MHGreen, - lineHeight: 16, - flex: 1 - }, - trackStyle: { - height: 2, - borderRadius: 1 - }, - thumbStyle: { - width: THUMB_SIZE, - height: THUMB_SIZE, - borderRadius: THUMB_SIZE / 2 - } -}); \ No newline at end of file +import { ListItemWithSlider } from 'mhui-rn'; +export default ListItemWithSlider; \ No newline at end of file diff --git a/miot-sdk/ui/ListItem/ListItemWithSwitch.js b/miot-sdk/ui/ListItem/ListItemWithSwitch.js index 4b2c4eae7..cfa3f7add 100644 --- a/miot-sdk/ui/ListItem/ListItemWithSwitch.js +++ b/miot-sdk/ui/ListItem/ListItemWithSwitch.js @@ -1,286 +1,2 @@ -'use strict'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, Platform, StyleSheet, Text, View } from 'react-native'; -import { Styles } from '../../resources'; -import TouchableView from '../TouchableView'; -import Separator from '../Separator'; -import Switch from '../Switch'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../../utils/accessibility-helper'; -import { referenceReport } from '../../decorator/ReportDecorator'; -const { width } = Dimensions.get('window'); -const THIN_HEIGHT = 50; -const PADDING = 24; -/** - * @export public - * @doc_name 列表控件 - * @doc_index 2 - * @doc_directory ui - * @author Geeook - * @since 10004 - * @module ListItemWithSwitch - * @description 带开关的列表项 - * @property {string} title - 左侧主标题 - * @property {string} subtitle - 左侧副标题,主标题下方 - * @property {string} valueText - 主标题右侧文案 - * @property {bool} value - 开关状态,默认值 false - * @property {bool} disabled - 是否禁用开关,默认值 false - * @property {function} onPress - note: IMPORTANT 列表项点击事件,不传则不具有点击态(disabled) - * @property {function} onValueChange - 开关切换事件 - * @property {bool} showSeparator - 是否显示分割线,默认值 true - * @property {component} separator - 自定义分割线,不传将显示默认样式的分割线 - * @property {style} containerStyle - 列表项的自定义样式 - * @property {style} titleStyle - 主标题的自定义样式 - * @property {style} subtitleStyle - 副标题的自定义样式 - * @property {style} valueTextStyle - 主标题右侧文案的自定义样式 - * @property {style} switchStyle - 主标题右侧文案的自定义样式 - * @property {bool} allowFontScaling - 10040新增 设置字体是否随系统设置的字体大小的设置改变而改变 默认为true。 - * @property {bool} unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @property {number} titleNumberOfLines - 10040新增 设置title字体显示的最大行数 默认为1 - * @property {number} subtitleNumberOfLines - 10040新增 设置subtitle字体显示的最大行数 默认为2 - * @property {number} valueNumberOfLines - 10040新增 设置value字体显示的最大行数 默认为1 - * @property {string} onTintColor - 开关按钮打开时的背景颜色 - * @property {string} tintColor - 开关按钮关闭时的背景颜色 - */ -export default class ListItemWithSwitch extends React.Component { - static propTypes = { - title: PropTypes.string.isRequired, - subtitle: PropTypes.string, - valueText: PropTypes.string, - value: PropTypes.bool, - disabled: PropTypes.bool, - onPress: PropTypes.func, - onValueChange: PropTypes.func.isRequired, - showSeparator: PropTypes.bool, - separator: PropTypes.element, - containerStyle: PropTypes.object, - titleStyle: PropTypes.object, - subtitleStyle: PropTypes.object, - valueTextStyle: PropTypes.object, - switchStyle: PropTypes.object, - tintColor: PropTypes.string, - onTintColor: PropTypes.string, - allowFontScaling: PropTypes.bool, - unlimitedHeightEnable: PropTypes.bool, - titleNumberOfLines: PropTypes.number, - subtitleNumberOfLines: PropTypes.number, - valueNumberOfLines: PropTypes.number, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - title: '', - subtitle: '', - valueText: '', - value: false, - disabled: false, - showSeparator: true, - containerStyle: {}, - titleStyle: {}, - subtitleStyle: {}, - valueTextStyle: {}, - switchStyle: {}, - tintColor: undefined, - onTintColor: undefined, - unlimitedHeightEnable: false, - allowFontScaling: true - } - constructor(props, context) { - super(props, context); - referenceReport('ListItemWithSwitch'); - } - render() { - let extraContainerStyle = { - height: THIN_HEIGHT - }; - if (this.props.subtitle) { - extraContainerStyle = { - paddingVertical: 8, - height: 60 - }; - } - let extraStyle = {}; - if (this.props.valueText) { - extraStyle.maxWidth = (width - PADDING * 2) * 0.4; - if (this.props.containerStyle.width) { - extraStyle.maxWidth = (this.props.containerStyle.width - PADDING * 2) * 0.4; - } - } - if (Platform.OS === 'android') { - extraStyle.fontFamily = 'KMedium'; - } - let adaptedFontStyle = {}; - let adaptedContainerStyle = {}; - if (this.props.unlimitedHeightEnable) { - adaptedFontStyle = { height: undefined, lineHeight: undefined }; - adaptedContainerStyle = { height: undefined, paddingVertical: 10 }; - } - let titleLine = this.props.titleNumberOfLines == undefined ? 1 : this.props.titleNumberOfLines; - let subtitleLine = this.props.subtitleNumberOfLines == undefined ? 2 : this.props.subtitleNumberOfLines; - let valueLine = this.props.valueNumberOfLines == undefined ? 1 : this.props.valueNumberOfLines; - if (titleLine < 0) titleLine = 0; - if (subtitleLine < 0) subtitleLine = 0; - if (valueLine < 0) valueLine = 0; - return ( - - - - - - {this.props.title} - - {this.props.valueText ? - - {/* */} - - - {this.props.valueText} - - - : null - } - - {this.props.subtitle ? - - {this.props.subtitle} - - : null - } - - - this._onValueChange(value)} - {...(!this.props.onPress ? {} : getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityLabel: this.props.accessibilityLabel || this.props.title, - accessibilityHint: this.props.accessibilityHint - }))} - /> - - {/* */} - - {this.renderSeparator()} - - ); - } - renderSeparator() { - if (!this.props.showSeparator) return null; - return this.props.separator || ; - } - // // 父组件更新数据 - // componentWillReceiveProps(nextProps) { - // if (nextProps.value !== this.state.value) { - // this.setState({ value: nextProps.value }); - // } - // } - _onValueChange(value) { - // this.setState({ value }); - if (this.props.onValueChange) { - this.props.onValueChange(value); - } - } - onAccessibilityAction = ({ nativeEvent: { actionName } }) => { - const { disabled, onValueChange, onPress, value } = this.props; - if (disabled) { - return; - } - if (actionName === 'activate' && typeof onValueChange === 'function') { - onValueChange(!value); - } - if (actionName === 'activate' && typeof onPress === 'function') { - onPress(); - } - } -} -const styles = StyleSheet.create({ - container: { - width: width, - paddingHorizontal: PADDING, - flexDirection: 'row', - alignItems: 'center' - }, - left: { - flex: 4 - }, - right: { - flex: 1, - alignItems: 'flex-end' - }, - up: { - flexDirection: 'row', - alignItems: 'center', - flex: 1 - }, - separatorCol: { - height: 14, - width: 0.5, - marginHorizontal: 5, - backgroundColor: 'rgba(0,0,0,0.2)' - } -}); \ No newline at end of file +import { ListItemWithSwitch } from 'mhui-rn'; +export default ListItemWithSwitch; \ No newline at end of file diff --git a/miot-sdk/ui/MHDatePicker.js b/miot-sdk/ui/MHDatePicker.js index b11f1694a..18b91377e 100644 --- a/miot-sdk/ui/MHDatePicker.js +++ b/miot-sdk/ui/MHDatePicker.js @@ -1,774 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Dimensions, Modal, Platform, StyleSheet, Text, TouchableHighlight, TouchableWithoutFeedback, View } from 'react-native'; -import { strings, Styles } from '../resources'; -import { formatString } from '../resources/Strings'; -import Separator from './Separator'; -import StringSpinner from "./StringSpinner"; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -import { referenceReport } from '../decorator/ReportDecorator'; -/** - * @description 时间选择器类型 - * @enum {string} - */ -const TYPE = { - /** - * 单个picker - */ - SINGLE: 'single', - /** - * 选择小时分钟,24小时制 - */ - TIME24: 'time24', - /** - * 选择小时分钟,12小时制 - */ - TIME12: 'time12', - /** - * 选择年月日 - */ - DATE: 'date' -}; -Object.freeze(TYPE); -/** - * @description 单个picker时选择器的类型,也就是显示的单位 - * @enum {string} - */ -const SINGLE_TYPE = { - /** - * 月 - */ - MONTH: 'month', - /** - * 日 - */ - DAY: 'day', - /** - * 时 - */ - HOUR: 'hour', - /** - * 分 - */ - MINUTE: 'minute', - /** - * 秒 - */ - SECOND: 'second' -}; -Object.freeze(SINGLE_TYPE); -/** - * - * @param {number} length - * @param {bool} zeroPrefix 是否前补0 - * @param {bool} fromZero 是否从0开始 - */ -function constructArray(length, zeroPrefix = true, fromZero = false) { - const maxLength = (length - (fromZero ? 1 : 0)).toString().length; - return Array.from({ length }, (v, i) => { - return ((zeroPrefix ? '0000000000000' : '') + (i + (fromZero ? 0 : 1))).slice(-maxLength); - }); -} -const screenBackgroundColor = 'rgba(0,0,0,0.4)'; -const margin = 10; -const borderRadius = 15; -const titleHeightThin = 66; -const titleHeightFat = 85; -const rowHeight = 52; -const pickerContainerHeight = Platform.select({ android: rowHeight * 5, ios: 220 }); -const buttonHeight = 50; -const { width, height } = Dimensions.get('window'); -const modalWidth = width - margin * 2; -// 选择器样式,固定 -const pickerInnerStyle = { - lineColor: Styles.common.hairlineColor, - textColor: '#666666', - fontSize: 15, - selectTextColor: "#333333", - selectFontSize: 20, - unitTextColor: '#333333', - unitFontSize: 10, - rowHeight, - selectBgColor: "#f3f3f3" -}; -const months = constructArray(12, 1, 0); -const days = constructArray(31, 1, 0); -const hours24 = constructArray(24, 1, 1); -const timeSystem = [strings.am, strings.pm]; -const hours12 = hours24.slice(1, 13); -const minutes = constructArray(60, 1, 1); -const singleDataSource = { - [SINGLE_TYPE.MONTH]: months, - [SINGLE_TYPE.DAY]: days, - [SINGLE_TYPE.HOUR]: constructArray(24, 1, 0), - [SINGLE_TYPE.MINUTE]: constructArray(60, 1, 0), - [SINGLE_TYPE.SECOND]: constructArray(60, 1, 0) -}; -Object.freeze(singleDataSource); -const days31 = ['01', '03', '05', '07', '08', '10', '12']; -const days30 = ['04', '06', '09', '11']; -const defaultYearOffset = 15; -/** - * @export - * @author Geeook - * @since 10021 - * @module MHDatePicker - * @description 米家插件常用的时间选择器 - * @param {string} animationType - modal 显示动效, 参考 https://facebook.github.io/react-native/docs/0.54/modal#animationtype - * @param {bool} visible - 是否显示 modal, 参考 https://facebook.github.io/react-native/docs/0.54/modal#visible - * @param {string} title - 标题 - * @param {bool} showSubtitle - 是否显示副标题,副标题显示的内容固定,和`type`有关 - * @param {string} confirmColor - 确定按钮的颜色,默认米家绿 10040 废弃, 建议使用datePickerStyle.rightButtonStyle 来控制 - * @param {Object} datePickerStyle - 10040新增 控制DatePicker 一些特有的样式 - * @param {bool} datePickerStyle.allowFontScaling - 10040新增 dialog中text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - * @param {bool} datePickerStyle.unlimitedHeightEnable - 10040新增 设置控件高度是否自适应。 默认为false,即默认高度 - * @param {number} datePickerStyle.titleNumberOfLines - 10040新增 控制title 文字的行数, 默认 1行 - * @param {number} datePickerStyle.subTitleNumberOfLines - 10040新增 控制subTitle 文字的行数,默认 1行 - * @param {ViewPropTypes.style} datePickerStyle.titleStyle - 10040新增 控制title 文字的样式 - * @param {ViewPropTypes.style} datePickerStyle.subTitleStyle - 10040新增 控制subTitle 文字的样式 - * @param {number} datePickerStyle.leftButtonNumberOfLines - 10040新增 控制底部左边 文字的行数, 默认 1行 - * @param {number} datePickerStyle.rightButtonNumberOfLines - 10040新增 控制底部右边 文字的行数,默认 1行 - * @param {ViewPropTypes.style} datePickerStyle.leftButtonStyle - 10040新增 控制底部左边文字的样式 - * @param {ViewPropTypes.style} datePickerStyle.rightButtonStyle - 10040新增 控制底部右边 文字的样式 - * @param {Object} datePickerStyle.pickerInnerStyle - 10040新增 控制中间滑轮等样式, 可参考 StringSpinner pickerInnerStyle - * @param {TYPE} type - 时间选择器类型, enum('single', 'time24', 'time12', 'date') - * @param {SINGLE_TYPE} singleType - 单个picker时的选择器类型, enum('month', 'day', 'hour', 'minute', 'second') - * @param {array|array|Date} current - 当前选中值,可传入数字数组,字符串数组,Date实例,对所有时间选择器类型有效 - * @param {array|array|Date} min - 最小值,可传入数字数组,字符串数组,Date实例,只对`'single'`和`'date'`类型生效。对于 date 类型,默认值:现在向前15年 - * @param {array|array|Date} max - 最大值,可传入数字数组,字符串数组,Date实例,只对`'single'`和`'date'`类型生效。对于 date 类型,默认值:现在向后15年 - * @param {function} onSelect - 选好之后的回调函数,返回所有picker的选中值 组成的数组 / 拼接的字符串 / 以及计算出的Date实例, 详见使用 demo - * @param {function} onDismiss - 点击`Modal`内容外面/取消按钮/确定按钮,Modal隐藏时的回调函数 - */ -export default class MHDatePicker extends React.Component { - static propTypes = { - animationType: PropTypes.string, - visible: PropTypes.bool, - title: PropTypes.string, - showSubtitle: PropTypes.bool, - confirmColor: PropTypes.string, - type: PropTypes.oneOf([TYPE.DATE, TYPE.SINGLE, TYPE.TIME12, TYPE.TIME24]), - singleType: PropTypes.oneOf([ - SINGLE_TYPE.MONTH, - SINGLE_TYPE.DAY, - SINGLE_TYPE.HOUR, - SINGLE_TYPE.MINUTE, - SINGLE_TYPE.SECOND - ]), - current: PropTypes.oneOfType([ - PropTypes.arrayOf(PropTypes.string), - PropTypes.arrayOf(PropTypes.number), - PropTypes.instanceOf(Date) - ]), - min: PropTypes.oneOfType([ - PropTypes.arrayOf(PropTypes.string), - PropTypes.arrayOf(PropTypes.number), - PropTypes.instanceOf(Date) - ]), - max: PropTypes.oneOfType([ - PropTypes.arrayOf(PropTypes.string), - PropTypes.arrayOf(PropTypes.number), - PropTypes.instanceOf(Date) - ]), - datePickerStyle: PropTypes.object, - onSelect: PropTypes.func, - onDismiss: PropTypes.func, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - animationType: 'fade', - visible: false, - title: '开启时间', - showSubtitle: true, - confirmColor: Styles.common.MHGreen, - type: TYPE.TIME24, - singleType: SINGLE_TYPE.MINUTE, - datePickerStyle: { - pickerInnerStyle: pickerInnerStyle, - unlimitedHeightEnable: false, - allowFontScaling: true, - titleNumberOfLines: 1, - subTitleNumberOfLines: 1, - titleStyle: null, - subTitleStyle: null, - leftButtonNumberOfLines: 1, - rightButtonNumberOfLines: 1, - leftButtonStyle: null, - rightButtonStyle: null - }, - onSelect: (obj) => console.log(obj) - } - /** - * @description 时间选择器类型 - * @enum {string} - */ - static TYPE = TYPE; - /** - * @description 单个picker时选择器的类型,也就是显示的单位 - * @enum {string} - */ - static SINGLE_TYPE = SINGLE_TYPE; - constructor(props, context) { - super(props, context); - referenceReport('MHDatePicker'); - const { currentArray, dataSourceArray } = this.init(props); - const subtitle = this.getSubtitle(currentArray); - this.state = { - visible: this.props.visible, - dataSourceArray, // 待显示的数据源数组 - currentArray, // 当前选中值数组 - subtitle - }; - } - /** - * 根据时间选择器类型、app 语言和初始值数组显示不同模板的副标题文案 - * @param {*} arr - */ - getSubtitle(arr) { - if (this.props.type === TYPE.SINGLE) { - const count = parseInt(arr[0]); - const unit = count > 1 ? strings[`${ this.props.singleType }s`] : strings[this.props.singleType]; // 英文单复数单位 - return formatString(strings.singleSubTitle, count, unit); - } - return formatString({ - [TYPE.DATE]: strings.dateSubTitle, - [TYPE.TIME24]: strings.time24SubTitle, - [TYPE.TIME12]: strings.time12SubTitle - }[this.props.type], ...arr); - } - /** - * 根据类型将 Date 实例或者 Array 转换成 ['','','']形式 - * @param {*} cur - * @param {string} type - */ - convert(cur) { - const { type } = this.props; - if (cur instanceof Date) { - switch (type) { - case TYPE.DATE: - return this.convert([cur.getFullYear(), cur.getMonth() + 1, cur.getDate()]); - case TYPE.TIME24: - return this.convert([cur.getHours(), cur.getMinutes()]); - case TYPE.TIME12: - return this.convertTo12([cur.getHours(), cur.getMinutes()]); - case TYPE.SINGLE: - return ['01']; - default: - return ['01']; - } - } else if (cur instanceof Array) { - switch (type) { - case TYPE.DATE: - return cur.slice(0, 3).map((v, i) => i === 0 ? (`${ v }`) : ((`0${ v }`).slice(-2))); - case TYPE.TIME24: - return cur.slice(0, 2).map((v) => (`0${ v }`).slice(-2)); - case TYPE.TIME12: - return this.convertTo12(cur); - case TYPE.SINGLE: - return cur.slice(0, 1).map((v) => (`0${ v }`).slice(-2)); - default: - return ['01']; - } - } else if (typeof cur === 'string' - || typeof cur === 'number') { - // 异常处理1 - return [`${ cur }`]; - } else { - // 异常处理2 - return ['01']; - } - } - /** - * 将24小时制的数组转换成12小时制的数组 - * @param {Array} arr - */ - convertTo12(arr) { - if (arr.length === 2) { - let newArr = arr.map((v) => parseInt(v)); - if (newArr.every(() => Number.isInteger)) { - let res; - if (newArr[0] === 0) { - res = [strings.am, 12, newArr[1]]; - } else { - const timeSystem = newArr[0] > 11 ? strings.pm : strings.am; // 下午 12:34 - const hour = newArr[0] > 12 ? `${ newArr[0] - 12 }` : `${ newArr[0] }`; - const minute = `${ newArr[1] }`; - res = [timeSystem, hour, minute]; - } - return res.map((v, i) => i > 0 ? (`0${ v }`).slice(-2) : v); - } - } - return this.convert(new Date()); - } - /** - * 截取部分数组 - * @param {array} arr - * @param {*} head - * @param {*} tail - */ - slice(arr, head, tail) { - if (head === undefined && tail === undefined) return arr; - const index = arr.indexOf((`0${ head }`).slice(-2)) || 0; - const lastIndex = arr.lastIndexOf((`0${ tail }`).slice(-2)) || arr.length - 1; - return arr.slice(index, lastIndex + 1); - } - /** - * 计算出年份的范围 - * @param {*} min - * @param {*} max - */ - getYears(min, max) { - this.min = this.convert(min); // 留一份滚动比较时候用 - this.max = this.convert(max); - const minY = Number.parseInt(this.min[0]); - const maxY = Number.parseInt(this.max[0]); - return this.generateArray(minY, maxY); - } - /** - * 根据极值生成步长为1的数组,并转换成字符串 - * @param {number} min - * @param {number} max - */ - generateArray(min, max) { - if (min > max) { - if (__DEV__ && console.warn) { - console.warn('max < min'); - } - return []; - } - return Array.from({ length: max - min + 1 }, (v, i) => i + min).map((v) => `${ v }`); - } - /** - * 初始化数据,包括每个picker的范围和选中值 - */ - init(props) { - const { type, singleType, current, min, max } = props; - const currentArray = this.convert(current || new Date()); - let yearNow, minDefault, maxDefault, years, dataSourceArray; - switch (type) { - case TYPE.DATE: - yearNow = new Date().getFullYear(); - minDefault = new Date(); - minDefault.setFullYear(yearNow - defaultYearOffset); // Date 模式下,如果没 min,就往回 defaultYearOffset 年 - maxDefault = new Date(); - maxDefault.setFullYear(yearNow + defaultYearOffset); // 如果没 max,就往后 defaultYearOffset 年 - years = this.getYears(min || minDefault, max || maxDefault); - dataSourceArray = [years, months, days]; - this.updateDays(currentArray, dataSourceArray); - this.unitArray = [strings.yearUnit, strings.monthUnit, strings.dayUnit]; - return { - currentArray, - dataSourceArray - }; - case TYPE.TIME24: - this.unitArray = [strings.hourUnit, strings.minuteUnit]; - return { - currentArray, - dataSourceArray: [hours24, minutes] - }; - case TYPE.TIME12: - this.unitArray = ['', strings.hourUnit, strings.minuteUnit]; - return { - currentArray, - dataSourceArray: [timeSystem, hours12, minutes] - }; - case TYPE.SINGLE: - default: - this.unitArray = [strings[`${ singleType }Unit`]]; - return { - currentArray, - dataSourceArray: [this.slice(singleDataSource[singleType], min, max)] - }; - } - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.visible !== this.state.visible) { - this.setState({ visible: newProps.visible }); - } - if (newProps.current === undefined - || newProps.current !== this.props.current) { - const currentArray = this.convert(newProps.current || new Date()); - this.setState({ - currentArray, - subtitle: this.getSubtitle(currentArray) - }); - } - } - /** - * 判断 控件高度是否自适应, true: 自适应,高度不固定, false: 高度固定 - * @private - */ - _checkUnlimitedHeightEnable() { - let result = false; - if (this.props.datePickerStyle && this.props.datePickerStyle.hasOwnProperty('unlimitedHeightEnable')) { - result = this.props.datePickerStyle.unlimitedHeightEnable; - } - return result; - } - /** - * 标题部分 - */ - renderTitle() { - const height = { - height: this.props.showSubtitle ? titleHeightFat : titleHeightThin - }; - let heightStyle = { - height: height.height, - minHeight: height.height - }; - if (this._checkUnlimitedHeightEnable()) { - heightStyle.height = null; - } - let numberOfLines = { - titleNumberOfLines: 1, - subTitleNumberOfLines: 1 - }; - if (this.props.datePickerStyle) { - if (this.props.datePickerStyle.hasOwnProperty('titleNumberOfLines')) { - numberOfLines.titleNumberOfLines = this.props.datePickerStyle.titleNumberOfLines; - } - if (this.props.datePickerStyle.hasOwnProperty('subTitleNumberOfLines')) { - numberOfLines.subTitleNumberOfLines = this.props.datePickerStyle.subTitleNumberOfLines; - } - } - return ( - - - {this.props.title || ''} - - {this.props.showSubtitle - ? - {this.state.subtitle} - - : null - } - - ); - } - /** - * picker 部分 - */ - renderContent() { - const { currentArray, dataSourceArray } = this.state; - const length = currentArray.length; - const actualWidth = modalWidth - (length - 1) * StyleSheet.hairlineWidth; // 去掉分割线的真实宽度 - const normalWidth = actualWidth / length; // 均分宽度 - const yearWidth = normalWidth + 10; // 日期选择器的年份picker宽度稍微大一点 - const monthWidth = (actualWidth - yearWidth) / 2; - let tempPickerInnerStyle = pickerInnerStyle; - if (this.props.datePickerStyle && this.props.datePickerStyle.hasOwnProperty('pickerInnerStyle')) { - tempPickerInnerStyle = this.props.datePickerStyle.pickerInnerStyle; - } - tempPickerInnerStyle.allowFontScaling = this.props.datePickerStyle.allowFontScaling; - return ( - - {dataSourceArray.map((dataSource, index) => { - let style = { width: normalWidth }; - if (this.props.type === TYPE.DATE) { - if (index === 0) style = { width: yearWidth }; - else style = { width: monthWidth }; - } - return ( - - this._onValueChanged(index, data)} - {...getAccessibilityConfig({ - accessible: this.props.accessible, - accessibilityHint: this.props.accessibilityHint - })} - /> - {index < length - 1 - ? - : null - } - - ); - })} - - ); - } - /** - * 底部按钮 - */ - renderButton() { - let heightStyle = { - height: styles.buttons.minHeight, - minHeight: styles.buttons.minHeight - }; - if (this._checkUnlimitedHeightEnable()) { - heightStyle.height = null; - } - let numberOfLines = { - leftButtonNumberOfLines: 1, - rightButtonNumberOfLines: 1 - }; - if (this.props.datePickerStyle) { - if (this.props.datePickerStyle.hasOwnProperty('leftButtonNumberOfLines')) { - numberOfLines.leftButtonNumberOfLines = this.props.datePickerStyle.leftButtonNumberOfLines; - } - if (this.props.datePickerStyle.hasOwnProperty('rightButtonNumberOfLines')) { - numberOfLines.rightButtonNumberOfLines = this.props.datePickerStyle.rightButtonNumberOfLines; - } - } - return ( - - this.dismiss()} - underlayColor="rgba(0,0,0,.05)" - accessible={this.props.accessible} - accessibilityRole={AccessibilityRoles.button} - > - - {strings.cancel} - - - - this.confirm()} - underlayColor="rgba(0,0,0,.05)" - accessible={this.props.accessible} - accessibilityRole={AccessibilityRoles.button} - > - - {strings.ok} - - - - ); - } - render() { - return ( - this.dismiss()} - > - - this.dismiss()} - > - - - - {this.renderTitle()} - - {this.renderContent()} - - {this.renderButton()} - - - - ); - } - /** - * 是否是闰年 - * @param {number} y - */ - isLeapYear(y) { - return ((y % 4 === 0 && y % 100 !== 0) || (y % 400 === 0 && y % 3200 !== 0)); - } - /** - * 比较`Date`时间数组的时间前后 ['2017','06','01'] > ['2017','05','31'] - * @param {array} arrA - * @param {array} arrB - */ - compareDateArray(arrA, arrB) { - return arrA.join('') - arrB.join(''); - } - /** - * 计算当前年份和月份下的天数 - * @param {array} newCurrentArray - * @param {array} newDataSourceArray - */ - updateDays(newCurrentArray, newDataSourceArray) { - const [year, month, day] = newCurrentArray; - if (days31.includes(month)) { - newDataSourceArray[2] = days; - } else if (days30.includes(month)) { - newDataSourceArray[2] = days.slice(0, 30); - } else { - // 闰年2月29天, 平年28天 - if (this.isLeapYear(parseInt(year))) { - newDataSourceArray[2] = days.slice(0, 29); - } else { - newDataSourceArray[2] = days.slice(0, 28); - } - } - // 5月31日 -> 6月30日 - if (!newDataSourceArray[2].includes(day)) { - newCurrentArray[2] = newDataSourceArray[2][newDataSourceArray[2].length - 1]; - } - } - /** - * Picker 滚动回调 - * @param {number} index - * @param {object} data - */ - _onValueChanged(index, data) { - let newCurrentArray = [...this.state.currentArray]; - newCurrentArray[index] = data.newValue; - let newDataSourceArray = [...this.state.dataSourceArray]; - this.setState({ - currentArray: newCurrentArray, - subtitle: this.getSubtitle(newCurrentArray) - }, () => { - if (this.props.type === TYPE.DATE) { - let needUpdate = false; - // 判断是否越界 - if (this.compareDateArray(newCurrentArray, this.max) > 0) { - newCurrentArray = this.max; - needUpdate = true; - } - if (this.compareDateArray(newCurrentArray, this.min) < 0) { - newCurrentArray = this.min; - needUpdate = true; - } - this.updateDays(newCurrentArray, newDataSourceArray); - if (newDataSourceArray[2].length !== this.state.dataSourceArray[2].length) { - needUpdate = true; - } - needUpdate && this.setState({ - subtitle: this.getSubtitle(newCurrentArray), - currentArray: newCurrentArray, - dataSourceArray: newDataSourceArray - }); - } - }); - } - /** - * 隐藏 Modal - */ - dismiss() { - this.setState({ visible: false }); - this.props.onDismiss && this.props.onDismiss(); - } - /** - * 把时间数组转成 `Date` 实例 - * ['2019','06','03'] -> new Date() - * ['15','36'] -> new Date() - * ['下午','03','36'] -> new Date() - */ - array2Date() { - const { currentArray } = this.state; - let date = new Date(); - let hour; - switch (this.props.type) { - case TYPE.DATE: - date.setFullYear(currentArray[0]); - date.setMonth(parseInt(currentArray[1]) - 1); - date.setDate(parseInt(currentArray[2])); - break; - case TYPE.TIME24: - date.setHours(currentArray[0]); - date.setMinutes(currentArray[1]); - break; - case TYPE.TIME12: - hour = parseInt(currentArray[1]); - if (currentArray[0] === strings.am) { - hour = hour === 12 ? 0 : hour; - } else { - hour = hour < 12 ? hour + 12 : hour; - } - date.setHours(hour); - date.setMinutes(currentArray[2]); - break; - case TYPE.SINGLE: - default: - return null; - } - return date; - } - confirm() { - if (this.props.onSelect) { - this.props.onSelect({ - rawArray: this.state.currentArray, - rawString: this.state.subtitle, - date: this.array2Date() - }); - } - this.dismiss(); - } -} -const styles = StyleSheet.create({ - background: { - flex: 1, - backgroundColor: screenBackgroundColor - }, - modal: { - position: 'absolute', - bottom: 20, - width: modalWidth, - marginHorizontal: margin, - backgroundColor: '#fff', - borderRadius - }, - titleContainer: { - justifyContent: 'center', - alignItems: 'center' - }, - title: { - fontFamily: 'D-DINCondensed-Bold' - }, - subtitle: { - width: modalWidth, - textAlign: 'center', - fontSize: 13, - color: '#666' - }, - pickerContainer: { - flexDirection: 'row', - height: pickerContainerHeight, - justifyContent: 'space-between' - }, - buttons: { - minHeight: buttonHeight, - flexDirection: 'row', - backgroundColor: 'transparent', - justifyContent: 'space-between' - }, - button: { - flex: 1, - backgroundColor: 'transparent', - justifyContent: 'center', - alignItems: 'center' - }, - buttonText: { - fontSize: 14, - lineHeight: 19, - color: '#666', - fontFamily: 'D-DINCondensed-Bold' // TODO: 英文字体,中文加粗效果 - } -}); \ No newline at end of file +import { MHDatePicker } from 'mhui-rn'; +export default MHDatePicker; \ No newline at end of file diff --git a/miot-sdk/ui/MultiButtons.js b/miot-sdk/ui/MultiButtons.js index e69de29bb..0829c6ae6 100644 --- a/miot-sdk/ui/MultiButtons.js +++ b/miot-sdk/ui/MultiButtons.js @@ -0,0 +1,2 @@ +import MultiButtons from 'mhui-rn/dist/modules/multiButtons/MultiButtons'; +export default MultiButtons; \ No newline at end of file diff --git a/miot-sdk/ui/NavigationBar.js b/miot-sdk/ui/NavigationBar.js index 08d106884..f1bb719f9 100644 --- a/miot-sdk/ui/NavigationBar.js +++ b/miot-sdk/ui/NavigationBar.js @@ -1,465 +1,2 @@ -/** - * @export - * @since 10021 - * @author Geeook - * @module miot/ui/NavigationBar - * @description 插件导航栏,左侧通常一个按钮,中间标题/副标题,右侧通常一到两个按钮。 - * *和原有 `Titlebar` 对比改动点* - * - 在原有图标基础上支持更多的图标(共16种),但不支持自定义图标,只能从 `NavigationBar.ICON` 中选择,图标样式也有改动 - * - 传参有改动,删除 `leftTextStyle/leftText/rightTextStyle/rightText/style`,增加 `left/right/backgroundColor` - * - `type` 含义变更:之前 `dark` 表示白底黑字,容易误导,现在表示*深色背景白色文字* - * - 考虑到某些多语言不好兼容的问题,导航栏左右侧只支持图标,不再支持文字 - * - 导航栏高度固定,不允许更改,背景色仍然可以自定义 - * @property {string} type - 导航栏类型:`NavigationBar.TYPE.DARK` 表示*深色背景白色文字*,`NavigationBar.TYPE.LIGHT` 相反 - * @property {object} backgroundColor - 导航栏背景色 - * @property {array} left - 左侧按钮的集合,最多显示两个,多余无效 [{ key, disable, showDot, onPress }] - * @property {array} right - 右侧按钮的集合,最多显示两个,多余无效 [{ key, disable, showDot, onPress }] - * @property {string} title - 中间的标题 - * @property {string} subtitle - 中间的副标题 - * @param {number} titleNumberOfLines - 10040新增 控制title 文字的行数, 默认 1行 - * @param {number} subtitleNumberOfLines - 10040新增 控制subtitle 文字的行数,默认 1行 - * @property {ViewPropTypes.style} titleStyle - 10040新增 中间的标题的样式 - 目前支持 fontSize - * @property {ViewPropTypes.style} subtitleStyle - 10040新增 中间的副标题的样式 - 支持的属性有 fontSize, colorType 。colorType 是副标题的颜色,目前支持三种: normal '#666666', warning: '#f43f31' exception: '#f5a623' - * @property {string} onPressTitle - 10040新增 点击标题的事件 - * @property {bool} allowFontScaling - 10040新增 字体大小是否随系统大小变化而变化, 默认值为true - * @example - * ```js - * this.props.navigation.goBack() - * }, - * { - * key: NavigationBar.ICON.CLOSE, - * onPress: _ => console.log('onPress') - * } - * ]} - * right={[ - * { - * key: NavigationBar.ICON.COLLECT, - * disable: true, - * onPress: _ => console.log('onPress') - * }, - * { - * key: NavigationBar.ICON.MORE, - * showDot: this.state.showDot, - * onPress: _ => console.log('onPress') - * } - * ]} - * title='标题' - * subtitle='副标题' - * onPressTitle={_ => console.log('onPressTitle')} - * /> - * ``` - * @see com.xiaomi.demo->教程->NavigationBarDemo - */ -import PropTypes from 'prop-types'; -import React, { Component } from 'react'; -import { Dimensions, Image, Platform, StatusBar, StyleSheet, Text, View } from 'react-native'; -import { SafeAreaView } from 'react-navigation'; -import Images from '../resources/Images'; -import ImageButton from './ImageButton'; -import native, { isIOS } from '../native'; -import DarkMode from 'miot/darkmode'; -import DynamicColor from 'miot/ui/Style/DynamicColor'; -import { AccessibilityRoles, AccessibilityPropTypes, getAccessibilityConfig } from '../utils/accessibility-helper'; -import { referenceReport } from '../decorator/ReportDecorator'; -/** - * 导航栏类型 - */ -const TYPE = { - /** - * 深色背景 - */ - DARK: 'dark', - /** - * 浅色背景 - */ - LIGHT: 'light' -}; -Object.freeze(TYPE); -/** - * 图标资源的索引 - */ -const ICON = { - /** - * 添加 - */ - ADD: 'add', - /** - * 返回 - */ - BACK: 'back', - /** - * 关闭 - */ - CLOSE: 'close', - /** - * 收藏 - */ - COLLECT: 'collect', - /** - * 完成 - */ - COMPLETE: 'complete', - /** - * 删除 - */ - DELETE: 'delete', - /** - * 详情 - */ - DETAIL: 'detail', - /** - * 更多 - */ - MORE: 'more', - /** - * 下一步 - */ - NEXT: 'next', - /** - * 个人中心 - */ - PROFILE: 'profile', - /** - * 二维码 - */ - QR: 'qr', - /** - * 搜索 - */ - SEARCH: 'search', - /** - * 全选 - */ - SELECT_ALL: 'select_all', - /** - * 全部选中 - */ - SELECTED_ALL: 'selected_all', - /** - * 设置 - */ - SETTING: 'setting', - /** - * 分享 - */ - SHARE: 'share', - /** - * 编辑 - */ - EDIT: 'edit' -}; -Object.freeze(ICON); -const { light, dark, dot } = Images.navigation; // 图标集合 -const { width } = Dimensions.get('window'); // 屏幕宽度 -// const statusBarHeight = getStatusBarHeight(true); // 状态栏高度 -const navigationBarHeightThin = 52; // 导航栏高度,无副标题 -const navigationBarHeightFat = 65; // 导航栏高度,有副标题 -const paddingHorizontal = 9; // 导航栏左右内边距 -const iconSize = 40; // 图标尺寸 -const lightTitleColor = 'xm#000000'; // 浅色背景下标题颜色 -const darkTitleColor = 'xm#ffffff'; // 深色背景下标题颜色 -const colorSubtitleNormal = new DynamicColor('#666666', '#ffffff'); -const colorSubtitleWarning = new DynamicColor('#f43f31', '#d92719'); -const colorSubtitleException = new DynamicColor('#f5a623', '#db8e0d'); -const COLOR_SUBTITLE = { - 'normal': colorSubtitleNormal, - 'warning': colorSubtitleWarning, - 'exception': colorSubtitleException -}; -const COLOR_SCHEME = DarkMode.getColorScheme() || 'light'; -export default class NavigationBar extends Component { - static propTypes = { - type: PropTypes.oneOf([TYPE.DARK, TYPE.LIGHT]), - style: PropTypes.object, - left: PropTypes.arrayOf(PropTypes.shape({ - key: PropTypes.string, - onPress: PropTypes.func, - disable: PropTypes.bool, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - right: PropTypes.array, - title: PropTypes.string, - subtitle: PropTypes.string, - subtitleStyle: PropTypes.shape({ - fontSize: PropTypes.number, - colorType: PropTypes.oneOf(['normal', 'warning', 'exception']) - }), - titleNumberOfLines: PropTypes.number, - subtitleNumberOfLines: PropTypes.number, - titleStyle: PropTypes.shape({ - fontSize: PropTypes.number - }), - allowFontScaling: PropTypes.bool, - backgroundColor: PropTypes.any, - onPressTitle: PropTypes.func, - accessible: AccessibilityPropTypes.accessible - } - static defaultProps = { - type: TYPE.LIGHT, - left: [], - right: [], - subtitleStyle: { - colorType: 'normal', - fontSize: 14 - }, - allowFontScaling: true, - titleNumberOfLines: 1, - subtitleNumberOfLines: 1, - titleStyle: { - fontSize: 18 - } - } - static TYPE = TYPE; - static ICON = ICON; - constructor(props, context) { - super(props, context); - referenceReport('NavigationBar'); - } - /** - * @description 根据 type 和 disable 确定 icon - * @param {array} arr - 按钮集合 - */ - getIconsOfType(arr) { - const icons = this.isDarkStyle ? dark : light; - return arr.map((item) => { - const { key, disable } = item; - if (disable) { - item.source = icons[key] ? icons[key].disable : null; // 可能key 不存在 - item.highlightedSource = null; - } else { - item.source = icons[key] ? icons[key].normal : null; - item.highlightedSource = icons[key] ? icons[key].press : null; - } - return item; - }).filter((item) => item.source); // 过滤找到资源的图标 - } - /** - * @description 根据处理后的按钮集合数据渲染按钮 - * @param {array} arr - 经过处理后的按钮集合 - */ - renderIcons(arr) { - const icons = (arr || []).slice(0, 2); // 最多显示两个图标 - return icons.map((icon, i) => { - // 如果没有找过图标资源,则显示占位空白 - if (!icon.source) { - return ; - } - return ( - - {icon.showDot - ? - : null - } - - - ); - }); - } - /** - * 中间标题部分 - */ - renderTitle() { - const { title, subtitle, subtitleStyle, titleStyle, onPressTitle } = this.props; - const titleColor = { - color: this.isDarkStyle ? darkTitleColor : lightTitleColor - }; - const newSubtitleStyle = { - colorType: 'normal', - fontSize: 14, - ...subtitleStyle - }; - const customSubtitleStyle = { - fontSize: newSubtitleStyle.fontSize, - lineHeight: newSubtitleStyle.fontSize * 1.3, - color: this.isDarkStyle ? COLOR_SUBTITLE[newSubtitleStyle.colorType].dark : COLOR_SUBTITLE[newSubtitleStyle.colorType][COLOR_SCHEME] - }; - const newTitleStyle = { - fontSize: 18, - ...titleStyle - }; - const customTitleStyle = { - fontSize: newTitleStyle.fontSize, - lineHeight: newTitleStyle.fontSize * 1.3 - }; - return ( - - { - React.isValidElement(title) ? - - {title || ''} - : - - {title || ''} - - } - {subtitle - ? - {subtitle} - - : null - } - - ); - } - UNSAFE_componentWillReceiveProps(newProps) { - this.updateStyleType(this.props, newProps); - } - UNSAFE_componentWillMount() { - this.updateStyleType(this.props, null); - } - updateStyleType(props, newProps) { - let newIsDartStyle = (newProps ? newProps.type : props.type) === TYPE.DARK; - this.shouldKeepColor = false; - if (isIOS && native.MIOTService.currentDarkMode == "dark") { - if (newIsDartStyle) { - // 本来就是深色模式的情况,传入的颜色不修改 - this.shouldKeepColor = true; - } - newIsDartStyle = true; - } else { - newIsDartStyle = DarkMode.getColorScheme() === 'dark' ? true : (newProps ? newProps.type : props.type) === TYPE.DARK; - } - if (newIsDartStyle !== this.isDarkStyle) { - this.isDarkStyle = newIsDartStyle; - StatusBar.setBarStyle(this.isDarkStyle ? 'light-content' : 'dark-content'); - if (Platform.OS == 'android') { - StatusBar.setTranslucent(true); // 测试过的机型几乎都无效:华为荣耀V9,红米Note4X,小米Mix2 - } - } - } - /** - * 导航栏在进入插件的时候就已经生成,并且常驻,所以样式判断逻辑不能写在 constructor 中 - */ - render() { - // this.isDarkStyle = this.props.type === TYPE.DARK; - // StatusBar.setBarStyle(this.isDarkStyle ? 'light-content' : 'dark-content'); // 测试过的机型都有效:华为荣耀V9,红米Note4X,小米Mix2 - // if (Platform.OS == 'android') { - // StatusBar.setTranslucent(true); // 测试过的机型几乎都无效:华为荣耀V9,红米Note4X,小米Mix2 - // } - const leftIcons = this.getIconsOfType(this.props.left); - const rightIcons = this.getIconsOfType(this.props.right); - leftIcons.length < rightIcons.length && leftIcons.push({}); // 补位空白 - leftIcons.length > rightIcons.length && rightIcons.unshift({}); - let containerHeight = StatusBar.currentHeight || 0; - containerHeight += this.props.subtitle ? navigationBarHeightFat : navigationBarHeightThin; - let backgroundColor = this.props.backgroundColor - ? this.props.backgroundColor - : (this.isDarkStyle ? 'xm#000000' : 'xm#ffffff'); - if (this.shouldKeepColor && this.props.backgroundColor) { - backgroundColor = `xm${ this.props.backgroundColor }`; - } - // StatusBar.setBackgroundColor(backgroundColor); // 仅对某些机型有效:华为荣耀V9 - const containerStyle = { - backgroundColor, - minHeight: containerHeight - }; - return ( - - {this.renderIcons(leftIcons)} - {this.renderTitle()} - {this.renderIcons(rightIcons)} - - ); - } -} -const styles = StyleSheet.create({ - container: { - width, - paddingHorizontal, - flexDirection: 'row', - alignItems: 'center' - }, - titleContainer: { - flex: 1, - alignSelf: 'stretch', - justifyContent: 'center', - alignItems: 'stretch', - marginHorizontal: 5 - }, - title: { - fontSize: 18, - lineHeight: 24, - fontFamily: 'D-DINCondensed-Bold', - textAlignVertical: 'center', - textAlign: 'center' - }, - titleView: { - fontSize: 16, - fontFamily: 'D-DINCondensed-Bold', - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'center' - }, - subtitle: { - fontSize: 14, - lineHeight: 18, - fontFamily: 'MI-LANTING--GBK1-Light', - textAlignVertical: 'center', - textAlign: 'center' - }, - icon: { - position: 'absolute', - width: iconSize, - height: iconSize - }, - dot: { - width: iconSize, - height: iconSize - } -}); \ No newline at end of file +import { NavigationBar } from 'mhui-rn'; +export default NavigationBar; \ No newline at end of file diff --git a/miot-sdk/ui/NumberSpinner.js b/miot-sdk/ui/NumberSpinner.js index 657655cbc..56100d48d 100644 --- a/miot-sdk/ui/NumberSpinner.js +++ b/miot-sdk/ui/NumberSpinner.js @@ -1,65 +1,2 @@ -/** - * @export public - * @doc_name 常用UI组件 - * @doc_index 1 - * @doc_directory ui - * @since 10003 - * @module miot/ui/NumberSpinner - * @description 数字选择器 - * @example - * - { - console.log(`newValue:${data.newValue},oldValue:${data.oldValue}`); - }} - /> - { - console.log(`newValue:${data.newValue},oldValue:${data.oldValue}`); - }} - /> - * - * @property {bool} visible 是否可见 - * @property {string} unit 单位 - * @property {int} max 最大值 - * @property {int} min 最小值 - * @property {int} interval 步长,默认为1 - * @property {int} defaultValue 默认值 - * @property {string} valueFormat 格式 - * @property {func} onNumberChanged 值改变的回调 - */ -export default class NumberSpinner extends React.Component { - static defaultProps = { - valueFormat: Platform.select({ ios: '%0.0f' }) - } - static propTypes = { - visible: PropTypes.bool, - unit: PropTypes.string, - maxValue: PropTypes.number, - minValue: PropTypes.number, - interval: PropTypes.number, - defaultValue: PropTypes.number, - valueFormat: PropTypes.string, - onNumberChanged: PropTypes.func, - ...ViewPropTypes - }; - constructor(props, context) { - super(props, context); - referenceReport('MiotNumberPicker'); - } - render() { - return null - } -} \ No newline at end of file +import { NumberSpinner } from 'mhui-rn'; +export default NumberSpinner; \ No newline at end of file diff --git a/miot-sdk/ui/PrimeButton.js b/miot-sdk/ui/PrimeButton.js index 571a8e828..b1a354c43 100644 --- a/miot-sdk/ui/PrimeButton.js +++ b/miot-sdk/ui/PrimeButton.js @@ -1,76 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, View, Text, TouchableOpacity } from 'react-native'; -import PropTypes from 'prop-types'; -import { adjustSize } from '../utils/sizes'; -import { FontDefault } from '../utils/fonts'; -import { NOOP } from '../utils/fns'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -export default class PrimeButton extends Component { - static propTypes = { - title: PropTypes.string, - themeColor: PropTypes.any, - textColor: PropTypes.any, - onClick: PropTypes.func, - disabled: PropTypes.bool, - accessible: AccessibilityPropTypes.accessible, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - }; - static defaultProps = { - title: '', - themeColor: '', - textColor: '', - onClick: NOOP, - disabled: false - }; - onPress = () => { - let { onClick } = this.props; - if (typeof onClick === 'function') { - onClick(); - } - } - render() { - let { title, themeColor, textColor, disabled } = this.props; - if (!title) { - return null; - } - return ( - - - {title} - - - ); - } -} -const Styles = StyleSheet.create({ - container: { - marginHorizontal: adjustSize(72) - }, - btn: { - height: adjustSize(126), - justifyContent: 'center', - borderWidth: Math.min(1, adjustSize(1.5)), - borderColor: 'rgba(0, 0, 0, 0.15)', - borderRadius: adjustSize(15) - }, - title: { - fontFamily: FontDefault, - fontSize: adjustSize(39), - textAlign: 'center', - color: '#000' - } -}); \ No newline at end of file +import PrimeButton from 'mhui-rn/dist/modules/primeButton/PrimeButton'; +export default PrimeButton; \ No newline at end of file diff --git a/miot-sdk/ui/QAList.js b/miot-sdk/ui/QAList.js index cf30914ec..fddec1243 100644 --- a/miot-sdk/ui/QAList.js +++ b/miot-sdk/ui/QAList.js @@ -1,73 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, View, Text, Platform } from 'react-native'; -import PropTypes from 'prop-types'; -import { adjustSize } from '../utils/sizes'; -import { FontDefault } from '../utils/fonts'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -const isAndroid = Platform.OS === 'android'; -export default class QAList extends Component { - static propTypes = { - list: PropTypes.arrayOf(PropTypes.shape({ - title: PropTypes.string, - text: PropTypes.string - })), - accessible: AccessibilityPropTypes.accessible - }; - static defaultProps = { - list: [] - }; - getList() { - let { list } = this.props; - if (!list || !list.length) { - return []; - } - return list.map((item, index) => { - let { title, text } = item; - // android加换行符,是为了解决部分安卓手机最后一行显示不全的问题 - return ( - - {title || ''} - {text || ''}{isAndroid ? '\n' : ''} - - ); - }); - } - render() { - let list = this.getList(); - if (!list || !list.length) { - return null; - } - return ( - - {list} - - ); - } -} -const Styles = StyleSheet.create({ - container: { - marginHorizontal: adjustSize(72) - }, - item: { - marginBottom: adjustSize(45) - }, - title: { - fontFamily: FontDefault, - fontSize: adjustSize(36), - fontWeight: '600', - color: '#4C4C4C' - }, - text: { - fontFamily: FontDefault, - fontSize: adjustSize(42), - lineHeight: adjustSize(78), - color: '#7F7F7F', - marginTop: adjustSize(9) - } -}); \ No newline at end of file +import QAList from 'mhui-rn/dist/modules/qaList/QAList'; +export default QAList; \ No newline at end of file diff --git a/miot-sdk/ui/Radio.js b/miot-sdk/ui/Radio.js index 3cf0dbab7..6f62e46a2 100644 --- a/miot-sdk/ui/Radio.js +++ b/miot-sdk/ui/Radio.js @@ -1,152 +1,2 @@ -'use strict'; -import PropTypes from 'prop-types'; -import React, { Component } from 'react'; -import { Animated, StyleSheet, TouchableWithoutFeedback, View } from 'react-native'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -/** - * @export - * @author Li Yue - * @since 10011 - * @module Radio - * @description Radio for Android and iOS. - * @property {bool} isChecked - 按钮的选中状态,默认值 false - * @property {object} bigCircleStyle - 大圆的尺寸、圆角半径、边宽,默认值 {} - * @property {object} checkedBigCircleStyle - 大圆在选中和非选中状态下的边框颜色、背景色,默认值 非选中状态:边框#666,背景#999。选中状态:边框#060,背景#090 - * @property {string} smallCircleBg - 小圆的背景色,默认值 white - * @property {function} changeCheck - 改变选中状态的函数 - * @property {number} id - 单选按钮的 id,默认值 -1 - * @property {bool} disabled - 单选按钮的可选状态,默认值 false - */ -class Radio extends Component { - constructor(props) { - super(props); - let { isChecked } = props; - let circleOpacity = isChecked ? 1 : 0; - let circleScale = isChecked ? .5 : .4; - this.state = { - scale: new Animated.Value(circleScale), - opacity: new Animated.Value(circleOpacity) - }; - } - UNSAFE_componentWillReceiveProps(nextProps) { - let { isChecked } = nextProps; - if (isChecked) { - // 选中 - this.changeStatus(.5, 1); - } else { - // 取消选中 - this.changeStatus(.4, 0); - } - } - // 改变选中状态时,执行动画 - changeStatus = (scaleTo, opacityTo) => { - let { scale, opacity } = this.state; - Animated.parallel([ - Animated.spring( // 随时间变化而执行动画 - scale, // 动画中的变量值 - { - toValue: scaleTo, - bounciness: 15, - speed: 9 // 透明度最终变为1,即完全不透明 - } - ), - Animated.timing( // 随时间变化而执行动画 - opacity, // 动画中的变量值 - { - toValue: opacityTo, // 透明度最终变为1,即完全不透明 - duration: 200 // 让动画持续一段时间 - } - ) - ]).start(); - } - // 改变该按钮的状态 - changeRadioCheck = () => { - let { changeCheck, id } = this.props; - changeCheck(id); - } - render() { - let { - smallCircleBg, isChecked, bigCircleStyle, checkedBigCircleStyle, disabled, - accessible, accessibilityRole, label, accessibilityLabel, accessibilityHint, accessibilityState - } = this.props; - let { borderColorChecked, backgroundColorChecked, borderColor, backgroundColor } = checkedBigCircleStyle; - let { scale, opacity } = this.state; - return ( - - - - - - ); - } -} -Radio.defaultProps = { - bigCircleStyle: {}, - checkedBigCircleStyle: { - borderColorChecked: '#060', - backgroundColorChecked: '#090', - borderColor: '#666', - backgroundColor: '#999' - }, - smallCircleBg: 'white', - isChecked: false, - changeCheck: function() { }, - id: -1, - disabled: false -}; -Radio.propTypes = { - bigCircleStyle: PropTypes.object, - checkedBigCircleStyle: PropTypes.object, - smallCircleBg: PropTypes.string, - isChecked: PropTypes.bool, - disabled: PropTypes.bool, - changeCheck: PropTypes.func, - id: PropTypes.number, - ...AccessibilityPropTypes -}; -const styles = StyleSheet.create({ - btn: { - justifyContent: 'center', - alignItems: 'center', - borderStyle: 'solid', - borderWidth: 2, - borderRadius: 40, - width: 80, - height: 80 - }, - smallCircle: { - borderRadius: 40, - width: 80, - height: 80 - } -}); +import { Radio } from 'mhui-rn'; export default Radio; \ No newline at end of file diff --git a/miot-sdk/ui/SelectorWithButton.js b/miot-sdk/ui/SelectorWithButton.js index e69de29bb..0090a5a0b 100644 --- a/miot-sdk/ui/SelectorWithButton.js +++ b/miot-sdk/ui/SelectorWithButton.js @@ -0,0 +1,2 @@ +import SelectorWithButton from 'mhui-rn/dist/modules/selectorWithButton/SelectorWithButton'; +export default SelectorWithButton; \ No newline at end of file diff --git a/miot-sdk/ui/Separator.js b/miot-sdk/ui/Separator.js index bf1a14c84..235f6ff11 100644 --- a/miot-sdk/ui/Separator.js +++ b/miot-sdk/ui/Separator.js @@ -1,83 +1,2 @@ -import React from 'react'; -import { Platform, StyleSheet, View } from 'react-native'; -import { Styles } from "../resources"; -import PropTypes from 'prop-types'; -/** - * 分割线类型 - */ -const TYPE = { - /** - * 横向 - */ - ROW: 'row', - /** - * 纵向 - */ - COLUMN: 'column' -}; -/** - * @export public - * @doc_name 常用UI组件 - * @doc_index 1 - * @doc_directory ui - * @author Geeook - * @since 10004 - * @module Separator - * @description 分割线,常用于导航栏和列表项等 - * @property {string} type - 分割线类型,横向(row)或者纵向(column),默认横向 - * @property {object} style - 自定义样式,maxHeight = 1 - */ -export default class Separator extends React.PureComponent { - static propTypes = { - type: PropTypes.string, - style: PropTypes.any - }; - static defaultProps = { - type: TYPE.ROW - } - render() { - let separatorContainer, separatorStyle; - if (this.props.type === TYPE.ROW) { - let maxHeight = {}; - if (this.props.style && this.props.style.height) { - if (this.props.style.height > 1) { - maxHeight = { height: 1 }; - } - } - separatorContainer = { - backgroundColor: 'transparent', - height: 1, - justifyContent: 'center' - }; - separatorStyle = StyleSheet.flatten([Styles.common.separator, this.props.style, maxHeight]); - } else { - let maxWidth = {}; - if (this.props.style && this.props.style.width) { - if (this.props.style.width > 1) { - maxWidth = { width: 1 }; - } - } - separatorContainer = { - backgroundColor: 'transparent', - width: 1, - alignItems: 'center' - }; - separatorStyle = StyleSheet.flatten([ - { - width: StyleSheet.hairlineWidth, - backgroundColor: Styles.common.hairlineColor - }, - this.props.style, - maxWidth - ]); - } - return Platform.select({ - android: - - - , - ios: - - }); - } -} \ No newline at end of file +import { Separator } from 'mhui-rn'; +export default Separator; \ No newline at end of file diff --git a/miot-sdk/ui/SliderWithHeader.js b/miot-sdk/ui/SliderWithHeader.js index e69de29bb..2165d87d7 100644 --- a/miot-sdk/ui/SliderWithHeader.js +++ b/miot-sdk/ui/SliderWithHeader.js @@ -0,0 +1,2 @@ +import SliderWithHeader from 'mhui-rn/dist/modules/sliderWithHeader/SliderWithHeader'; +export default SliderWithHeader; \ No newline at end of file diff --git a/miot-sdk/ui/SmallNumbers.js b/miot-sdk/ui/SmallNumbers.js index e69de29bb..9a508297e 100644 --- a/miot-sdk/ui/SmallNumbers.js +++ b/miot-sdk/ui/SmallNumbers.js @@ -0,0 +1,2 @@ +import SmallNumber from 'mhui-rn/dist/modules/smallNumber/SmallNumber'; +export default SmallNumber; \ No newline at end of file diff --git a/miot-sdk/ui/StringSpinner.js b/miot-sdk/ui/StringSpinner.js index 54919f07d..efabdb832 100644 --- a/miot-sdk/ui/StringSpinner.js +++ b/miot-sdk/ui/StringSpinner.js @@ -1,55 +1,2 @@ -/** - * @export public - * @doc_name 常用UI组件 - * @doc_index 1 - * @doc_directory ui - * @since 10020 - * @module miot/ui/StringSpinner - * @description 字符串选择器,兼容NumberSpinner(支持NumberSpinner的所有属性) - * - * @example - * - { this.updateOneValue(data) }} -/> - * - * - * @property {bool} visible 是否可见 - * @property {style} style - 开关样式,仅支持宽高 - * @property {array} dataSource 数据源 - * @property {string} defaultValue 默认值 - * @property {func} onValueChanged 值改变的回调 - * @property {string} unit 单位 默认:无 - * @property {string} pickerInnerStyle.textColor 文字颜色 默认值 #000000 - * @property {string} pickerInnerStyle.selectTextColor 文字选中颜色 默认值 #00aa71 - * @property {string} pickerInnerStyle.selectBgColor 文字选中背景 默认值 #ffffff - * @property {string} pickerInnerStyle.unitTextColor 单位字体颜色 默认值 #00aa71 - * @property {string} pickerInnerStyle.lineColor 分割线颜色 默认值 #e5e5e5 - * @property {number} pickerInnerStyle.fontSize 文字大小 默认值 22 - * @property {number} pickerInnerStyle.selectFontSize 文字选中大小 默认值 22 - * @property {number} pickerInnerStyle.unitFontSize 单位字体大小 默认值 12 - * @property {number} pickerInnerStyle.rowHeight 行高 默认值 42 - * @property {bool} pickerInnerStyle.allowFontScaling - 10040新增 text是否支持大字体显示,即是否随系统字体大小变化而变化, 默认`true` - */ -export default class StringSpinner extends React.Component { - static propTypes = { - visible: PropTypes.bool, - dataSource: PropTypes.array, - defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), - onValueChanged: PropTypes.func, - pickerInnerStyle: PropTypes.object, - ...ViewPropTypes, - accessible: AccessibilityPropTypes.accessible - }; - constructor(props, context) { - super(props, context); - referenceReport('StringSpinner'); - } - render() { - return null - } -} \ No newline at end of file +import { StringSpinner } from 'mhui-rn'; +export default StringSpinner; \ No newline at end of file diff --git a/miot-sdk/ui/Style/DynamicStyleSheet.js b/miot-sdk/ui/Style/DynamicStyleSheet.js index 2e25b1cb5..a906bf3e2 100644 --- a/miot-sdk/ui/Style/DynamicStyleSheet.js +++ b/miot-sdk/ui/Style/DynamicStyleSheet.js @@ -1,5 +1,6 @@ import DynamicColor from './DynamicColor'; import DarkMode from 'miot/darkmode'; +import { StyleSheet } from 'react-native'; class DynamicStyleSheet { constructor(style) { this.light = this._create(style, 'light'); @@ -23,7 +24,7 @@ class DynamicStyleSheet { } newStyles[stylesKey] = newStyle; } - return newStyles; + return StyleSheet.create(newStyles); } } /** diff --git a/miot-sdk/ui/Switch.js b/miot-sdk/ui/Switch.js index 92308c960..2ac8de6a6 100644 --- a/miot-sdk/ui/Switch.js +++ b/miot-sdk/ui/Switch.js @@ -1,154 +1,2 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Animated, StyleSheet, TouchableOpacity, View } from 'react-native'; -import { Styles } from '../resources'; -import { withSDKContext } from 'miot/sdkContext'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -import { referenceReport } from '../decorator/ReportDecorator'; -const OFF_COLOR = '#f0f0f0'; -const BORDER_COLOR = 'rgba(0,0,0,0.1)'; -const BACK_WIDTH = 44; // 默认宽度 -const BACK_HEIGHT = 24; // 默认高度 -const BORDER_WIDTH = StyleSheet.hairlineWidth; -const ratio = 6.5; // 容器高度和滚球尺寸比例 -const minMargin = 2.5; // 容器和滚球之间的最小间距 -/** - * @export public - * @doc_name 常用UI组件 - * @doc_index 1 - * @doc_directory ui - * @author Geeook - * @since 10020 - * @module Switch - * @description Switch for Android and iOS - * @property {bool} value - 开关状态,默认值 false - * @property {style} style - 开关样式,仅支持宽高 - * @property {string} onTintColor - 打开时的背景颜色 - * @property {string} tintColor - 关闭时的背景颜色 - * @property {bool} disabled - 是否禁用,默认值 false - * @property {function} onValueChange - 切换开关的回调函数 - */ -class Switch extends React.Component { - static propTypes = { - value: PropTypes.bool.isRequired, - style: PropTypes.object, - onTintColor: PropTypes.string, - tintColor: PropTypes.string, - disabled: PropTypes.bool, - onValueChange: PropTypes.func.isRequired, - ...AccessibilityPropTypes - } - static defaultProps = { - value: false, - style: {}, - onTintColor: Styles.common.MHGreen, - tintColor: OFF_COLOR, - disabled: false - } - offsetX = new Animated.Value(0); - constructor(props) { - super(props); - referenceReport('Switch'); - this.state = { - value: this.props.value - }; - // 根据style的宽度计算出滚球的大小和间距 - const { width, height } = this.props.style; - const backWidth = width || BACK_WIDTH; - const backHeight = height || BACK_HEIGHT; - const margin = (backHeight / ratio) < minMargin - ? minMargin - : Math.round(backHeight / ratio); - const circleSize = backHeight - 2 * margin; - // 滚球滚动最大距离 - this.offsetXMax = backWidth - backHeight; - // 容器实际样式 - this.backStyle = { - width: backWidth, - height: backHeight, - borderRadius: backHeight / 2 - }; - // 滚球实际样式 - this.circleStyle = { - margin, - width: circleSize, - height: circleSize, - borderRadius: circleSize / 2 - }; - } - UNSAFE_componentWillReceiveProps(newProps) { - if (newProps.value !== this.state.value) { - this.setState({ value: newProps.value }, this.animated); - } - } - render() { - const backgroundColor = this.state.value ? this.props.onTintColor : this.props.tintColor; - const opacity = this.props.disabled ? 0.3 : 1; - return ( - - this._onValueChange()} - {...getAccessibilityConfig({ - ...this.props, - accessibilityRole: this.props.accessibilityRole || AccessibilityRoles.switch, - accessibilityState: this.props.accessibilityState || { - disabled: this.props.disabled, - checked: !!this.state.value - } - })} - > - { // Android 黑暗模式下使用 Animated.Image 实现白色圆点 - this.props.colorScheme === 'dark' ? ( - - ) : - } - - - ); - } - animated() { - const toValue = this.state.value ? this.offsetXMax : 0; - Animated.spring(this.offsetX, - { - toValue, - bounciness: 9, - speed: 9 - } - ).start(); - } - _onValueChange() { - const value = !this.state.value; - if (this.props.onValueChange) { - this.props.onValueChange(value); - } - this.setState({ value }, this.animated); - } - componentDidMount() { - this.animated(); - } -} -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - alignItems: 'center' - }, - back: { - justifyContent: 'center', - borderWidth: BORDER_WIDTH, - borderColor: BORDER_COLOR - }, - circle: { - position: 'absolute', - borderWidth: BORDER_WIDTH, - borderColor: BORDER_COLOR, - backgroundColor: '#fff' - } -}); -export default withSDKContext(Switch); \ No newline at end of file +import { Switch } from 'mhui-rn'; +export default Switch; \ No newline at end of file diff --git a/miot-sdk/ui/TitleBar.js b/miot-sdk/ui/TitleBar.js index f94e0c2b5..c00e39d85 100644 --- a/miot-sdk/ui/TitleBar.js +++ b/miot-sdk/ui/TitleBar.js @@ -1,331 +1,2 @@ -/** - * @export public - * @doc_name 常用UI组件 - * @doc_index 1 - * @doc_directory ui - * @module miot/ui/TitleBar - * @description 新版导航栏,可以尝试使用 - * @property type 导航栏类型 options: ["dark", "light"(default)], dark默认表示白底黑字, light默认表示黑底白字 - * @property style 导航栏整体的样式,会覆盖 type 的默认设置,其中 height 定义的是状态栏下方内容的高度(不能小于30),默认 height = 55 - * @property leftTextStyle 左侧文字样式,和 leftText 一起使用,不设置使用米家默认值 - * @property leftText 左侧文字 - * @property onPressLeft 左侧点击事件,设置了才显示左侧文字或图片,如果设置了leftText则显示设置的文字,否则显示默认的返回按钮。 - * @property onPressLeft2 左侧的第二个点击事件,设置了才显示默认的关闭按钮, - * @property rightTextStyle 右侧文字样式,和 rightText 一起使用,不设置使用米家默认值 - * @property rightText 右侧文字 - * @property onPressRight 右侧点击事件,设置了才显示右侧文字或图片,如果设置了 rightText 则显示设置的文字,否则显示默认的更多按钮。 - * @property onPressRight2 右侧的第二个点击事件,设置了才显示默认的分享按钮 - * @property title 中间的标题 - * @property subTitle 中间的子标题 - * @property {ViewPropTypes.style} titleStyle - 10040新增 最左侧文字颜色的样式 - * @property {ViewPropTypes.style} subtitleStyle - 10040新增 最左侧文字颜色的样式 - * @property onPressTitle 点击标题的事件 - * @property showDot 是否显示右侧更多按钮的空点 - * @property {bool} allowFontScaling - 字体大小是否随系统大小变化而变化, 默认值为true - */ -import PropTypes from 'prop-types'; -import React, { Component } from 'react'; -import { Dimensions, Image, Platform, StatusBar, StyleSheet, Text, View } from 'react-native'; -import { getStatusBarHeight } from "react-native-iphone-x-helper"; -import { RkButton } from "react-native-ui-kitten"; -import { SafeAreaView } from 'react-navigation'; -import ImageButton from './ImageButton'; -import native, { isIOS } from '../native'; -import DarkMode from 'miot/darkmode'; -import { AccessibilityRoles, AccessibilityPropTypes, getAccessibilityConfig } from 'miot/utils/accessibility-helper'; -import { referenceReport } from '../decorator/ReportDecorator'; -const { width } = Dimensions.get('window'); -const statusBarHeight = getStatusBarHeight(true); -const titleHeight = 55; -const imgHeight = 28; -const containerHeight = (StatusBar.currentHeight || 0) + titleHeight; -const marginV = (titleHeight - imgHeight) / 2; -const marginH = 14; -const dotSize = 10; -export default class TitleBar extends Component { - static propTypes = { - type: PropTypes.oneOf(['dark', 'light']), - leftTextStyle: PropTypes.any, - rightTextStyle: PropTypes.any, - style: PropTypes.any, - leftText: PropTypes.string, - rightText: PropTypes.string, - onPressLeft: PropTypes.func, - onPressLeft2: PropTypes.func, - onPressRight: PropTypes.func, - onPressRight2: PropTypes.func, - onPressTitle: PropTypes.func, - title: PropTypes.string, - subTitle: PropTypes.string, - titleStyle: Text.propTypes.style, - subtitleStyle: Text.propTypes.style, - allowFontScaling: PropTypes.bool, - showDot: PropTypes.bool, - accessible: AccessibilityPropTypes.accessible, - // 无障碍 - onPressLeft - leftAccessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - leftAccessibilityHint: AccessibilityPropTypes.accessibilityHint, - // 无障碍 - onPressLeft2 - left2AccessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - left2AccessibilityHint: AccessibilityPropTypes.accessibilityHint, - // 无障碍 - onPressRight - rightAccessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - rightAccessibilityHint: AccessibilityPropTypes.accessibilityHint, - // 无障碍 - onPressRight2 - right2AccessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - right2AccessibilityHint: AccessibilityPropTypes.accessibilityHint - } - static defaultProps = { - type: 'light', - allowFontScaling: true, - titleStyle: {}, - subtitleStyle: {} - } - constructor(props) { - super(props); - referenceReport('TitleBar'); - } - UNSAFE_componentWillMount() { - this.isDarkStyle = this.props.type === 'dark'; - if (Platform.OS == 'android') { - StatusBar.setTranslucent(true); - } - } - render() { - this.isDarkStyle = this.props.type === 'dark'; - if (isIOS && native.MIOTService.currentDarkMode == "dark") { - // 黑暗模式适配 - if (this.isDarkStyle === false) { - // 原本就是light的情况下(黑底白字) 颜色不加转换 - if (this.props.style !== undefined && this.props.style.backgroundColor !== undefined) { - this.props.style.backgroundColor = `xm${ this.props.style.backgroundColor }`; - } - } - this.isDarkStyle = false; - } else { - if (DarkMode.getColorScheme() === 'dark') { - this.isDarkStyle = false; - } - } - this.isDarkStyle ? StatusBar.setBarStyle('dark-content') : StatusBar.setBarStyle('light-content'); - const containerStyle = this.isDarkStyle ? styles.blackTitleBarContainer : styles.lightTitleBarContainer; - let leftWidth = this.props.leftTextStyle ? this.props.leftTextStyle.width : 0; - let rightWidth = this.props.rightTextStyle ? this.props.rightTextStyle.width : 0; - let titleTextStyle = this.isDarkStyle ? styles.blackTitleText : styles.whiteTitleText; - let subtitleTextStyle = this.isDarkStyle ? styles.blackSubtitleText : styles.whiteSubtitleText; - let leftRightTextStyle = this.isDarkStyle ? styles.blackLeftRightText : styles.whiteLeftRightText; - const back_n = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_back_normal.png') : require("../resources/title/std_tittlebar_main_device_back_white_normal.png"); - const back_p = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_back_press.png') : require("../resources/title/std_tittlebar_main_device_back_white_press.png"); - const set_n = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_back2_normal.png') : require("../resources/title/std_titlebar_setting_back_normal.png"); - const set_p = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_back2_press.png') : require("../resources/title/std_titlebar__setting_back_press.png"); - const share_n = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_share_normal.png') : require("../resources/title/std_tittlebar_main_device_share_white_normal.png"); - const share_p = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_share_press.png') : require("../resources/title/std_tittlebar_main_device_share_white_press.png"); - const more_n = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_more_normal.png') : require("../resources/title/std_tittlebar_main_device_more_white_normal.png"); - const more_p = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_more_press.png') : require("../resources/title/std_tittlebar_main_device_more_white_press.png"); - const message = this.isDarkStyle ? require('../resources/title/std_tittlebar_main_device_massage_point.png') : require("../resources/title/std_tittlebar_main_device_massage_point.png"); - // 为了保持两端统一,传参的 height 只定义除 StatusBar 外的部分,即覆盖 titleHeight - const { height } = this.props.style || {}; - let containerHeight = {}; - let dotTop = {}; // 小红点偏移位置 - let offset; - if (height !== undefined) { - containerHeight = { height: (StatusBar.currentHeight || 0) + height }; - offset = height - titleHeight; - dotTop = { top: statusBarHeight + marginV + offset }; - } - return ( - - {this.props.leftText - ? ({this.props.leftText}) - : ( - - ) - } - - - - {this.props.title} - - {this.props.subTitle - ? - {this.props.subTitle} - - : null - } - - - {this.props.rightText - ? {this.props.rightText} - : - } - { - this.props.showDot && - - } - - ); - } -} -const styles = StyleSheet.create({ - lightTitleBarContainer: { - flexDirection: 'row', - width: width, - alignItems: 'flex-end', - height: containerHeight, - backgroundColor: "xmblack" - }, - blackTitleBarContainer: { - flexDirection: 'row', - width: width, - alignItems: 'flex-end', - height: containerHeight, - backgroundColor: "xmwhite" - }, - textContainer: { - minHeight: titleHeight, - flex: 1, - alignItems: 'stretch', - justifyContent: 'center' - }, - blackTitleText: { - color: 'xm#000000cc', - fontSize: 15, - textAlignVertical: 'center', - textAlign: 'center' - }, - whiteTitleText: { - color: "xm#ffffffcc", - fontSize: 15, - textAlignVertical: "center", - textAlign: "center" - }, - blackSubtitleText: { - color: 'xm#00000088', - fontSize: 12, - textAlignVertical: 'center', - textAlign: 'center' - }, - whiteSubtitleText: { - color: "xm#ffffff88", - fontSize: 12, - textAlignVertical: "center", - textAlign: "center" - }, - blackLeftRightText: { - backgroundColor: 'xm#0000', - color: 'xm#00000088', - fontSize: 14, - alignItems: 'center', - justifyContent: 'center', - textAlignVertical: "center", - textAlign: "center" - }, - whiteLeftRightText: { - backgroundColor: 'xm#0000', - color: 'xm#ffffff88', - fontSize: 14, - alignItems: 'center', - justifyContent: 'center', - textAlignVertical: "center", - textAlign: "center" - }, - img: { - width: imgHeight, - height: imgHeight, - resizeMode: 'contain', - marginHorizontal: marginH, - marginVertical: marginV - }, - dot: { - position: 'absolute', - width: dotSize, - height: dotSize, - resizeMode: 'contain', - right: marginH, - top: statusBarHeight + marginV - } -}); \ No newline at end of file +import { TitleBar } from 'mhui-rn'; +export default TitleBar; \ No newline at end of file diff --git a/miot-sdk/ui/TouchableView.js b/miot-sdk/ui/TouchableView.js index b441f3c8c..07a67f07d 100644 --- a/miot-sdk/ui/TouchableView.js +++ b/miot-sdk/ui/TouchableView.js @@ -1,66 +1,2 @@ -'use strict'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { View, TouchableWithoutFeedback, ViewPropTypes } from 'react-native'; -import { Styles } from '../resources'; -import { referenceReport } from '../decorator/ReportDecorator'; -/** - * @export public - * @doc_name 常用UI组件 - * @doc_index 1 - * @doc_directory ui - * @author Geeook - * @since 10040 - * @module TouchableView - * @description 可点击的View组件 值得注意的是,尽量使用单层嵌套而不是多层嵌套,否则容易出现响应者混乱的问题。 - * @property {number} delayLongPress longPress回调触发延时 - * @property {number} delayPressIn onPress回调触发延时 - * @property {number} delayPressOut onPress结束触发延时 - * @property {bool} disabled 是否禁用 - * @property {function} onLongPress 长按回调 - * @property {function} onPress 点击回调 - * @property {style} viewStyle style - * @property {string} underlayColor onPressIn触发时颜色改变值 - */ -export default class TouchableView extends React.Component { - static propTypes = { - delayLongPress: PropTypes.number, - delayPressIn: PropTypes.number, - delayPressOut: PropTypes.number, - disabled: PropTypes.bool, - onLongPress: PropTypes.func, - onPress: PropTypes.func, - viewStyle: ViewPropTypes.style, - underlayColor: PropTypes.string - } - static defaultProps = { - delayLongPress: 100, - delayPressIn: 100, - delayPressOut: 100, - disabled: false, - viewStyle: {}, - underlayColor: Styles.common.underlayColor - } - constructor(props, context) { - super(props, context); - referenceReport('TouchableView'); - this.state = { - inPress: false - }; - } - render() { - return ( - { this.setState({ inPress: true }); }} - onPressOut={() => { this.setState({ inPress: false }); }} - >{this.props.children} - ); - } -} \ No newline at end of file +import { TouchableView } from 'mhui-rn'; +export default TouchableView; \ No newline at end of file diff --git a/miot-sdk/ui/WallSwitch.js b/miot-sdk/ui/WallSwitch.js index b295d689e..01cf1ee03 100644 --- a/miot-sdk/ui/WallSwitch.js +++ b/miot-sdk/ui/WallSwitch.js @@ -1,151 +1,2 @@ -import React, { Component } from 'react'; -import { StyleSheet, View, TouchableOpacity } from 'react-native'; -import PropTypes from 'prop-types'; -import LinearGradient from 'react-native-linear-gradient'; -import { adjustSize } from '../utils/sizes'; -// import { FontDefault } from '../utils/fonts'; -import { log } from '../utils/fns'; -import { AccessibilityPropTypes, AccessibilityRoles, getAccessibilityConfig } from '../utils/accessibility-helper'; -const SwitchBgColorsOn = ["#fff", "#f1f1f2"]; -const SwitchBgColorsOff = ["#f1f1f2", "#fff"]; -const MarginTops = [0, adjustSize(240), adjustSize(180), adjustSize(105), adjustSize(90)]; -const Heights = [0, adjustSize(990), adjustSize(852), adjustSize(720), adjustSize(516)]; -export default class WallSwitch extends Component { - static propTypes = { - items: PropTypes.arrayOf(PropTypes.shape({ - isOn: PropTypes.bool, - accessibilityLabel: AccessibilityPropTypes.accessibilityLabel, - accessibilityHint: AccessibilityPropTypes.accessibilityHint - })), - onSwitch: PropTypes.func, - accessible: AccessibilityPropTypes.accessible - }; - static defaultProps = { - items: [], - onSwitch: log - }; - switch = (index) => { - let { onSwitch } = this.props; - if (typeof onSwitch === 'function') { - onSwitch(index); - } - } - getItems = (items) => { - let length = items.length; - return items.map((item, index) => { - let isFirst = index === 0; - let isLast = index === length - 1; - let isOn = item.isOn; - return ( - - { - this.switch(index); - }} {...getAccessibilityConfig({ - accessible: false - })}> - - - - - - ); - }); - } - render() { - let { items } = this.props; - if (!items || !items.length) { - return null; - } - let length = items.length; - return ( - - {this.getItems(items)} - - ); - } -} -const Styles = StyleSheet.create({ - container: { - marginHorizontal: adjustSize(30), - flexDirection: 'row', - backgroundColor: '#CDCED0', - borderRadius: adjustSize(30), - borderWidth: adjustSize(6), - borderColor: '#CDCED0', - overflow: 'hidden' - }, - item: { - flex: 1, - backgroundColor: '#F7F7F7', - marginHorizontal: adjustSize(3), - alignItems: 'center' - }, - itemOn: { - marginTop: adjustSize(30), - paddingTop: adjustSize(90), - marginBottom: 0, - paddingBottom: adjustSize(60) - }, - itemOff: { - marginTop: 0, - paddingTop: adjustSize(120), - marginBottom: adjustSize(30), - paddingBottom: adjustSize(30) - }, - itemFirst: { - borderTopLeftRadius: adjustSize(30), - borderBottomLeftRadius: adjustSize(30), - borderTopRightRadius: 1, - borderBottomRightRadius: 1 - }, - itemLast: { - borderTopLeftRadius: 1, - borderBottomLeftRadius: 1, - borderTopRightRadius: adjustSize(30), - borderBottomRightRadius: adjustSize(30) - }, - upper: { - flex: 1, - marginTop: adjustSize(30), - alignItems: 'center' - }, - indicator: { - width: adjustSize(84), - height: adjustSize(6), - marginTop: adjustSize(60) - }, - indicatorOn: { - backgroundColor: '#3CB3F7' - }, - indicatorOff: { - backgroundColor: '#A2AFC1' - } - // lower: { - // marginHorizontal: adjustSize(82), - // alignItems: 'center', - // marginBottom: adjustSize(69) - // }, - // nameContainer: { - // height: adjustSize(84) - // }, - // name: { - // fontFamily: FontDefault, - // fontSize: adjustSize(33), - // lineHeight: adjustSize(42), - // textAlign: 'center', - // color: '#000', - // opacity: 0.6 - // } -}); \ No newline at end of file +import WallSwitch from 'mhui-rn/dist/modules/wallSwitch/WallSwitch'; +export default WallSwitch; \ No newline at end of file diff --git a/miot-sdk/ui/index.js b/miot-sdk/ui/index.js index 98e117f16..fe4a1dd63 100644 --- a/miot-sdk/ui/index.js +++ b/miot-sdk/ui/index.js @@ -29,6 +29,11 @@ import _TitleBar from './TitleBar'; import _TitleBarBlack from './TitleBarBlack'; import _TitleBarWhite from './TitleBarWhite'; import _BTInterconnection from './BTInterconnection'; +import _BraceletInterconnection from './BraceletInterconnection'; +import { ColorPicker as _ColorPicker } from './ColorPicker'; +import _TouchableView from './TouchableView'; +export { default as DynamicColor, dynamicColor } from './Style/DynamicColor'; +export { default as DynamicStyleSheet, dynamicStyleSheet } from './Style/DynamicStyleSheet'; export const ImageButton = _ImageButton; export const LoadingDialog = _LoadingDialog; export const MessageDialog = _MessageDialog; @@ -46,6 +51,9 @@ export const StringSpinner = _StringSpin; export const RobotMapView = _RobotMapView; export const MiotAndroidScrollView = _MiotAndroidScrollView; export const BTInterconnection = _BTInterconnection; +export const BraceletInterconnection = _BraceletInterconnection; +export const ColorPicker = _ColorPicker; +export const TouchableView = _TouchableView; export { default as BigNumber } from './BigNumber'; export { default as CardButton } from './CardButton'; export { default as CircleButton } from './CircleButton'; @@ -78,5 +86,5 @@ export default { ProgressDialog, SingleChoseDialog, InputDialog, TitleBar, TitleBarBlack, TitleBarWhite, NumberSpinner, StringSpinner, RobotMapView, - LocalizedStrings, AMapView, MiotAndroidScrollView + LocalizedStrings, AMapView, MiotAndroidScrollView, ColorPicker }; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6ec910011..f39a04f2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1 +1 @@ -{"name":"miot-workspace","version":"1.0.40","lockfileVersion":1,"requires":true,"dependencies":{"@babel/code-frame":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.0.0.tgz","integrity":"sha1-BuKrGb21NThVWaq7W6WXKUgoAPg=","requires":{"@babel/highlight":"^7.0.0"}},"@babel/core":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/core/download/@babel/core-7.4.3.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.4.3.tgz","integrity":"sha1-GY1tOvRWe+OYlVDZfgaN6UUDB08=","requires":{"@babel/code-frame":"^7.0.0","@babel/generator":"^7.4.0","@babel/helpers":"^7.4.3","@babel/parser":"^7.4.3","@babel/template":"^7.4.0","@babel/traverse":"^7.4.3","@babel/types":"^7.4.0","convert-source-map":"^1.1.0","debug":"^4.1.0","json5":"^2.1.0","lodash":"^4.17.11","resolve":"^1.3.2","semver":"^5.4.1","source-map":"^0.5.0"},"dependencies":{"debug":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz","integrity":"sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=","requires":{"ms":"^2.1.1"}},"json5":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/json5/download/json5-2.1.0.tgz","integrity":"sha1-56DGLEgoXGKNIKELhcibuAfDKFA=","requires":{"minimist":"^1.2.0"}},"ms":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz","integrity":"sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo="}}},"@babel/generator":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.4.0.tgz","integrity":"sha1-wjDnlYmuenKf1GMbne1NwiBBgZY=","requires":{"@babel/types":"^7.4.0","jsesc":"^2.5.1","lodash":"^4.17.11","source-map":"^0.5.0","trim-right":"^1.0.1"},"dependencies":{"jsesc":{"version":"2.5.2","resolved":"http://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz","integrity":"sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q="}}},"@babel/helper-annotate-as-pure":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.0.0.tgz","integrity":"sha1-Mj053QtQ4Qx8Bsp9djjmhk2MXDI=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-builder-binary-assignment-operator-visitor":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz","integrity":"sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw==","requires":{"@babel/helper-explode-assignable-expression":"^7.7.0","@babel/types":"^7.7.0"},"dependencies":{"@babel/types":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz","integrity":"sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/helper-builder-react-jsx":{"version":"7.3.0","resolved":"http://registry.npm.taobao.org/@babel/helper-builder-react-jsx/download/@babel/helper-builder-react-jsx-7.3.0.tgz","integrity":"sha1-oayVpdKz6Irl5UhGv0Yu64GzGKQ=","requires":{"@babel/types":"^7.3.0","esutils":"^2.0.0"}},"@babel/helper-call-delegate":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.4.0.tgz","integrity":"sha1-8wjqvg1E9FEheFOu303qX2/jKU8=","requires":{"@babel/helper-hoist-variables":"^7.4.0","@babel/traverse":"^7.4.0","@babel/types":"^7.4.0"}},"@babel/helper-create-class-features-plugin":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.4.3.tgz","integrity":"sha1-W70nnGw6xqYCZribv+f4AhCAoe8=","requires":{"@babel/helper-function-name":"^7.1.0","@babel/helper-member-expression-to-functions":"^7.0.0","@babel/helper-optimise-call-expression":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-replace-supers":"^7.4.0","@babel/helper-split-export-declaration":"^7.4.0"}},"@babel/helper-create-regexp-features-plugin":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz","integrity":"sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ==","requires":{"@babel/helper-regex":"^7.4.4","regexpu-core":"^4.6.0"},"dependencies":{"jsesc":{"version":"0.5.0","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz","integrity":"sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="},"regexpu-core":{"version":"4.6.0","resolved":"https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz","integrity":"sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==","requires":{"regenerate":"^1.4.0","regenerate-unicode-properties":"^8.1.0","regjsgen":"^0.5.0","regjsparser":"^0.6.0","unicode-match-property-ecmascript":"^1.0.4","unicode-match-property-value-ecmascript":"^1.1.0"}},"regjsgen":{"version":"0.5.1","resolved":"https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz","integrity":"sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg=="},"regjsparser":{"version":"0.6.0","resolved":"https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz","integrity":"sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==","requires":{"jsesc":"~0.5.0"}}}},"@babel/helper-define-map":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.4.0.tgz","integrity":"sha1-y/2MGy8ScI4mLCb2AM0W7Wo7xsk=","requires":{"@babel/helper-function-name":"^7.1.0","@babel/types":"^7.4.0","lodash":"^4.17.11"}},"@babel/helper-explode-assignable-expression":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz","integrity":"sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg==","requires":{"@babel/traverse":"^7.7.0","@babel/types":"^7.7.0"},"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","requires":{"@babel/highlight":"^7.0.0"}},"@babel/generator":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/generator/-/generator-7.7.2.tgz","integrity":"sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ==","requires":{"@babel/types":"^7.7.2","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-function-name":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz","integrity":"sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==","requires":{"@babel/helper-get-function-arity":"^7.7.0","@babel/template":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-get-function-arity":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz","integrity":"sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-split-export-declaration":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz","integrity":"sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==","requires":{"@babel/types":"^7.7.0"}},"@babel/parser":{"version":"7.7.3","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz","integrity":"sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A=="},"@babel/template":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz","integrity":"sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/traverse":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.2.tgz","integrity":"sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw==","requires":{"@babel/code-frame":"^7.5.5","@babel/generator":"^7.7.2","@babel/helper-function-name":"^7.7.0","@babel/helper-split-export-declaration":"^7.7.0","@babel/parser":"^7.7.2","@babel/types":"^7.7.2","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"}},"@babel/types":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz","integrity":"sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npmjs.org/globals/-/globals-11.12.0.tgz","integrity":"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="},"jsesc":{"version":"2.5.2","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz","integrity":"sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/helper-function-name":{"version":"7.1.0","resolved":"http://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.1.0.tgz","integrity":"sha1-oM6wFoX3M1XUNgwSR/WCv6/I/1M=","requires":{"@babel/helper-get-function-arity":"^7.0.0","@babel/template":"^7.1.0","@babel/types":"^7.0.0"}},"@babel/helper-get-function-arity":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0.tgz","integrity":"sha1-g1ctQyDipGVyY3NBE8QoaLZOScM=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-hoist-variables":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.4.0.tgz","integrity":"sha1-JbYhOZriKYaTKXMKYgFbvrCm+9Y=","requires":{"@babel/types":"^7.4.0"}},"@babel/helper-member-expression-to-functions":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.0.0.tgz","integrity":"sha1-jNFLCg33/wDwCefXpDaUX0fHoW8=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-module-imports":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.0.0.tgz","integrity":"sha1-lggbcRHkhtpNLNlxrRpP4hbMLj0=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-module-transforms":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.4.3.tgz","integrity":"sha1-seNXocSeWKRyEaaFOruOKq7+sGQ=","requires":{"@babel/helper-module-imports":"^7.0.0","@babel/helper-simple-access":"^7.1.0","@babel/helper-split-export-declaration":"^7.0.0","@babel/template":"^7.2.2","@babel/types":"^7.2.2","lodash":"^4.17.11"}},"@babel/helper-optimise-call-expression":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.0.0.tgz","integrity":"sha1-opIMVwKwc8Fd5REGIAqoytIEl9U=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-plugin-utils":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.0.0.tgz","integrity":"sha1-u7P77phmHFaQNCN8wDlnupm08lA="},"@babel/helper-regex":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz","integrity":"sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==","requires":{"lodash":"^4.17.13"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"@babel/helper-remap-async-to-generator":{"version":"7.1.0","resolved":"http://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.1.0.tgz","integrity":"sha1-Nh2AghtvONp1vT8HheziCojF/n8=","dev":true,"requires":{"@babel/helper-annotate-as-pure":"^7.0.0","@babel/helper-wrap-function":"^7.1.0","@babel/template":"^7.1.0","@babel/traverse":"^7.1.0","@babel/types":"^7.0.0"}},"@babel/helper-replace-supers":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.4.0.tgz","integrity":"sha1-T1attq7c1EnS2pOZwtzwVFRjtkw=","requires":{"@babel/helper-member-expression-to-functions":"^7.0.0","@babel/helper-optimise-call-expression":"^7.0.0","@babel/traverse":"^7.4.0","@babel/types":"^7.4.0"}},"@babel/helper-simple-access":{"version":"7.1.0","resolved":"http://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.1.0.tgz","integrity":"sha1-Ze65VMjCRb6qToWdphiPOdceWFw=","requires":{"@babel/template":"^7.1.0","@babel/types":"^7.0.0"}},"@babel/helper-split-export-declaration":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.4.0.tgz","integrity":"sha1-Vxv9UnAfSSkg1jt/c1Aw6aPhC1U=","requires":{"@babel/types":"^7.4.0"}},"@babel/helper-validator-identifier":{"version":"7.9.0","resolved":"https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.9.0.tgz?cache=0&sync_timestamp=1584718876452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.9.0.tgz","integrity":"sha1-rVNWKn/Cmzuakbv30QOX/RRjRu0=","dev":true},"@babel/helper-wrap-function":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.2.0.tgz","integrity":"sha1-xOABJEV2nigVtVKW6tQ6lYVJ9vo=","dev":true,"requires":{"@babel/helper-function-name":"^7.1.0","@babel/template":"^7.1.0","@babel/traverse":"^7.1.0","@babel/types":"^7.2.0"}},"@babel/helpers":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.4.3.tgz","integrity":"sha1-ex01Q2NJSzHLmiQXroavMreFOjs=","requires":{"@babel/template":"^7.4.0","@babel/traverse":"^7.4.3","@babel/types":"^7.4.0"}},"@babel/highlight":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.0.0.tgz","integrity":"sha1-9xDDjI1Fjm3ZogGvtjf8t4HOmeQ=","requires":{"chalk":"^2.0.0","esutils":"^2.0.2","js-tokens":"^4.0.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"supports-color":{"version":"5.5.0","resolved":"http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}}}},"@babel/parser":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.4.3.tgz","integrity":"sha1-6zrID2SqEByQfUzlQGNg/nW3iVs="},"@babel/plugin-check-constants":{"version":"7.0.0-beta.38","resolved":"http://registry.npm.taobao.org/@babel/plugin-check-constants/download/@babel/plugin-check-constants-7.0.0-beta.38.tgz","integrity":"sha1-u9pjBtRaTwl8y0FsC1LWUD9lAs8=","dev":true},"@babel/plugin-external-helpers":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-external-helpers/download/@babel/plugin-external-helpers-7.2.0.tgz","integrity":"sha1-f0y33uZRzTgNIDSEfZFCiEZ6a+Q=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-proposal-class-properties":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.4.0.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.4.0.tgz","integrity":"sha1-1w22Gi8f153pJ+6pH2QRyWTghLg=","requires":{"@babel/helper-create-class-features-plugin":"^7.4.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-proposal-decorators":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.8.3.tgz","integrity":"sha1-IVaGCrZcWr8GjD9nBCGEBBBmVD4=","dev":true,"requires":{"@babel/helper-create-class-features-plugin":"^7.8.3","@babel/helper-plugin-utils":"^7.8.3","@babel/plugin-syntax-decorators":"^7.8.3"},"dependencies":{"@babel/code-frame":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz","integrity":"sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=","dev":true,"requires":{"@babel/highlight":"^7.8.3"}},"@babel/generator":{"version":"7.9.4","resolved":"https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.9.4.tgz?cache=0&sync_timestamp=1585038807794&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.9.4.tgz","integrity":"sha1-EkQekMOzxBWc3s8xIHW/Gozi284=","dev":true,"requires":{"@babel/types":"^7.9.0","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-create-class-features-plugin":{"version":"7.8.6","resolved":"https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.8.6.tgz?cache=0&sync_timestamp=1582806396819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.8.6.tgz","integrity":"sha1-JDpbRuL48PZ03BOHYx62souFHeA=","dev":true,"requires":{"@babel/helper-function-name":"^7.8.3","@babel/helper-member-expression-to-functions":"^7.8.3","@babel/helper-optimise-call-expression":"^7.8.3","@babel/helper-plugin-utils":"^7.8.3","@babel/helper-replace-supers":"^7.8.6","@babel/helper-split-export-declaration":"^7.8.3"}},"@babel/helper-function-name":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.8.3.tgz","integrity":"sha1-7utmWgGx8RBo6fuGrVahyxqCTMo=","dev":true,"requires":{"@babel/helper-get-function-arity":"^7.8.3","@babel/template":"^7.8.3","@babel/types":"^7.8.3"}},"@babel/helper-get-function-arity":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz","integrity":"sha1-uJS5R70AQ4HOY+odufCFR+kgq9U=","dev":true,"requires":{"@babel/types":"^7.8.3"}},"@babel/helper-member-expression-to-functions":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz","integrity":"sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw=","dev":true,"requires":{"@babel/types":"^7.8.3"}},"@babel/helper-optimise-call-expression":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz","integrity":"sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk=","dev":true,"requires":{"@babel/types":"^7.8.3"}},"@babel/helper-plugin-utils":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz","integrity":"sha1-nqKTvhm6vA9S/4yoizTDYRsghnA=","dev":true},"@babel/helper-replace-supers":{"version":"7.8.6","resolved":"https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.6.tgz","integrity":"sha1-Wtp0T9WtcyA78dZ0WaJ9y6Z+/8g=","dev":true,"requires":{"@babel/helper-member-expression-to-functions":"^7.8.3","@babel/helper-optimise-call-expression":"^7.8.3","@babel/traverse":"^7.8.6","@babel/types":"^7.8.6"}},"@babel/helper-split-export-declaration":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz","integrity":"sha1-ManzAHD5E2inGCzwX4MXgQZfx6k=","dev":true,"requires":{"@babel/types":"^7.8.3"}},"@babel/highlight":{"version":"7.9.0","resolved":"https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.9.0.tgz?cache=0&sync_timestamp=1584746125589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.9.0.tgz","integrity":"sha1-TptFzLgreWBycbKXmtgse2gWMHk=","dev":true,"requires":{"@babel/helper-validator-identifier":"^7.9.0","chalk":"^2.0.0","js-tokens":"^4.0.0"}},"@babel/parser":{"version":"7.9.4","resolved":"https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.9.4.tgz","integrity":"sha1-aKNeawMZu8AURlvkOCgwARPy8ug=","dev":true},"@babel/template":{"version":"7.8.6","resolved":"https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.6.tgz?cache=0&sync_timestamp=1582806406689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.8.6.tgz","integrity":"sha1-hrIq8V+CjfsIZHT5ZNzD45xDzis=","dev":true,"requires":{"@babel/code-frame":"^7.8.3","@babel/parser":"^7.8.6","@babel/types":"^7.8.6"}},"@babel/traverse":{"version":"7.9.0","resolved":"https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.9.0.tgz?cache=0&sync_timestamp=1584746132410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.9.0.tgz","integrity":"sha1-04gsKDDlE/T+TOyf526hzHh0eJI=","dev":true,"requires":{"@babel/code-frame":"^7.8.3","@babel/generator":"^7.9.0","@babel/helper-function-name":"^7.8.3","@babel/helper-split-export-declaration":"^7.8.3","@babel/parser":"^7.9.0","@babel/types":"^7.9.0","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"}},"@babel/types":{"version":"7.9.0","resolved":"https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.9.0.tgz?cache=0&sync_timestamp=1584746126419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.9.0.tgz","integrity":"sha1-ALBkw9+DrTKy2/X/BzErFcfx77U=","dev":true,"requires":{"@babel/helper-validator-identifier":"^7.9.0","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","dev":true,"requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1573282918610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","dev":true,"requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz","integrity":"sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=","dev":true,"requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz","integrity":"sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=","dev":true},"jsesc":{"version":"2.5.2","resolved":"https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz","integrity":"sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=","dev":true},"lodash":{"version":"4.17.15","resolved":"https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&sync_timestamp=1571657272199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz","integrity":"sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=","dev":true},"ms":{"version":"2.1.2","resolved":"https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz","integrity":"sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=","dev":true},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","dev":true,"requires":{"has-flag":"^3.0.0"}},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550569293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=","dev":true}}},"@babel/plugin-proposal-export-default-from":{"version":"7.5.2","resolved":"https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz","integrity":"sha512-wr9Itk05L1/wyyZKVEmXWCdcsp/e185WUNl6AfYZeEKYaUPPvHXRDqO5K1VH7/UamYqGJowFRuCv30aDYZawsg==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-export-default-from":"^7.2.0"}},"@babel/plugin-proposal-nullish-coalescing-operator":{"version":"7.4.4","resolved":"https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.4.4.tgz","integrity":"sha512-Amph7Epui1Dh/xxUxS2+K22/MUi6+6JVTvy3P58tja3B6yKTSjwwx0/d83rF7551D6PVSSoplQb8GCwqec7HRw==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-nullish-coalescing-operator":"^7.2.0"}},"@babel/plugin-proposal-object-rest-spread":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.4.3.tgz","integrity":"sha1-vifNQW7O66hBQTBbk8KC9d4ju7Q=","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.2.0"}},"@babel/plugin-proposal-optional-catch-binding":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz","integrity":"sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-optional-catch-binding":"^7.2.0"}},"@babel/plugin-proposal-optional-chaining":{"version":"7.6.0","resolved":"https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.6.0.tgz","integrity":"sha512-kj4gkZ6qUggkprRq3Uh5KP8XnE1MdIO0J7MhdDX8+rAbB6dJ2UrensGIS+0NPZAaaJ1Vr0PN6oLUgXMU1uMcSg==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-optional-chaining":"^7.2.0"}},"@babel/plugin-syntax-class-properties":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.2.0.tgz","integrity":"sha512-UxYaGXYQ7rrKJS/PxIKRkv3exi05oH7rokBAsmCSsCxz1sVPZ7Fu6FzKoGgUvmY+0YgSkYHgUoCh5R5bCNBQlw==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-decorators":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.8.3.tgz","integrity":"sha1-jSwVqfGvYksAJflhaCqdU9MAG9o=","dev":true,"requires":{"@babel/helper-plugin-utils":"^7.8.3"},"dependencies":{"@babel/helper-plugin-utils":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz","integrity":"sha1-nqKTvhm6vA9S/4yoizTDYRsghnA=","dev":true}}},"@babel/plugin-syntax-dynamic-import":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.2.0.tgz","integrity":"sha1-acFZ/69JmBIhYa2OvF5tH1XfhhI=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-export-default-from":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz","integrity":"sha512-c7nqUnNST97BWPtoe+Ssi+fJukc9P9/JMZ71IOMNQWza2E+Psrd46N6AEvtw6pqK+gt7ChjXyrw4SPDO79f3Lw==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-flow":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.2.0.tgz","integrity":"sha1-p2XwYfgDvEjyQMJvh0f6+Xwmv3w=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-jsx":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.2.0.tgz","integrity":"sha1-C4WjtLx830zEuL8jYzW5B8oi58c=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-nullish-coalescing-operator":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.2.0.tgz","integrity":"sha512-lRCEaKE+LTxDQtgbYajI04ddt6WW0WJq57xqkAZ+s11h4YgfRHhVA/Y2VhfPzzFD4qeLHWg32DMp9HooY4Kqlg==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-object-rest-spread":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.2.0.tgz","integrity":"sha1-O3o+czUQxX6CC5FCpleayLDfrS4=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-optional-catch-binding":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz","integrity":"sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-optional-chaining":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz","integrity":"sha512-HtGCtvp5Uq/jH/WNUPkK6b7rufnCPLLlDAFN7cmACoIjaOOiXxUt3SswU5loHqrhtqTsa/WoLQ1OQ1AGuZqaWA==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-typescript":{"version":"7.3.3","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz","integrity":"sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-arrow-functions":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.2.0.tgz","integrity":"sha1-mur75Nb/xlY7+Pg3IJFijwB3lVA=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-async-to-generator":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz","integrity":"sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==","requires":{"@babel/helper-module-imports":"^7.7.4","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-remap-async-to-generator":"^7.7.4"},"dependencies":{"@babel/generator":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz","integrity":"sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==","requires":{"@babel/types":"^7.7.4","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-annotate-as-pure":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz","integrity":"sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==","requires":{"@babel/types":"^7.7.4"}},"@babel/helper-function-name":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz","integrity":"sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==","requires":{"@babel/helper-get-function-arity":"^7.7.4","@babel/template":"^7.7.4","@babel/types":"^7.7.4"}},"@babel/helper-get-function-arity":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz","integrity":"sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==","requires":{"@babel/types":"^7.7.4"}},"@babel/helper-module-imports":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz","integrity":"sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==","requires":{"@babel/types":"^7.7.4"}},"@babel/helper-remap-async-to-generator":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz","integrity":"sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==","requires":{"@babel/helper-annotate-as-pure":"^7.7.4","@babel/helper-wrap-function":"^7.7.4","@babel/template":"^7.7.4","@babel/traverse":"^7.7.4","@babel/types":"^7.7.4"}},"@babel/helper-split-export-declaration":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz","integrity":"sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==","requires":{"@babel/types":"^7.7.4"}},"@babel/helper-wrap-function":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz","integrity":"sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==","requires":{"@babel/helper-function-name":"^7.7.4","@babel/template":"^7.7.4","@babel/traverse":"^7.7.4","@babel/types":"^7.7.4"}},"@babel/parser":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz","integrity":"sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g=="},"@babel/template":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz","integrity":"sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.7.4","@babel/types":"^7.7.4"}},"@babel/traverse":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz","integrity":"sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==","requires":{"@babel/code-frame":"^7.5.5","@babel/generator":"^7.7.4","@babel/helper-function-name":"^7.7.4","@babel/helper-split-export-declaration":"^7.7.4","@babel/parser":"^7.7.4","@babel/types":"^7.7.4","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"},"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","requires":{"@babel/highlight":"^7.0.0"}}}},"@babel/types":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz","integrity":"sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npmjs.org/globals/-/globals-11.12.0.tgz","integrity":"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="},"jsesc":{"version":"2.5.2","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz","integrity":"sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/plugin-transform-block-scoped-functions":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz","integrity":"sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-block-scoping":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.4.0.tgz","integrity":"sha1-Fk3zu0Hj3rlUxMoy/6n8qlbTC8s=","requires":{"@babel/helper-plugin-utils":"^7.0.0","lodash":"^4.17.11"}},"@babel/plugin-transform-classes":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.4.3.tgz","integrity":"sha1-rcehE3q0KHpVXUKcxW7N6PQMBiw=","requires":{"@babel/helper-annotate-as-pure":"^7.0.0","@babel/helper-define-map":"^7.4.0","@babel/helper-function-name":"^7.1.0","@babel/helper-optimise-call-expression":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-replace-supers":"^7.4.0","@babel/helper-split-export-declaration":"^7.4.0","globals":"^11.1.0"},"dependencies":{"globals":{"version":"11.11.0","resolved":"http://registry.npm.taobao.org/globals/download/globals-11.11.0.tgz","integrity":"sha1-3Pk3V/ot5Uhvvu1xGFOK33ienC4="}}},"@babel/plugin-transform-computed-properties":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.2.0.tgz","integrity":"sha1-g6ffamWIZbHI9kHVEMbzryICFto=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-destructuring":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.4.3.tgz","integrity":"sha1-GpX1yivy+R7wZI1d44qNRy2kNQ8=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-exponentiation-operator":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz","integrity":"sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==","requires":{"@babel/helper-builder-binary-assignment-operator-visitor":"^7.1.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-flow-strip-types":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-flow-strip-types/download/@babel/plugin-transform-flow-strip-types-7.4.0.tgz","integrity":"sha1-88We7P9oyZucluqv5P6dH6iUcTg=","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-flow":"^7.2.0"}},"@babel/plugin-transform-for-of":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.4.3.tgz","integrity":"sha1-w2/0DYk/K4NSIColWIJPcM116f4=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-function-name":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.4.3.tgz","integrity":"sha1-Ewwn7H+08MujDpWJiUSeXsjSK70=","requires":{"@babel/helper-function-name":"^7.1.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-literals":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.2.0.tgz","integrity":"sha1-aQNT6B+SZ9rU/Yz9d+r6hqulPqE=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-member-expression-literals":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz","integrity":"sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-modules-commonjs":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.4.3.tgz","integrity":"sha1-ORfyYEY6wI+Ilqpb1UQD9uH+0WU=","requires":{"@babel/helper-module-transforms":"^7.4.3","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-simple-access":"^7.1.0"}},"@babel/plugin-transform-object-assign":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-object-assign/download/@babel/plugin-transform-object-assign-7.2.0.tgz","integrity":"sha1-b97qQr4XBA8RnjjiPqD0nzGWi94=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-object-super":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz","integrity":"sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/helper-replace-supers":"^7.5.5"},"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","requires":{"@babel/highlight":"^7.0.0"}},"@babel/generator":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/generator/-/generator-7.7.2.tgz","integrity":"sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ==","requires":{"@babel/types":"^7.7.2","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-function-name":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz","integrity":"sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==","requires":{"@babel/helper-get-function-arity":"^7.7.0","@babel/template":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-get-function-arity":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz","integrity":"sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-member-expression-to-functions":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz","integrity":"sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-optimise-call-expression":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz","integrity":"sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-replace-supers":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz","integrity":"sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg==","requires":{"@babel/helper-member-expression-to-functions":"^7.7.0","@babel/helper-optimise-call-expression":"^7.7.0","@babel/traverse":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-split-export-declaration":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz","integrity":"sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==","requires":{"@babel/types":"^7.7.0"}},"@babel/parser":{"version":"7.7.3","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz","integrity":"sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A=="},"@babel/template":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz","integrity":"sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/traverse":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.2.tgz","integrity":"sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw==","requires":{"@babel/code-frame":"^7.5.5","@babel/generator":"^7.7.2","@babel/helper-function-name":"^7.7.0","@babel/helper-split-export-declaration":"^7.7.0","@babel/parser":"^7.7.2","@babel/types":"^7.7.2","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"}},"@babel/types":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz","integrity":"sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npmjs.org/globals/-/globals-11.12.0.tgz","integrity":"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="},"jsesc":{"version":"2.5.2","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz","integrity":"sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/plugin-transform-parameters":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.4.3.tgz","integrity":"sha1-5f9ikp/fTPk+WLrbXiQwMDADgA0=","requires":{"@babel/helper-call-delegate":"^7.4.0","@babel/helper-get-function-arity":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-property-literals":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz","integrity":"sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-react-display-name":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.2.0.tgz","integrity":"sha1-6/rth4NM6NxCeWCaTwwyTBVuPrA=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-react-jsx":{"version":"7.3.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-react-jsx/download/@babel/plugin-transform-react-jsx-7.3.0.tgz","integrity":"sha1-8sq5kCZjHHZ+J0WlNoszHP6PUpA=","requires":{"@babel/helper-builder-react-jsx":"^7.3.0","@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-jsx":"^7.2.0"}},"@babel/plugin-transform-react-jsx-source":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-source/download/@babel/plugin-transform-react-jsx-source-7.2.0.tgz","integrity":"sha1-IMjGDwFA9d081jQY1FKAHPP3GA8=","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-jsx":"^7.2.0"}},"@babel/plugin-transform-regenerator":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.4.3.tgz","integrity":"sha1-Kml6+WiH4rv10wOrAiHROd5ec5w=","requires":{"regenerator-transform":"^0.13.4"}},"@babel/plugin-transform-runtime":{"version":"7.6.2","resolved":"https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz","integrity":"sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA==","requires":{"@babel/helper-module-imports":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0","resolve":"^1.8.1","semver":"^5.5.1"}},"@babel/plugin-transform-shorthand-properties":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.2.0.tgz","integrity":"sha1-YzOu4vjW7n4oYVRXKYk0o7RhmPA=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-spread":{"version":"7.2.2","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.2.2.tgz","integrity":"sha1-MQOpq+IvdCttQG7NPNSbd0kZtAY=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-sticky-regex":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz","integrity":"sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/helper-regex":"^7.0.0"}},"@babel/plugin-transform-template-literals":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.2.0.tgz","integrity":"sha1-2H7QG46qx6kkc/YIyXwIneK6Hls=","requires":{"@babel/helper-annotate-as-pure":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-typescript":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.7.2.tgz","integrity":"sha512-UWhDaJRqdPUtdK1s0sKYdoRuqK0NepjZto2UZltvuCgMoMZmdjhgz5hcRokie/3aYEaSz3xvusyoayVaq4PjRg==","requires":{"@babel/helper-create-class-features-plugin":"^7.7.0","@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-typescript":"^7.2.0"},"dependencies":{"@babel/generator":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/generator/-/generator-7.7.2.tgz","integrity":"sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ==","requires":{"@babel/types":"^7.7.2","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-create-class-features-plugin":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.0.tgz","integrity":"sha512-MZiB5qvTWoyiFOgootmRSDV1udjIqJW/8lmxgzKq6oDqxdmHUjeP2ZUOmgHdYjmUVNABqRrHjYAYRvj8Eox/UA==","requires":{"@babel/helper-function-name":"^7.7.0","@babel/helper-member-expression-to-functions":"^7.7.0","@babel/helper-optimise-call-expression":"^7.7.0","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-replace-supers":"^7.7.0","@babel/helper-split-export-declaration":"^7.7.0"}},"@babel/helper-function-name":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz","integrity":"sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==","requires":{"@babel/helper-get-function-arity":"^7.7.0","@babel/template":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-get-function-arity":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz","integrity":"sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-member-expression-to-functions":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz","integrity":"sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-optimise-call-expression":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz","integrity":"sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-replace-supers":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz","integrity":"sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg==","requires":{"@babel/helper-member-expression-to-functions":"^7.7.0","@babel/helper-optimise-call-expression":"^7.7.0","@babel/traverse":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-split-export-declaration":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz","integrity":"sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==","requires":{"@babel/types":"^7.7.0"}},"@babel/parser":{"version":"7.7.3","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz","integrity":"sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A=="},"@babel/template":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz","integrity":"sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/traverse":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.2.tgz","integrity":"sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw==","requires":{"@babel/code-frame":"^7.5.5","@babel/generator":"^7.7.2","@babel/helper-function-name":"^7.7.0","@babel/helper-split-export-declaration":"^7.7.0","@babel/parser":"^7.7.2","@babel/types":"^7.7.2","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"},"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","requires":{"@babel/highlight":"^7.0.0"}}}},"@babel/types":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz","integrity":"sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npmjs.org/globals/-/globals-11.12.0.tgz","integrity":"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="},"jsesc":{"version":"2.5.2","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz","integrity":"sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/plugin-transform-unicode-regex":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz","integrity":"sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA==","requires":{"@babel/helper-create-regexp-features-plugin":"^7.7.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/register":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/register/-/register-7.7.0.tgz","integrity":"sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg==","requires":{"find-cache-dir":"^2.0.0","lodash":"^4.17.13","make-dir":"^2.1.0","pirates":"^4.0.0","source-map-support":"^0.5.16"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="},"source-map-support":{"version":"0.5.16","resolved":"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz","integrity":"sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==","requires":{"buffer-from":"^1.0.0","source-map":"^0.6.0"}}}},"@babel/runtime":{"version":"7.7.7","resolved":"https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.7.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.7.7.tgz","integrity":"sha1-GUdpyo1td5DsI2Ba+e4+QqCqec8=","requires":{"regenerator-runtime":"^0.13.2"},"dependencies":{"regenerator-runtime":{"version":"0.13.5","resolved":"http://registry.npm.pt.mi.com/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz","integrity":"sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc="}}},"@babel/template":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/template/download/@babel/template-7.4.0.tgz","integrity":"sha1-EkdOnAd7rlhcXYNalcCwt5DCXIs=","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.4.0","@babel/types":"^7.4.0"}},"@babel/traverse":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.4.3.tgz","integrity":"sha1-GgHwePxXXVif8wwPcb88PZzLrYQ=","requires":{"@babel/code-frame":"^7.0.0","@babel/generator":"^7.4.0","@babel/helper-function-name":"^7.1.0","@babel/helper-split-export-declaration":"^7.4.0","@babel/parser":"^7.4.3","@babel/types":"^7.4.0","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.11"},"dependencies":{"debug":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz","integrity":"sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.11.0","resolved":"http://registry.npm.taobao.org/globals/download/globals-11.11.0.tgz","integrity":"sha1-3Pk3V/ot5Uhvvu1xGFOK33ienC4="},"ms":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz","integrity":"sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo="}}},"@babel/types":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/types/download/@babel/types-7.4.0.tgz","integrity":"sha1-Zwck930kzObMfYz2RZnVEdFkiUw=","requires":{"esutils":"^2.0.2","lodash":"^4.17.11","to-fast-properties":"^2.0.0"},"dependencies":{"to-fast-properties":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@cnakazawa/watch":{"version":"1.0.3","resolved":"https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz","integrity":"sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==","requires":{"exec-sh":"^0.3.2","minimist":"^1.2.0"},"dependencies":{"exec-sh":{"version":"0.3.4","resolved":"https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz","integrity":"sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A=="}}},"@hapi/address":{"version":"2.1.2","resolved":"https://registry.npmjs.org/@hapi/address/-/address-2.1.2.tgz","integrity":"sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q=="},"@hapi/bourne":{"version":"1.3.2","resolved":"https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz","integrity":"sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA=="},"@hapi/hoek":{"version":"8.5.0","resolved":"https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz","integrity":"sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw=="},"@hapi/joi":{"version":"15.1.1","resolved":"https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz","integrity":"sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==","requires":{"@hapi/address":"2.x.x","@hapi/bourne":"1.x.x","@hapi/hoek":"8.x.x","@hapi/topo":"3.x.x"}},"@hapi/topo":{"version":"3.1.6","resolved":"https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz","integrity":"sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==","requires":{"@hapi/hoek":"^8.3.0"}},"@jest/console":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz","integrity":"sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==","requires":{"@jest/source-map":"^24.9.0","chalk":"^2.0.1","slash":"^2.0.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"slash":{"version":"2.0.0","resolved":"https://registry.npmjs.org/slash/-/slash-2.0.0.tgz","integrity":"sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"@jest/fake-timers":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz","integrity":"sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==","requires":{"@jest/types":"^24.9.0","jest-message-util":"^24.9.0","jest-mock":"^24.9.0"}},"@jest/source-map":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz","integrity":"sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==","requires":{"callsites":"^3.0.0","graceful-fs":"^4.1.15","source-map":"^0.6.0"},"dependencies":{"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="}}},"@jest/test-result":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz","integrity":"sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==","requires":{"@jest/console":"^24.9.0","@jest/types":"^24.9.0","@types/istanbul-lib-coverage":"^2.0.0"}},"@jest/types":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz","integrity":"sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==","requires":{"@types/istanbul-lib-coverage":"^2.0.0","@types/istanbul-reports":"^1.1.1","@types/yargs":"^13.0.0"}},"@react-native-community/blur":{"version":"3.3.1","resolved":"https://registry.npm.taobao.org/@react-native-community/blur/download/@react-native-community/blur-3.3.1.tgz","integrity":"sha1-vJ7NbYXYlznYGAE4cWU1rHz6RoA=","requires":{"prop-types":"^15.5.10"}},"@react-native-community/cli":{"version":"3.2.1","resolved":"https://registry.npmjs.org/@react-native-community/cli/-/cli-3.2.1.tgz","integrity":"sha512-bZ/bfZ+9r1gQSxp6t7+00DcpC6vmbVYSvzUCFM/yo5k8bhsDdcy8aocscIaXXVGG+v9Edri/Q7hH9ks7L18/Rg==","requires":{"@hapi/joi":"^15.0.3","@react-native-community/cli-debugger-ui":"^3.0.0","@react-native-community/cli-tools":"^3.0.0","@react-native-community/cli-types":"^3.0.0","chalk":"^2.4.2","command-exists":"^1.2.8","commander":"^2.19.0","compression":"^1.7.1","connect":"^3.6.5","cosmiconfig":"^5.1.0","deepmerge":"^3.2.0","didyoumean":"^1.2.1","envinfo":"^7.1.0","errorhandler":"^1.5.0","execa":"^1.0.0","find-up":"^4.1.0","fs-extra":"^7.0.1","glob":"^7.1.1","graceful-fs":"^4.1.3","inquirer":"^3.0.6","lodash":"^4.17.5","metro":"^0.56.0","metro-config":"^0.56.0","metro-core":"^0.56.0","metro-react-native-babel-transformer":"^0.56.0","minimist":"^1.2.0","mkdirp":"^0.5.1","morgan":"^1.9.0","node-notifier":"^5.2.1","open":"^6.2.0","ora":"^3.4.0","plist":"^3.0.0","pretty-format":"^25.1.0","semver":"^6.3.0","serve-static":"^1.13.1","shell-quote":"1.6.1","strip-ansi":"^5.2.0","sudo-prompt":"^9.0.0","wcwidth":"^1.0.1","ws":"^1.1.0"},"dependencies":{"@types/yargs":{"version":"15.0.5","resolved":"https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz","integrity":"sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==","requires":{"@types/yargs-parser":"*"}},"ansi-regex":{"version":"4.1.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz","integrity":"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"array-unique":{"version":"0.3.2","resolved":"https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz","integrity":"sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"braces":{"version":"2.3.2","resolved":"https://registry.npmjs.org/braces/-/braces-2.3.2.tgz","integrity":"sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"capture-exit":{"version":"2.0.0","resolved":"https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz","integrity":"sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==","requires":{"rsvp":"^4.8.4"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"color-name":{"version":"1.1.4","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","integrity":"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="},"core-js":{"version":"2.6.11","resolved":"https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz","integrity":"sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="},"exec-sh":{"version":"0.3.4","resolved":"https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz","integrity":"sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A=="},"expand-brackets":{"version":"2.1.4","resolved":"https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz","integrity":"sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz","integrity":"sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="}}},"extglob":{"version":"2.0.4","resolved":"https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz","integrity":"sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fbjs":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz","integrity":"sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==","requires":{"core-js":"^2.4.1","fbjs-css-vars":"^1.0.0","isomorphic-fetch":"^2.1.1","loose-envify":"^1.0.0","object-assign":"^4.1.0","promise":"^7.1.1","setimmediate":"^1.0.5","ua-parser-js":"^0.7.18"}},"fill-range":{"version":"4.0.0","resolved":"https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"find-up":{"version":"4.1.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz","integrity":"sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==","requires":{"locate-path":"^5.0.0","path-exists":"^4.0.0"}},"fs-extra":{"version":"7.0.1","resolved":"https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz","integrity":"sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==","requires":{"graceful-fs":"^4.1.2","jsonfile":"^4.0.0","universalify":"^0.1.0"}},"fsevents":{"version":"1.2.13","resolved":"https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz","integrity":"sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==","optional":true,"requires":{"bindings":"^1.5.0","nan":"^2.12.1"}},"invariant":{"version":"2.2.4","resolved":"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz","integrity":"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==","requires":{"loose-envify":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz","integrity":"sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz","integrity":"sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz","integrity":"sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"jest-haste-map":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz","integrity":"sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==","requires":{"@jest/types":"^24.9.0","anymatch":"^2.0.0","fb-watchman":"^2.0.0","fsevents":"^1.2.7","graceful-fs":"^4.1.15","invariant":"^2.2.4","jest-serializer":"^24.9.0","jest-util":"^24.9.0","jest-worker":"^24.9.0","micromatch":"^3.1.10","sane":"^4.0.3","walker":"^1.0.7"}},"jest-serializer":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz","integrity":"sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ=="},"jest-worker":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz","integrity":"sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==","requires":{"merge-stream":"^2.0.0","supports-color":"^6.1.0"},"dependencies":{"merge-stream":{"version":"2.0.0","resolved":"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz","integrity":"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="},"supports-color":{"version":"6.1.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz","integrity":"sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==","requires":{"has-flag":"^3.0.0"}}}},"jsonfile":{"version":"4.0.0","resolved":"https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz","integrity":"sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=","requires":{"graceful-fs":"^4.1.6"}},"locate-path":{"version":"5.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz","integrity":"sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==","requires":{"p-locate":"^4.1.0"}},"metro":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro/-/metro-0.56.4.tgz","integrity":"sha512-Kt3OQJQtQdts0JrKnyGdLpKHDjqYBgIfzvYrvfhmFCkKuZ8aqRlVnvpfjQ4/OBm0Fmm9NyyxbNRD9VIbj7WjnA==","requires":{"@babel/core":"^7.0.0","@babel/generator":"^7.0.0","@babel/parser":"^7.0.0","@babel/plugin-external-helpers":"^7.0.0","@babel/template":"^7.0.0","@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","absolute-path":"^0.0.0","async":"^2.4.0","babel-preset-fbjs":"^3.1.2","buffer-crc32":"^0.2.13","chalk":"^2.4.1","concat-stream":"^1.6.0","connect":"^3.6.5","debug":"^2.2.0","denodeify":"^1.2.1","eventemitter3":"^3.0.0","fbjs":"^1.0.0","fs-extra":"^1.0.0","graceful-fs":"^4.1.3","image-size":"^0.6.0","invariant":"^2.2.4","jest-haste-map":"^24.7.1","jest-worker":"^24.6.0","json-stable-stringify":"^1.0.1","lodash.throttle":"^4.1.1","merge-stream":"^1.0.1","metro-babel-register":"^0.56.4","metro-babel-transformer":"^0.56.4","metro-cache":"^0.56.4","metro-config":"^0.56.4","metro-core":"^0.56.4","metro-inspector-proxy":"^0.56.4","metro-minify-uglify":"^0.56.4","metro-react-native-babel-preset":"^0.56.4","metro-resolver":"^0.56.4","metro-source-map":"^0.56.4","metro-symbolicate":"^0.56.4","mime-types":"2.1.11","mkdirp":"^0.5.1","node-fetch":"^2.2.0","nullthrows":"^1.1.0","resolve":"^1.5.0","rimraf":"^2.5.4","serialize-error":"^2.1.0","source-map":"^0.5.6","temp":"0.8.3","throat":"^4.1.0","wordwrap":"^1.0.0","write-file-atomic":"^1.2.0","ws":"^1.1.5","xpipe":"^1.0.5","yargs":"^9.0.0"},"dependencies":{"fs-extra":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz","integrity":"sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^2.1.0","klaw":"^1.0.0"}},"jsonfile":{"version":"2.4.0","resolved":"https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz","integrity":"sha1-NzaitCi4e72gzIO1P6PWM6NcKug=","requires":{"graceful-fs":"^4.1.6"}},"metro-config":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-config/-/metro-config-0.56.4.tgz","integrity":"sha512-O85QDHwWdMn/8ERe13y4a6vbZL0AHyO8atTvL+9BCulLEO+FQBi1iJjr3+ViLa8cf0m5dRftDsa7P47m5euk4A==","requires":{"cosmiconfig":"^5.0.5","jest-validate":"^24.7.0","metro":"^0.56.4","metro-cache":"^0.56.4","metro-core":"^0.56.4","pretty-format":"^24.7.0"}},"pretty-format":{"version":"24.9.0","resolved":"https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz","integrity":"sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==","requires":{"@jest/types":"^24.9.0","ansi-regex":"^4.0.0","ansi-styles":"^3.2.0","react-is":"^16.8.4"}}}},"metro-babel-register":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.56.4.tgz","integrity":"sha512-Phm6hMluOWYqfykftjJ1jsTpWvbgb49AC/1taxEctxUdRCZlFgZwBleJZAhQYxJD5J+ikFkEbHDzePEXb29KVA==","requires":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-proposal-optional-catch-binding":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-transform-async-to-generator":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/register":"^7.0.0","core-js":"^2.2.2","escape-string-regexp":"^1.0.5"}},"metro-babel-transformer":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.56.4.tgz","integrity":"sha512-IOi4ILgZvaX7GCGHBJp79paNVOq5QxhhbyqAdEJgDP8bHfl/OVHoVKSypfrsMSKSiBrqxhIjyc4XjkXsQtkx5g==","requires":{"@babel/core":"^7.0.0","metro-source-map":"^0.56.4"}},"metro-cache":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-cache/-/metro-cache-0.56.4.tgz","integrity":"sha512-d1hiUSKwtRsuMxUhHVJ3tjK2BbpUlJGvTyMWohK8Wxx+0GbnWRWWFcI4vlCzlZfoK0VtZK2MJEl5t7Du1mIniQ==","requires":{"jest-serializer":"^24.4.0","metro-core":"^0.56.4","mkdirp":"^0.5.1","rimraf":"^2.5.4"}},"metro-core":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-core/-/metro-core-0.56.4.tgz","integrity":"sha512-hMzkBdgPt5Zm9nr/1KtIT+A6H7TNiLVCEGG5OiAXj8gTRsA2yy7wAdQpwy0xbE+zi88t/pLOzXpd3ClG/YxyWg==","requires":{"jest-haste-map":"^24.7.1","lodash.throttle":"^4.1.1","metro-resolver":"^0.56.4","wordwrap":"^1.0.0"}},"metro-inspector-proxy":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.56.4.tgz","integrity":"sha512-E1S3MO25mWKmcLn1UQuCDiS0hf9P2Fwq8sEAX5lBLoZbehepNH+4xJ3xXSY51JX4dozBrE8GGoKL4ll3II40LA==","requires":{"connect":"^3.6.5","debug":"^2.2.0","rxjs":"^5.4.3","ws":"^1.1.5","yargs":"^9.0.0"}},"metro-minify-uglify":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.56.4.tgz","integrity":"sha512-BHgj7+BKEK2pHvWHUR730bIrsZwl8DPtr49x9L0j2grPZ5/UROWXzEr8VZgIss7fl64t845uu1HXNNyuSj2EhA==","requires":{"uglify-es":"^3.1.9"}},"metro-react-native-babel-preset":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz","integrity":"sha512-CzbBDM9Rh6w8s1fq+ZqihAh7DDqUAcfo9pPww25+N/eJ7UK436Q7JdfxwdIPpBwLFn6o6MyYn+uwL9OEWBJarA==","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-export-default-from":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-proposal-optional-catch-binding":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-syntax-dynamic-import":"^7.0.0","@babel/plugin-syntax-export-default-from":"^7.0.0","@babel/plugin-syntax-flow":"^7.2.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-exponentiation-operator":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-assign":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-react-jsx-source":"^7.0.0","@babel/plugin-transform-regenerator":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-sticky-regex":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","@babel/plugin-transform-typescript":"^7.0.0","@babel/plugin-transform-unicode-regex":"^7.0.0","@babel/template":"^7.0.0","react-refresh":"^0.4.0"}},"metro-resolver":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.56.4.tgz","integrity":"sha512-Ug4ulVfpkKZ1Wu7mdYj9XLGuOqZTuWCqEhyx3siKTc/2eBwKZQXmiNo5d/IxWNvmwL/87Abeb724I6CMzMfjiQ==","requires":{"absolute-path":"^0.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.56.4.tgz","integrity":"sha512-f1P9/rpFmG3Z0Jatiw2zvLItx1TwR7mXTSDj4qLDCWeVMB3kEXAr3R0ucumTW8c6HfpJljeRBWzYFXF33fd81g==","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}},"metro-symbolicate":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.56.4.tgz","integrity":"sha512-8mCNNn6zV5FFKCIcRgI7736Xl+owgvYuy8qanPxZN36f7utiWRYeB+PirEBPcglBk4qQvoy2lT6oPULNXZQbbQ==","requires":{"invariant":"^2.2.4","metro-source-map":"^0.56.4","source-map":"^0.5.6","through2":"^2.0.1","vlq":"^1.0.0"}},"micromatch":{"version":"3.1.10","resolved":"https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz","integrity":"sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}},"mime-db":{"version":"1.23.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz","integrity":"sha1-oxtAcK2uon1zLqMzdApk0OyaZlk="},"mime-types":{"version":"2.1.11","resolved":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz","integrity":"sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=","requires":{"mime-db":"~1.23.0"}},"node-fetch":{"version":"2.6.0","resolved":"https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz","integrity":"sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="},"ob1":{"version":"0.56.4","resolved":"https://registry.npmjs.org/ob1/-/ob1-0.56.4.tgz","integrity":"sha512-URgFof9z2wotiYFsqlydXtQfGV81gvBI2ODy64xfd3vPo+AYom5PVDX4t4zn23t/O+S2IxqApSQM8uJAybmz7w=="},"p-limit":{"version":"2.3.0","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz","integrity":"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==","requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"4.1.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz","integrity":"sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==","requires":{"p-limit":"^2.2.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz","integrity":"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="},"path-exists":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz","integrity":"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="},"plist":{"version":"3.0.1","resolved":"https://registry.npmjs.org/plist/-/plist-3.0.1.tgz","integrity":"sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==","requires":{"base64-js":"^1.2.3","xmlbuilder":"^9.0.7","xmldom":"0.1.x"}},"pretty-format":{"version":"25.5.0","resolved":"https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz","integrity":"sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==","requires":{"@jest/types":"^25.5.0","ansi-regex":"^5.0.0","ansi-styles":"^4.0.0","react-is":"^16.12.0"},"dependencies":{"@jest/types":{"version":"25.5.0","resolved":"https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz","integrity":"sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==","requires":{"@types/istanbul-lib-coverage":"^2.0.0","@types/istanbul-reports":"^1.1.1","@types/yargs":"^15.0.0","chalk":"^3.0.0"}},"ansi-regex":{"version":"5.0.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz","integrity":"sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="},"ansi-styles":{"version":"4.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz","integrity":"sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==","requires":{"@types/color-name":"^1.1.1","color-convert":"^2.0.1"}},"chalk":{"version":"3.0.0","resolved":"https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz","integrity":"sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==","requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}},"color-convert":{"version":"2.0.1","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","integrity":"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==","requires":{"color-name":"~1.1.4"}},"has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="},"react-is":{"version":"16.13.1","resolved":"https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz","integrity":"sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="},"supports-color":{"version":"7.1.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz","integrity":"sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==","requires":{"has-flag":"^4.0.0"}}}},"rsvp":{"version":"4.8.5","resolved":"https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz","integrity":"sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="},"rxjs":{"version":"5.5.12","resolved":"https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz","integrity":"sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==","requires":{"symbol-observable":"1.0.1"}},"sane":{"version":"4.1.0","resolved":"https://registry.npmjs.org/sane/-/sane-4.1.0.tgz","integrity":"sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==","requires":{"@cnakazawa/watch":"^1.0.3","anymatch":"^2.0.0","capture-exit":"^2.0.0","exec-sh":"^0.3.2","execa":"^1.0.0","fb-watchman":"^2.0.0","micromatch":"^3.1.4","minimist":"^1.1.1","walker":"~1.0.5"}},"semver":{"version":"6.3.0","resolved":"https://registry.npmjs.org/semver/-/semver-6.3.0.tgz","integrity":"sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="},"strip-ansi":{"version":"5.2.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz","integrity":"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==","requires":{"ansi-regex":"^4.1.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}},"xmlbuilder":{"version":"9.0.7","resolved":"https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz","integrity":"sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="}}},"@react-native-community/cli-debugger-ui":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/@react-native-community/cli-debugger-ui/download/@react-native-community/cli-debugger-ui-3.0.0.tgz","integrity":"sha1-0B0I0eXdwWM9gsfYTUj/8HvTlBY=","requires":{"serve-static":"^1.13.1"}},"@react-native-community/cli-platform-android":{"version":"3.1.4","resolved":"http://registry.npm.pt.mi.com/@react-native-community/cli-platform-android/download/@react-native-community/cli-platform-android-3.1.4.tgz","integrity":"sha1-Yflk3DEWI+YLD7KcXzcyzIpvB28=","requires":{"@react-native-community/cli-tools":"^3.0.0","chalk":"^2.4.2","execa":"^1.0.0","jetifier":"^1.6.2","logkitty":"^0.6.0","slash":"^3.0.0","xmldoc":"^1.1.2"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"sax":{"version":"1.2.4","resolved":"https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz","integrity":"sha1-KBYjTiN4vdxOU1T6tcqold9xANk="},"slash":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz","integrity":"sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}},"xmldoc":{"version":"1.1.2","resolved":"https://registry.npm.taobao.org/xmldoc/download/xmldoc-1.1.2.tgz","integrity":"sha1-ZmbgKf4lRw1ZnNMOI/8NHtUEZtc=","requires":{"sax":"^1.2.1"}}}},"@react-native-community/cli-platform-ios":{"version":"3.2.0","resolved":"http://registry.npm.pt.mi.com/@react-native-community/cli-platform-ios/download/@react-native-community/cli-platform-ios-3.2.0.tgz","integrity":"sha1-xGlET1mTyeZzeksW14zwM+NwLwA=","requires":{"@react-native-community/cli-tools":"^3.0.0","chalk":"^2.4.2","js-yaml":"^3.13.1","xcode":"^2.0.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}}}},"@react-native-community/cli-tools":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/@react-native-community/cli-tools/download/@react-native-community/cli-tools-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40react-native-community%2Fcli-tools%2Fdownload%2F%40react-native-community%2Fcli-tools-3.0.0.tgz","integrity":"sha1-/ki4CCLtfkm4rwUfn+QeIqKnELE=","requires":{"chalk":"^2.4.2","lodash":"^4.17.5","mime":"^2.4.1","node-fetch":"^2.5.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"mime":{"version":"2.4.5","resolved":"http://registry.npm.pt.mi.com/mime/download/mime-2.4.5.tgz","integrity":"sha1-2N4uy5KYLe27ZUHJtoQdfyGOoAk="},"node-fetch":{"version":"2.6.0","resolved":"https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz","integrity":"sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}}}},"@react-native-community/cli-types":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/@react-native-community/cli-types/download/@react-native-community/cli-types-3.0.0.tgz","integrity":"sha1-SI1GYFywXohTfgMPONojbu2nRlI="},"@react-native-community/netinfo":{"version":"4.6.1","resolved":"http://registry.npm.pt.mi.com/@react-native-community/netinfo/download/@react-native-community/netinfo-4.6.1.tgz","integrity":"sha1-CZYLSSF9VV5UFE9U5jSF/lXWc60="},"@react-native-community/viewpager":{"version":"3.1.0","resolved":"http://registry.npm.pt.mi.com/@react-native-community/viewpager/download/@react-native-community/viewpager-3.1.0.tgz","integrity":"sha1-sz+ARSv7aMdqJQGWTHMfihsME7I="},"@types/color-name":{"version":"1.1.1","resolved":"https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz","integrity":"sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="},"@types/istanbul-lib-coverage":{"version":"2.0.1","resolved":"https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz","integrity":"sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg=="},"@types/istanbul-lib-report":{"version":"1.1.1","resolved":"https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz","integrity":"sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==","requires":{"@types/istanbul-lib-coverage":"*"}},"@types/istanbul-reports":{"version":"1.1.1","resolved":"https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz","integrity":"sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==","requires":{"@types/istanbul-lib-coverage":"*","@types/istanbul-lib-report":"*"}},"@types/parse-json":{"version":"4.0.0","resolved":"https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz","integrity":"sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==","dev":true},"@types/prop-types":{"version":"15.7.3","resolved":"https://registry.npm.taobao.org/@types/prop-types/download/@types/prop-types-15.7.3.tgz?cache=0&sync_timestamp=1580843756408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz","integrity":"sha1-KrDV2i5YFflLC51LldHl8kOrLKc="},"@types/react":{"version":"16.9.19","resolved":"https://registry.npm.taobao.org/@types/react/download/@types/react-16.9.19.tgz?cache=0&sync_timestamp=1580843757472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.19.tgz","integrity":"sha1-yEKqg+pJAAfSmTgUb/Lk2eQ2DEA=","requires":{"@types/prop-types":"*","csstype":"^2.2.0"}},"@types/stack-utils":{"version":"1.0.1","resolved":"https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz","integrity":"sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw=="},"@types/yargs":{"version":"13.0.3","resolved":"https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz","integrity":"sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==","requires":{"@types/yargs-parser":"*"}},"@types/yargs-parser":{"version":"13.1.0","resolved":"https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz","integrity":"sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg=="},"abort-controller":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/abort-controller/download/abort-controller-3.0.0.tgz","integrity":"sha1-6vVNU7YrrkE46AnKIlyEOabvs5I=","requires":{"event-target-shim":"^5.0.0"}},"absolute-path":{"version":"0.0.0","resolved":"http://registry.npm.taobao.org/absolute-path/download/absolute-path-0.0.0.tgz","integrity":"sha1-p4di+9rftSl76ZsV01p4Wy8JW/c="},"accepts":{"version":"1.3.7","resolved":"https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz","integrity":"sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==","requires":{"mime-types":"~2.1.24","negotiator":"0.6.2"},"dependencies":{"mime-db":{"version":"1.40.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz","integrity":"sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="},"mime-types":{"version":"2.1.24","resolved":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz","integrity":"sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==","requires":{"mime-db":"1.40.0"}}}},"acorn":{"version":"6.1.1","resolved":"http://registry.npm.taobao.org/acorn/download/acorn-6.1.1.tgz","integrity":"sha1-fSWuBbuK0fm2mRCOEJTs14hK3B8=","dev":true},"acorn-jsx":{"version":"5.0.1","resolved":"http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.0.1.tgz","integrity":"sha1-MqBk/ZJUKSFqCbFBECv90YX65A4=","dev":true},"ajv":{"version":"6.10.0","resolved":"http://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz","integrity":"sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=","dev":true,"requires":{"fast-deep-equal":"^2.0.1","fast-json-stable-stringify":"^2.0.0","json-schema-traverse":"^0.4.1","uri-js":"^4.2.2"}},"ansi":{"version":"0.3.1","resolved":"http://registry.npm.taobao.org/ansi/download/ansi-0.3.1.tgz","integrity":"sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="},"ansi-colors":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/ansi-colors/download/ansi-colors-1.1.0.tgz","integrity":"sha1-Y3S03V1HGP884npnGjscrQdxMqk=","requires":{"ansi-wrap":"^0.1.0"}},"ansi-cyan":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/ansi-cyan/download/ansi-cyan-0.1.1.tgz","integrity":"sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=","requires":{"ansi-wrap":"0.1.0"}},"ansi-escape-sequences":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/ansi-escape-sequences/download/ansi-escape-sequences-4.1.0.tgz","integrity":"sha1-JIPIdz9Q3ZF03ZVX6SsXGPGBYJc=","dev":true,"requires":{"array-back":"^3.0.1"},"dependencies":{"array-back":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/array-back/download/array-back-3.1.0.tgz","integrity":"sha1-uIWdelCIccmnss9C+ZQo9l6Wv7A=","dev":true}}},"ansi-escapes":{"version":"3.2.0","resolved":"http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz","integrity":"sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s="},"ansi-fragments":{"version":"0.2.1","resolved":"https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz","integrity":"sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==","requires":{"colorette":"^1.0.7","slice-ansi":"^2.0.0","strip-ansi":"^5.0.0"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz","integrity":"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="},"strip-ansi":{"version":"5.2.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz","integrity":"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==","requires":{"ansi-regex":"^4.1.0"}}}},"ansi-gray":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/ansi-gray/download/ansi-gray-0.1.1.tgz","integrity":"sha1-KWLPVOyXksSFEKPetSRDaGHvclE=","requires":{"ansi-wrap":"0.1.0"}},"ansi-red":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/ansi-red/download/ansi-red-0.1.1.tgz","integrity":"sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=","requires":{"ansi-wrap":"0.1.0"}},"ansi-regex":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz","integrity":"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="},"ansi-styles":{"version":"2.2.1","resolved":"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz","integrity":"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="},"ansi-wrap":{"version":"0.1.0","resolved":"http://registry.npm.taobao.org/ansi-wrap/download/ansi-wrap-0.1.0.tgz","integrity":"sha1-qCJQ3bABXponyoLoLqYDu/pF768="},"anymatch":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz","integrity":"sha1-vLJLTzeTTZqnrBe0ra+J58du8us=","requires":{"micromatch":"^3.1.4","normalize-path":"^2.1.1"},"dependencies":{"arr-diff":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz","integrity":"sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="},"array-unique":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"braces":{"version":"2.3.2","resolved":"http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz","integrity":"sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"expand-brackets":{"version":"2.1.4","resolved":"http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="}}},"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"},"dependencies":{"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"extglob":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz","integrity":"sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fill-range":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="},"micromatch":{"version":"3.1.10","resolved":"http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz","integrity":"sha1-cIWbyVyYQJUvNZoGij/En57PrCM=","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}}}},"are-we-there-yet":{"version":"1.1.5","resolved":"http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz","integrity":"sha1-SzXClE8GKov82mZBB2A1D+nd/CE=","requires":{"delegates":"^1.0.0","readable-stream":"^2.0.6"}},"argparse":{"version":"1.0.10","resolved":"http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz","integrity":"sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=","requires":{"sprintf-js":"~1.0.2"}},"aria-query":{"version":"3.0.0","resolved":"https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz","integrity":"sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=","dev":true,"requires":{"ast-types-flow":"0.0.7","commander":"^2.11.0"}},"arr-diff":{"version":"4.0.0","resolved":"https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz","integrity":"sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="},"arr-flatten":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz","integrity":"sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="},"arr-union":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/arr-union/download/arr-union-2.1.0.tgz","integrity":"sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0="},"array-back":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/array-back/download/array-back-2.0.0.tgz","integrity":"sha1-aHdHHVHsycm/phNvtsfV/ml0gCI=","dev":true,"requires":{"typical":"^2.6.1"}},"array-filter":{"version":"0.0.1","resolved":"http://registry.npm.taobao.org/array-filter/download/array-filter-0.0.1.tgz","integrity":"sha1-fajPLiZijtcygDWB/SH2fKzS7uw="},"array-includes":{"version":"3.0.3","resolved":"https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz","integrity":"sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=","dev":true,"requires":{"define-properties":"^1.1.2","es-abstract":"^1.7.0"}},"array-map":{"version":"0.0.0","resolved":"http://registry.npm.taobao.org/array-map/download/array-map-0.0.0.tgz","integrity":"sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI="},"array-reduce":{"version":"0.0.0","resolved":"http://registry.npm.taobao.org/array-reduce/download/array-reduce-0.0.0.tgz","integrity":"sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys="},"array-slice":{"version":"0.2.3","resolved":"http://registry.npm.taobao.org/array-slice/download/array-slice-0.2.3.tgz","integrity":"sha1-3Tz7gO15c6dRF82sabC5nshhhvU="},"array-unique":{"version":"0.2.1","resolved":"http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz","integrity":"sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=","dev":true},"art":{"version":"0.10.3","resolved":"http://registry.npm.taobao.org/art/download/art-0.10.3.tgz","integrity":"sha1-sB2EqWjMzmII31WnM4OMlsrurqI="},"asap":{"version":"2.0.6","resolved":"http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz","integrity":"sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="},"asn1":{"version":"0.2.4","resolved":"http://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz","integrity":"sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=","dev":true,"requires":{"safer-buffer":"~2.1.0"}},"assert-plus":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz","integrity":"sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=","dev":true},"assign-symbols":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz","integrity":"sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="},"ast-types-flow":{"version":"0.0.7","resolved":"https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz","integrity":"sha1-9wtzXGvKGlycItmCw+Oef+ujva0=","dev":true},"astral-regex":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz","integrity":"sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k="},"async":{"version":"2.6.2","resolved":"http://registry.npm.taobao.org/async/download/async-2.6.2.tgz","integrity":"sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=","requires":{"lodash":"^4.17.11"}},"async-limiter":{"version":"1.0.1","resolved":"https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz","integrity":"sha1-3TeelPDbgxCwgpH51kwyCXZmF/0="},"asynckit":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz","integrity":"sha1-x57Zf380y48robyXkLzDZkdLS3k=","dev":true},"atob":{"version":"2.1.2","resolved":"http://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz","integrity":"sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="},"aws-sign2":{"version":"0.7.0","resolved":"http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz","integrity":"sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=","dev":true},"aws4":{"version":"1.8.0","resolved":"http://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz","integrity":"sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=","dev":true},"axobject-query":{"version":"2.0.2","resolved":"http://registry.npm.taobao.org/axobject-query/download/axobject-query-2.0.2.tgz","integrity":"sha1-6hh6vluQArN3+SXYv30cVhrfOPk=","dev":true,"requires":{"ast-types-flow":"0.0.7"}},"babel-code-frame":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz","integrity":"sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=","requires":{"chalk":"^1.1.3","esutils":"^2.0.2","js-tokens":"^3.0.2"},"dependencies":{"js-tokens":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz","integrity":"sha1-mGbfOVECEw449/mWvOtlRDIJwls="}}},"babel-core":{"version":"6.26.3","resolved":"http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz","integrity":"sha1-suLwnjQtDwyI4vAuBneUEl51wgc=","dev":true,"requires":{"babel-code-frame":"^6.26.0","babel-generator":"^6.26.0","babel-helpers":"^6.24.1","babel-messages":"^6.23.0","babel-register":"^6.26.0","babel-runtime":"^6.26.0","babel-template":"^6.26.0","babel-traverse":"^6.26.0","babel-types":"^6.26.0","babylon":"^6.18.0","convert-source-map":"^1.5.1","debug":"^2.6.9","json5":"^0.5.1","lodash":"^4.17.4","minimatch":"^3.0.4","path-is-absolute":"^1.0.1","private":"^0.1.8","slash":"^1.0.0","source-map":"^0.5.7"}},"babel-eslint":{"version":"10.0.1","resolved":"http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.0.1.tgz","integrity":"sha1-kZaB3AmWFM19MdRciQhpUJKh+u0=","dev":true,"requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.0.0","@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","eslint-scope":"3.7.1","eslint-visitor-keys":"^1.0.0"}},"babel-generator":{"version":"6.26.1","resolved":"http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz","integrity":"sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=","dev":true,"requires":{"babel-messages":"^6.23.0","babel-runtime":"^6.26.0","babel-types":"^6.26.0","detect-indent":"^4.0.0","jsesc":"^1.3.0","lodash":"^4.17.4","source-map":"^0.5.7","trim-right":"^1.0.1"}},"babel-helper-builder-binary-assignment-operator-visitor":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz","integrity":"sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=","dev":true,"requires":{"babel-helper-explode-assignable-expression":"^6.24.1","babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-helper-builder-react-jsx":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.26.0.tgz","integrity":"sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=","dev":true,"requires":{"babel-runtime":"^6.26.0","babel-types":"^6.26.0","esutils":"^2.0.2"}},"babel-helper-call-delegate":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz","integrity":"sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=","dev":true,"requires":{"babel-helper-hoist-variables":"^6.24.1","babel-runtime":"^6.22.0","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helper-define-map":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz","integrity":"sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=","dev":true,"requires":{"babel-helper-function-name":"^6.24.1","babel-runtime":"^6.26.0","babel-types":"^6.26.0","lodash":"^4.17.4"}},"babel-helper-explode-assignable-expression":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz","integrity":"sha1-8luCz33BBDPFX3BZLVdGQArCLKo=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helper-function-name":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz","integrity":"sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=","requires":{"babel-helper-get-function-arity":"^6.24.1","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helper-get-function-arity":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz","integrity":"sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=","requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-helper-hoist-variables":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz","integrity":"sha1-HssnaJydJVE+rbyZFKc/VAi+enY=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-helper-optimise-call-expression":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz","integrity":"sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-helper-regex":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz","integrity":"sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=","dev":true,"requires":{"babel-runtime":"^6.26.0","babel-types":"^6.26.0","lodash":"^4.17.4"}},"babel-helper-remap-async-to-generator":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz","integrity":"sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=","requires":{"babel-helper-function-name":"^6.24.1","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helper-replace-supers":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz","integrity":"sha1-v22/5Dk40XNpohPKiov3S2qQqxo=","dev":true,"requires":{"babel-helper-optimise-call-expression":"^6.24.1","babel-messages":"^6.23.0","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helpers":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz","integrity":"sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-template":"^6.24.1"}},"babel-messages":{"version":"6.23.0","resolved":"http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz","integrity":"sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=","requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-check-es2015-constants":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz","integrity":"sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-external-helpers":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-external-helpers/download/babel-plugin-external-helpers-6.22.0.tgz","integrity":"sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-react-transform":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/babel-plugin-react-transform/download/babel-plugin-react-transform-3.0.0.tgz","integrity":"sha1-QC8lE3t7tm6bVOrXVVffvH7KqnQ=","dev":true,"requires":{"lodash":"^4.6.1"}},"babel-plugin-syntax-async-functions":{"version":"6.13.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz","integrity":"sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU="},"babel-plugin-syntax-class-properties":{"version":"6.13.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz","integrity":"sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=","dev":true},"babel-plugin-syntax-dynamic-import":{"version":"6.18.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz","integrity":"sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=","dev":true},"babel-plugin-syntax-exponentiation-operator":{"version":"6.13.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz","integrity":"sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=","dev":true},"babel-plugin-syntax-flow":{"version":"6.18.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-flow/download/babel-plugin-syntax-flow-6.18.0.tgz","integrity":"sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=","dev":true},"babel-plugin-syntax-jsx":{"version":"6.18.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz","integrity":"sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=","dev":true},"babel-plugin-syntax-object-rest-spread":{"version":"6.13.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz","integrity":"sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=","dev":true},"babel-plugin-syntax-trailing-function-commas":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz","integrity":"sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=","dev":true},"babel-plugin-transform-async-to-generator":{"version":"6.24.1","resolved":"https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz","integrity":"sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=","requires":{"babel-helper-remap-async-to-generator":"^6.24.1","babel-plugin-syntax-async-functions":"^6.8.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-class-properties":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.24.1.tgz","integrity":"sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=","dev":true,"requires":{"babel-helper-function-name":"^6.24.1","babel-plugin-syntax-class-properties":"^6.8.0","babel-runtime":"^6.22.0","babel-template":"^6.24.1"}},"babel-plugin-transform-es2015-arrow-functions":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz","integrity":"sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-block-scoped-functions":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz","integrity":"sha1-u8UbSflk1wy42OC5ToICRs46YUE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-block-scoping":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz","integrity":"sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=","dev":true,"requires":{"babel-runtime":"^6.26.0","babel-template":"^6.26.0","babel-traverse":"^6.26.0","babel-types":"^6.26.0","lodash":"^4.17.4"}},"babel-plugin-transform-es2015-classes":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz","integrity":"sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=","dev":true,"requires":{"babel-helper-define-map":"^6.24.1","babel-helper-function-name":"^6.24.1","babel-helper-optimise-call-expression":"^6.24.1","babel-helper-replace-supers":"^6.24.1","babel-messages":"^6.23.0","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-computed-properties":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz","integrity":"sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-template":"^6.24.1"}},"babel-plugin-transform-es2015-destructuring":{"version":"6.23.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz","integrity":"sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-for-of":{"version":"6.23.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz","integrity":"sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-function-name":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz","integrity":"sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=","dev":true,"requires":{"babel-helper-function-name":"^6.24.1","babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-literals":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz","integrity":"sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-modules-commonjs":{"version":"6.26.2","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz","integrity":"sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=","dev":true,"requires":{"babel-plugin-transform-strict-mode":"^6.24.1","babel-runtime":"^6.26.0","babel-template":"^6.26.0","babel-types":"^6.26.0"}},"babel-plugin-transform-es2015-object-super":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz","integrity":"sha1-JM72muIcuDp/hgPa0CH1cusnj40=","dev":true,"requires":{"babel-helper-replace-supers":"^6.24.1","babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-parameters":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz","integrity":"sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=","dev":true,"requires":{"babel-helper-call-delegate":"^6.24.1","babel-helper-get-function-arity":"^6.24.1","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-shorthand-properties":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz","integrity":"sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-spread":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz","integrity":"sha1-1taKmfia7cRTbIGlQujdnxdG+NE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-sticky-regex":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz","integrity":"sha1-AMHNsaynERLN8M9hJsLta0V8zbw=","dev":true,"requires":{"babel-helper-regex":"^6.24.1","babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-template-literals":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz","integrity":"sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-unicode-regex":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz","integrity":"sha1-04sS9C6nMj9yk4fxinxa4frrNek=","dev":true,"requires":{"babel-helper-regex":"^6.24.1","babel-runtime":"^6.22.0","regexpu-core":"^2.0.0"}},"babel-plugin-transform-es3-member-expression-literals":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es3-member-expression-literals/download/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz","integrity":"sha1-cz00RPPsxBvvjtGmpOCWV7iWnrs=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es3-property-literals":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es3-property-literals/download/babel-plugin-transform-es3-property-literals-6.22.0.tgz","integrity":"sha1-sgeNWELiKr9A9z6M3pzTcRq9V1g=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-exponentiation-operator":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz","integrity":"sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=","dev":true,"requires":{"babel-helper-builder-binary-assignment-operator-visitor":"^6.24.1","babel-plugin-syntax-exponentiation-operator":"^6.8.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-flow-strip-types":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-flow-strip-types/download/babel-plugin-transform-flow-strip-types-6.22.0.tgz","integrity":"sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=","dev":true,"requires":{"babel-plugin-syntax-flow":"^6.18.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-object-assign":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-object-assign/download/babel-plugin-transform-object-assign-6.22.0.tgz","integrity":"sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-object-rest-spread":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz","integrity":"sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=","dev":true,"requires":{"babel-plugin-syntax-object-rest-spread":"^6.8.0","babel-runtime":"^6.26.0"}},"babel-plugin-transform-react-display-name":{"version":"6.25.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-react-display-name/download/babel-plugin-transform-react-display-name-6.25.0.tgz","integrity":"sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-react-jsx":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.24.1.tgz","integrity":"sha1-hAoCjn30YN/DotKfDA2R9jduZqM=","dev":true,"requires":{"babel-helper-builder-react-jsx":"^6.24.1","babel-plugin-syntax-jsx":"^6.8.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-react-jsx-source":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-react-jsx-source/download/babel-plugin-transform-react-jsx-source-6.22.0.tgz","integrity":"sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=","dev":true,"requires":{"babel-plugin-syntax-jsx":"^6.8.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-regenerator":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz","integrity":"sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=","dev":true,"requires":{"regenerator-transform":"^0.10.0"},"dependencies":{"regenerator-transform":{"version":"0.10.1","resolved":"http://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.10.1.tgz","integrity":"sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=","dev":true,"requires":{"babel-runtime":"^6.18.0","babel-types":"^6.19.0","private":"^0.1.6"}}}},"babel-plugin-transform-remove-console":{"version":"6.9.4","resolved":"https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz","integrity":"sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=","dev":true},"babel-plugin-transform-strict-mode":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz","integrity":"sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-preset-es2015-node":{"version":"6.1.1","resolved":"http://registry.npm.taobao.org/babel-preset-es2015-node/download/babel-preset-es2015-node-6.1.1.tgz","integrity":"sha1-YLIxVwJLDP6/OmNVTLBe4DW05V8=","dev":true,"requires":{"babel-plugin-transform-es2015-destructuring":"6.x","babel-plugin-transform-es2015-function-name":"6.x","babel-plugin-transform-es2015-modules-commonjs":"6.x","babel-plugin-transform-es2015-parameters":"6.x","babel-plugin-transform-es2015-shorthand-properties":"6.x","babel-plugin-transform-es2015-spread":"6.x","babel-plugin-transform-es2015-sticky-regex":"6.x","babel-plugin-transform-es2015-unicode-regex":"6.x","semver":"5.x"}},"babel-preset-fbjs":{"version":"2.3.0","resolved":"http://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-2.3.0.tgz","integrity":"sha1-kv+BMHwYuSaJURT5gorhZ0wJf4A=","dev":true,"requires":{"babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-syntax-class-properties":"^6.8.0","babel-plugin-syntax-flow":"^6.8.0","babel-plugin-syntax-jsx":"^6.8.0","babel-plugin-syntax-object-rest-spread":"^6.8.0","babel-plugin-syntax-trailing-function-commas":"^6.8.0","babel-plugin-transform-class-properties":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoped-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.8.0","babel-plugin-transform-es2015-classes":"^6.8.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.8.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-function-name":"^6.8.0","babel-plugin-transform-es2015-literals":"^6.8.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-object-super":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.8.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-spread":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-flow-strip-types":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-react-display-name":"^6.8.0","babel-plugin-transform-react-jsx":"^6.8.0"}},"babel-preset-react-native":{"version":"4.0.1","resolved":"http://registry.npm.taobao.org/babel-preset-react-native/download/babel-preset-react-native-4.0.1.tgz","integrity":"sha1-FP8HvbbI35QICCwMGLLOjjOS52o=","dev":true,"requires":{"babel-plugin-check-es2015-constants":"^6.5.0","babel-plugin-react-transform":"^3.0.0","babel-plugin-syntax-async-functions":"^6.5.0","babel-plugin-syntax-class-properties":"^6.5.0","babel-plugin-syntax-dynamic-import":"^6.18.0","babel-plugin-syntax-flow":"^6.5.0","babel-plugin-syntax-jsx":"^6.5.0","babel-plugin-syntax-trailing-function-commas":"^6.5.0","babel-plugin-transform-class-properties":"^6.5.0","babel-plugin-transform-es2015-arrow-functions":"^6.5.0","babel-plugin-transform-es2015-block-scoping":"^6.5.0","babel-plugin-transform-es2015-classes":"^6.5.0","babel-plugin-transform-es2015-computed-properties":"^6.5.0","babel-plugin-transform-es2015-destructuring":"^6.5.0","babel-plugin-transform-es2015-for-of":"^6.5.0","babel-plugin-transform-es2015-function-name":"^6.5.0","babel-plugin-transform-es2015-literals":"^6.5.0","babel-plugin-transform-es2015-modules-commonjs":"^6.5.0","babel-plugin-transform-es2015-parameters":"^6.5.0","babel-plugin-transform-es2015-shorthand-properties":"^6.5.0","babel-plugin-transform-es2015-spread":"^6.5.0","babel-plugin-transform-es2015-template-literals":"^6.5.0","babel-plugin-transform-exponentiation-operator":"^6.5.0","babel-plugin-transform-flow-strip-types":"^6.5.0","babel-plugin-transform-object-assign":"^6.5.0","babel-plugin-transform-object-rest-spread":"^6.5.0","babel-plugin-transform-react-display-name":"^6.5.0","babel-plugin-transform-react-jsx":"^6.5.0","babel-plugin-transform-react-jsx-source":"^6.5.0","babel-plugin-transform-regenerator":"^6.5.0","babel-template":"^6.24.1","react-transform-hmr":"^1.0.4"}},"babel-register":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz","integrity":"sha1-btAhFz4vy0htestFxgCahW9kcHE=","dev":true,"requires":{"babel-core":"^6.26.0","babel-runtime":"^6.26.0","core-js":"^2.5.0","home-or-tmp":"^2.0.0","lodash":"^4.17.4","mkdirp":"^0.5.1","source-map-support":"^0.4.15"},"dependencies":{"core-js":{"version":"2.6.5","resolved":"http://registry.npm.taobao.org/core-js/download/core-js-2.6.5.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.5.tgz","integrity":"sha1-RLyNJJ5/sv9dAOA0Gn/7lPv2eJU=","dev":true}}},"babel-runtime":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz","integrity":"sha1-llxwWGaOgrVde/4E/yM3vItWR/4=","requires":{"core-js":"^2.4.0","regenerator-runtime":"^0.11.0"},"dependencies":{"core-js":{"version":"2.6.5","resolved":"http://registry.npm.taobao.org/core-js/download/core-js-2.6.5.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.5.tgz","integrity":"sha1-RLyNJJ5/sv9dAOA0Gn/7lPv2eJU="}}},"babel-template":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz","integrity":"sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=","requires":{"babel-runtime":"^6.26.0","babel-traverse":"^6.26.0","babel-types":"^6.26.0","babylon":"^6.18.0","lodash":"^4.17.4"}},"babel-traverse":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz","integrity":"sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=","requires":{"babel-code-frame":"^6.26.0","babel-messages":"^6.23.0","babel-runtime":"^6.26.0","babel-types":"^6.26.0","babylon":"^6.18.0","debug":"^2.6.8","globals":"^9.18.0","invariant":"^2.2.2","lodash":"^4.17.4"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}}}},"babel-types":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz","integrity":"sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=","requires":{"babel-runtime":"^6.26.0","esutils":"^2.0.2","lodash":"^4.17.4","to-fast-properties":"^1.0.3"}},"babylon":{"version":"6.18.0","resolved":"http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz","integrity":"sha1-ry87iPpvXB5MY00aD46sT1WzleM="},"balanced-match":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz","integrity":"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="},"base":{"version":"0.11.2","resolved":"http://registry.npm.taobao.org/base/download/base-0.11.2.tgz","integrity":"sha1-e95c7RRbbVUakNuH+DxVi060io8=","requires":{"cache-base":"^1.0.1","class-utils":"^0.3.5","component-emitter":"^1.2.1","define-property":"^1.0.0","isobject":"^3.0.1","mixin-deep":"^1.2.0","pascalcase":"^0.1.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="}}},"base64-js":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz","integrity":"sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM="},"basic-auth":{"version":"2.0.1","resolved":"https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz","integrity":"sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==","requires":{"safe-buffer":"5.1.2"}},"bcrypt-pbkdf":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz","integrity":"sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=","dev":true,"requires":{"tweetnacl":"^0.14.3"}},"big-integer":{"version":"1.6.47","resolved":"https://registry.npmjs.org/big-integer/-/big-integer-1.6.47.tgz","integrity":"sha512-9t9f7X3as2XGX8b52GqG6ox0GvIdM86LyIXASJnDCFhYNgt+A+MByQZ3W2PyMRZjEvG5f8TEbSPfEotVuMJnQg=="},"bindings":{"version":"1.5.0","resolved":"https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz","integrity":"sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=","optional":true,"requires":{"file-uri-to-path":"1.0.0"}},"bl":{"version":"1.2.2","resolved":"http://registry.npm.taobao.org/bl/download/bl-1.2.2.tgz","integrity":"sha1-oWCRFxcQPAdBDO9j71Gzl8Alr5w=","dev":true,"requires":{"readable-stream":"^2.3.5","safe-buffer":"^5.1.1"}},"bluebird":{"version":"3.7.2","resolved":"https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz","integrity":"sha1-nyKcFb4nJFT/qXOs4NvueaGww28="},"boxen":{"version":"0.3.1","resolved":"http://registry.npm.taobao.org/boxen/download/boxen-0.3.1.tgz","integrity":"sha1-p9iYJDrmIvertrtgTXQKdsalRhs=","requires":{"chalk":"^1.1.1","filled-array":"^1.0.0","object-assign":"^4.0.1","repeating":"^2.0.0","string-width":"^1.0.1","widest-line":"^1.0.0"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}}}},"bplist-creator":{"version":"0.0.8","resolved":"https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz","integrity":"sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==","requires":{"stream-buffers":"~2.2.0"}},"bplist-parser":{"version":"0.2.0","resolved":"https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz","integrity":"sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==","requires":{"big-integer":"^1.6.44"}},"brace-expansion":{"version":"1.1.11","resolved":"http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz","integrity":"sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=","requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"braces":{"version":"1.8.5","resolved":"http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz","integrity":"sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=","dev":true,"requires":{"expand-range":"^1.8.1","preserve":"^0.2.0","repeat-element":"^1.1.2"}},"bser":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/bser/download/bser-2.0.0.tgz","integrity":"sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=","requires":{"node-int64":"^0.4.0"}},"buffer":{"version":"5.2.1","resolved":"http://registry.npm.taobao.org/buffer/download/buffer-5.2.1.tgz","integrity":"sha1-3Vf6DxCaxZxgJHkETcp7iz0LcdY=","requires":{"base64-js":"^1.0.2","ieee754":"^1.1.4"}},"buffer-alloc":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz","integrity":"sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=","dev":true,"requires":{"buffer-alloc-unsafe":"^1.1.0","buffer-fill":"^1.0.0"}},"buffer-alloc-unsafe":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz","integrity":"sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=","dev":true},"buffer-crc32":{"version":"0.2.13","resolved":"http://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz","integrity":"sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="},"buffer-fill":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz","integrity":"sha1-+PeLdniYiO858gXNY39o5wISKyw=","dev":true},"buffer-from":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz","integrity":"sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8="},"bytes":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz","integrity":"sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="},"cache-base":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz","integrity":"sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=","requires":{"collection-visit":"^1.0.0","component-emitter":"^1.2.1","get-value":"^2.0.6","has-value":"^1.0.0","isobject":"^3.0.1","set-value":"^2.0.0","to-object-path":"^0.3.0","union-value":"^1.0.0","unset-value":"^1.0.0"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"cache-point":{"version":"0.4.1","resolved":"http://registry.npm.taobao.org/cache-point/download/cache-point-0.4.1.tgz","integrity":"sha1-zIycvZnZDXsMZpEM0z13oaq4hA4=","dev":true,"requires":{"array-back":"^2.0.0","fs-then-native":"^2.0.0","mkdirp2":"^1.0.3"}},"caller-callsite":{"version":"2.0.0","resolved":"https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz","integrity":"sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=","requires":{"callsites":"^2.0.0"},"dependencies":{"callsites":{"version":"2.0.0","resolved":"https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz","integrity":"sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="}}},"caller-path":{"version":"2.0.0","resolved":"https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz","integrity":"sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=","requires":{"caller-callsite":"^2.0.0"}},"callsites":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz","integrity":"sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M="},"camelcase":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz","integrity":"sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="},"capture-exit":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/capture-exit/download/capture-exit-1.2.0.tgz","integrity":"sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=","dev":true,"requires":{"rsvp":"^3.3.3"}},"capture-stack-trace":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/capture-stack-trace/download/capture-stack-trace-1.0.1.tgz","integrity":"sha1-psC74fOPOqC5Ijjstv9Cw0TUE10="},"caseless":{"version":"0.12.0","resolved":"http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz","integrity":"sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=","dev":true},"catharsis":{"version":"0.8.11","resolved":"https://registry.npm.taobao.org/catharsis/download/catharsis-0.8.11.tgz","integrity":"sha1-0Os9K4K32no84u+xp7AL7MZkNGg=","requires":{"lodash":"^4.17.14"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&sync_timestamp=1571657272199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz","integrity":"sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="}}},"chalk":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz","integrity":"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=","requires":{"ansi-styles":"^2.2.1","escape-string-regexp":"^1.0.2","has-ansi":"^2.0.0","strip-ansi":"^3.0.0","supports-color":"^2.0.0"}},"chardet":{"version":"0.4.2","resolved":"http://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz","integrity":"sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="},"ci-info":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz","integrity":"sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="},"clamp":{"version":"1.0.1","resolved":"https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz","integrity":"sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ="},"class-utils":{"version":"0.3.6","resolved":"http://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz","integrity":"sha1-+TNprouafOAv1B+q0MqDAzGQxGM=","requires":{"arr-union":"^3.1.0","define-property":"^0.2.5","isobject":"^3.0.0","static-extend":"^0.1.1"},"dependencies":{"arr-union":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz","integrity":"sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="},"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"classnames":{"version":"2.2.6","resolved":"http://registry.npm.taobao.org/classnames/download/classnames-2.2.6.tgz","integrity":"sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4="},"cli-cursor":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz","integrity":"sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=","requires":{"restore-cursor":"^2.0.0"}},"cli-spinners":{"version":"2.2.0","resolved":"https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz","integrity":"sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ=="},"cli-width":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz","integrity":"sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="},"cliui":{"version":"3.2.0","resolved":"http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz","integrity":"sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=","requires":{"string-width":"^1.0.1","strip-ansi":"^3.0.1","wrap-ansi":"^2.0.0"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}}}},"clone":{"version":"1.0.4","resolved":"https://registry.npmjs.org/clone/-/clone-1.0.4.tgz","integrity":"sha1-2jCcwmPfFZlMaIypAheco8fNfH4="},"code-point-at":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz","integrity":"sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="},"collect-all":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/collect-all/download/collect-all-1.0.3.tgz","integrity":"sha1-GrzCBEi1ihRHSH/PNBMOlRKwrPg=","dev":true,"requires":{"stream-connect":"^1.0.2","stream-via":"^1.0.4"}},"collection-visit":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz","integrity":"sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=","requires":{"map-visit":"^1.0.0","object-visit":"^1.0.0"}},"color-convert":{"version":"1.9.3","resolved":"http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz","integrity":"sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=","requires":{"color-name":"1.1.3"}},"color-name":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz","integrity":"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="},"color-support":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/color-support/download/color-support-1.1.3.tgz","integrity":"sha1-k4NDeaHMmgxh+C9S8NBDIiUb1aI="},"colorette":{"version":"1.1.0","resolved":"https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz","integrity":"sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg=="},"colors":{"version":"0.6.2","resolved":"https://registry.npmjs.org/colors/-/colors-0.6.2.tgz","integrity":"sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=","dev":true},"combined-stream":{"version":"1.0.7","resolved":"http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.7.tgz","integrity":"sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=","dev":true,"requires":{"delayed-stream":"~1.0.0"}},"command-exists":{"version":"1.2.9","resolved":"http://registry.npm.pt.mi.com/command-exists/download/command-exists-1.2.9.tgz","integrity":"sha1-xQclrzgIyKsCYP1gsB+/oluVT2k="},"command-line-args":{"version":"5.1.1","resolved":"http://registry.npm.taobao.org/command-line-args/download/command-line-args-5.1.1.tgz","integrity":"sha1-iOeT5bs86zB1SoaGPwQBrJL9Npo=","dev":true,"requires":{"array-back":"^3.0.1","find-replace":"^3.0.0","lodash.camelcase":"^4.3.0","typical":"^4.0.0"},"dependencies":{"array-back":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/array-back/download/array-back-3.1.0.tgz","integrity":"sha1-uIWdelCIccmnss9C+ZQo9l6Wv7A=","dev":true},"typical":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/typical/download/typical-4.0.0.tgz","integrity":"sha1-y+r/O5164eK7+vWk5vEezP3pT8Q=","dev":true}}},"command-line-tool":{"version":"0.8.0","resolved":"http://registry.npm.taobao.org/command-line-tool/download/command-line-tool-0.8.0.tgz","integrity":"sha1-sAKQ7x38EcxzHdH0OpLPpfIecVs=","dev":true,"requires":{"ansi-escape-sequences":"^4.0.0","array-back":"^2.0.0","command-line-args":"^5.0.0","command-line-usage":"^4.1.0","typical":"^2.6.1"}},"command-line-usage":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/command-line-usage/download/command-line-usage-4.1.0.tgz","integrity":"sha1-prOy4nA7Tc+L1GrhnhGKmlKXKII=","dev":true,"requires":{"ansi-escape-sequences":"^4.0.0","array-back":"^2.0.0","table-layout":"^0.4.2","typical":"^2.6.1"}},"commander":{"version":"2.20.0","resolved":"https://registry.npm.taobao.org/commander/download/commander-2.20.0.tgz?cache=0&sync_timestamp=1564195111889&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.0.tgz","integrity":"sha1-1YuytcHuj4ew00ACfp6U4iLFpCI="},"common-sequence":{"version":"1.0.2","resolved":"https://registry.npmjs.org/common-sequence/-/common-sequence-1.0.2.tgz","integrity":"sha1-MOB/P49vf5s97oVPILLTnu4Ibeg=","dev":true},"commondir":{"version":"1.0.1","resolved":"https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz","integrity":"sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="},"compare-versions":{"version":"3.6.0","resolved":"https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz","integrity":"sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==","dev":true},"component-classes":{"version":"1.2.6","resolved":"http://registry.npm.taobao.org/component-classes/download/component-classes-1.2.6.tgz","integrity":"sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=","requires":{"component-indexof":"0.0.3"}},"component-emitter":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz","integrity":"sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A="},"component-indexof":{"version":"0.0.3","resolved":"http://registry.npm.taobao.org/component-indexof/download/component-indexof-0.0.3.tgz","integrity":"sha1-EdCRMSI5648yyPJa6csAL/6NPCQ="},"compressible":{"version":"2.0.17","resolved":"https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz","integrity":"sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==","requires":{"mime-db":">= 1.40.0 < 2"},"dependencies":{"mime-db":{"version":"1.42.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz","integrity":"sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="}}},"compressing":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/compressing/download/compressing-1.3.1.tgz","integrity":"sha1-nxGpTWSIFurOSm2XQS+xf8bidn8=","dev":true,"requires":{"flushwritable":"^1.0.0","get-ready":"^1.0.0","mkdirp":"^0.5.1","pump":"^3.0.0","streamifier":"^0.1.1","tar-stream":"^1.5.2","yauzl":"^2.7.0","yazl":"^2.4.2"}},"compression":{"version":"1.7.4","resolved":"https://registry.npmjs.org/compression/-/compression-1.7.4.tgz","integrity":"sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==","requires":{"accepts":"~1.3.5","bytes":"3.0.0","compressible":"~2.0.16","debug":"2.6.9","on-headers":"~1.0.2","safe-buffer":"5.1.2","vary":"~1.1.2"}},"concat-map":{"version":"0.0.1","resolved":"http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz","integrity":"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="},"concat-stream":{"version":"1.6.2","resolved":"http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz","integrity":"sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=","requires":{"buffer-from":"^1.0.0","inherits":"^2.0.3","readable-stream":"^2.2.2","typedarray":"^0.0.6"}},"config-master":{"version":"3.1.0","resolved":"https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz","integrity":"sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=","dev":true,"requires":{"walk-back":"^2.0.1"},"dependencies":{"walk-back":{"version":"2.0.1","resolved":"https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz","integrity":"sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=","dev":true}}},"configstore":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/configstore/download/configstore-2.1.0.tgz","integrity":"sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE=","requires":{"dot-prop":"^3.0.0","graceful-fs":"^4.1.2","mkdirp":"^0.5.0","object-assign":"^4.0.1","os-tmpdir":"^1.0.0","osenv":"^0.1.0","uuid":"^2.0.1","write-file-atomic":"^1.1.2","xdg-basedir":"^2.0.0"},"dependencies":{"uuid":{"version":"2.0.3","resolved":"http://registry.npm.taobao.org/uuid/download/uuid-2.0.3.tgz","integrity":"sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="}}},"connect":{"version":"3.6.6","resolved":"http://registry.npm.taobao.org/connect/download/connect-3.6.6.tgz","integrity":"sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=","requires":{"debug":"2.6.9","finalhandler":"1.1.0","parseurl":"~1.3.2","utils-merge":"1.0.1"}},"contains-path":{"version":"0.1.0","resolved":"https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz","integrity":"sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=","dev":true},"convert-source-map":{"version":"1.6.0","resolved":"http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz","integrity":"sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=","requires":{"safe-buffer":"~5.1.1"}},"copy-descriptor":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz","integrity":"sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="},"core-js":{"version":"1.2.7","resolved":"http://registry.npm.taobao.org/core-js/download/core-js-1.2.7.tgz","integrity":"sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="},"core-util-is":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz","integrity":"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="},"cosmiconfig":{"version":"5.2.1","resolved":"https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz","integrity":"sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==","requires":{"import-fresh":"^2.0.0","is-directory":"^0.3.1","js-yaml":"^3.13.1","parse-json":"^4.0.0"},"dependencies":{"import-fresh":{"version":"2.0.0","resolved":"https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz","integrity":"sha1-2BNVwVYS04bGH53dOSLUMEgipUY=","requires":{"caller-path":"^2.0.0","resolve-from":"^3.0.0"}},"parse-json":{"version":"4.0.0","resolved":"https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz","integrity":"sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=","requires":{"error-ex":"^1.3.1","json-parse-better-errors":"^1.0.1"}},"resolve-from":{"version":"3.0.0","resolved":"https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz","integrity":"sha1-six699nWiBvItuZTM17rywoYh0g="}}},"create-error-class":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/create-error-class/download/create-error-class-3.0.2.tgz","integrity":"sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=","requires":{"capture-stack-trace":"^1.0.0"}},"create-react-class":{"version":"15.6.3","resolved":"http://registry.npm.taobao.org/create-react-class/download/create-react-class-15.6.3.tgz","integrity":"sha1-LXMjf7P5cK5uvgEanmb0bbyoADY=","requires":{"fbjs":"^0.8.9","loose-envify":"^1.3.1","object-assign":"^4.1.1"}},"create-react-context":{"version":"0.2.2","resolved":"http://registry.npm.taobao.org/create-react-context/download/create-react-context-0.2.2.tgz","integrity":"sha1-mDZUL5qqIoaM19Sm+CZn3zgBnco=","requires":{"fbjs":"^0.8.0","gud":"^1.0.0"}},"cross-spawn":{"version":"5.1.0","resolved":"http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz","integrity":"sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=","requires":{"lru-cache":"^4.0.1","shebang-command":"^1.2.0","which":"^1.2.9"}},"crypto":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/crypto/download/crypto-1.0.1.tgz","integrity":"sha1-KvG3ytgXXSTIobB3glV5SiGAMDc=","dev":true},"css-animation":{"version":"1.5.0","resolved":"http://registry.npm.taobao.org/css-animation/download/css-animation-1.5.0.tgz","integrity":"sha1-yWuQl6XvdKe+hIC0XMROTsbKK/U=","requires":{"babel-runtime":"6.x","component-classes":"^1.2.5"}},"csstype":{"version":"2.6.9","resolved":"https://registry.npm.taobao.org/csstype/download/csstype-2.6.9.tgz?cache=0&sync_timestamp=1581689110987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.9.tgz","integrity":"sha1-BRQdDNVXpWuIkTlMGRHEDIqY0Jg="},"cycle":{"version":"1.0.3","resolved":"https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz","integrity":"sha1-IegLK+hYD5i0aPN5QwZisEbDStI=","dev":true},"d3-array":{"version":"1.2.4","resolved":"https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz","integrity":"sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="},"d3-collection":{"version":"1.0.7","resolved":"https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz","integrity":"sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A=="},"d3-color":{"version":"1.2.3","resolved":"http://registry.npm.taobao.org/d3-color/download/d3-color-1.2.3.tgz","integrity":"sha1-bGe7KvbfPMjXnvzE06PoPijIBI8="},"d3-ease":{"version":"1.0.5","resolved":"https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.5.tgz","integrity":"sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ=="},"d3-format":{"version":"1.4.1","resolved":"https://registry.npmjs.org/d3-format/-/d3-format-1.4.1.tgz","integrity":"sha512-TUswGe6hfguUX1CtKxyG2nymO+1lyThbkS1ifLX0Sr+dOQtAD5gkrffpHnx+yHNKUZ0Bmg5T4AjUQwugPDrm0g=="},"d3-interpolate":{"version":"1.1.2","resolved":"https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.2.tgz","integrity":"sha1-tS5pJ6BP4f4qTP/BOeU4ntPl55A=","requires":{"d3-color":"1"}},"d3-path":{"version":"1.0.8","resolved":"https://registry.npmjs.org/d3-path/-/d3-path-1.0.8.tgz","integrity":"sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg=="},"d3-scale":{"version":"1.0.7","resolved":"https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz","integrity":"sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==","requires":{"d3-array":"^1.2.0","d3-collection":"1","d3-color":"1","d3-format":"1","d3-interpolate":"1","d3-time":"1","d3-time-format":"2"}},"d3-shape":{"version":"1.3.5","resolved":"https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.5.tgz","integrity":"sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg==","requires":{"d3-path":"1"}},"d3-time":{"version":"1.1.0","resolved":"https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz","integrity":"sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA=="},"d3-time-format":{"version":"2.2.1","resolved":"https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.1.tgz","integrity":"sha512-VA6WqORO1+H1SvSzgl2oT0z3niANh3opa8Cencpen1LFthw/bEX71R/DgjPlWw78J4UHmD0jCPP1W0HpwMkhjg==","requires":{"d3-time":"1"}},"d3-timer":{"version":"1.0.9","resolved":"https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.9.tgz","integrity":"sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg=="},"d3-voronoi":{"version":"1.1.4","resolved":"https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz","integrity":"sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg=="},"damerau-levenshtein":{"version":"1.0.4","resolved":"https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz","integrity":"sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=","dev":true},"dashdash":{"version":"1.14.1","resolved":"http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz","integrity":"sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=","dev":true,"requires":{"assert-plus":"^1.0.0"}},"dayjs":{"version":"1.8.17","resolved":"https://registry.npmjs.org/dayjs/-/dayjs-1.8.17.tgz","integrity":"sha512-47VY/htqYqr9GHd7HW/h56PpQzRBSJcxIQFwqL3P20bMF/3az5c3PWdVY3LmPXFl6cQCYHL7c79b9ov+2bOBbw=="},"debug":{"version":"2.6.9","resolved":"http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz","integrity":"sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=","requires":{"ms":"2.0.0"}},"decamelize":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz","integrity":"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="},"decode-uri-component":{"version":"0.2.0","resolved":"http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz","integrity":"sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="},"dedent":{"version":"0.6.0","resolved":"http://registry.npm.taobao.org/dedent/download/dedent-0.6.0.tgz","integrity":"sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s="},"deep-equal":{"version":"1.1.0","resolved":"https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz","integrity":"sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==","dev":true,"requires":{"is-arguments":"^1.0.4","is-date-object":"^1.0.1","is-regex":"^1.0.4","object-is":"^1.0.1","object-keys":"^1.1.1","regexp.prototype.flags":"^1.2.0"}},"deep-extend":{"version":"0.6.0","resolved":"http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz","integrity":"sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw="},"deep-is":{"version":"0.1.3","resolved":"http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz","integrity":"sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=","dev":true},"deepmerge":{"version":"3.3.0","resolved":"https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz","integrity":"sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="},"defaults":{"version":"1.0.3","resolved":"https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz","integrity":"sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=","requires":{"clone":"^1.0.2"}},"define-properties":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz","integrity":"sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=","dev":true,"requires":{"object-keys":"^1.0.12"}},"define-property":{"version":"2.0.2","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz","integrity":"sha1-1Flono1lS6d+AqgX+HENcCyxbp0=","requires":{"is-descriptor":"^1.0.2","isobject":"^3.0.1"},"dependencies":{"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="}}},"delaunator":{"version":"4.0.1","resolved":"https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz","integrity":"sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag=="},"delaunay-find":{"version":"0.0.5","resolved":"https://registry.npmjs.org/delaunay-find/-/delaunay-find-0.0.5.tgz","integrity":"sha512-7yAJ/wmKWj3SgqjtkGqT/RCwI0HWAo5YnHMoF5nYXD8cdci+YSo23iPmgrZUNOpDxRWN91PqxUvMMr2lKpjr+w==","requires":{"delaunator":"^4.0.0"}},"delayed-stream":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz","integrity":"sha1-3zrhmayt+31ECqrgsp4icrJOxhk=","dev":true},"delegates":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz","integrity":"sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="},"denodeify":{"version":"1.2.1","resolved":"http://registry.npm.taobao.org/denodeify/download/denodeify-1.2.1.tgz","integrity":"sha1-OjYof1A05pnnV3kBBSwubJQlFjE="},"depd":{"version":"1.1.2","resolved":"http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz","integrity":"sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="},"deprecated-react-native-listview":{"version":"0.0.6","resolved":"https://registry.npm.taobao.org/deprecated-react-native-listview/download/deprecated-react-native-listview-0.0.6.tgz","integrity":"sha1-+Rad1wM5ineS5by4uFHnQajLaYA=","requires":{"create-react-class":"*","fbjs":"*","invariant":"*","react-clone-referenced-element":"*"}},"destroy":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz","integrity":"sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="},"detect-indent":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz","integrity":"sha1-920GQ1LN9Docts5hnE7jqUdd4gg=","dev":true,"requires":{"repeating":"^2.0.0"}},"detect-newline":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz","integrity":"sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=","dev":true},"didyoumean":{"version":"1.2.1","resolved":"https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz","integrity":"sha1-6S7f2tplN9SE1zwBcv0eugxJdv8="},"dmd":{"version":"3.0.13","resolved":"http://registry.npm.taobao.org/dmd/download/dmd-3.0.13.tgz","integrity":"sha1-cylOj64aehochJ2GsCet8E+9VmI=","dev":true,"requires":{"array-back":"^2.0.0","cache-point":"^0.4.1","common-sequence":"^1.0.2","file-set":"^2.0.0","handlebars":"^4.0.11","marked":"^0.3.16","object-get":"^2.1.0","reduce-flatten":"^1.0.1","reduce-unique":"^1.0.0","reduce-without":"^1.0.1","test-value":"^3.0.0","walk-back":"^3.0.0"}},"doctrine":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz","integrity":"sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=","dev":true,"requires":{"esutils":"^2.0.2"}},"dom-walk":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.1.tgz","integrity":"sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=","dev":true},"dot-prop":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/dot-prop/download/dot-prop-3.0.0.tgz","integrity":"sha1-G3CK8JSknJoOfbyteQq6U52sEXc=","requires":{"is-obj":"^1.0.0"}},"duplexer2":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz","integrity":"sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=","requires":{"readable-stream":"^2.0.2"}},"ecc-jsbn":{"version":"0.1.2","resolved":"http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz","integrity":"sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=","dev":true,"requires":{"jsbn":"~0.1.0","safer-buffer":"^2.1.0"}},"ee-first":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz","integrity":"sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="},"eme-encryption-scheme-polyfill":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/eme-encryption-scheme-polyfill/download/eme-encryption-scheme-polyfill-2.0.1.tgz","integrity":"sha1-sICwG//XTHXJz4BEwcq+3zuDlU8="},"emitter-component":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/emitter-component/download/emitter-component-1.1.1.tgz","integrity":"sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY="},"emoji-regex":{"version":"7.0.3","resolved":"http://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz","integrity":"sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=","dev":true},"encodeurl":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz","integrity":"sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="},"encoding":{"version":"0.1.12","resolved":"http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz","integrity":"sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=","requires":{"iconv-lite":"~0.4.13"}},"end-of-stream":{"version":"1.4.1","resolved":"http://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.1.tgz","integrity":"sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=","requires":{"once":"^1.4.0"}},"entities":{"version":"1.1.2","resolved":"https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1563403318326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz","integrity":"sha1-vfpzUplmTfr9NFKe1PhSKidf6lY="},"envinfo":{"version":"7.4.0","resolved":"https://registry.npmjs.org/envinfo/-/envinfo-7.4.0.tgz","integrity":"sha512-FdDfnWnCVjxTTpWE3d6Jgh5JDIA3Cw7LCgpM/pI7kK1ORkjaqI2r6NqQ+ln2j0dfpgxY00AWieSvtkiZQKIItA=="},"error-ex":{"version":"1.3.2","resolved":"http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz","integrity":"sha1-tKxAZIEH/c3PriQvQovqihTU8b8=","requires":{"is-arrayish":"^0.2.1"}},"errorhandler":{"version":"1.5.1","resolved":"https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz","integrity":"sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==","requires":{"accepts":"~1.3.7","escape-html":"~1.0.3"}},"es-abstract":{"version":"1.13.0","resolved":"http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz","integrity":"sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=","dev":true,"requires":{"es-to-primitive":"^1.2.0","function-bind":"^1.1.1","has":"^1.0.3","is-callable":"^1.1.4","is-regex":"^1.0.4","object-keys":"^1.0.12"}},"es-to-primitive":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz","integrity":"sha1-7fckeAM0VujdqO8J4ArZZQcH83c=","dev":true,"requires":{"is-callable":"^1.1.4","is-date-object":"^1.0.1","is-symbol":"^1.0.2"}},"escape-html":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz","integrity":"sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="},"escape-string-regexp":{"version":"1.0.5","resolved":"http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz","integrity":"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="},"eslint":{"version":"5.16.0","resolved":"http://registry.npm.taobao.org/eslint/download/eslint-5.16.0.tgz","integrity":"sha1-oeOsGq5KP72Clvz496tzFMu2q+o=","dev":true,"requires":{"@babel/code-frame":"^7.0.0","ajv":"^6.9.1","chalk":"^2.1.0","cross-spawn":"^6.0.5","debug":"^4.0.1","doctrine":"^3.0.0","eslint-scope":"^4.0.3","eslint-utils":"^1.3.1","eslint-visitor-keys":"^1.0.0","espree":"^5.0.1","esquery":"^1.0.1","esutils":"^2.0.2","file-entry-cache":"^5.0.1","functional-red-black-tree":"^1.0.1","glob":"^7.1.2","globals":"^11.7.0","ignore":"^4.0.6","import-fresh":"^3.0.0","imurmurhash":"^0.1.4","inquirer":"^6.2.2","js-yaml":"^3.13.0","json-stable-stringify-without-jsonify":"^1.0.1","levn":"^0.3.0","lodash":"^4.17.11","minimatch":"^3.0.4","mkdirp":"^0.5.1","natural-compare":"^1.4.0","optionator":"^0.8.2","path-is-inside":"^1.0.2","progress":"^2.0.0","regexpp":"^2.0.1","semver":"^5.5.1","strip-ansi":"^4.0.0","strip-json-comments":"^2.0.1","table":"^5.2.3","text-table":"^0.2.0"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz","integrity":"sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=","dev":true},"ansi-styles":{"version":"3.2.1","resolved":"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","dev":true,"requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","dev":true,"requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"chardet":{"version":"0.7.0","resolved":"http://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz","integrity":"sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=","dev":true},"cross-spawn":{"version":"6.0.5","resolved":"http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz","integrity":"sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=","dev":true,"requires":{"nice-try":"^1.0.4","path-key":"^2.0.1","semver":"^5.5.0","shebang-command":"^1.2.0","which":"^1.2.9"}},"debug":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz","integrity":"sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=","dev":true,"requires":{"ms":"^2.1.1"}},"eslint-scope":{"version":"4.0.3","resolved":"http://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz","integrity":"sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=","dev":true,"requires":{"esrecurse":"^4.1.0","estraverse":"^4.1.1"}},"external-editor":{"version":"3.0.3","resolved":"http://registry.npm.taobao.org/external-editor/download/external-editor-3.0.3.tgz","integrity":"sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=","dev":true,"requires":{"chardet":"^0.7.0","iconv-lite":"^0.4.24","tmp":"^0.0.33"}},"globals":{"version":"11.11.0","resolved":"http://registry.npm.taobao.org/globals/download/globals-11.11.0.tgz","integrity":"sha1-3Pk3V/ot5Uhvvu1xGFOK33ienC4=","dev":true},"inquirer":{"version":"6.3.1","resolved":"http://registry.npm.taobao.org/inquirer/download/inquirer-6.3.1.tgz","integrity":"sha1-ekE7XnlQgRATo9tJHGHR87d26Oc=","dev":true,"requires":{"ansi-escapes":"^3.2.0","chalk":"^2.4.2","cli-cursor":"^2.1.0","cli-width":"^2.0.0","external-editor":"^3.0.3","figures":"^2.0.0","lodash":"^4.17.11","mute-stream":"0.0.7","run-async":"^2.2.0","rxjs":"^6.4.0","string-width":"^2.1.0","strip-ansi":"^5.1.0","through":"^2.3.6"},"dependencies":{"strip-ansi":{"version":"5.2.0","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz","integrity":"sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=","dev":true,"requires":{"ansi-regex":"^4.1.0"}}}},"ms":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz","integrity":"sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=","dev":true},"strip-ansi":{"version":"4.0.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","dev":true,"requires":{"ansi-regex":"^3.0.0"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=","dev":true}}},"supports-color":{"version":"5.5.0","resolved":"http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","dev":true,"requires":{"has-flag":"^3.0.0"}}}},"eslint-config-airbnb":{"version":"17.1.0","resolved":"http://registry.npm.taobao.org/eslint-config-airbnb/download/eslint-config-airbnb-17.1.0.tgz","integrity":"sha1-OWTtS8GYJAMV/1IDC/hjb0K8RzI=","dev":true,"requires":{"eslint-config-airbnb-base":"^13.1.0","object.assign":"^4.1.0","object.entries":"^1.0.4"}},"eslint-config-airbnb-base":{"version":"13.1.0","resolved":"http://registry.npm.taobao.org/eslint-config-airbnb-base/download/eslint-config-airbnb-base-13.1.0.tgz","integrity":"sha1-taG0gLgN+tFkM9bErYTmYFBSwFw=","dev":true,"requires":{"eslint-restricted-globals":"^0.1.1","object.assign":"^4.1.0","object.entries":"^1.0.4"}},"eslint-import-resolver-node":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.2.tgz","integrity":"sha1-WPFfuDm40FdsqYBBNHaqskcttmo=","dev":true,"requires":{"debug":"^2.6.9","resolve":"^1.5.0"}},"eslint-module-utils":{"version":"2.4.0","resolved":"http://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.4.0.tgz","integrity":"sha1-i5NJnpsA6rgMy2YU5p8DZ46E4Jo=","dev":true,"requires":{"debug":"^2.6.8","pkg-dir":"^2.0.0"}},"eslint-plugin-import":{"version":"2.17.1","resolved":"http://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.17.1.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.17.1.tgz","integrity":"sha1-uIj+tNmz7hVRE8jczdS+xdszvfQ=","dev":true,"requires":{"array-includes":"^3.0.3","contains-path":"^0.1.0","debug":"^2.6.9","doctrine":"1.5.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.0","has":"^1.0.3","lodash":"^4.17.11","minimatch":"^3.0.4","read-pkg-up":"^2.0.0","resolve":"^1.10.0"},"dependencies":{"doctrine":{"version":"1.5.0","resolved":"https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz","integrity":"sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=","dev":true,"requires":{"esutils":"^2.0.2","isarray":"^1.0.0"}}}},"eslint-plugin-jsx-a11y":{"version":"6.2.1","resolved":"http://registry.npm.taobao.org/eslint-plugin-jsx-a11y/download/eslint-plugin-jsx-a11y-6.2.1.tgz","integrity":"sha1-Trup8zm2AP9BWuQWbj4uAIgxzww=","dev":true,"requires":{"aria-query":"^3.0.0","array-includes":"^3.0.3","ast-types-flow":"^0.0.7","axobject-query":"^2.0.2","damerau-levenshtein":"^1.0.4","emoji-regex":"^7.0.2","has":"^1.0.3","jsx-ast-utils":"^2.0.1"}},"eslint-plugin-mihome-plugin":{"version":"file:eslint-mihome-plugin","dev":true,"requires":{"requireindex":"~1.1.0"},"dependencies":{"acorn":{"version":"5.7.4","resolved":"https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz","integrity":"sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="},"acorn-jsx":{"version":"3.0.1","resolved":"https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz","integrity":"sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=","requires":{"acorn":"^3.0.4"},"dependencies":{"acorn":{"version":"3.3.0","resolved":"https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz","integrity":"sha1-ReN/s56No/JbruP/U2niu18iAXo="}}},"ajv":{"version":"4.11.8","resolved":"https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz","integrity":"sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=","requires":{"co":"^4.6.0","json-stable-stringify":"^1.0.1"}},"ajv-keywords":{"version":"1.5.1","resolved":"https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz","integrity":"sha1-MU3QpLM2j609/NxU7eYXG4htrzw="},"ansi-escapes":{"version":"1.4.0","resolved":"https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz","integrity":"sha1-06ioOzGapneTZisT52HHkRQiMG4="},"ansi-regex":{"version":"2.1.1","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz","integrity":"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="},"ansi-styles":{"version":"2.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz","integrity":"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="},"argparse":{"version":"1.0.10","resolved":"https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz","integrity":"sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==","requires":{"sprintf-js":"~1.0.2"}},"babel-code-frame":{"version":"6.26.0","resolved":"https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz","integrity":"sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=","requires":{"chalk":"^1.1.3","esutils":"^2.0.2","js-tokens":"^3.0.2"}},"balanced-match":{"version":"1.0.0","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz","integrity":"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="},"brace-expansion":{"version":"1.1.11","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz","integrity":"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==","requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"browser-stdout":{"version":"1.3.0","resolved":"https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz","integrity":"sha1-81HTKWnTL6XXpVZxVCY9korjvR8="},"buffer-from":{"version":"1.1.1","resolved":"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz","integrity":"sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="},"caller-path":{"version":"0.1.0","resolved":"https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz","integrity":"sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=","requires":{"callsites":"^0.2.0"}},"callsites":{"version":"0.2.0","resolved":"https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz","integrity":"sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo="},"chalk":{"version":"1.1.3","resolved":"https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz","integrity":"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=","requires":{"ansi-styles":"^2.2.1","escape-string-regexp":"^1.0.2","has-ansi":"^2.0.0","strip-ansi":"^3.0.0","supports-color":"^2.0.0"}},"circular-json":{"version":"0.3.3","resolved":"https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz","integrity":"sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A=="},"cli-cursor":{"version":"1.0.2","resolved":"https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz","integrity":"sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=","requires":{"restore-cursor":"^1.0.1"}},"cli-width":{"version":"2.2.1","resolved":"https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz","integrity":"sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="},"co":{"version":"4.6.0","resolved":"https://registry.npmjs.org/co/-/co-4.6.0.tgz","integrity":"sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="},"code-point-at":{"version":"1.1.0","resolved":"https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz","integrity":"sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="},"commander":{"version":"2.9.0","resolved":"https://registry.npmjs.org/commander/-/commander-2.9.0.tgz","integrity":"sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=","requires":{"graceful-readlink":">= 1.0.0"}},"concat-map":{"version":"0.0.1","resolved":"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz","integrity":"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="},"concat-stream":{"version":"1.6.2","resolved":"https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz","integrity":"sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==","requires":{"buffer-from":"^1.0.0","inherits":"^2.0.3","readable-stream":"^2.2.2","typedarray":"^0.0.6"}},"core-util-is":{"version":"1.0.2","resolved":"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz","integrity":"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="},"d":{"version":"1.0.1","resolved":"https://registry.npmjs.org/d/-/d-1.0.1.tgz","integrity":"sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==","requires":{"es5-ext":"^0.10.50","type":"^1.0.1"}},"debug":{"version":"2.6.9","resolved":"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz","integrity":"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==","requires":{"ms":"2.0.0"}},"deep-is":{"version":"0.1.3","resolved":"https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz","integrity":"sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="},"diff":{"version":"3.2.0","resolved":"https://registry.npmjs.org/diff/-/diff-3.2.0.tgz","integrity":"sha1-yc45Okt8vQsFinJck98pkCeGj/k="},"doctrine":{"version":"1.5.0","resolved":"https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz","integrity":"sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=","requires":{"esutils":"^2.0.2","isarray":"^1.0.0"}},"es5-ext":{"version":"0.10.53","resolved":"https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz","integrity":"sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==","requires":{"es6-iterator":"~2.0.3","es6-symbol":"~3.1.3","next-tick":"~1.0.0"}},"es6-iterator":{"version":"2.0.3","resolved":"https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz","integrity":"sha1-p96IkUGgWpSwhUQDstCg+/qY87c=","requires":{"d":"1","es5-ext":"^0.10.35","es6-symbol":"^3.1.1"}},"es6-map":{"version":"0.1.5","resolved":"https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz","integrity":"sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=","requires":{"d":"1","es5-ext":"~0.10.14","es6-iterator":"~2.0.1","es6-set":"~0.1.5","es6-symbol":"~3.1.1","event-emitter":"~0.3.5"}},"es6-set":{"version":"0.1.5","resolved":"https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz","integrity":"sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=","requires":{"d":"1","es5-ext":"~0.10.14","es6-iterator":"~2.0.1","es6-symbol":"3.1.1","event-emitter":"~0.3.5"},"dependencies":{"es6-symbol":{"version":"3.1.1","resolved":"https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz","integrity":"sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=","requires":{"d":"1","es5-ext":"~0.10.14"}}}},"es6-symbol":{"version":"3.1.3","resolved":"https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz","integrity":"sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==","requires":{"d":"^1.0.1","ext":"^1.1.2"}},"es6-weak-map":{"version":"2.0.3","resolved":"https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz","integrity":"sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==","requires":{"d":"1","es5-ext":"^0.10.46","es6-iterator":"^2.0.3","es6-symbol":"^3.1.1"}},"escape-string-regexp":{"version":"1.0.5","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz","integrity":"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="},"escope":{"version":"3.6.0","resolved":"https://registry.npmjs.org/escope/-/escope-3.6.0.tgz","integrity":"sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=","requires":{"es6-map":"^0.1.3","es6-weak-map":"^2.0.1","esrecurse":"^4.1.0","estraverse":"^4.1.1"}},"eslint":{"version":"3.9.1","resolved":"https://registry.npmjs.org/eslint/-/eslint-3.9.1.tgz","integrity":"sha1-WoWXcG/GBIvGBhrHVNSiEdKPT1s=","requires":{"babel-code-frame":"^6.16.0","chalk":"^1.1.3","concat-stream":"^1.4.6","debug":"^2.1.1","doctrine":"^1.2.2","escope":"^3.6.0","espree":"^3.3.1","estraverse":"^4.2.0","esutils":"^2.0.2","file-entry-cache":"^2.0.0","glob":"^7.0.3","globals":"^9.2.0","ignore":"^3.1.5","imurmurhash":"^0.1.4","inquirer":"^0.12.0","is-my-json-valid":"^2.10.0","is-resolvable":"^1.0.0","js-yaml":"^3.5.1","json-stable-stringify":"^1.0.0","levn":"^0.3.0","lodash":"^4.0.0","mkdirp":"^0.5.0","natural-compare":"^1.4.0","optionator":"^0.8.2","path-is-inside":"^1.0.1","pluralize":"^1.2.1","progress":"^1.1.8","require-uncached":"^1.0.2","shelljs":"^0.7.5","strip-bom":"^3.0.0","strip-json-comments":"~1.0.1","table":"^3.7.8","text-table":"~0.2.0","user-home":"^2.0.0"}},"espree":{"version":"3.5.4","resolved":"https://registry.npmjs.org/espree/-/espree-3.5.4.tgz","integrity":"sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==","requires":{"acorn":"^5.5.0","acorn-jsx":"^3.0.0"}},"esprima":{"version":"4.0.1","resolved":"https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz","integrity":"sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="},"esrecurse":{"version":"4.2.1","resolved":"https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz","integrity":"sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==","requires":{"estraverse":"^4.1.0"}},"estraverse":{"version":"4.3.0","resolved":"https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz","integrity":"sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="},"esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="},"event-emitter":{"version":"0.3.5","resolved":"https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz","integrity":"sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=","requires":{"d":"1","es5-ext":"~0.10.14"}},"exit-hook":{"version":"1.1.1","resolved":"https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz","integrity":"sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="},"ext":{"version":"1.4.0","resolved":"https://registry.npmjs.org/ext/-/ext-1.4.0.tgz","integrity":"sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==","requires":{"type":"^2.0.0"},"dependencies":{"type":{"version":"2.0.0","resolved":"https://registry.npmjs.org/type/-/type-2.0.0.tgz","integrity":"sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="}}},"fast-levenshtein":{"version":"2.0.6","resolved":"https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz","integrity":"sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="},"figures":{"version":"1.7.0","resolved":"https://registry.npmjs.org/figures/-/figures-1.7.0.tgz","integrity":"sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=","requires":{"escape-string-regexp":"^1.0.5","object-assign":"^4.1.0"}},"file-entry-cache":{"version":"2.0.0","resolved":"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz","integrity":"sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=","requires":{"flat-cache":"^1.2.1","object-assign":"^4.0.1"}},"flat-cache":{"version":"1.3.4","resolved":"https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz","integrity":"sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==","requires":{"circular-json":"^0.3.1","graceful-fs":"^4.1.2","rimraf":"~2.6.2","write":"^0.2.1"}},"fs.realpath":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz","integrity":"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="},"generate-function":{"version":"2.3.1","resolved":"https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz","integrity":"sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==","requires":{"is-property":"^1.0.2"}},"generate-object-property":{"version":"1.2.0","resolved":"https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz","integrity":"sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=","requires":{"is-property":"^1.0.0"}},"glob":{"version":"7.1.6","resolved":"https://registry.npmjs.org/glob/-/glob-7.1.6.tgz","integrity":"sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==","requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.4","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"globals":{"version":"9.18.0","resolved":"https://registry.npmjs.org/globals/-/globals-9.18.0.tgz","integrity":"sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="},"graceful-fs":{"version":"4.2.4","resolved":"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz","integrity":"sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="},"graceful-readlink":{"version":"1.0.1","resolved":"https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz","integrity":"sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="},"growl":{"version":"1.9.2","resolved":"https://registry.npmjs.org/growl/-/growl-1.9.2.tgz","integrity":"sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8="},"has-ansi":{"version":"2.0.0","resolved":"https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz","integrity":"sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=","requires":{"ansi-regex":"^2.0.0"}},"has-flag":{"version":"1.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz","integrity":"sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="},"he":{"version":"1.1.1","resolved":"https://registry.npmjs.org/he/-/he-1.1.1.tgz","integrity":"sha1-k0EP0hsAlzUVH4howvJx80J+I/0="},"ignore":{"version":"3.3.10","resolved":"https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz","integrity":"sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug=="},"imurmurhash":{"version":"0.1.4","resolved":"https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz","integrity":"sha1-khi5srkoojixPcT7a21XbyMUU+o="},"inflight":{"version":"1.0.6","resolved":"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz","integrity":"sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=","requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="},"inquirer":{"version":"0.12.0","resolved":"https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz","integrity":"sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=","requires":{"ansi-escapes":"^1.1.0","ansi-regex":"^2.0.0","chalk":"^1.0.0","cli-cursor":"^1.0.1","cli-width":"^2.0.0","figures":"^1.3.5","lodash":"^4.3.0","readline2":"^1.0.1","run-async":"^0.1.0","rx-lite":"^3.1.2","string-width":"^1.0.1","strip-ansi":"^3.0.0","through":"^2.3.6"}},"interpret":{"version":"1.2.0","resolved":"https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz","integrity":"sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=="},"is-fullwidth-code-point":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"is-my-ip-valid":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz","integrity":"sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ=="},"is-my-json-valid":{"version":"2.20.0","resolved":"https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz","integrity":"sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==","requires":{"generate-function":"^2.0.0","generate-object-property":"^1.1.0","is-my-ip-valid":"^1.0.0","jsonpointer":"^4.0.0","xtend":"^4.0.0"}},"is-property":{"version":"1.0.2","resolved":"https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz","integrity":"sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="},"is-resolvable":{"version":"1.1.0","resolved":"https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz","integrity":"sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="},"isarray":{"version":"1.0.0","resolved":"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz","integrity":"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="},"js-tokens":{"version":"3.0.2","resolved":"https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz","integrity":"sha1-mGbfOVECEw449/mWvOtlRDIJwls="},"js-yaml":{"version":"3.14.0","resolved":"https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz","integrity":"sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==","requires":{"argparse":"^1.0.7","esprima":"^4.0.0"}},"json-stable-stringify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz","integrity":"sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=","requires":{"jsonify":"~0.0.0"}},"json3":{"version":"3.3.2","resolved":"https://registry.npmjs.org/json3/-/json3-3.3.2.tgz","integrity":"sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE="},"jsonify":{"version":"0.0.0","resolved":"https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz","integrity":"sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="},"jsonpointer":{"version":"4.0.1","resolved":"https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz","integrity":"sha1-T9kss04OnbPInIYi7PUfm5eMbLk="},"levn":{"version":"0.3.0","resolved":"https://registry.npmjs.org/levn/-/levn-0.3.0.tgz","integrity":"sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=","requires":{"prelude-ls":"~1.1.2","type-check":"~0.3.2"}},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"lodash._baseassign":{"version":"3.2.0","resolved":"https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz","integrity":"sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=","requires":{"lodash._basecopy":"^3.0.0","lodash.keys":"^3.0.0"}},"lodash._basecopy":{"version":"3.0.1","resolved":"https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz","integrity":"sha1-jaDmqHbPNEwK2KVIghEd08XHyjY="},"lodash._basecreate":{"version":"3.0.3","resolved":"https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz","integrity":"sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE="},"lodash._getnative":{"version":"3.9.1","resolved":"https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz","integrity":"sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="},"lodash._isiterateecall":{"version":"3.0.9","resolved":"https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz","integrity":"sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw="},"lodash.create":{"version":"3.1.1","resolved":"https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz","integrity":"sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=","requires":{"lodash._baseassign":"^3.0.0","lodash._basecreate":"^3.0.0","lodash._isiterateecall":"^3.0.0"}},"lodash.isarguments":{"version":"3.1.0","resolved":"https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz","integrity":"sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="},"lodash.isarray":{"version":"3.0.4","resolved":"https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz","integrity":"sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="},"lodash.keys":{"version":"3.1.2","resolved":"https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz","integrity":"sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=","requires":{"lodash._getnative":"^3.0.0","lodash.isarguments":"^3.0.0","lodash.isarray":"^3.0.0"}},"minimatch":{"version":"3.0.4","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz","integrity":"sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==","requires":{"brace-expansion":"^1.1.7"}},"minimist":{"version":"1.2.5","resolved":"https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz","integrity":"sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="},"mkdirp":{"version":"0.5.5","resolved":"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz","integrity":"sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==","requires":{"minimist":"^1.2.5"}},"mocha":{"version":"3.5.3","resolved":"https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz","integrity":"sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==","requires":{"browser-stdout":"1.3.0","commander":"2.9.0","debug":"2.6.8","diff":"3.2.0","escape-string-regexp":"1.0.5","glob":"7.1.1","growl":"1.9.2","he":"1.1.1","json3":"3.3.2","lodash.create":"3.1.1","mkdirp":"0.5.1","supports-color":"3.1.2"},"dependencies":{"debug":{"version":"2.6.8","resolved":"https://registry.npmjs.org/debug/-/debug-2.6.8.tgz","integrity":"sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=","requires":{"ms":"2.0.0"}},"glob":{"version":"7.1.1","resolved":"https://registry.npmjs.org/glob/-/glob-7.1.1.tgz","integrity":"sha1-gFIR3wT6rxxjo2ADBs31reULLsg=","requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.2","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"minimist":{"version":"0.0.8","resolved":"https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz","integrity":"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="},"mkdirp":{"version":"0.5.1","resolved":"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz","integrity":"sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=","requires":{"minimist":"0.0.8"}},"supports-color":{"version":"3.1.2","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz","integrity":"sha1-cqJiiU2dQIuVbKBf83su2KbiotU=","requires":{"has-flag":"^1.0.0"}}}},"ms":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="},"mute-stream":{"version":"0.0.5","resolved":"https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz","integrity":"sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="},"natural-compare":{"version":"1.4.0","resolved":"https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz","integrity":"sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="},"next-tick":{"version":"1.0.0","resolved":"https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz","integrity":"sha1-yobR/ogoFpsBICCOPchCS524NCw="},"number-is-nan":{"version":"1.0.1","resolved":"https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz","integrity":"sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="},"object-assign":{"version":"4.1.1","resolved":"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz","integrity":"sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="},"once":{"version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha1-WDsap3WWHUsROsF9nFC6753Xa9E=","requires":{"wrappy":"1"}},"onetime":{"version":"1.1.0","resolved":"https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz","integrity":"sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="},"optionator":{"version":"0.8.3","resolved":"https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz","integrity":"sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==","requires":{"deep-is":"~0.1.3","fast-levenshtein":"~2.0.6","levn":"~0.3.0","prelude-ls":"~1.1.2","type-check":"~0.3.2","word-wrap":"~1.2.3"}},"os-homedir":{"version":"1.0.2","resolved":"https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz","integrity":"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="},"path-is-absolute":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz","integrity":"sha1-F0uSaHNVNP+8es5r9TpanhtcX18="},"path-is-inside":{"version":"1.0.2","resolved":"https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz","integrity":"sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="},"path-parse":{"version":"1.0.6","resolved":"https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz","integrity":"sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="},"pluralize":{"version":"1.2.1","resolved":"https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz","integrity":"sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU="},"prelude-ls":{"version":"1.1.2","resolved":"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz","integrity":"sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="},"process-nextick-args":{"version":"2.0.1","resolved":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz","integrity":"sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="},"progress":{"version":"1.1.8","resolved":"https://registry.npmjs.org/progress/-/progress-1.1.8.tgz","integrity":"sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="},"readable-stream":{"version":"2.3.7","resolved":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz","integrity":"sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==","requires":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"}},"readline2":{"version":"1.0.1","resolved":"https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz","integrity":"sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","mute-stream":"0.0.5"}},"rechoir":{"version":"0.6.2","resolved":"https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz","integrity":"sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=","requires":{"resolve":"^1.1.6"}},"require-uncached":{"version":"1.0.3","resolved":"https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz","integrity":"sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=","requires":{"caller-path":"^0.1.0","resolve-from":"^1.0.0"}},"requireindex":{"version":"1.1.0","resolved":"https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz","integrity":"sha1-5UBLgVV+91225JxacgBIk/4D4WI=","dev":true},"resolve":{"version":"1.17.0","resolved":"https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz","integrity":"sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==","requires":{"path-parse":"^1.0.6"}},"resolve-from":{"version":"1.0.1","resolved":"https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz","integrity":"sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY="},"restore-cursor":{"version":"1.0.1","resolved":"https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz","integrity":"sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=","requires":{"exit-hook":"^1.0.0","onetime":"^1.0.0"}},"rimraf":{"version":"2.6.3","resolved":"https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz","integrity":"sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==","requires":{"glob":"^7.1.3"}},"run-async":{"version":"0.1.0","resolved":"https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz","integrity":"sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=","requires":{"once":"^1.3.0"}},"rx-lite":{"version":"3.1.2","resolved":"https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz","integrity":"sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="},"safe-buffer":{"version":"5.1.2","resolved":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz","integrity":"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="},"shelljs":{"version":"0.7.8","resolved":"https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz","integrity":"sha1-3svPh0sNHl+3LhSxZKloMEjprLM=","requires":{"glob":"^7.0.0","interpret":"^1.0.0","rechoir":"^0.6.2"}},"slice-ansi":{"version":"0.0.4","resolved":"https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz","integrity":"sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU="},"sprintf-js":{"version":"1.0.3","resolved":"https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz","integrity":"sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="},"string-width":{"version":"1.0.2","resolved":"https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}},"string_decoder":{"version":"1.1.1","resolved":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz","integrity":"sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==","requires":{"safe-buffer":"~5.1.0"}},"strip-ansi":{"version":"3.0.1","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz","integrity":"sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=","requires":{"ansi-regex":"^2.0.0"}},"strip-bom":{"version":"3.0.0","resolved":"https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz","integrity":"sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="},"strip-json-comments":{"version":"1.0.4","resolved":"https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz","integrity":"sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E="},"supports-color":{"version":"2.0.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz","integrity":"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="},"table":{"version":"3.8.3","resolved":"https://registry.npmjs.org/table/-/table-3.8.3.tgz","integrity":"sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=","requires":{"ajv":"^4.7.0","ajv-keywords":"^1.0.0","chalk":"^1.1.1","lodash":"^4.0.0","slice-ansi":"0.0.4","string-width":"^2.0.0"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="},"is-fullwidth-code-point":{"version":"2.0.0","resolved":"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz","integrity":"sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="},"string-width":{"version":"2.1.1","resolved":"https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz","integrity":"sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==","requires":{"is-fullwidth-code-point":"^2.0.0","strip-ansi":"^4.0.0"}},"strip-ansi":{"version":"4.0.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","requires":{"ansi-regex":"^3.0.0"}}}},"text-table":{"version":"0.2.0","resolved":"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz","integrity":"sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="},"through":{"version":"2.3.8","resolved":"https://registry.npmjs.org/through/-/through-2.3.8.tgz","integrity":"sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="},"type":{"version":"1.2.0","resolved":"https://registry.npmjs.org/type/-/type-1.2.0.tgz","integrity":"sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="},"type-check":{"version":"0.3.2","resolved":"https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz","integrity":"sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=","requires":{"prelude-ls":"~1.1.2"}},"typedarray":{"version":"0.0.6","resolved":"https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz","integrity":"sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="},"user-home":{"version":"2.0.0","resolved":"https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz","integrity":"sha1-nHC/2Babwdy/SGBODwS4tJzenp8=","requires":{"os-homedir":"^1.0.0"}},"util-deprecate":{"version":"1.0.2","resolved":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz","integrity":"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="},"word-wrap":{"version":"1.2.3","resolved":"https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz","integrity":"sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="},"wrappy":{"version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="},"write":{"version":"0.2.1","resolved":"https://registry.npmjs.org/write/-/write-0.2.1.tgz","integrity":"sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=","requires":{"mkdirp":"^0.5.1"}},"xtend":{"version":"4.0.2","resolved":"https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz","integrity":"sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="}}},"eslint-plugin-react":{"version":"7.12.4","resolved":"http://registry.npm.taobao.org/eslint-plugin-react/download/eslint-plugin-react-7.12.4.tgz","integrity":"sha1-sezyZHnWGu5lDaYS5CXFOpn0jIw=","dev":true,"requires":{"array-includes":"^3.0.3","doctrine":"^2.1.0","has":"^1.0.3","jsx-ast-utils":"^2.0.1","object.fromentries":"^2.0.0","prop-types":"^15.6.2","resolve":"^1.9.0"},"dependencies":{"doctrine":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz","integrity":"sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=","dev":true,"requires":{"esutils":"^2.0.2"}}}},"eslint-restricted-globals":{"version":"0.1.1","resolved":"https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz","integrity":"sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=","dev":true},"eslint-scope":{"version":"3.7.1","resolved":"http://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.1.tgz","integrity":"sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=","dev":true,"requires":{"esrecurse":"^4.1.0","estraverse":"^4.1.1"}},"eslint-utils":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.3.1.tgz","integrity":"sha1-moUbqJ7nxGA0b5fPiTnHKYgn5RI=","dev":true},"eslint-visitor-keys":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.0.0.tgz","integrity":"sha1-PzGA+y4pEBdxastMnW1bXDSmqB0=","dev":true},"espree":{"version":"5.0.1","resolved":"http://registry.npm.taobao.org/espree/download/espree-5.0.1.tgz","integrity":"sha1-XWUm+k/H8HiKXPdbFfMDI+L4H3o=","dev":true,"requires":{"acorn":"^6.0.7","acorn-jsx":"^5.0.0","eslint-visitor-keys":"^1.0.0"}},"esprima":{"version":"4.0.1","resolved":"http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz","integrity":"sha1-E7BM2z5sXRnfkatph6hpVhmwqnE="},"esquery":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/esquery/download/esquery-1.0.1.tgz","integrity":"sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=","dev":true,"requires":{"estraverse":"^4.0.0"}},"esrecurse":{"version":"4.2.1","resolved":"http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz","integrity":"sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=","dev":true,"requires":{"estraverse":"^4.1.0"}},"estraverse":{"version":"4.2.0","resolved":"http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz","integrity":"sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=","dev":true},"esutils":{"version":"2.0.2","resolved":"http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz","integrity":"sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="},"etag":{"version":"1.8.1","resolved":"http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz","integrity":"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="},"event-target-shim":{"version":"5.0.1","resolved":"https://registry.npm.taobao.org/event-target-shim/download/event-target-shim-5.0.1.tgz","integrity":"sha1-XU0+vflYPWOlMzzi3rdICrKwV4k="},"eventemitter3":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.0.tgz","integrity":"sha1-CQtNbNvWRe0Qv3UNS1QHlC17oWM="},"exec-sh":{"version":"0.2.2","resolved":"http://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.2.tgz","integrity":"sha1-Kl5//L19C6J1W97LFuWkJ9+97DY=","dev":true,"requires":{"merge":"^1.2.0"}},"execa":{"version":"1.0.0","resolved":"https://registry.npmjs.org/execa/-/execa-1.0.0.tgz","integrity":"sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==","requires":{"cross-spawn":"^6.0.0","get-stream":"^4.0.0","is-stream":"^1.1.0","npm-run-path":"^2.0.0","p-finally":"^1.0.0","signal-exit":"^3.0.0","strip-eof":"^1.0.0"},"dependencies":{"cross-spawn":{"version":"6.0.5","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz","integrity":"sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==","requires":{"nice-try":"^1.0.4","path-key":"^2.0.1","semver":"^5.5.0","shebang-command":"^1.2.0","which":"^1.2.9"}},"get-stream":{"version":"4.1.0","resolved":"https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz","integrity":"sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==","requires":{"pump":"^3.0.0"}}}},"exit-hook":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz","integrity":"sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="},"expand-brackets":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz","integrity":"sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=","dev":true,"requires":{"is-posix-bracket":"^0.1.0"}},"expand-range":{"version":"1.8.2","resolved":"http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz","integrity":"sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=","dev":true,"requires":{"fill-range":"^2.1.0"}},"extend":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz","integrity":"sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=","dev":true},"extend-shallow":{"version":"3.0.2","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"},"dependencies":{"is-extendable":{"version":"1.0.1","resolved":"https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz","integrity":"sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==","requires":{"is-plain-object":"^2.0.4"}}}},"external-editor":{"version":"2.2.0","resolved":"https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz","integrity":"sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==","requires":{"chardet":"^0.4.0","iconv-lite":"^0.4.17","tmp":"^0.0.33"}},"extglob":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz","integrity":"sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=","dev":true,"requires":{"is-extglob":"^1.0.0"}},"extsprintf":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz","integrity":"sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=","dev":true},"eyes":{"version":"0.1.8","resolved":"https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz","integrity":"sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=","dev":true},"fancy-log":{"version":"1.3.3","resolved":"http://registry.npm.taobao.org/fancy-log/download/fancy-log-1.3.3.tgz","integrity":"sha1-28GRVPVYaQFQojlToK29A1vkX8c=","requires":{"ansi-gray":"^0.1.1","color-support":"^1.1.3","parse-node-version":"^1.0.0","time-stamp":"^1.0.0"}},"fast-deep-equal":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz","integrity":"sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=","dev":true},"fast-json-stable-stringify":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz","integrity":"sha1-1RQsDK7msRifh9OnYREGT4bIu/I=","dev":true},"fast-levenshtein":{"version":"2.0.6","resolved":"http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz","integrity":"sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=","dev":true},"fb-watchman":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.0.tgz","integrity":"sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=","requires":{"bser":"^2.0.0"}},"fbjs":{"version":"0.8.17","resolved":"http://registry.npm.taobao.org/fbjs/download/fbjs-0.8.17.tgz","integrity":"sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=","requires":{"core-js":"^1.0.0","isomorphic-fetch":"^2.1.1","loose-envify":"^1.0.0","object-assign":"^4.1.0","promise":"^7.1.1","setimmediate":"^1.0.5","ua-parser-js":"^0.7.18"}},"fbjs-css-vars":{"version":"1.0.2","resolved":"https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz","integrity":"sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="},"fbjs-scripts":{"version":"1.2.0","resolved":"https://registry.npm.taobao.org/fbjs-scripts/download/fbjs-scripts-1.2.0.tgz","integrity":"sha1-BpoMBjQkLRADHGRg7x/M782uiyc=","requires":{"@babel/core":"^7.0.0","ansi-colors":"^1.0.1","babel-preset-fbjs":"^3.2.0","core-js":"^2.4.1","cross-spawn":"^5.1.0","fancy-log":"^1.3.2","object-assign":"^4.0.1","plugin-error":"^0.1.2","semver":"^5.1.0","through2":"^2.0.0"},"dependencies":{"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha1-qiE8FDXiv/62/KhCKH71NK0F1c8="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz","integrity":"sha1-pgJHZOqGyOBqIteUyotpU00mNUE=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"core-js":{"version":"2.6.11","resolved":"https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz","integrity":"sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="}}},"fd-slicer":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.1.0.tgz","integrity":"sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=","dev":true,"requires":{"pend":"~1.2.0"}},"figures":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz","integrity":"sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=","requires":{"escape-string-regexp":"^1.0.5"}},"file-entry-cache":{"version":"5.0.1","resolved":"http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz","integrity":"sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=","dev":true,"requires":{"flat-cache":"^2.0.1"}},"file-set":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/file-set/download/file-set-2.0.1.tgz","integrity":"sha1-25vEtwp+W6gcnSecIKN/EzaceFA=","dev":true,"requires":{"array-back":"^2.0.0","glob":"^7.1.3"}},"file-uri-to-path":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz","integrity":"sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=","optional":true},"filename-regex":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz","integrity":"sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=","dev":true},"fill-range":{"version":"2.2.4","resolved":"http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz","integrity":"sha1-6x53OrsFbc2N8r/favWbizqTZWU=","dev":true,"requires":{"is-number":"^2.1.0","isobject":"^2.0.0","randomatic":"^3.0.0","repeat-element":"^1.1.2","repeat-string":"^1.5.2"}},"filled-array":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/filled-array/download/filled-array-1.1.0.tgz","integrity":"sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q="},"finalhandler":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz","integrity":"sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=","requires":{"debug":"2.6.9","encodeurl":"~1.0.1","escape-html":"~1.0.3","on-finished":"~2.3.0","parseurl":"~1.3.2","statuses":"~1.3.1","unpipe":"~1.0.0"}},"find-cache-dir":{"version":"2.1.0","resolved":"https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz","integrity":"sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==","requires":{"commondir":"^1.0.1","make-dir":"^2.0.0","pkg-dir":"^3.0.0"},"dependencies":{"find-up":{"version":"3.0.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz","integrity":"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==","requires":{"locate-path":"^3.0.0"}},"locate-path":{"version":"3.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz","integrity":"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==","requires":{"p-locate":"^3.0.0","path-exists":"^3.0.0"}},"p-limit":{"version":"2.2.1","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz","integrity":"sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==","requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"3.0.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz","integrity":"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==","requires":{"p-limit":"^2.0.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz","integrity":"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="},"pkg-dir":{"version":"3.0.0","resolved":"https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz","integrity":"sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==","requires":{"find-up":"^3.0.0"}}}},"find-replace":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/find-replace/download/find-replace-3.0.0.tgz","integrity":"sha1-Pn4j07BRZ6dvdwyfvVJYsN72jDg=","dev":true,"requires":{"array-back":"^3.0.1"},"dependencies":{"array-back":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/array-back/download/array-back-3.1.0.tgz","integrity":"sha1-uIWdelCIccmnss9C+ZQo9l6Wv7A=","dev":true}}},"find-up":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz","integrity":"sha1-RdG35QbHF93UgndaK3eSCjwMV6c=","requires":{"locate-path":"^2.0.0"}},"find-versions":{"version":"3.2.0","resolved":"https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz","integrity":"sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==","dev":true,"requires":{"semver-regex":"^2.0.0"}},"flat-cache":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz","integrity":"sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=","dev":true,"requires":{"flatted":"^2.0.0","rimraf":"2.6.3","write":"1.0.3"}},"flatted":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/flatted/download/flatted-2.0.0.tgz","integrity":"sha1-VRIrZTbqSWtLRIk+4mCBQdENmRY=","dev":true},"flushwritable":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/flushwritable/download/flushwritable-1.0.0.tgz","integrity":"sha1-PjKNj95BKtR+c44751C00pAENJg=","dev":true},"for-in":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz","integrity":"sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="},"for-own":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz","integrity":"sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=","dev":true,"requires":{"for-in":"^1.0.1"}},"forever-agent":{"version":"0.6.1","resolved":"http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz","integrity":"sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=","dev":true},"form-data":{"version":"2.3.3","resolved":"http://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz","integrity":"sha1-3M5SwF9kTymManq5Nr1yTO/786Y=","dev":true,"requires":{"asynckit":"^0.4.0","combined-stream":"^1.0.6","mime-types":"^2.1.12"}},"fragment-cache":{"version":"0.2.1","resolved":"http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz","integrity":"sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=","requires":{"map-cache":"^0.2.2"}},"fresh":{"version":"0.5.2","resolved":"http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz","integrity":"sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="},"fs-constants":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/fs-constants/download/fs-constants-1.0.0.tgz","integrity":"sha1-a+Dem+mYzhavivwkSXue6bfM2a0=","dev":true},"fs-extra":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/fs-extra/download/fs-extra-1.0.0.tgz","integrity":"sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^2.1.0","klaw":"^1.0.0"}},"fs-then-native":{"version":"2.0.0","resolved":"https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz","integrity":"sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=","dev":true},"fs.realpath":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz","integrity":"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="},"fsevents":{"version":"2.1.2","resolved":"https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.2.tgz?cache=0&sync_timestamp=1573319284429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.2.tgz","integrity":"sha1-TAofs0vGjlQ7S4Kp7Dkr+9qECAU=","optional":true},"function-bind":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz","integrity":"sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=","dev":true},"functional-red-black-tree":{"version":"1.0.1","resolved":"https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz","integrity":"sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=","dev":true},"gauge":{"version":"1.2.7","resolved":"http://registry.npm.taobao.org/gauge/download/gauge-1.2.7.tgz","integrity":"sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=","requires":{"ansi":"^0.3.0","has-unicode":"^2.0.0","lodash.pad":"^4.1.0","lodash.padend":"^4.1.0","lodash.padstart":"^4.1.0"}},"get-caller-file":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz","integrity":"sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o="},"get-ready":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/get-ready/download/get-ready-1.0.0.tgz","integrity":"sha1-+RgX8emt7P6hOlYq38jeiDqzR4I=","dev":true},"get-stream":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz","integrity":"sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="},"get-value":{"version":"2.0.6","resolved":"http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz","integrity":"sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="},"getpass":{"version":"0.1.7","resolved":"http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz","integrity":"sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=","dev":true,"requires":{"assert-plus":"^1.0.0"}},"gl-react":{"version":"2.3.1","resolved":"http://registry.npm.taobao.org/gl-react/download/gl-react-2.3.1.tgz","integrity":"sha1-ShU+uoCtkmpUdOi1YV8SsCiLbck=","requires":{"invariant":"2.2.1","prop-types":"^15.5.10"}},"gl-react-blur":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/gl-react-blur/download/gl-react-blur-2.0.1.tgz","integrity":"sha1-1WrE/umoI6CXdlaPW0VKu0XIU0c=","requires":{"prop-types":"^15.6.0"}},"gl-react-native":{"version":"2.57.0","resolved":"https://registry.npmjs.org/gl-react-native/-/gl-react-native-2.57.0.tgz","integrity":"sha512-GiZxcjSsMUZ6KwVC7LOpOxzxRWMH1GsiYZ2+RSKwjbNtw3DElh9FOIgiMwSiaMINuYwVNrO6qQRQF9iq2uSHjA==","requires":{"invariant":"2.2.0"},"dependencies":{"invariant":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/invariant/download/invariant-2.2.0.tgz","integrity":"sha1-yNfoRzZqScwYtiLwWKaJ1IHolfI=","requires":{"loose-envify":"^1.0.0"}}}},"glob":{"version":"7.1.3","resolved":"http://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz","integrity":"sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=","requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.4","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"glob-base":{"version":"0.3.0","resolved":"http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz","integrity":"sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=","dev":true,"requires":{"glob-parent":"^2.0.0","is-glob":"^2.0.0"}},"glob-parent":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz","integrity":"sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=","dev":true,"requires":{"is-glob":"^2.0.0"}},"global":{"version":"4.3.2","resolved":"http://registry.npm.taobao.org/global/download/global-4.3.2.tgz","integrity":"sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=","dev":true,"requires":{"min-document":"^2.19.0","process":"~0.5.1"}},"globals":{"version":"9.18.0","resolved":"http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz","integrity":"sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo="},"got":{"version":"5.7.1","resolved":"http://registry.npm.taobao.org/got/download/got-5.7.1.tgz","integrity":"sha1-X4FjWmHkplifGAVp6k44FoClHzU=","requires":{"create-error-class":"^3.0.1","duplexer2":"^0.1.4","is-redirect":"^1.0.0","is-retry-allowed":"^1.0.0","is-stream":"^1.0.0","lowercase-keys":"^1.0.0","node-status-codes":"^1.0.0","object-assign":"^4.0.1","parse-json":"^2.1.0","pinkie-promise":"^2.0.0","read-all-stream":"^3.0.0","readable-stream":"^2.0.5","timed-out":"^3.0.0","unzip-response":"^1.0.2","url-parse-lax":"^1.0.0"}},"graceful-fs":{"version":"4.1.15","resolved":"http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.15.tgz","integrity":"sha1-/7cD4QZuig7qpMi4C6klPu77+wA="},"growly":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz","integrity":"sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE="},"gud":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/gud/download/gud-1.0.0.tgz","integrity":"sha1-pIlYGxfmpwvsqavjrlfeekmYUsA="},"handlebars":{"version":"4.1.2","resolved":"http://registry.npm.taobao.org/handlebars/download/handlebars-4.1.2.tgz","integrity":"sha1-trN8HO0DBrIh4JT8eso+wjsTG2c=","dev":true,"requires":{"neo-async":"^2.6.0","optimist":"^0.6.1","source-map":"^0.6.1","uglify-js":"^3.1.4"},"dependencies":{"source-map":{"version":"0.6.1","resolved":"http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz","integrity":"sha1-dHIq8y6WFOnCh6jQu95IteLxomM=","dev":true},"uglify-js":{"version":"3.5.4","resolved":"http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.5.4.tgz","integrity":"sha1-SmTVf1kOIKiYugV/g43N+2epObk=","dev":true,"optional":true,"requires":{"commander":"~2.20.0","source-map":"~0.6.1"}}}},"har-schema":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz","integrity":"sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=","dev":true},"har-validator":{"version":"5.1.3","resolved":"http://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz","integrity":"sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=","dev":true,"requires":{"ajv":"^6.5.5","har-schema":"^2.0.0"}},"has":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/has/download/has-1.0.3.tgz","integrity":"sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=","dev":true,"requires":{"function-bind":"^1.1.1"}},"has-ansi":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz","integrity":"sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=","requires":{"ansi-regex":"^2.0.0"}},"has-flag":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz","integrity":"sha1-tdRU3CGZriJWmfNGfloH87lVuv0="},"has-symbols":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz","integrity":"sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=","dev":true},"has-unicode":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz","integrity":"sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="},"has-value":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz","integrity":"sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=","requires":{"get-value":"^2.0.6","has-values":"^1.0.0","isobject":"^3.0.0"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"has-values":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz","integrity":"sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=","requires":{"is-number":"^3.0.0","kind-of":"^4.0.0"},"dependencies":{"is-number":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"kind-of":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz","integrity":"sha1-IIE989cSkosgc3hpGkUGb65y3Vc=","requires":{"is-buffer":"^1.1.5"}}}},"hermes-engine":{"version":"0.2.1","resolved":"https://registry.npm.taobao.org/hermes-engine/download/hermes-engine-0.2.1.tgz","integrity":"sha1-JcDx/4UlEqkstcXMR8+Wfh5yLqI="},"hoist-non-react-statics":{"version":"2.5.5","resolved":"http://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-2.5.5.tgz","integrity":"sha1-xZA89AnA39kI84jmGdhrnBF0y0c="},"home-or-tmp":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz","integrity":"sha1-42w/LSyufXRqhX440Y1fMqeILbg=","dev":true,"requires":{"os-homedir":"^1.0.0","os-tmpdir":"^1.0.1"}},"hosted-git-info":{"version":"2.7.1","resolved":"http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz","integrity":"sha1-l/I2l3vW4SVAiTD/bePuxigewEc="},"http-errors":{"version":"1.7.3","resolved":"https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz","integrity":"sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==","requires":{"depd":"~1.1.2","inherits":"2.0.4","setprototypeof":"1.1.1","statuses":">= 1.5.0 < 2","toidentifier":"1.0.0"},"dependencies":{"inherits":{"version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="},"statuses":{"version":"1.5.0","resolved":"http://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz","integrity":"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="}}},"http-signature":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz","integrity":"sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=","dev":true,"requires":{"assert-plus":"^1.0.0","jsprim":"^1.2.2","sshpk":"^1.7.0"}},"husky":{"version":"4.2.5","resolved":"https://registry.npmjs.org/husky/-/husky-4.2.5.tgz","integrity":"sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==","dev":true,"requires":{"chalk":"^4.0.0","ci-info":"^2.0.0","compare-versions":"^3.6.0","cosmiconfig":"^6.0.0","find-versions":"^3.2.0","opencollective-postinstall":"^2.0.2","pkg-dir":"^4.2.0","please-upgrade-node":"^3.2.0","slash":"^3.0.0","which-pm-runs":"^1.0.0"},"dependencies":{"ansi-styles":{"version":"4.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz","integrity":"sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==","dev":true,"requires":{"@types/color-name":"^1.1.1","color-convert":"^2.0.1"}},"chalk":{"version":"4.0.0","resolved":"https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz","integrity":"sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==","dev":true,"requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}},"color-convert":{"version":"2.0.1","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","integrity":"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==","dev":true,"requires":{"color-name":"~1.1.4"}},"color-name":{"version":"1.1.4","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","integrity":"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==","dev":true},"cosmiconfig":{"version":"6.0.0","resolved":"https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz","integrity":"sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==","dev":true,"requires":{"@types/parse-json":"^4.0.0","import-fresh":"^3.1.0","parse-json":"^5.0.0","path-type":"^4.0.0","yaml":"^1.7.2"}},"find-up":{"version":"4.1.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz","integrity":"sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==","dev":true,"requires":{"locate-path":"^5.0.0","path-exists":"^4.0.0"}},"has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==","dev":true},"import-fresh":{"version":"3.2.1","resolved":"https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz","integrity":"sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==","dev":true,"requires":{"parent-module":"^1.0.0","resolve-from":"^4.0.0"}},"locate-path":{"version":"5.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz","integrity":"sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==","dev":true,"requires":{"p-locate":"^4.1.0"}},"p-limit":{"version":"2.3.0","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz","integrity":"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==","dev":true,"requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"4.1.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz","integrity":"sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==","dev":true,"requires":{"p-limit":"^2.2.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz","integrity":"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==","dev":true},"parse-json":{"version":"5.0.0","resolved":"https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz","integrity":"sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==","dev":true,"requires":{"@babel/code-frame":"^7.0.0","error-ex":"^1.3.1","json-parse-better-errors":"^1.0.1","lines-and-columns":"^1.1.6"}},"path-exists":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz","integrity":"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==","dev":true},"path-type":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz","integrity":"sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==","dev":true},"pkg-dir":{"version":"4.2.0","resolved":"https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz","integrity":"sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==","dev":true,"requires":{"find-up":"^4.0.0"}},"slash":{"version":"3.0.0","resolved":"https://registry.npmjs.org/slash/-/slash-3.0.0.tgz","integrity":"sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==","dev":true},"supports-color":{"version":"7.1.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz","integrity":"sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==","dev":true,"requires":{"has-flag":"^4.0.0"}}}},"i":{"version":"0.3.6","resolved":"https://registry.npmjs.org/i/-/i-0.3.6.tgz","integrity":"sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=","dev":true},"iconv-lite":{"version":"0.4.24","resolved":"http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz","integrity":"sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=","requires":{"safer-buffer":">= 2.1.2 < 3"}},"ieee754":{"version":"1.1.13","resolved":"http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz","integrity":"sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q="},"ignore":{"version":"4.0.6","resolved":"http://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz","integrity":"sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=","dev":true},"image-size":{"version":"0.6.3","resolved":"http://registry.npm.taobao.org/image-size/download/image-size-0.6.3.tgz","integrity":"sha1-5+XGW7U0vXzc7dbLUWYnKoX3X7I="},"import-fresh":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/import-fresh/download/import-fresh-3.0.0.tgz","integrity":"sha1-o9iX9CDKsOZxI2iX91vBS0iFw5A=","dev":true,"requires":{"parent-module":"^1.0.0","resolve-from":"^4.0.0"}},"imurmurhash":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz","integrity":"sha1-khi5srkoojixPcT7a21XbyMUU+o="},"inflight":{"version":"1.0.6","resolved":"http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz","integrity":"sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=","requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.3","resolved":"http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz","integrity":"sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="},"ini":{"version":"1.3.5","resolved":"http://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz","integrity":"sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc="},"inquirer":{"version":"3.3.0","resolved":"https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz","integrity":"sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==","requires":{"ansi-escapes":"^3.0.0","chalk":"^2.0.0","cli-cursor":"^2.1.0","cli-width":"^2.0.0","external-editor":"^2.0.4","figures":"^2.0.0","lodash":"^4.3.0","mute-stream":"0.0.7","run-async":"^2.2.0","rx-lite":"^4.0.8","rx-lite-aggregates":"^4.0.8","string-width":"^2.1.0","strip-ansi":"^4.0.0","through":"^2.3.6"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"strip-ansi":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","requires":{"ansi-regex":"^3.0.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"intl":{"version":"1.2.5","resolved":"http://registry.npm.taobao.org/intl/download/intl-1.2.5.tgz","integrity":"sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94="},"intl-messageformat":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/intl-messageformat/download/intl-messageformat-2.2.0.tgz","integrity":"sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=","requires":{"intl-messageformat-parser":"1.4.0"}},"intl-messageformat-parser":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/intl-messageformat-parser/download/intl-messageformat-parser-1.4.0.tgz","integrity":"sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU="},"invariant":{"version":"2.2.1","resolved":"http://registry.npm.taobao.org/invariant/download/invariant-2.2.1.tgz","integrity":"sha1-sJcBBUdmjH4zcCjr6Bbr42yKjVQ=","requires":{"loose-envify":"^1.0.0"}},"invert-kv":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz","integrity":"sha1-EEqOSqym09jNFXqO+L+rLXo//bY="},"is-accessor-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-arguments":{"version":"1.0.4","resolved":"https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz","integrity":"sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==","dev":true},"is-arrayish":{"version":"0.2.1","resolved":"http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz","integrity":"sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="},"is-buffer":{"version":"1.1.6","resolved":"http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz","integrity":"sha1-76ouqdqg16suoTqXsritUf776L4="},"is-callable":{"version":"1.1.4","resolved":"http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz","integrity":"sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=","dev":true},"is-ci":{"version":"2.0.0","resolved":"https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz","integrity":"sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==","requires":{"ci-info":"^2.0.0"}},"is-data-descriptor":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-date-object":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz","integrity":"sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=","dev":true},"is-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"},"dependencies":{"kind-of":{"version":"5.1.0","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="}}},"is-directory":{"version":"0.3.1","resolved":"https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz","integrity":"sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="},"is-dotfile":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz","integrity":"sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=","dev":true},"is-equal-shallow":{"version":"0.1.3","resolved":"http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz","integrity":"sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=","dev":true,"requires":{"is-primitive":"^2.0.0"}},"is-extendable":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz","integrity":"sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="},"is-extglob":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz","integrity":"sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=","dev":true},"is-finite":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz","integrity":"sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=","requires":{"number-is-nan":"^1.0.0"}},"is-fullwidth-code-point":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz","integrity":"sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="},"is-glob":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz","integrity":"sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=","dev":true,"requires":{"is-extglob":"^1.0.0"}},"is-npm":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz","integrity":"sha1-8vtjpl5JBbQGyGBydloaTceTufQ="},"is-number":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz","integrity":"sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=","dev":true,"requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"is-obj":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz","integrity":"sha1-PkcprB9f3gJc19g6iW2rn09n2w8="},"is-plain-object":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz","integrity":"sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=","requires":{"isobject":"^3.0.1"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"is-posix-bracket":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz","integrity":"sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=","dev":true},"is-primitive":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz","integrity":"sha1-IHurkWOEmcB7Kt8kCkGochADRXU=","dev":true},"is-promise":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz","integrity":"sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="},"is-redirect":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz","integrity":"sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="},"is-regex":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz","integrity":"sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=","dev":true,"requires":{"has":"^1.0.1"}},"is-retry-allowed":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/is-retry-allowed/download/is-retry-allowed-1.1.0.tgz","integrity":"sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="},"is-stream":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz","integrity":"sha1-EtSj3U5o4Lec6428hBc66A2RykQ="},"is-symbol":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz","integrity":"sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=","dev":true,"requires":{"has-symbols":"^1.0.0"}},"is-typedarray":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz","integrity":"sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=","dev":true},"is-windows":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz","integrity":"sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0="},"is-wsl":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz","integrity":"sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="},"isarray":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz","integrity":"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="},"isexe":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz","integrity":"sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="},"isobject":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz","integrity":"sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=","dev":true,"requires":{"isarray":"1.0.0"}},"isomorphic-fetch":{"version":"2.2.1","resolved":"http://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz","integrity":"sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=","requires":{"node-fetch":"^1.0.1","whatwg-fetch":">=0.10.0"}},"isstream":{"version":"0.1.2","resolved":"http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz","integrity":"sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=","dev":true},"jest-docblock":{"version":"22.4.0","resolved":"http://registry.npm.taobao.org/jest-docblock/download/jest-docblock-22.4.0.tgz","integrity":"sha1-2/GHfiVQBwz8TZsHpVd1oEgxWbg=","dev":true,"requires":{"detect-newline":"^2.1.0"}},"jest-get-type":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz","integrity":"sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q=="},"jest-haste-map":{"version":"22.4.2","resolved":"http://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-22.4.2.tgz","integrity":"sha1-qQF45mFG1DeLsHY0WpSQcfOwFbQ=","dev":true,"requires":{"fb-watchman":"^2.0.0","graceful-fs":"^4.1.11","jest-docblock":"^22.4.0","jest-serializer":"^22.4.0","jest-worker":"^22.2.2","micromatch":"^2.3.11","sane":"^2.0.0"}},"jest-message-util":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz","integrity":"sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==","requires":{"@babel/code-frame":"^7.0.0","@jest/test-result":"^24.9.0","@jest/types":"^24.9.0","@types/stack-utils":"^1.0.1","chalk":"^2.0.1","micromatch":"^3.1.10","slash":"^2.0.0","stack-utils":"^1.0.1"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"array-unique":{"version":"0.3.2","resolved":"https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"braces":{"version":"2.3.2","resolved":"https://registry.npmjs.org/braces/-/braces-2.3.2.tgz","integrity":"sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"expand-brackets":{"version":"2.1.4","resolved":"https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz","integrity":"sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz","integrity":"sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="}}},"extglob":{"version":"2.0.4","resolved":"https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz","integrity":"sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fill-range":{"version":"4.0.0","resolved":"https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz","integrity":"sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz","integrity":"sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz","integrity":"sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"micromatch":{"version":"3.1.10","resolved":"https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz","integrity":"sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}},"slash":{"version":"2.0.0","resolved":"https://registry.npmjs.org/slash/-/slash-2.0.0.tgz","integrity":"sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"jest-mock":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz","integrity":"sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==","requires":{"@jest/types":"^24.9.0"}},"jest-serializer":{"version":"22.4.3","resolved":"http://registry.npm.taobao.org/jest-serializer/download/jest-serializer-22.4.3.tgz","integrity":"sha1-pnm4Gn8RHkdmI19PDEbSMO4PdDY=","dev":true},"jest-util":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz","integrity":"sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==","requires":{"@jest/console":"^24.9.0","@jest/fake-timers":"^24.9.0","@jest/source-map":"^24.9.0","@jest/test-result":"^24.9.0","@jest/types":"^24.9.0","callsites":"^3.0.0","chalk":"^2.0.1","graceful-fs":"^4.1.15","is-ci":"^2.0.0","mkdirp":"^0.5.1","slash":"^2.0.0","source-map":"^0.6.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"slash":{"version":"2.0.0","resolved":"https://registry.npmjs.org/slash/-/slash-2.0.0.tgz","integrity":"sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="},"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"jest-validate":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz","integrity":"sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==","requires":{"@jest/types":"^24.9.0","camelcase":"^5.3.1","chalk":"^2.0.1","jest-get-type":"^24.9.0","leven":"^3.1.0","pretty-format":"^24.9.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"camelcase":{"version":"5.3.1","resolved":"https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz","integrity":"sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"jest-worker":{"version":"22.2.2","resolved":"http://registry.npm.taobao.org/jest-worker/download/jest-worker-22.2.2.tgz","integrity":"sha1-wfXcOZdohLgfaOxQy4UyssurM5A=","dev":true,"requires":{"merge-stream":"^1.0.1"}},"jetifier":{"version":"1.6.4","resolved":"https://registry.npmjs.org/jetifier/-/jetifier-1.6.4.tgz","integrity":"sha512-+f/4OLeqY8RAmXnonI1ffeY1DR8kMNJPhv5WMFehchf7U71cjMQVKkOz1n6asz6kfVoAqKNWJz1A/18i18AcXA=="},"js-tokens":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz","integrity":"sha1-GSA/tZmR35jjoocFDUZHzerzJJk="},"js-yaml":{"version":"3.13.1","resolved":"http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz","integrity":"sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=","requires":{"argparse":"^1.0.7","esprima":"^4.0.0"}},"js2xmlparser":{"version":"4.0.1","resolved":"https://registry.npm.taobao.org/js2xmlparser/download/js2xmlparser-4.0.1.tgz","integrity":"sha1-Zw73G8VmHwicyQSBuZoFoSJ6470=","requires":{"xmlcreate":"^2.0.3"}},"jsbn":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz","integrity":"sha1-peZUwuWi3rXyAdls77yoDA7y9RM=","dev":true},"jsc-android":{"version":"245459.0.0","resolved":"https://registry.npm.taobao.org/jsc-android/download/jsc-android-245459.0.0.tgz","integrity":"sha1-5YQljdCwTJFZon+xBM1dSR/SAsk="},"jsdoc":{"version":"3.6.3","resolved":"https://registry.npm.taobao.org/jsdoc/download/jsdoc-3.6.3.tgz","integrity":"sha1-3M6pfQ5i1j0wa4s+0VJxc7XiGQ0=","requires":{"@babel/parser":"^7.4.4","bluebird":"^3.5.4","catharsis":"^0.8.11","escape-string-regexp":"^2.0.0","js2xmlparser":"^4.0.0","klaw":"^3.0.0","markdown-it":"^8.4.2","markdown-it-anchor":"^5.0.2","marked":"^0.7.0","mkdirp":"^0.5.1","requizzle":"^0.2.3","strip-json-comments":"^3.0.1","taffydb":"2.6.2","underscore":"~1.9.1"},"dependencies":{"@babel/parser":{"version":"7.8.8","resolved":"https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.8.8.tgz?cache=0&sync_timestamp=1584039533516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.8.8.tgz","integrity":"sha1-TDt8422zfgYpvh8NUKVx0vhvbNQ="},"escape-string-regexp":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz","integrity":"sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q="},"klaw":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/klaw/download/klaw-3.0.0.tgz","integrity":"sha1-sRvsnPJJLwZ1bW6Amrc6KRAlkUY=","requires":{"graceful-fs":"^4.1.9"}},"marked":{"version":"0.7.0","resolved":"https://registry.npm.taobao.org/marked/download/marked-0.7.0.tgz?cache=0&sync_timestamp=1580358845415&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarked%2Fdownload%2Fmarked-0.7.0.tgz","integrity":"sha1-tkIB8FHScbHtwQoE0a6bdLuOXA4="},"strip-json-comments":{"version":"3.0.1","resolved":"https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.0.1.tgz","integrity":"sha1-hXE5dakfuHvxswXMp3OV5A0qZKc="}}},"jsdoc-api":{"version":"4.0.3","resolved":"http://registry.npm.taobao.org/jsdoc-api/download/jsdoc-api-4.0.3.tgz","integrity":"sha1-+HNXhWNJoL5AoD5kcRw0x0dUuiA=","dev":true,"requires":{"array-back":"^2.0.0","cache-point":"^0.4.1","collect-all":"^1.0.3","file-set":"^2.0.0","fs-then-native":"^2.0.0","jsdoc":"~3.5.5","object-to-spawn-args":"^1.1.1","temp-path":"^1.0.0","walk-back":"^3.0.0"},"dependencies":{"babylon":{"version":"7.0.0-beta.19","resolved":"https://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.19.tgz","integrity":"sha1-6SjH6AfpcOBTaweKs+DEj54FJQM=","dev":true},"bluebird":{"version":"3.5.5","resolved":"https://registry.npm.taobao.org/bluebird/download/bluebird-3.5.5.tgz","integrity":"sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=","dev":true},"js2xmlparser":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/js2xmlparser/download/js2xmlparser-3.0.0.tgz","integrity":"sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=","dev":true,"requires":{"xmlcreate":"^1.0.1"}},"jsdoc":{"version":"3.5.5","resolved":"https://registry.npm.taobao.org/jsdoc/download/jsdoc-3.5.5.tgz","integrity":"sha1-SEUhsSboGQTWMv+D7JqqCWcI+k0=","dev":true,"requires":{"babylon":"7.0.0-beta.19","bluebird":"~3.5.0","catharsis":"~0.8.9","escape-string-regexp":"~1.0.5","js2xmlparser":"~3.0.0","klaw":"~2.0.0","marked":"~0.3.6","mkdirp":"~0.5.1","requizzle":"~0.2.1","strip-json-comments":"~2.0.1","taffydb":"2.6.2","underscore":"~1.8.3"}},"klaw":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/klaw/download/klaw-2.0.0.tgz","integrity":"sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=","dev":true,"requires":{"graceful-fs":"^4.1.9"}},"underscore":{"version":"1.8.3","resolved":"https://registry.npm.taobao.org/underscore/download/underscore-1.8.3.tgz","integrity":"sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=","dev":true},"xmlcreate":{"version":"1.0.2","resolved":"https://registry.npm.taobao.org/xmlcreate/download/xmlcreate-1.0.2.tgz","integrity":"sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=","dev":true}}},"jsdoc-parse":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/jsdoc-parse/download/jsdoc-parse-3.0.1.tgz","integrity":"sha1-EZTWoWot++X7jMz+tQWOqAh1mJM=","dev":true,"requires":{"array-back":"^2.0.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","reduce-extract":"^1.0.0","sort-array":"^2.0.0","test-value":"^3.0.0"}},"jsdoc-to-markdown":{"version":"4.0.1","resolved":"http://registry.npm.taobao.org/jsdoc-to-markdown/download/jsdoc-to-markdown-4.0.1.tgz","integrity":"sha1-JH99l37MIJQoly7JLKFL1OYQNV0=","dev":true,"requires":{"array-back":"^2.0.0","command-line-tool":"^0.8.0","config-master":"^3.1.0","dmd":"^3.0.10","jsdoc-api":"^4.0.1","jsdoc-parse":"^3.0.1","walk-back":"^3.0.0"}},"jsesc":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz","integrity":"sha1-RsP+yMGJKxKwgz25vHYiF226s0s=","dev":true},"json-parse-better-errors":{"version":"1.0.2","resolved":"https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz","integrity":"sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="},"json-schema":{"version":"0.2.3","resolved":"http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz","integrity":"sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=","dev":true},"json-schema-traverse":{"version":"0.4.1","resolved":"http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz","integrity":"sha1-afaofZUTq4u4/mO9sJecRI5oRmA=","dev":true},"json-stable-stringify":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz","integrity":"sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=","requires":{"jsonify":"~0.0.0"}},"json-stable-stringify-without-jsonify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz","integrity":"sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=","dev":true},"json-stringify-safe":{"version":"5.0.1","resolved":"http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz","integrity":"sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=","dev":true},"json5":{"version":"0.5.1","resolved":"http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz","integrity":"sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=","dev":true},"jsonfile":{"version":"2.4.0","resolved":"http://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz","integrity":"sha1-NzaitCi4e72gzIO1P6PWM6NcKug=","requires":{"graceful-fs":"^4.1.6"}},"jsonify":{"version":"0.0.0","resolved":"http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz","integrity":"sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="},"jsprim":{"version":"1.4.1","resolved":"http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz","integrity":"sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=","dev":true,"requires":{"assert-plus":"1.0.0","extsprintf":"1.3.0","json-schema":"0.2.3","verror":"1.10.0"}},"jsx-ast-utils":{"version":"2.0.1","resolved":"https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz","integrity":"sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=","dev":true,"requires":{"array-includes":"^3.0.3"}},"keymirror":{"version":"0.1.1","resolved":"https://registry.npm.taobao.org/keymirror/download/keymirror-0.1.1.tgz","integrity":"sha1-kYiJ6hP40KQufFVyUO7nE63JXDU="},"kind-of":{"version":"6.0.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz","integrity":"sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="},"klaw":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/klaw/download/klaw-1.3.1.tgz","integrity":"sha1-QIhDO0azsbolnXh4XY6W9zugJDk=","requires":{"graceful-fs":"^4.1.9"}},"latest-version":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/latest-version/download/latest-version-2.0.0.tgz","integrity":"sha1-VvjWE5YghHuAF/jx9NeOIRMkFos=","requires":{"package-json":"^2.0.0"}},"lcid":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz","integrity":"sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=","requires":{"invert-kv":"^1.0.0"}},"left-pad":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/left-pad/download/left-pad-1.3.0.tgz","integrity":"sha1-W4o6d2Xf4AEmHd6RVYnngvjJTR4=","dev":true},"leven":{"version":"3.1.0","resolved":"https://registry.npmjs.org/leven/-/leven-3.1.0.tgz","integrity":"sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="},"levn":{"version":"0.3.0","resolved":"http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz","integrity":"sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=","dev":true,"requires":{"prelude-ls":"~1.1.2","type-check":"~0.3.2"}},"lines-and-columns":{"version":"1.1.6","resolved":"https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz","integrity":"sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=","dev":true},"linkify-it":{"version":"2.2.0","resolved":"https://registry.npm.taobao.org/linkify-it/download/linkify-it-2.2.0.tgz","integrity":"sha1-47VGl+eL+RXHCjis14/QngBYsc8=","requires":{"uc.micro":"^1.0.1"}},"load-json-file":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz","integrity":"sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=","requires":{"graceful-fs":"^4.1.2","parse-json":"^2.2.0","pify":"^2.0.0","strip-bom":"^3.0.0"}},"locate-path":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz","integrity":"sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=","requires":{"p-locate":"^2.0.0","path-exists":"^3.0.0"}},"lodash":{"version":"4.17.11","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz","integrity":"sha1-s56mIp72B+zYniyN8SU2iRysm40="},"lodash-node":{"version":"2.4.1","resolved":"http://registry.npm.taobao.org/lodash-node/download/lodash-node-2.4.1.tgz","integrity":"sha1-6oL3sQDHM9GkKvdoAeUGEF4qgOw="},"lodash.camelcase":{"version":"4.3.0","resolved":"https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz","integrity":"sha1-soqmKIorn8ZRA1x3EfZathkDMaY=","dev":true},"lodash.omit":{"version":"4.5.0","resolved":"https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz","integrity":"sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=","dev":true},"lodash.pad":{"version":"4.5.1","resolved":"http://registry.npm.taobao.org/lodash.pad/download/lodash.pad-4.5.1.tgz","integrity":"sha1-QzCUmoM6fI2iLMIPaibE1Z3runA="},"lodash.padend":{"version":"4.6.1","resolved":"http://registry.npm.taobao.org/lodash.padend/download/lodash.padend-4.6.1.tgz","integrity":"sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="},"lodash.padstart":{"version":"4.6.1","resolved":"http://registry.npm.taobao.org/lodash.padstart/download/lodash.padstart-4.6.1.tgz","integrity":"sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs="},"lodash.pick":{"version":"4.4.0","resolved":"https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz","integrity":"sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=","dev":true},"lodash.range":{"version":"3.2.0","resolved":"https://registry.npmjs.org/lodash.range/-/lodash.range-3.2.0.tgz","integrity":"sha1-9GHliPZmg/fq3q3lE+OKaaVloV0="},"lodash.throttle":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz","integrity":"sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="},"log-symbols":{"version":"2.2.0","resolved":"https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz","integrity":"sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==","requires":{"chalk":"^2.0.1"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"logkitty":{"version":"0.6.1","resolved":"https://registry.npmjs.org/logkitty/-/logkitty-0.6.1.tgz","integrity":"sha512-cHuXN8qUZuzX/7kB6VyS7kB4xyD24e8gyHXIFNhIv+fjW3P+jEXNUhj0o/7qWJtv7UZpbnPgUqzu/AZQ8RAqxQ==","requires":{"ansi-fragments":"^0.2.1","dayjs":"^1.8.15","yargs":"^12.0.5"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="},"camelcase":{"version":"5.3.1","resolved":"https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz","integrity":"sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="},"cliui":{"version":"4.1.0","resolved":"https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz","integrity":"sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==","requires":{"string-width":"^2.1.1","strip-ansi":"^4.0.0","wrap-ansi":"^2.0.0"}},"find-up":{"version":"3.0.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz","integrity":"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==","requires":{"locate-path":"^3.0.0"}},"invert-kv":{"version":"2.0.0","resolved":"https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz","integrity":"sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="},"lcid":{"version":"2.0.0","resolved":"https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz","integrity":"sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==","requires":{"invert-kv":"^2.0.0"}},"locate-path":{"version":"3.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz","integrity":"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==","requires":{"p-locate":"^3.0.0","path-exists":"^3.0.0"}},"mem":{"version":"4.3.0","resolved":"https://registry.npmjs.org/mem/-/mem-4.3.0.tgz","integrity":"sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==","requires":{"map-age-cleaner":"^0.1.1","mimic-fn":"^2.0.0","p-is-promise":"^2.0.0"}},"mimic-fn":{"version":"2.1.0","resolved":"https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz","integrity":"sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="},"os-locale":{"version":"3.1.0","resolved":"https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz","integrity":"sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==","requires":{"execa":"^1.0.0","lcid":"^2.0.0","mem":"^4.0.0"}},"p-limit":{"version":"2.2.1","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz","integrity":"sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==","requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"3.0.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz","integrity":"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==","requires":{"p-limit":"^2.0.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz","integrity":"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="},"strip-ansi":{"version":"4.0.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","requires":{"ansi-regex":"^3.0.0"}},"yargs":{"version":"12.0.5","resolved":"https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz","integrity":"sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==","requires":{"cliui":"^4.0.0","decamelize":"^1.2.0","find-up":"^3.0.0","get-caller-file":"^1.0.1","os-locale":"^3.0.0","require-directory":"^2.1.1","require-main-filename":"^1.0.1","set-blocking":"^2.0.0","string-width":"^2.0.0","which-module":"^2.0.0","y18n":"^3.2.1 || ^4.0.0","yargs-parser":"^11.1.1"}},"yargs-parser":{"version":"11.1.1","resolved":"https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz","integrity":"sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==","requires":{"camelcase":"^5.0.0","decamelize":"^1.2.0"}}}},"loose-envify":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz","integrity":"sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=","requires":{"js-tokens":"^3.0.0 || ^4.0.0"}},"lottie-ios":{"version":"2.5.3","resolved":"http://registry.npm.taobao.org/lottie-ios/download/lottie-ios-2.5.3.tgz","integrity":"sha1-v/hrZmL5JZQ5U10VSIlMJ0yeR28="},"lottie-react-native":{"version":"2.5.5","resolved":"http://registry.npm.taobao.org/lottie-react-native/download/lottie-react-native-2.5.5.tgz","integrity":"sha1-sJ3ROjbv6i8uXTVznfdxHgPOyVY=","requires":{"invariant":"^2.2.2","lottie-ios":"^2.5.0","prop-types":"^15.5.10","react-native-safe-module":"^1.1.0"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}}}},"lowercase-keys":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz","integrity":"sha1-b54wtHCE2XGnyCD/FabFFnt0wm8="},"lru-cache":{"version":"4.1.5","resolved":"http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz","integrity":"sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=","requires":{"pseudomap":"^1.0.2","yallist":"^2.1.2"}},"make-dir":{"version":"2.1.0","resolved":"https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz","integrity":"sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==","requires":{"pify":"^4.0.1","semver":"^5.6.0"},"dependencies":{"pify":{"version":"4.0.1","resolved":"https://registry.npmjs.org/pify/-/pify-4.0.1.tgz","integrity":"sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="}}},"makeerror":{"version":"1.0.11","resolved":"http://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz","integrity":"sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=","requires":{"tmpl":"1.0.x"}},"map-age-cleaner":{"version":"0.1.3","resolved":"https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz","integrity":"sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==","requires":{"p-defer":"^1.0.0"}},"map-cache":{"version":"0.2.2","resolved":"http://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz","integrity":"sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="},"map-visit":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz","integrity":"sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=","requires":{"object-visit":"^1.0.0"}},"markdown-it":{"version":"8.4.2","resolved":"https://registry.npm.taobao.org/markdown-it/download/markdown-it-8.4.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarkdown-it%2Fdownload%2Fmarkdown-it-8.4.2.tgz","integrity":"sha1-OG+YmY3BWjdyKqdyIIT0Agvdm1Q=","requires":{"argparse":"^1.0.7","entities":"~1.1.1","linkify-it":"^2.0.0","mdurl":"^1.0.1","uc.micro":"^1.0.5"}},"markdown-it-anchor":{"version":"5.2.5","resolved":"https://registry.npm.taobao.org/markdown-it-anchor/download/markdown-it-anchor-5.2.5.tgz","integrity":"sha1-2/E8/Nv/0WpRCYTxJj4dR5pH0no="},"marked":{"version":"0.3.19","resolved":"http://registry.npm.taobao.org/marked/download/marked-0.3.19.tgz","integrity":"sha1-XUf3CcTJ/Dwha21GEnKA9As515A=","dev":true},"math-random":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz","integrity":"sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=","dev":true},"mdurl":{"version":"1.0.1","resolved":"https://registry.npm.taobao.org/mdurl/download/mdurl-1.0.1.tgz","integrity":"sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="},"mem":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz","integrity":"sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=","requires":{"mimic-fn":"^1.0.0"}},"merge":{"version":"1.2.1","resolved":"http://registry.npm.taobao.org/merge/download/merge-1.2.1.tgz","integrity":"sha1-OL6/gMMiCopIe2/Ps5QbsRcgwUU="},"merge-stream":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz","integrity":"sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=","requires":{"readable-stream":"^2.0.1"}},"metro":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro/download/metro-0.28.0.tgz","integrity":"sha1-IpmclsMSloKnas1OHyrcF/fXfKw=","dev":true,"requires":{"@babel/core":"^7.0.0-beta","@babel/generator":"^7.0.0-beta","@babel/helper-remap-async-to-generator":"^7.0.0-beta","@babel/plugin-check-constants":"^7.0.0-beta","@babel/plugin-external-helpers":"^7.0.0-beta","@babel/plugin-proposal-class-properties":"^7.0.0-beta","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta","@babel/plugin-syntax-dynamic-import":"^7.0.0-beta","@babel/plugin-transform-arrow-functions":"^7.0.0-beta","@babel/plugin-transform-block-scoping":"^7.0.0-beta","@babel/plugin-transform-classes":"^7.0.0-beta","@babel/plugin-transform-computed-properties":"^7.0.0-beta","@babel/plugin-transform-destructuring":"^7.0.0-beta","@babel/plugin-transform-flow-strip-types":"^7.0.0-beta","@babel/plugin-transform-for-of":"^7.0.0-beta","@babel/plugin-transform-function-name":"^7.0.0-beta","@babel/plugin-transform-literals":"^7.0.0-beta","@babel/plugin-transform-modules-commonjs":"^7.0.0-beta","@babel/plugin-transform-object-assign":"^7.0.0-beta","@babel/plugin-transform-parameters":"^7.0.0-beta","@babel/plugin-transform-react-display-name":"^7.0.0-beta","@babel/plugin-transform-react-jsx":"^7.0.0-beta","@babel/plugin-transform-react-jsx-source":"^7.0.0-beta","@babel/plugin-transform-regenerator":"^7.0.0-beta","@babel/plugin-transform-shorthand-properties":"^7.0.0-beta","@babel/plugin-transform-spread":"^7.0.0-beta","@babel/plugin-transform-template-literals":"^7.0.0-beta","@babel/template":"^7.0.0-beta","@babel/traverse":"^7.0.0-beta","@babel/types":"^7.0.0-beta","absolute-path":"^0.0.0","async":"^2.4.0","babel-core":"^6.24.1","babel-generator":"^6.26.0","babel-plugin-external-helpers":"^6.22.0","babel-preset-es2015-node":"^6.1.1","babel-preset-fbjs":"^2.1.4","babel-preset-react-native":"^4.0.0","babel-register":"^6.24.1","babylon":"^6.18.0","chalk":"^1.1.1","concat-stream":"^1.6.0","connect":"^3.6.5","core-js":"^2.2.2","debug":"^2.2.0","denodeify":"^1.2.1","eventemitter3":"^3.0.0","fbjs":"^0.8.14","fs-extra":"^1.0.0","graceful-fs":"^4.1.3","image-size":"^0.6.0","jest-docblock":"22.4.0","jest-haste-map":"22.4.2","jest-worker":"22.2.2","json-stable-stringify":"^1.0.1","json5":"^0.4.0","left-pad":"^1.1.3","lodash.throttle":"^4.1.1","merge-stream":"^1.0.1","metro-babylon7":"0.28.0","metro-cache":"0.28.0","metro-core":"0.28.0","metro-minify-uglify":"0.28.0","metro-resolver":"0.28.0","metro-source-map":"0.28.0","mime-types":"2.1.11","mkdirp":"^0.5.1","request":"^2.79.0","rimraf":"^2.5.4","serialize-error":"^2.1.0","source-map":"^0.5.6","temp":"0.8.3","throat":"^4.1.0","wordwrap":"^1.0.0","write-file-atomic":"^1.2.0","ws":"^1.1.0","xpipe":"^1.0.5","yargs":"^9.0.0"},"dependencies":{"core-js":{"version":"2.6.5","resolved":"http://registry.npm.taobao.org/core-js/download/core-js-2.6.5.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.5.tgz","integrity":"sha1-RLyNJJ5/sv9dAOA0Gn/7lPv2eJU=","dev":true},"json5":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/json5/download/json5-0.4.0.tgz","integrity":"sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=","dev":true},"mime-db":{"version":"1.23.0","resolved":"http://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz","integrity":"sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=","dev":true},"mime-types":{"version":"2.1.11","resolved":"http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz","integrity":"sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=","dev":true,"requires":{"mime-db":"~1.23.0"}}}},"metro-babel-register":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-babel-register/download/metro-babel-register-0.56.4.tgz","integrity":"sha1-sMYnoc/dG912j4GveUgXVOgzqQI=","requires":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-proposal-optional-catch-binding":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-transform-async-to-generator":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/register":"^7.0.0","core-js":"^2.2.2","escape-string-regexp":"^1.0.5"},"dependencies":{"core-js":{"version":"2.6.11","resolved":"https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz","integrity":"sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="}}},"metro-babel-transformer":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-babel-transformer/download/metro-babel-transformer-0.56.4.tgz","integrity":"sha1-/h0NxgD8+QIBpb6k1CyuoQuAEFc=","requires":{"@babel/core":"^7.0.0","metro-source-map":"^0.56.4"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}}}},"metro-babylon7":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-babylon7/download/metro-babylon7-0.28.0.tgz","integrity":"sha1-z5cB/9wZktFWK0y2Z9lpIWSVDfQ=","dev":true,"requires":{"babylon":"^7.0.0-beta"},"dependencies":{"babylon":{"version":"7.0.0-beta.47","resolved":"http://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.47.tgz","integrity":"sha1-bR+kTwq+xBq3x4BIHmL9mq+96oA=","dev":true}}},"metro-cache":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-cache/download/metro-cache-0.28.0.tgz","integrity":"sha1-xRZKNhmF/AKUBZ/M306oJOMXPB0=","dev":true,"requires":{"jest-serializer":"^22.4.0","mkdirp":"^0.5.1"}},"metro-config":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-config/download/metro-config-0.56.4.tgz","integrity":"sha1-M4/YFl+6WUJM7EJ8GogXV5ReV+k=","requires":{"cosmiconfig":"^5.0.5","jest-validate":"^24.7.0","metro":"^0.56.4","metro-cache":"^0.56.4","metro-core":"^0.56.4","pretty-format":"^24.7.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"array-unique":{"version":"0.3.2","resolved":"https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha1-qiE8FDXiv/62/KhCKH71NK0F1c8="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz","integrity":"sha1-pgJHZOqGyOBqIteUyotpU00mNUE=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"braces":{"version":"2.3.2","resolved":"https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz","integrity":"sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"capture-exit":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz","integrity":"sha1-+5U7+uvreB9iiYI52rtCbQilCaQ=","requires":{"rsvp":"^4.8.4"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"core-js":{"version":"2.6.11","resolved":"https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz","integrity":"sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="},"exec-sh":{"version":"0.3.4","resolved":"https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.4.tgz","integrity":"sha1-OgGM61JsxvbfK7UEsr/o46STTsU="},"expand-brackets":{"version":"2.1.4","resolved":"https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="}}},"extglob":{"version":"2.0.4","resolved":"https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz","integrity":"sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fbjs":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/fbjs/download/fbjs-1.0.0.tgz","integrity":"sha1-UsIV4Ig6PIavKnp3btUVJa6OClo=","requires":{"core-js":"^2.4.1","fbjs-css-vars":"^1.0.0","isomorphic-fetch":"^2.1.1","loose-envify":"^1.0.0","object-assign":"^4.1.0","promise":"^7.1.1","setimmediate":"^1.0.5","ua-parser-js":"^0.7.18"}},"fill-range":{"version":"4.0.0","resolved":"https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fsevents":{"version":"1.2.13","resolved":"http://registry.npm.pt.mi.com/fsevents/download/fsevents-1.2.13.tgz","integrity":"sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=","optional":true,"requires":{"bindings":"^1.5.0","nan":"^2.12.1"}},"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"jest-haste-map":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.9.0.tgz","integrity":"sha1-s4pdZCdJNOIfpBeump++t3zqrH0=","requires":{"@jest/types":"^24.9.0","anymatch":"^2.0.0","fb-watchman":"^2.0.0","fsevents":"^1.2.7","graceful-fs":"^4.1.15","invariant":"^2.2.4","jest-serializer":"^24.9.0","jest-util":"^24.9.0","jest-worker":"^24.9.0","micromatch":"^3.1.10","sane":"^4.0.3","walker":"^1.0.7"}},"jest-serializer":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz","integrity":"sha1-5tfX75bTHouQeacUdUxdXFgojnM="},"jest-worker":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1566444249955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz","integrity":"sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=","requires":{"merge-stream":"^2.0.0","supports-color":"^6.1.0"},"dependencies":{"merge-stream":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz","integrity":"sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A="},"supports-color":{"version":"6.1.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz","integrity":"sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=","requires":{"has-flag":"^3.0.0"}}}},"metro":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro/download/metro-0.56.4.tgz","integrity":"sha1-vn4TgO5qw1UsJerYCY6rJhAp5Nc=","requires":{"@babel/core":"^7.0.0","@babel/generator":"^7.0.0","@babel/parser":"^7.0.0","@babel/plugin-external-helpers":"^7.0.0","@babel/template":"^7.0.0","@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","absolute-path":"^0.0.0","async":"^2.4.0","babel-preset-fbjs":"^3.1.2","buffer-crc32":"^0.2.13","chalk":"^2.4.1","concat-stream":"^1.6.0","connect":"^3.6.5","debug":"^2.2.0","denodeify":"^1.2.1","eventemitter3":"^3.0.0","fbjs":"^1.0.0","fs-extra":"^1.0.0","graceful-fs":"^4.1.3","image-size":"^0.6.0","invariant":"^2.2.4","jest-haste-map":"^24.7.1","jest-worker":"^24.6.0","json-stable-stringify":"^1.0.1","lodash.throttle":"^4.1.1","merge-stream":"^1.0.1","metro-babel-register":"^0.56.4","metro-babel-transformer":"^0.56.4","metro-cache":"^0.56.4","metro-config":"^0.56.4","metro-core":"^0.56.4","metro-inspector-proxy":"^0.56.4","metro-minify-uglify":"^0.56.4","metro-react-native-babel-preset":"^0.56.4","metro-resolver":"^0.56.4","metro-source-map":"^0.56.4","metro-symbolicate":"^0.56.4","mime-types":"2.1.11","mkdirp":"^0.5.1","node-fetch":"^2.2.0","nullthrows":"^1.1.0","resolve":"^1.5.0","rimraf":"^2.5.4","serialize-error":"^2.1.0","source-map":"^0.5.6","temp":"0.8.3","throat":"^4.1.0","wordwrap":"^1.0.0","write-file-atomic":"^1.2.0","ws":"^1.1.5","xpipe":"^1.0.5","yargs":"^9.0.0"}},"metro-cache":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-cache/download/metro-cache-0.56.4.tgz","integrity":"sha1-VC+fijX4+51VdvRv06tNT0KFGn4=","requires":{"jest-serializer":"^24.4.0","metro-core":"^0.56.4","mkdirp":"^0.5.1","rimraf":"^2.5.4"}},"metro-core":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-core/download/metro-core-0.56.4.tgz","integrity":"sha1-Z8xBs8C/ZunCMG9QI5oQgLHoIxI=","requires":{"jest-haste-map":"^24.7.1","lodash.throttle":"^4.1.1","metro-resolver":"^0.56.4","wordwrap":"^1.0.0"}},"metro-minify-uglify":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-minify-uglify/download/metro-minify-uglify-0.56.4.tgz","integrity":"sha1-E1id+x1DNDYIqst/eN38wFLapjw=","requires":{"uglify-es":"^3.1.9"}},"metro-resolver":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-resolver/download/metro-resolver-0.56.4.tgz","integrity":"sha1-mHb1e8o3/Rv8/9czVB4u5KifrX8=","requires":{"absolute-path":"^0.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}},"micromatch":{"version":"3.1.10","resolved":"https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz","integrity":"sha1-cIWbyVyYQJUvNZoGij/En57PrCM=","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}},"mime-db":{"version":"1.23.0","resolved":"https://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz","integrity":"sha1-oxtAcK2uon1zLqMzdApk0OyaZlk="},"mime-types":{"version":"2.1.11","resolved":"https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz","integrity":"sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=","requires":{"mime-db":"~1.23.0"}},"node-fetch":{"version":"2.6.0","resolved":"https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz","integrity":"sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0="},"rsvp":{"version":"4.8.5","resolved":"https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz","integrity":"sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ="},"sane":{"version":"4.1.0","resolved":"https://registry.npm.taobao.org/sane/download/sane-4.1.0.tgz","integrity":"sha1-7Ygf2SJzOmxGG8GJ3CtsAG8//e0=","requires":{"@cnakazawa/watch":"^1.0.3","anymatch":"^2.0.0","capture-exit":"^2.0.0","exec-sh":"^0.3.2","execa":"^1.0.0","fb-watchman":"^2.0.0","micromatch":"^3.1.4","minimist":"^1.1.1","walker":"~1.0.5"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}}}},"metro-core":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-core/download/metro-core-0.28.0.tgz","integrity":"sha1-4c7UzwfKj7UZam5cqFO12JPwYDg=","dev":true,"requires":{"lodash.throttle":"^4.1.1"}},"metro-inspector-proxy":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-inspector-proxy/download/metro-inspector-proxy-0.56.4.tgz","integrity":"sha1-c0P/PFkIr0/Znpa21kbiTpmBa+Q=","requires":{"connect":"^3.6.5","debug":"^2.2.0","rxjs":"^5.4.3","ws":"^1.1.5","yargs":"^9.0.0"},"dependencies":{"rxjs":{"version":"5.5.12","resolved":"https://registry.npm.taobao.org/rxjs/download/rxjs-5.5.12.tgz?cache=0&sync_timestamp=1577465700679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-5.5.12.tgz","integrity":"sha1-b6YbinfD15PbrycL7i9D9lLXQcw=","requires":{"symbol-observable":"1.0.1"}}}},"metro-minify-uglify":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-minify-uglify/download/metro-minify-uglify-0.28.0.tgz","integrity":"sha1-ya7Ljok0MNL9WOAM95nAC5ncD3k=","dev":true,"requires":{"uglify-es":"^3.1.9"}},"metro-react-native-babel-preset":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-react-native-babel-preset/download/metro-react-native-babel-preset-0.56.4.tgz","integrity":"sha1-3O3GS3/1wHNIOUWOcOsOvvbQY6g=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-export-default-from":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-proposal-optional-catch-binding":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-syntax-dynamic-import":"^7.0.0","@babel/plugin-syntax-export-default-from":"^7.0.0","@babel/plugin-syntax-flow":"^7.2.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-exponentiation-operator":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-assign":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-react-jsx-source":"^7.0.0","@babel/plugin-transform-regenerator":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-sticky-regex":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","@babel/plugin-transform-typescript":"^7.0.0","@babel/plugin-transform-unicode-regex":"^7.0.0","@babel/template":"^7.0.0","react-refresh":"^0.4.0"}},"metro-react-native-babel-transformer":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.56.4.tgz","integrity":"sha1-PG5ItgXDBTYu5iTkX/M4ZW41/B0=","requires":{"@babel/core":"^7.0.0","babel-preset-fbjs":"^3.1.2","metro-babel-transformer":"^0.56.4","metro-react-native-babel-preset":"^0.56.4","metro-source-map":"^0.56.4"},"dependencies":{"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha1-qiE8FDXiv/62/KhCKH71NK0F1c8="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz","integrity":"sha1-pgJHZOqGyOBqIteUyotpU00mNUE=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}}}},"metro-resolver":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-resolver/download/metro-resolver-0.28.0.tgz","integrity":"sha1-gTgC1g/HYncpJ8gdAuAcfuyEutg=","dev":true,"requires":{"absolute-path":"^0.0.0"}},"metro-source-map":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-source-map/download/metro-source-map-0.28.0.tgz","integrity":"sha1-7IwxYdhRatPE5xSfLD1IAvT9b6I=","dev":true,"requires":{"source-map":"^0.5.6"}},"metro-symbolicate":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-symbolicate/download/metro-symbolicate-0.56.4.tgz","integrity":"sha1-U+nUC+rJBJ+nWj5iDd1H1JB/8BU=","requires":{"invariant":"^2.2.4","metro-source-map":"^0.56.4","source-map":"^0.5.6","through2":"^2.0.1","vlq":"^1.0.0"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}}}},"micromatch":{"version":"2.3.11","resolved":"http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz","integrity":"sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=","dev":true,"requires":{"arr-diff":"^2.0.0","array-unique":"^0.2.1","braces":"^1.8.2","expand-brackets":"^0.1.4","extglob":"^0.3.1","filename-regex":"^2.0.0","is-extglob":"^1.0.0","is-glob":"^2.0.1","kind-of":"^3.0.2","normalize-path":"^2.0.1","object.omit":"^2.0.0","parse-glob":"^3.0.4","regex-cache":"^0.4.2"},"dependencies":{"arr-diff":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz","integrity":"sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=","dev":true,"requires":{"arr-flatten":"^1.0.1"}},"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"mime":{"version":"1.6.0","resolved":"http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz","integrity":"sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE="},"mime-db":{"version":"1.38.0","resolved":"http://registry.npm.taobao.org/mime-db/download/mime-db-1.38.0.tgz","integrity":"sha1-GiqrFtqesWe0nG5N8tnGjWPY4q0=","dev":true},"mime-types":{"version":"2.1.22","resolved":"http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.22.tgz","integrity":"sha1-/ms1WhkJJqt2mMmgVWoRGZshmb0=","dev":true,"requires":{"mime-db":"~1.38.0"}},"mimic-fn":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz","integrity":"sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI="},"min-document":{"version":"2.19.0","resolved":"http://registry.npm.taobao.org/min-document/download/min-document-2.19.0.tgz","integrity":"sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=","dev":true,"requires":{"dom-walk":"^0.1.0"}},"minimatch":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz","integrity":"sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=","requires":{"brace-expansion":"^1.1.7"}},"minimist":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz","integrity":"sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="},"miot":{"version":"file:miot-sdk"},"mixin-deep":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.1.tgz","integrity":"sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=","requires":{"for-in":"^1.0.2","is-extendable":"^1.0.1"},"dependencies":{"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"mkdirp":{"version":"0.5.1","resolved":"http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz","integrity":"sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=","requires":{"minimist":"0.0.8"},"dependencies":{"minimist":{"version":"0.0.8","resolved":"http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz","integrity":"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="}}},"mkdirp2":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/mkdirp2/download/mkdirp2-1.0.4.tgz","integrity":"sha1-Vt4fj1yTzyGZkGNi66D58mLuRDc=","dev":true},"mock-fs":{"version":"3.12.1","resolved":"http://registry.npm.taobao.org/mock-fs/download/mock-fs-3.12.1.tgz","integrity":"sha1-/yeCTNarJjp+sFoRUjnUHTYx9fg=","requires":{"rewire":"2.5.2","semver":"5.3.0"},"dependencies":{"semver":{"version":"5.3.0","resolved":"http://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz","integrity":"sha1-myzl094C0XxgEq0yaqa00M9U+U8="}}},"morgan":{"version":"1.9.1","resolved":"https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz","integrity":"sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==","requires":{"basic-auth":"~2.0.0","debug":"2.6.9","depd":"~1.1.2","on-finished":"~2.3.0","on-headers":"~1.0.1"}},"ms":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="},"mute-stream":{"version":"0.0.7","resolved":"http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz","integrity":"sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="},"nan":{"version":"2.14.0","resolved":"https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz","integrity":"sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=","optional":true},"nanomatch":{"version":"1.2.13","resolved":"http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz","integrity":"sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","define-property":"^2.0.2","extend-shallow":"^3.0.2","fragment-cache":"^0.2.1","is-windows":"^1.0.2","kind-of":"^6.0.2","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"arr-diff":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz","integrity":"sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="},"array-unique":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"}},"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="}}},"natural-compare":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz","integrity":"sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=","dev":true},"ncp":{"version":"0.4.2","resolved":"https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz","integrity":"sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=","dev":true},"negotiator":{"version":"0.6.2","resolved":"https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz","integrity":"sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="},"neo-async":{"version":"2.6.0","resolved":"http://registry.npm.taobao.org/neo-async/download/neo-async-2.6.0.tgz","integrity":"sha1-udFeTXHGdikIZUtRg+04t1M0CDU=","dev":true},"nice-try":{"version":"1.0.5","resolved":"http://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz","integrity":"sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y="},"node-fetch":{"version":"1.7.3","resolved":"http://registry.npm.taobao.org/node-fetch/download/node-fetch-1.7.3.tgz","integrity":"sha1-mA9vcthSEaU0fGsrwYxbhMPrR+8=","requires":{"encoding":"^0.1.11","is-stream":"^1.0.1"}},"node-int64":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz","integrity":"sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs="},"node-modules-regexp":{"version":"1.0.0","resolved":"https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz","integrity":"sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA="},"node-notifier":{"version":"5.4.3","resolved":"https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz","integrity":"sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==","requires":{"growly":"^1.3.0","is-wsl":"^1.1.0","semver":"^5.5.0","shellwords":"^0.1.1","which":"^1.3.0"}},"node-status-codes":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/node-status-codes/download/node-status-codes-1.0.0.tgz","integrity":"sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="},"node-uuid":{"version":"1.3.3","resolved":"http://registry.npm.taobao.org/node-uuid/download/node-uuid-1.3.3.tgz","integrity":"sha1-09tNe1aBDZ5AMjQnZigq8HORcps="},"normalize-package-data":{"version":"2.5.0","resolved":"http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz","integrity":"sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=","requires":{"hosted-git-info":"^2.1.4","resolve":"^1.10.0","semver":"2 || 3 || 4 || 5","validate-npm-package-license":"^3.0.1"}},"normalize-path":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz","integrity":"sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=","requires":{"remove-trailing-separator":"^1.0.1"}},"npm-run-path":{"version":"2.0.2","resolved":"http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz","integrity":"sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=","requires":{"path-key":"^2.0.0"}},"npmlog":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/npmlog/download/npmlog-2.0.4.tgz","integrity":"sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=","requires":{"ansi":"~0.3.1","are-we-there-yet":"~1.1.2","gauge":"~1.2.5"}},"nullthrows":{"version":"1.1.1","resolved":"https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz","integrity":"sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="},"number-is-nan":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz","integrity":"sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="},"oauth-sign":{"version":"0.9.0","resolved":"http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz","integrity":"sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=","dev":true},"ob1":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/ob1/download/ob1-0.56.4.tgz","integrity":"sha1-xKyzuqQvSZOkSzWy2nyO9EPczOw="},"object-assign":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz","integrity":"sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="},"object-copy":{"version":"0.1.0","resolved":"http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz","integrity":"sha1-fn2Fi3gb18mRpBupde04EnVOmYw=","requires":{"copy-descriptor":"^0.1.0","define-property":"^0.2.5","kind-of":"^3.0.3"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"object-get":{"version":"2.1.0","resolved":"https://registry.npmjs.org/object-get/-/object-get-2.1.0.tgz","integrity":"sha1-ciu9tgA576R8rTxtws5RqFwCxa4=","dev":true},"object-is":{"version":"1.0.1","resolved":"https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz","integrity":"sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=","dev":true},"object-keys":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz","integrity":"sha1-HEfyct8nfzsdrwYWd9nILiMixg4=","dev":true},"object-to-spawn-args":{"version":"1.1.1","resolved":"https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz","integrity":"sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U=","dev":true},"object-visit":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz","integrity":"sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=","requires":{"isobject":"^3.0.0"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"object.assign":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz","integrity":"sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=","dev":true,"requires":{"define-properties":"^1.1.2","function-bind":"^1.1.1","has-symbols":"^1.0.0","object-keys":"^1.0.11"}},"object.entries":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/object.entries/download/object.entries-1.1.0.tgz","integrity":"sha1-ICT8bWuiRq7ji9sP/Vz7zzcbdRk=","dev":true,"requires":{"define-properties":"^1.1.3","es-abstract":"^1.12.0","function-bind":"^1.1.1","has":"^1.0.3"}},"object.fromentries":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/object.fromentries/download/object.fromentries-2.0.0.tgz","integrity":"sha1-SaVD2SFR+Cd7OslgDx6TCxidMKs=","dev":true,"requires":{"define-properties":"^1.1.2","es-abstract":"^1.11.0","function-bind":"^1.1.1","has":"^1.0.1"}},"object.omit":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz","integrity":"sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=","dev":true,"requires":{"for-own":"^0.1.4","is-extendable":"^0.1.1"}},"object.pick":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz","integrity":"sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=","requires":{"isobject":"^3.0.1"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"on-finished":{"version":"2.3.0","resolved":"http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz","integrity":"sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=","requires":{"ee-first":"1.1.1"}},"on-headers":{"version":"1.0.2","resolved":"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz","integrity":"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="},"once":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/once/download/once-1.4.0.tgz","integrity":"sha1-WDsap3WWHUsROsF9nFC6753Xa9E=","requires":{"wrappy":"1"}},"onetime":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz","integrity":"sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=","requires":{"mimic-fn":"^1.0.0"}},"open":{"version":"6.4.0","resolved":"https://registry.npmjs.org/open/-/open-6.4.0.tgz","integrity":"sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==","requires":{"is-wsl":"^1.1.0"}},"opencollective-postinstall":{"version":"2.0.2","resolved":"https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz","integrity":"sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==","dev":true},"optimist":{"version":"0.6.1","resolved":"http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz","integrity":"sha1-2j6nRob6IaGaERwybpDrFaAZZoY=","dev":true,"requires":{"minimist":"~0.0.1","wordwrap":"~0.0.2"},"dependencies":{"minimist":{"version":"0.0.10","resolved":"http://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz","integrity":"sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=","dev":true},"wordwrap":{"version":"0.0.3","resolved":"http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz","integrity":"sha1-o9XabNXAvAAI03I0u68b7WMFkQc=","dev":true}}},"optionator":{"version":"0.8.2","resolved":"http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz","integrity":"sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=","dev":true,"requires":{"deep-is":"~0.1.3","fast-levenshtein":"~2.0.4","levn":"~0.3.0","prelude-ls":"~1.1.2","type-check":"~0.3.2","wordwrap":"~1.0.0"}},"options":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/options/download/options-0.0.6.tgz","integrity":"sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="},"ora":{"version":"3.4.0","resolved":"https://registry.npmjs.org/ora/-/ora-3.4.0.tgz","integrity":"sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==","requires":{"chalk":"^2.4.2","cli-cursor":"^2.1.0","cli-spinners":"^2.0.0","log-symbols":"^2.2.0","strip-ansi":"^5.2.0","wcwidth":"^1.0.1"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz","integrity":"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"strip-ansi":{"version":"5.2.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz","integrity":"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==","requires":{"ansi-regex":"^4.1.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"os-homedir":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz","integrity":"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="},"os-locale":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz","integrity":"sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=","requires":{"execa":"^0.7.0","lcid":"^1.0.0","mem":"^1.1.0"},"dependencies":{"execa":{"version":"0.7.0","resolved":"http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz","integrity":"sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=","requires":{"cross-spawn":"^5.0.1","get-stream":"^3.0.0","is-stream":"^1.1.0","npm-run-path":"^2.0.0","p-finally":"^1.0.0","signal-exit":"^3.0.0","strip-eof":"^1.0.0"}}}},"os-tmpdir":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz","integrity":"sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="},"osenv":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz","integrity":"sha1-hc36+uso6Gd/QW4odZK18/SepBA=","requires":{"os-homedir":"^1.0.0","os-tmpdir":"^1.0.0"}},"p-defer":{"version":"1.0.0","resolved":"https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz","integrity":"sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="},"p-finally":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz","integrity":"sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="},"p-is-promise":{"version":"2.1.0","resolved":"https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz","integrity":"sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="},"p-limit":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz","integrity":"sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=","requires":{"p-try":"^1.0.0"}},"p-locate":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz","integrity":"sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=","requires":{"p-limit":"^1.1.0"}},"p-try":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz","integrity":"sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="},"package-json":{"version":"2.4.0","resolved":"http://registry.npm.taobao.org/package-json/download/package-json-2.4.0.tgz","integrity":"sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs=","requires":{"got":"^5.0.0","registry-auth-token":"^3.0.1","registry-url":"^3.0.3","semver":"^5.1.0"}},"parent-module":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz","integrity":"sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=","dev":true,"requires":{"callsites":"^3.0.0"}},"parse-glob":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz","integrity":"sha1-ssN2z7EfNVE7rdFz7wu246OIORw=","dev":true,"requires":{"glob-base":"^0.3.0","is-dotfile":"^1.0.0","is-extglob":"^1.0.0","is-glob":"^2.0.0"}},"parse-json":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz","integrity":"sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=","requires":{"error-ex":"^1.2.0"}},"parse-node-version":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/parse-node-version/download/parse-node-version-1.0.1.tgz","integrity":"sha1-4rXb7eAOf6m8NjYH9TMn6LBzGJs="},"parseurl":{"version":"1.3.2","resolved":"http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz","integrity":"sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="},"pascalcase":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz","integrity":"sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="},"path-exists":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz","integrity":"sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="},"path-is-absolute":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz","integrity":"sha1-F0uSaHNVNP+8es5r9TpanhtcX18="},"path-is-inside":{"version":"1.0.2","resolved":"https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz","integrity":"sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=","dev":true},"path-key":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz","integrity":"sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="},"path-parse":{"version":"1.0.6","resolved":"http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz","integrity":"sha1-1i27VnlAXXLEc37FhgDp3c8G0kw="},"path-to-regexp":{"version":"1.7.0","resolved":"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz","integrity":"sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=","requires":{"isarray":"0.0.1"},"dependencies":{"isarray":{"version":"0.0.1","resolved":"https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz","integrity":"sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="}}},"path-type":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz","integrity":"sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=","requires":{"pify":"^2.0.0"}},"pend":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz","integrity":"sha1-elfrVQpng/kRUzH89GY9XI4AelA=","dev":true},"performance-now":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz","integrity":"sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="},"pify":{"version":"2.3.0","resolved":"http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz","integrity":"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="},"pinkie":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz","integrity":"sha1-clVrgM+g1IqXToDnckjoDtT3+HA="},"pinkie-promise":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz","integrity":"sha1-ITXW36ejWMBprJsXh3YogihFD/o=","requires":{"pinkie":"^2.0.0"}},"pirates":{"version":"4.0.1","resolved":"https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz","integrity":"sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==","requires":{"node-modules-regexp":"^1.0.0"}},"pkg-dir":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz","integrity":"sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=","dev":true,"requires":{"find-up":"^2.1.0"}},"pkginfo":{"version":"0.4.1","resolved":"https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz","integrity":"sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=","dev":true},"please-upgrade-node":{"version":"3.2.0","resolved":"https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz","integrity":"sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==","dev":true,"requires":{"semver-compare":"^1.0.0"}},"plist":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/plist/download/plist-1.2.0.tgz","integrity":"sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=","requires":{"base64-js":"0.0.8","util-deprecate":"1.0.2","xmlbuilder":"4.0.0","xmldom":"0.1.x"},"dependencies":{"base64-js":{"version":"0.0.8","resolved":"http://registry.npm.taobao.org/base64-js/download/base64-js-0.0.8.tgz","integrity":"sha1-EQHpVE9KdrG8OybUUsqW16NeeXg="}}},"plugin-error":{"version":"0.1.2","resolved":"http://registry.npm.taobao.org/plugin-error/download/plugin-error-0.1.2.tgz","integrity":"sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=","requires":{"ansi-cyan":"^0.1.1","ansi-red":"^0.1.1","arr-diff":"^1.0.1","arr-union":"^2.0.1","extend-shallow":"^1.1.2"},"dependencies":{"arr-diff":{"version":"1.1.0","resolved":"https://registry.npm.taobao.org/arr-diff/download/arr-diff-1.1.0.tgz","integrity":"sha1-aHwydYFjWI/vfeezb6vklesaOZo=","requires":{"arr-flatten":"^1.0.1","array-slice":"^0.2.3"}},"extend-shallow":{"version":"1.1.4","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-1.1.4.tgz","integrity":"sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=","requires":{"kind-of":"^1.1.0"}},"kind-of":{"version":"1.1.0","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-1.1.0.tgz","integrity":"sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ="}}},"posix-character-classes":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz","integrity":"sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="},"prelude-ls":{"version":"1.1.2","resolved":"http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz","integrity":"sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=","dev":true},"prepend-http":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz","integrity":"sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="},"preserve":{"version":"0.2.0","resolved":"http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz","integrity":"sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=","dev":true},"pretty-format":{"version":"24.9.0","resolved":"https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz","integrity":"sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==","requires":{"@jest/types":"^24.9.0","ansi-regex":"^4.0.0","ansi-styles":"^3.2.0","react-is":"^16.8.4"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz","integrity":"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}}}},"private":{"version":"0.1.8","resolved":"http://registry.npm.taobao.org/private/download/private-0.1.8.tgz","integrity":"sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8="},"process":{"version":"0.5.2","resolved":"http://registry.npm.taobao.org/process/download/process-0.5.2.tgz","integrity":"sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=","dev":true},"process-nextick-args":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz","integrity":"sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o="},"progress":{"version":"2.0.3","resolved":"http://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz","integrity":"sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=","dev":true},"promise":{"version":"7.3.1","resolved":"http://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz","integrity":"sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=","requires":{"asap":"~2.0.3"}},"prompt":{"version":"0.2.14","resolved":"https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz","integrity":"sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=","dev":true,"requires":{"pkginfo":"0.x.x","read":"1.0.x","revalidator":"0.1.x","utile":"0.2.x","winston":"0.8.x"}},"prop-types":{"version":"15.7.2","resolved":"http://registry.npm.taobao.org/prop-types/download/prop-types-15.7.2.tgz","integrity":"sha1-UsQedbjIfnK52TYOAga5ncv/psU=","requires":{"loose-envify":"^1.4.0","object-assign":"^4.1.1","react-is":"^16.8.1"}},"pseudomap":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz","integrity":"sha1-8FKijacOYYkX7wqKw0wa5aaChrM="},"psl":{"version":"1.1.31","resolved":"http://registry.npm.taobao.org/psl/download/psl-1.1.31.tgz","integrity":"sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=","dev":true},"pump":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz","integrity":"sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=","requires":{"end-of-stream":"^1.1.0","once":"^1.3.1"}},"punycode":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz","integrity":"sha1-tYsBCsQMIsVldhbI0sLALHv0eew=","dev":true},"qs":{"version":"6.5.2","resolved":"http://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz","integrity":"sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=","dev":true},"query-string":{"version":"6.4.2","resolved":"http://registry.npm.taobao.org/query-string/download/query-string-6.4.2.tgz","integrity":"sha1-i+Hb0QUwauv4YCIUT1daKdUWtxM=","requires":{"decode-uri-component":"^0.2.0","split-on-first":"^1.0.0","strict-uri-encode":"^2.0.0"}},"raf":{"version":"3.4.1","resolved":"http://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz","integrity":"sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=","requires":{"performance-now":"^2.1.0"}},"randomatic":{"version":"3.1.1","resolved":"http://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz","integrity":"sha1-t3bvxZN1mE42xTey9RofCv8Noe0=","dev":true,"requires":{"is-number":"^4.0.0","kind-of":"^6.0.0","math-random":"^1.0.1"},"dependencies":{"is-number":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz","integrity":"sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=","dev":true},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE=","dev":true}}},"range-parser":{"version":"1.2.1","resolved":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","integrity":"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="},"rc":{"version":"1.2.8","resolved":"http://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz","integrity":"sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=","requires":{"deep-extend":"^0.6.0","ini":"~1.3.0","minimist":"^1.2.0","strip-json-comments":"~2.0.1"}},"rc-animate":{"version":"2.6.0","resolved":"http://registry.npm.taobao.org/rc-animate/download/rc-animate-2.6.0.tgz","integrity":"sha1-yoRA0EJ4GvehMp2E+X6pR5TF7BU=","requires":{"babel-runtime":"6.x","classnames":"^2.2.6","css-animation":"^1.3.2","prop-types":"15.x","raf":"^3.4.0","react-lifecycles-compat":"^3.0.4"}},"react":{"version":"16.9.0","resolved":"https://registry.npmjs.org/react/-/react-16.9.0.tgz","integrity":"sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==","requires":{"loose-envify":"^1.1.0","object-assign":"^4.1.1","prop-types":"^15.6.2"}},"react-clone-referenced-element":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/react-clone-referenced-element/download/react-clone-referenced-element-1.1.0.tgz","integrity":"sha1-nN2n8q61T+p5Hzq4xquWx6d9AVg="},"react-deep-force-update":{"version":"1.1.2","resolved":"http://registry.npm.taobao.org/react-deep-force-update/download/react-deep-force-update-1.1.2.tgz","integrity":"sha1-PSrkXCyQQMuxdyvlL46hrebKLuE=","dev":true},"react-devtools-core":{"version":"3.6.3","resolved":"https://registry.npm.taobao.org/react-devtools-core/download/react-devtools-core-3.6.3.tgz","integrity":"sha1-l32VtoTGrSggXwxi4eEsXxZnWBQ=","requires":{"shell-quote":"^1.6.1","ws":"^3.3.1"},"dependencies":{"ultron":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/ultron/download/ultron-1.1.1.tgz","integrity":"sha1-n+FTahCmZKZSZqHjzPhf02MCvJw="},"ws":{"version":"3.3.3","resolved":"https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz?cache=0&sync_timestamp=1576314828024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-3.3.3.tgz","integrity":"sha1-8c+E/i1ekB686U767OeF8YeiKPI=","requires":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0","ultron":"~1.1.0"}}}},"react-fast-compare":{"version":"2.0.4","resolved":"https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz","integrity":"sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw=="},"react-is":{"version":"16.8.6","resolved":"http://registry.npm.taobao.org/react-is/download/react-is-16.8.6.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.8.6.tgz","integrity":"sha1-W7weLSkUHJ+9/tRWND/ivEMKahY="},"react-lifecycles-compat":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/react-lifecycles-compat/download/react-lifecycles-compat-3.0.4.tgz","integrity":"sha1-TxonOv38jzSIqMUWv9p4+HI1I2I="},"react-native":{"version":"0.61.0","resolved":"http://registry.npm.pt.mi.com/react-native/download/react-native-0.61.0.tgz","integrity":"sha1-6fwGzZl2KVsR9/H3LkuEDw7dXY4=","requires":{"@babel/runtime":"^7.0.0","@react-native-community/cli":"^3.0.0-alpha.1","@react-native-community/cli-platform-android":"^3.0.0-alpha.1","@react-native-community/cli-platform-ios":"^3.0.0-alpha.1","abort-controller":"^3.0.0","art":"^0.10.0","base64-js":"^1.1.2","connect":"^3.6.5","create-react-class":"^15.6.3","escape-string-regexp":"^1.0.5","event-target-shim":"^5.0.1","fbjs":"^1.0.0","fbjs-scripts":"^1.1.0","hermes-engine":"^0.2.1","invariant":"^2.2.4","jsc-android":"^245459.0.0","metro-babel-register":"^0.56.0","metro-react-native-babel-transformer":"^0.56.0","metro-source-map":"^0.56.0","nullthrows":"^1.1.0","pretty-format":"^24.7.0","promise":"^7.1.1","prop-types":"^15.7.2","react-devtools-core":"^3.6.3","react-refresh":"^0.4.0","regenerator-runtime":"^0.13.2","scheduler":"0.15.0","stacktrace-parser":"^0.1.3","whatwg-fetch":"^3.0.0"},"dependencies":{"@react-native-community/cli":{"version":"3.2.1","resolved":"http://registry.npm.pt.mi.com/@react-native-community/cli/download/@react-native-community/cli-3.2.1.tgz","integrity":"sha1-KkZoAetggKH3M1jF10DFPCTtjG8=","requires":{"@hapi/joi":"^15.0.3","@react-native-community/cli-debugger-ui":"^3.0.0","@react-native-community/cli-tools":"^3.0.0","@react-native-community/cli-types":"^3.0.0","chalk":"^2.4.2","command-exists":"^1.2.8","commander":"^2.19.0","compression":"^1.7.1","connect":"^3.6.5","cosmiconfig":"^5.1.0","deepmerge":"^3.2.0","didyoumean":"^1.2.1","envinfo":"^7.1.0","errorhandler":"^1.5.0","execa":"^1.0.0","find-up":"^4.1.0","fs-extra":"^7.0.1","glob":"^7.1.1","graceful-fs":"^4.1.3","inquirer":"^3.0.6","lodash":"^4.17.5","metro":"^0.56.0","metro-config":"^0.56.0","metro-core":"^0.56.0","metro-react-native-babel-transformer":"^0.56.0","minimist":"^1.2.0","mkdirp":"^0.5.1","morgan":"^1.9.0","node-notifier":"^5.2.1","open":"^6.2.0","ora":"^3.4.0","plist":"^3.0.0","pretty-format":"^25.1.0","semver":"^6.3.0","serve-static":"^1.13.1","shell-quote":"1.6.1","strip-ansi":"^5.2.0","sudo-prompt":"^9.0.0","wcwidth":"^1.0.1","ws":"^1.1.0"},"dependencies":{"@jest/types":{"version":"25.5.0","resolved":"http://registry.npm.pt.mi.com/@jest/types/download/@jest/types-25.5.0.tgz","integrity":"sha1-TWpHk/e5WZ/DaAh3uFapfbzPKp0=","requires":{"@types/istanbul-lib-coverage":"^2.0.0","@types/istanbul-reports":"^1.1.1","@types/yargs":"^15.0.0","chalk":"^3.0.0"},"dependencies":{"chalk":{"version":"3.0.0","resolved":"http://registry.npm.pt.mi.com/chalk/download/chalk-3.0.0.tgz","integrity":"sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=","requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}}}},"ansi-styles":{"version":"4.2.1","resolved":"http://registry.npm.pt.mi.com/ansi-styles/download/ansi-styles-4.2.1.tgz","integrity":"sha1-kK51xCTQCNJiTFvynq0xd+v881k=","requires":{"@types/color-name":"^1.1.1","color-convert":"^2.0.1"}},"color-convert":{"version":"2.0.1","resolved":"http://registry.npm.pt.mi.com/color-convert/download/color-convert-2.0.1.tgz","integrity":"sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=","requires":{"color-name":"~1.1.4"}},"has-flag":{"version":"4.0.0","resolved":"http://registry.npm.pt.mi.com/has-flag/download/has-flag-4.0.0.tgz","integrity":"sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s="},"pretty-format":{"version":"25.5.0","resolved":"http://registry.npm.pt.mi.com/pretty-format/download/pretty-format-25.5.0.tgz","integrity":"sha1-eHPB13T2gsNLjUi2dDor8qxVeRo=","requires":{"@jest/types":"^25.5.0","ansi-regex":"^5.0.0","ansi-styles":"^4.0.0","react-is":"^16.12.0"}},"supports-color":{"version":"7.1.0","resolved":"http://registry.npm.pt.mi.com/supports-color/download/supports-color-7.1.0.tgz","integrity":"sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=","requires":{"has-flag":"^4.0.0"}}}},"@types/yargs":{"version":"15.0.5","resolved":"http://registry.npm.pt.mi.com/@types/yargs/download/@types/yargs-15.0.5.tgz","integrity":"sha1-lH6aZWFIO97prf/Jg+kaaQKvi3k=","requires":{"@types/yargs-parser":"*"}},"ansi-regex":{"version":"5.0.0","resolved":"http://registry.npm.pt.mi.com/ansi-regex/download/ansi-regex-5.0.0.tgz","integrity":"sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"array-unique":{"version":"0.3.2","resolved":"https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha1-qiE8FDXiv/62/KhCKH71NK0F1c8="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz","integrity":"sha1-pgJHZOqGyOBqIteUyotpU00mNUE=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"braces":{"version":"2.3.2","resolved":"https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz","integrity":"sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"capture-exit":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz","integrity":"sha1-+5U7+uvreB9iiYI52rtCbQilCaQ=","requires":{"rsvp":"^4.8.4"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"color-name":{"version":"1.1.4","resolved":"http://registry.npm.pt.mi.com/color-name/download/color-name-1.1.4.tgz","integrity":"sha1-wqCah6y95pVD3m9j+jmVyCbFNqI="},"core-js":{"version":"2.6.11","resolved":"https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz","integrity":"sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="},"exec-sh":{"version":"0.3.4","resolved":"https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.4.tgz","integrity":"sha1-OgGM61JsxvbfK7UEsr/o46STTsU="},"expand-brackets":{"version":"2.1.4","resolved":"https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="}}},"extglob":{"version":"2.0.4","resolved":"https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz","integrity":"sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fbjs":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/fbjs/download/fbjs-1.0.0.tgz","integrity":"sha1-UsIV4Ig6PIavKnp3btUVJa6OClo=","requires":{"core-js":"^2.4.1","fbjs-css-vars":"^1.0.0","isomorphic-fetch":"^2.1.1","loose-envify":"^1.0.0","object-assign":"^4.1.0","promise":"^7.1.1","setimmediate":"^1.0.5","ua-parser-js":"^0.7.18"}},"fill-range":{"version":"4.0.0","resolved":"https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"find-up":{"version":"4.1.0","resolved":"https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz","integrity":"sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=","requires":{"locate-path":"^5.0.0","path-exists":"^4.0.0"}},"fs-extra":{"version":"7.0.1","resolved":"https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz","integrity":"sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^4.0.0","universalify":"^0.1.0"}},"fsevents":{"version":"1.2.13","resolved":"http://registry.npm.pt.mi.com/fsevents/download/fsevents-1.2.13.tgz","integrity":"sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=","optional":true,"requires":{"bindings":"^1.5.0","nan":"^2.12.1"}},"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"jest-haste-map":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.9.0.tgz","integrity":"sha1-s4pdZCdJNOIfpBeump++t3zqrH0=","requires":{"@jest/types":"^24.9.0","anymatch":"^2.0.0","fb-watchman":"^2.0.0","fsevents":"^1.2.7","graceful-fs":"^4.1.15","invariant":"^2.2.4","jest-serializer":"^24.9.0","jest-util":"^24.9.0","jest-worker":"^24.9.0","micromatch":"^3.1.10","sane":"^4.0.3","walker":"^1.0.7"}},"jest-serializer":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz","integrity":"sha1-5tfX75bTHouQeacUdUxdXFgojnM="},"jest-worker":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1566444249955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz","integrity":"sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=","requires":{"merge-stream":"^2.0.0","supports-color":"^6.1.0"},"dependencies":{"merge-stream":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz","integrity":"sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A="},"supports-color":{"version":"6.1.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz","integrity":"sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=","requires":{"has-flag":"^3.0.0"}}}},"jsonfile":{"version":"4.0.0","resolved":"https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz","integrity":"sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=","requires":{"graceful-fs":"^4.1.6"}},"locate-path":{"version":"5.0.0","resolved":"https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz","integrity":"sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=","requires":{"p-locate":"^4.1.0"}},"metro":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro/download/metro-0.56.4.tgz","integrity":"sha1-vn4TgO5qw1UsJerYCY6rJhAp5Nc=","requires":{"@babel/core":"^7.0.0","@babel/generator":"^7.0.0","@babel/parser":"^7.0.0","@babel/plugin-external-helpers":"^7.0.0","@babel/template":"^7.0.0","@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","absolute-path":"^0.0.0","async":"^2.4.0","babel-preset-fbjs":"^3.1.2","buffer-crc32":"^0.2.13","chalk":"^2.4.1","concat-stream":"^1.6.0","connect":"^3.6.5","debug":"^2.2.0","denodeify":"^1.2.1","eventemitter3":"^3.0.0","fbjs":"^1.0.0","fs-extra":"^1.0.0","graceful-fs":"^4.1.3","image-size":"^0.6.0","invariant":"^2.2.4","jest-haste-map":"^24.7.1","jest-worker":"^24.6.0","json-stable-stringify":"^1.0.1","lodash.throttle":"^4.1.1","merge-stream":"^1.0.1","metro-babel-register":"^0.56.4","metro-babel-transformer":"^0.56.4","metro-cache":"^0.56.4","metro-config":"^0.56.4","metro-core":"^0.56.4","metro-inspector-proxy":"^0.56.4","metro-minify-uglify":"^0.56.4","metro-react-native-babel-preset":"^0.56.4","metro-resolver":"^0.56.4","metro-source-map":"^0.56.4","metro-symbolicate":"^0.56.4","mime-types":"2.1.11","mkdirp":"^0.5.1","node-fetch":"^2.2.0","nullthrows":"^1.1.0","resolve":"^1.5.0","rimraf":"^2.5.4","serialize-error":"^2.1.0","source-map":"^0.5.6","temp":"0.8.3","throat":"^4.1.0","wordwrap":"^1.0.0","write-file-atomic":"^1.2.0","ws":"^1.1.5","xpipe":"^1.0.5","yargs":"^9.0.0"},"dependencies":{"fs-extra":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/fs-extra/download/fs-extra-1.0.0.tgz","integrity":"sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^2.1.0","klaw":"^1.0.0"}},"jsonfile":{"version":"2.4.0","resolved":"https://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz","integrity":"sha1-NzaitCi4e72gzIO1P6PWM6NcKug=","requires":{"graceful-fs":"^4.1.6"}}}},"metro-cache":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-cache/download/metro-cache-0.56.4.tgz","integrity":"sha1-VC+fijX4+51VdvRv06tNT0KFGn4=","requires":{"jest-serializer":"^24.4.0","metro-core":"^0.56.4","mkdirp":"^0.5.1","rimraf":"^2.5.4"}},"metro-core":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-core/download/metro-core-0.56.4.tgz","integrity":"sha1-Z8xBs8C/ZunCMG9QI5oQgLHoIxI=","requires":{"jest-haste-map":"^24.7.1","lodash.throttle":"^4.1.1","metro-resolver":"^0.56.4","wordwrap":"^1.0.0"}},"metro-minify-uglify":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-minify-uglify/download/metro-minify-uglify-0.56.4.tgz","integrity":"sha1-E1id+x1DNDYIqst/eN38wFLapjw=","requires":{"uglify-es":"^3.1.9"}},"metro-resolver":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-resolver/download/metro-resolver-0.56.4.tgz","integrity":"sha1-mHb1e8o3/Rv8/9czVB4u5KifrX8=","requires":{"absolute-path":"^0.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}},"micromatch":{"version":"3.1.10","resolved":"https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz","integrity":"sha1-cIWbyVyYQJUvNZoGij/En57PrCM=","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}},"mime-db":{"version":"1.23.0","resolved":"https://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz","integrity":"sha1-oxtAcK2uon1zLqMzdApk0OyaZlk="},"mime-types":{"version":"2.1.11","resolved":"https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz","integrity":"sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=","requires":{"mime-db":"~1.23.0"}},"node-fetch":{"version":"2.6.0","resolved":"https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz","integrity":"sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0="},"p-limit":{"version":"2.3.0","resolved":"http://registry.npm.pt.mi.com/p-limit/download/p-limit-2.3.0.tgz","integrity":"sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=","requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"4.1.0","resolved":"https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz","integrity":"sha1-o0KLtwiLOmApL2aRkni3wpetTwc=","requires":{"p-limit":"^2.2.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz","integrity":"sha1-yyhoVA4xPWHeWPr741zpAE1VQOY="},"path-exists":{"version":"4.0.0","resolved":"https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz","integrity":"sha1-UTvb4tO5XXdi6METfvoZXGxhtbM="},"plist":{"version":"3.0.1","resolved":"https://registry.npm.taobao.org/plist/download/plist-3.0.1.tgz","integrity":"sha1-qbkx0XwwTokS7wujvdYYK68uH4w=","requires":{"base64-js":"^1.2.3","xmlbuilder":"^9.0.7","xmldom":"0.1.x"}},"react-is":{"version":"16.13.1","resolved":"http://registry.npm.pt.mi.com/react-is/download/react-is-16.13.1.tgz","integrity":"sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ="},"regenerator-runtime":{"version":"0.13.5","resolved":"http://registry.npm.pt.mi.com/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz","integrity":"sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc="},"rsvp":{"version":"4.8.5","resolved":"https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz","integrity":"sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ="},"sane":{"version":"4.1.0","resolved":"https://registry.npm.taobao.org/sane/download/sane-4.1.0.tgz","integrity":"sha1-7Ygf2SJzOmxGG8GJ3CtsAG8//e0=","requires":{"@cnakazawa/watch":"^1.0.3","anymatch":"^2.0.0","capture-exit":"^2.0.0","exec-sh":"^0.3.2","execa":"^1.0.0","fb-watchman":"^2.0.0","micromatch":"^3.1.4","minimist":"^1.1.1","walker":"~1.0.5"}},"semver":{"version":"6.3.0","resolved":"https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1576601833267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz","integrity":"sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0="},"strip-ansi":{"version":"5.2.0","resolved":"https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz","integrity":"sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=","requires":{"ansi-regex":"^4.1.0"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"http://registry.npm.pt.mi.com/ansi-regex/download/ansi-regex-4.1.0.tgz","integrity":"sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc="}}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}},"whatwg-fetch":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-fetch%2Fdownload%2Fwhatwg-fetch-3.0.0.tgz","integrity":"sha1-/IBORYzEYACbGiuWa8iBfSV4rvs="},"xmlbuilder":{"version":"9.0.7","resolved":"https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz","integrity":"sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="}}},"react-native-camera":{"version":"3.15.0","resolved":"https://registry.npm.taobao.org/react-native-camera/download/react-native-camera-3.15.0.tgz","integrity":"sha1-3Yx/z3WzR+CwfB3t66K6R1BP+Ao=","requires":{"prop-types":"^15.6.2"}},"react-native-cli":{"version":"2.0.1","resolved":"https://registry.npmjs.org/react-native-cli/-/react-native-cli-2.0.1.tgz","integrity":"sha1-8s08eqG4OCjN+6Yw4t/YF992bVQ=","dev":true,"requires":{"chalk":"^1.1.1","minimist":"^1.2.0","prompt":"^0.2.14","semver":"^5.0.3"}},"react-native-contacts":{"version":"2.1.3","resolved":"http://registry.npm.taobao.org/react-native-contacts/download/react-native-contacts-2.1.3.tgz","integrity":"sha1-dDtEpLiqhIRZQ5U3g/rCPUcylgw="},"react-native-dismiss-keyboard":{"version":"1.0.0","resolved":"https://registry.npmjs.org/react-native-dismiss-keyboard/-/react-native-dismiss-keyboard-1.0.0.tgz","integrity":"sha1-MohiQrPyMX4SHzrrmwpYXiuHm0k="},"react-native-drawer-layout":{"version":"1.3.2","resolved":"http://registry.npm.taobao.org/react-native-drawer-layout/download/react-native-drawer-layout-1.3.2.tgz","integrity":"sha1-uXQNdmOh3E+IphucbZPS2UjqQm4=","requires":{"react-native-dismiss-keyboard":"1.0.0"}},"react-native-drawer-layout-polyfill":{"version":"1.3.2","resolved":"http://registry.npm.taobao.org/react-native-drawer-layout-polyfill/download/react-native-drawer-layout-polyfill-1.3.2.tgz","integrity":"sha1-GSyE16WmuKbSvix9ql5BZFGNDMc=","requires":{"react-native-drawer-layout":"1.3.2"}},"react-native-image-capinsets":{"version":"0.5.0","resolved":"https://registry.npm.taobao.org/react-native-image-capinsets/download/react-native-image-capinsets-0.5.0.tgz","integrity":"sha1-V3OFdyd59xsP8depaZaimt0CS10="},"react-native-image-picker":{"version":"0.26.10","resolved":"http://registry.npm.taobao.org/react-native-image-picker/download/react-native-image-picker-0.26.10.tgz","integrity":"sha1-C7mrkomElIxnruC55kIWvuAHqfw="},"react-native-indicators":{"version":"0.13.0","resolved":"https://registry.npmjs.org/react-native-indicators/-/react-native-indicators-0.13.0.tgz","integrity":"sha1-ABgku6GUscpuZU2QO+rwFo1Oasg=","requires":{"prop-types":"^15.5.10"}},"react-native-iphone-x-helper":{"version":"1.2.0","resolved":"https://registry.npm.taobao.org/react-native-iphone-x-helper/download/react-native-iphone-x-helper-1.2.0.tgz","integrity":"sha1-n4o3brALxxIRWr/0QgMYoAY/p5Y="},"react-native-linear-gradient":{"version":"2.5.4","resolved":"https://registry.npm.taobao.org/react-native-linear-gradient/download/react-native-linear-gradient-2.5.4.tgz","integrity":"sha1-3OEzUm9aVRCmOa+UVE8e0MmEvR4="},"react-native-nordic-dfu":{"version":"3.0.0","resolved":"https://registry.npmjs.org/react-native-nordic-dfu/-/react-native-nordic-dfu-3.0.0.tgz","integrity":"sha512-sgTvaszz+Pico+hV9ibr6MGNZZd6+pE3jLRCQ9KPZmzHKci4rdrr+tvwSFXsJJ5DxRwmO8vBm2aJ2rHq6ELueg=="},"react-native-orientation":{"version":"3.1.3","resolved":"http://registry.npm.taobao.org/react-native-orientation/download/react-native-orientation-3.1.3.tgz","integrity":"sha1-1FgDhB/pS2zOmsvpBP1coZGjcR4="},"react-native-progress":{"version":"3.5.0","resolved":"https://registry.npmjs.org/react-native-progress/-/react-native-progress-3.5.0.tgz","integrity":"sha512-Tgc002D0BGes1fTlObu/qNItlsTPYKFrF9XRQaJLme77TNxNX9I04sgIz3kaq8O4R+z/jlai64dk1HDEDQhzMA==","requires":{"prop-types":"^15.5.8"}},"react-native-root-siblings":{"version":"4.0.6","resolved":"https://registry.npm.taobao.org/react-native-root-siblings/download/react-native-root-siblings-4.0.6.tgz","integrity":"sha1-bdfu23Jfqs17oZwVndJ5zy5thHY=","requires":{"static-container":"^1.5.1"}},"react-native-root-toast":{"version":"3.2.0","resolved":"https://registry.npm.taobao.org/react-native-root-toast/download/react-native-root-toast-3.2.0.tgz","integrity":"sha1-7s1Qu5FK10FSwASdd/jnyYQuA/o=","requires":{"prop-types":"^15.5.10","react-native-root-siblings":"^4.0.0"}},"react-native-safe-area-view":{"version":"0.11.0","resolved":"http://registry.npm.taobao.org/react-native-safe-area-view/download/react-native-safe-area-view-0.11.0.tgz","integrity":"sha1-Tz3aQ8K6zjeWXnxq71/IPU8Z0XQ=","requires":{"hoist-non-react-statics":"^2.3.1"}},"react-native-safe-module":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/react-native-safe-module/download/react-native-safe-module-1.2.0.tgz","integrity":"sha1-ojgkyiTtwpAZE2lKdmRkdRE9Vw0=","requires":{"dedent":"^0.6.0"}},"react-native-screens":{"version":"1.0.0-alpha.22","resolved":"http://registry.npm.taobao.org/react-native-screens/download/react-native-screens-1.0.0-alpha.22.tgz","integrity":"sha1-ehIDd7Uqqbu5TQuFQaAUAmvpKJs="},"react-native-shadow":{"version":"1.2.2","resolved":"http://registry.npm.taobao.org/react-native-shadow/download/react-native-shadow-1.2.2.tgz","integrity":"sha1-CJkc0Utx4y8vxjY5EcE50jGUmmY="},"react-native-slider":{"version":"0.11.0","resolved":"http://registry.npm.taobao.org/react-native-slider/download/react-native-slider-0.11.0.tgz","integrity":"sha1-tooLxDyEIrJM1XlHzFrCvNtY+tw=","requires":{"prop-types":"^15.5.6"}},"react-native-sqlite-storage":{"version":"3.1.2","resolved":"http://registry.npm.taobao.org/react-native-sqlite-storage/download/react-native-sqlite-storage-3.1.2.tgz","integrity":"sha1-uhiGM4WwOe0lFBgQMlWlFhmf/R8=","requires":{"rnpm":"1.5.2","xcode":"0.8.4"},"dependencies":{"base64-js":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/base64-js/download/base64-js-0.0.6.tgz","integrity":"sha1-e4WfefC7vVWGe6Z6f6s5fiSiCUc="},"bplist-creator":{"version":"0.0.4","resolved":"http://registry.npm.taobao.org/bplist-creator/download/bplist-creator-0.0.4.tgz","integrity":"sha1-SsBJZ4LhJ6hcHSAmpPXrIqev+ZE=","requires":{"stream-buffers":"~0.2.3"}},"bplist-parser":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/bplist-parser/download/bplist-parser-0.0.6.tgz","integrity":"sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk="},"pegjs":{"version":"0.6.2","resolved":"http://registry.npm.taobao.org/pegjs/download/pegjs-0.6.2.tgz","integrity":"sha1-dGUfioAORE22iOTuro7bZWN6F6U="},"plist":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/plist/download/plist-1.1.0.tgz","integrity":"sha1-/2cIWQyXzEOOe8Rd5SUb1yXz+J0=","requires":{"base64-js":"0.0.6","util-deprecate":"1.0.0","xmlbuilder":"2.2.1","xmldom":"0.1.x"}},"simple-plist":{"version":"0.0.4","resolved":"http://registry.npm.taobao.org/simple-plist/download/simple-plist-0.0.4.tgz","integrity":"sha1-f4Y0OLY8t135ndgbgzbXxQdc/As=","requires":{"bplist-creator":"0.0.4","bplist-parser":"0.0.6","plist":"1.1.0"}},"stream-buffers":{"version":"0.2.6","resolved":"http://registry.npm.taobao.org/stream-buffers/download/stream-buffers-0.2.6.tgz","integrity":"sha1-GBwI1bs2kARfaUAbmuanoM8zE/w="},"util-deprecate":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.0.tgz","integrity":"sha1-MAevASwUDq4m3gVXbsInhcrDq/I="},"xcode":{"version":"0.8.4","resolved":"http://registry.npm.taobao.org/xcode/download/xcode-0.8.4.tgz","integrity":"sha1-6CxkZ1/K48sC6c64AdeG3ZASNgQ=","requires":{"node-uuid":"1.3.3","pegjs":"0.6.2","simple-plist":"0.0.4"}},"xmlbuilder":{"version":"2.2.1","resolved":"http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-2.2.1.tgz","integrity":"sha1-kyZDDxMNh0NdTECGZDqikm4QWjI=","requires":{"lodash-node":"~2.4.1"}}}},"react-native-svg":{"version":"9.5.3","resolved":"https://registry.npmjs.org/react-native-svg/-/react-native-svg-9.5.3.tgz","integrity":"sha512-VUOe4TLz7RFdmm/XT9EH87VSwlRykx49qbwJMA+dh9eFM7KPY1qH3kEyN7uRCqJD2eE8toxt9NpjR6ByvtPNlA=="},"react-native-swipeout":{"version":"2.3.6","resolved":"http://registry.npm.taobao.org/react-native-swipeout/download/react-native-swipeout-2.3.6.tgz","integrity":"sha1-R9rIqDWCXPPy7vnklVdKPZq20/o=","requires":{"create-react-class":"^15.6.0","prop-types":"^15.5.10","react-tween-state":"^0.1.5"}},"react-native-swiper":{"version":"1.6.0-nightly.5","resolved":"https://registry.npmjs.org/react-native-swiper/-/react-native-swiper-1.6.0-nightly.5.tgz","integrity":"sha512-0siIUvD7FcGPSjRtsMyTWWmosUA+kJNT0WbJ0lf3Drp8vxeuWAg5kSmvQO+dJpISugcBWpfBc0OBDC5fBl+DsA==","requires":{"prop-types":"^15.5.10"}},"react-native-tab-view":{"version":"0.0.77","resolved":"http://registry.npm.taobao.org/react-native-tab-view/download/react-native-tab-view-0.0.77.tgz","integrity":"sha1-Ec6458IxANB+Yo3BUbV3l1JNANQ=","requires":{"prop-types":"^15.6.0"}},"react-native-ui-kitten":{"version":"3.1.2","resolved":"http://registry.npm.taobao.org/react-native-ui-kitten/download/react-native-ui-kitten-3.1.2.tgz","integrity":"sha1-fQx3EQK+TgLZrTsYFUrrmLvXBFE=","requires":{"hoist-non-react-statics":"^2.0.0","lodash":"4.17.10","prop-types":"^15.5.10"},"dependencies":{"lodash":{"version":"4.17.10","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-4.17.10.tgz","integrity":"sha1-G3eTz3JZ6jj7NmHU04syYK+K5Oc="}}},"react-native-video":{"version":"4.4.4","resolved":"https://registry.npm.taobao.org/react-native-video/download/react-native-video-4.4.4.tgz","integrity":"sha1-4z2imZBVapstV11rLogZD8BNm1A=","requires":{"keymirror":"^0.1.1","prop-types":"^15.5.10","shaka-player":"^2.4.4"}},"react-native-webview":{"version":"7.4.3","resolved":"https://registry.npmjs.org/react-native-webview/-/react-native-webview-7.4.3.tgz","integrity":"sha512-4n72B2D7n1xOQSoCSD1qk9D7JksyT4d6nk8QG9guZKZn3KXQL5EejwE2yhh1TxZRQpr+OD3a96rb+rA/UEnvrQ==","requires":{"escape-string-regexp":"2.0.0","invariant":"2.2.4"},"dependencies":{"escape-string-regexp":{"version":"2.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz","integrity":"sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="},"invariant":{"version":"2.2.4","resolved":"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz","integrity":"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==","requires":{"loose-envify":"^1.0.0"}}}},"react-navigation":{"version":"2.16.0","resolved":"http://registry.npm.taobao.org/react-navigation/download/react-navigation-2.16.0.tgz","integrity":"sha1-m5MggBcAuqxQ5J6HpjZBpN8XkjA=","requires":{"clamp":"^1.0.1","create-react-context":"0.2.2","hoist-non-react-statics":"^2.2.0","path-to-regexp":"^1.7.0","query-string":"^6.1.0","react-lifecycles-compat":"^3","react-native-safe-area-view":"0.11.0","react-native-screens":"^1.0.0-alpha.11","react-navigation-deprecated-tab-navigator":"1.3.0","react-navigation-drawer":"0.5.0","react-navigation-stack":"0.6.0","react-navigation-tabs":"0.8.2"}},"react-navigation-deprecated-tab-navigator":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/react-navigation-deprecated-tab-navigator/download/react-navigation-deprecated-tab-navigator-1.3.0.tgz","integrity":"sha1-AV3K4el3uYTKfpkkUmHBVDkCa7c=","requires":{"react-native-tab-view":"^0.0.77"}},"react-navigation-drawer":{"version":"0.5.0","resolved":"http://registry.npm.taobao.org/react-navigation-drawer/download/react-navigation-drawer-0.5.0.tgz","integrity":"sha1-2RtqbsZcNLp4wA+BSx5lCJIsyew=","requires":{"react-native-drawer-layout-polyfill":"^1.3.2"}},"react-navigation-stack":{"version":"0.6.0","resolved":"http://registry.npm.taobao.org/react-navigation-stack/download/react-navigation-stack-0.6.0.tgz","integrity":"sha1-V90l0JAhN7lQeVVJxD82COntwlA="},"react-navigation-tabs":{"version":"0.8.2","resolved":"http://registry.npm.taobao.org/react-navigation-tabs/download/react-navigation-tabs-0.8.2.tgz","integrity":"sha1-ZfimzjaGhCJ2AzRbTTEtou8zZuE=","requires":{"hoist-non-react-statics":"^2.5.0","prop-types":"^15.6.1","react-lifecycles-compat":"^3.0.4","react-native-tab-view":"^1.0.0"},"dependencies":{"react-native-tab-view":{"version":"1.3.4","resolved":"http://registry.npm.taobao.org/react-native-tab-view/download/react-native-tab-view-1.3.4.tgz","integrity":"sha1-Y/w+sJZSZR0OoOAWz/DzpeU19N4=","requires":{"prop-types":"^15.6.1"}}}},"react-proxy":{"version":"1.1.8","resolved":"http://registry.npm.taobao.org/react-proxy/download/react-proxy-1.1.8.tgz","integrity":"sha1-nb/Z2SdSjDqp9ETkVYw3gwq4wmo=","dev":true,"requires":{"lodash":"^4.6.1","react-deep-force-update":"^1.0.0"}},"react-refresh":{"version":"0.4.2","resolved":"https://registry.npm.taobao.org/react-refresh/download/react-refresh-0.4.2.tgz","integrity":"sha1-VKJ3psqqwoA9iPHW8Twdz72B4zQ="},"react-timer-mixin":{"version":"0.13.4","resolved":"http://registry.npm.taobao.org/react-timer-mixin/download/react-timer-mixin-0.13.4.tgz","integrity":"sha1-daAMPJTBOr4ptD1jtMZaiPyCZNM="},"react-transform-hmr":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/react-transform-hmr/download/react-transform-hmr-1.0.4.tgz","integrity":"sha1-4aQL0Krvxy6N/Xp82gmvhQZjl7s=","dev":true,"requires":{"global":"^4.3.0","react-proxy":"^1.1.7"}},"react-tween-state":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/react-tween-state/download/react-tween-state-0.1.5.tgz","integrity":"sha1-6YsGZVHvuTy5LdG+FJlcLj3q4zk=","requires":{"raf":"^3.1.0","tween-functions":"^1.0.1"}},"read":{"version":"1.0.7","resolved":"https://registry.npmjs.org/read/-/read-1.0.7.tgz","integrity":"sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=","dev":true,"requires":{"mute-stream":"~0.0.4"}},"read-all-stream":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/read-all-stream/download/read-all-stream-3.1.0.tgz","integrity":"sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=","requires":{"pinkie-promise":"^2.0.0","readable-stream":"^2.0.0"}},"read-pkg":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz","integrity":"sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=","requires":{"load-json-file":"^2.0.0","normalize-package-data":"^2.3.2","path-type":"^2.0.0"}},"read-pkg-up":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz","integrity":"sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=","requires":{"find-up":"^2.0.0","read-pkg":"^2.0.0"}},"readable-stream":{"version":"2.3.6","resolved":"http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz","integrity":"sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=","requires":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"}},"readline2":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/readline2/download/readline2-1.0.1.tgz","integrity":"sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","mute-stream":"0.0.5"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"mute-stream":{"version":"0.0.5","resolved":"http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.5.tgz","integrity":"sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="}}},"reduce-extract":{"version":"1.0.0","resolved":"https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz","integrity":"sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=","dev":true,"requires":{"test-value":"^1.0.1"},"dependencies":{"array-back":{"version":"1.0.4","resolved":"https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz","integrity":"sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=","dev":true,"requires":{"typical":"^2.6.0"}},"test-value":{"version":"1.1.0","resolved":"https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz","integrity":"sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=","dev":true,"requires":{"array-back":"^1.0.2","typical":"^2.4.2"}}}},"reduce-flatten":{"version":"1.0.1","resolved":"https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz","integrity":"sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=","dev":true},"reduce-unique":{"version":"1.0.0","resolved":"https://registry.npmjs.org/reduce-unique/-/reduce-unique-1.0.0.tgz","integrity":"sha1-flhrz4ek4ytter2Cd/rWzeyfSAM=","dev":true},"reduce-without":{"version":"1.0.1","resolved":"https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz","integrity":"sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=","dev":true,"requires":{"test-value":"^2.0.0"},"dependencies":{"array-back":{"version":"1.0.4","resolved":"https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz","integrity":"sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=","dev":true,"requires":{"typical":"^2.6.0"}},"test-value":{"version":"2.1.0","resolved":"https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz","integrity":"sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=","dev":true,"requires":{"array-back":"^1.0.3","typical":"^2.6.0"}}}},"regenerate":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz","integrity":"sha1-SoVuxLVuQHfFV1icroXnpMiGmhE="},"regenerate-unicode-properties":{"version":"8.1.0","resolved":"https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz","integrity":"sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==","requires":{"regenerate":"^1.4.0"}},"regenerator-runtime":{"version":"0.11.1","resolved":"http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz","integrity":"sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="},"regenerator-transform":{"version":"0.13.4","resolved":"http://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.13.4.tgz","integrity":"sha1-GPZ2PPE4LGnDbfdsbOEizGlChPs=","requires":{"private":"^0.1.6"}},"regex-cache":{"version":"0.4.4","resolved":"http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz","integrity":"sha1-db3FiioUls7EihKDW8VMjVYjNt0=","dev":true,"requires":{"is-equal-shallow":"^0.1.3"}},"regex-not":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz","integrity":"sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=","requires":{"extend-shallow":"^3.0.2","safe-regex":"^1.1.0"},"dependencies":{"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"}},"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"regexp.prototype.flags":{"version":"1.2.0","resolved":"https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz","integrity":"sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==","dev":true,"requires":{"define-properties":"^1.1.2"}},"regexpp":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz","integrity":"sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=","dev":true},"regexpu-core":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz","integrity":"sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=","dev":true,"requires":{"regenerate":"^1.2.1","regjsgen":"^0.2.0","regjsparser":"^0.1.4"}},"registry-auth-token":{"version":"3.4.0","resolved":"http://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-3.4.0.tgz","integrity":"sha1-10RoFUM/XV7WQxzV3KIQSPZrOX4=","requires":{"rc":"^1.1.6","safe-buffer":"^5.0.1"}},"registry-url":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/registry-url/download/registry-url-3.1.0.tgz","integrity":"sha1-PU74cPc93h138M+aOBQyRE4XSUI=","requires":{"rc":"^1.0.1"}},"regjsgen":{"version":"0.2.0","resolved":"http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz","integrity":"sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=","dev":true},"regjsparser":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz","integrity":"sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=","dev":true,"requires":{"jsesc":"~0.5.0"},"dependencies":{"jsesc":{"version":"0.5.0","resolved":"http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz","integrity":"sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=","dev":true}}},"remove-trailing-separator":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz","integrity":"sha1-wkvOKig62tW8P1jg1IJJuSN52O8="},"repeat-element":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz","integrity":"sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4="},"repeat-string":{"version":"1.6.1","resolved":"http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz","integrity":"sha1-jcrkcOHIirwtYA//Sndihtp15jc="},"repeating":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz","integrity":"sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=","requires":{"is-finite":"^1.0.0"}},"request":{"version":"2.88.0","resolved":"http://registry.npm.taobao.org/request/download/request-2.88.0.tgz","integrity":"sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=","dev":true,"requires":{"aws-sign2":"~0.7.0","aws4":"^1.8.0","caseless":"~0.12.0","combined-stream":"~1.0.6","extend":"~3.0.2","forever-agent":"~0.6.1","form-data":"~2.3.2","har-validator":"~5.1.0","http-signature":"~1.2.0","is-typedarray":"~1.0.0","isstream":"~0.1.2","json-stringify-safe":"~5.0.1","mime-types":"~2.1.19","oauth-sign":"~0.9.0","performance-now":"^2.1.0","qs":"~6.5.2","safe-buffer":"^5.1.2","tough-cookie":"~2.4.3","tunnel-agent":"^0.6.0","uuid":"^3.3.2"}},"require-directory":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz","integrity":"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="},"require-main-filename":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz","integrity":"sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="},"requizzle":{"version":"0.2.3","resolved":"https://registry.npm.taobao.org/requizzle/download/requizzle-0.2.3.tgz","integrity":"sha1-RnXJCqyvssA2vTm6LapKHLd3/e0=","requires":{"lodash":"^4.17.14"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&sync_timestamp=1571657272199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz","integrity":"sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="}}},"resolve":{"version":"1.10.0","resolved":"http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz","integrity":"sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=","requires":{"path-parse":"^1.0.6"}},"resolve-from":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz","integrity":"sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=","dev":true},"resolve-url":{"version":"0.2.1","resolved":"http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz","integrity":"sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="},"restore-cursor":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz","integrity":"sha1-n37ih/gv0ybU/RYpI9YhKe7g368=","requires":{"onetime":"^2.0.0","signal-exit":"^3.0.2"}},"ret":{"version":"0.1.15","resolved":"http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz","integrity":"sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w="},"revalidator":{"version":"0.1.8","resolved":"https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz","integrity":"sha1-/s5hv6DBtSoga9axgZgYS91SOjs=","dev":true},"rewire":{"version":"2.5.2","resolved":"http://registry.npm.taobao.org/rewire/download/rewire-2.5.2.tgz","integrity":"sha1-ZCfee3/u+n02QBUH62SlOFvFjcc="},"rimraf":{"version":"2.6.3","resolved":"http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz","integrity":"sha1-stEE/g2Psnz54KHNqCYt04M8bKs=","requires":{"glob":"^7.1.3"}},"rmc-date-picker":{"version":"6.0.8","resolved":"http://registry.npm.taobao.org/rmc-date-picker/download/rmc-date-picker-6.0.8.tgz","integrity":"sha1-mquHs6qNycWlc0nY8LBd5Oj0gIo=","requires":{"babel-runtime":"6.x","rmc-picker":"~5.0.0"}},"rmc-dialog":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/rmc-dialog/download/rmc-dialog-1.1.1.tgz","integrity":"sha1-HX+8ayytWwtT+6tx/iljbXb3ghc=","requires":{"babel-runtime":"6.x","rc-animate":"2.x"}},"rmc-feedback":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/rmc-feedback/download/rmc-feedback-2.0.0.tgz","integrity":"sha1-y8bLOuY8emNe7w4l5PuvWsNm7qo=","requires":{"babel-runtime":"6.x","classnames":"^2.2.5"}},"rmc-picker":{"version":"5.0.5","resolved":"http://registry.npm.taobao.org/rmc-picker/download/rmc-picker-5.0.5.tgz","integrity":"sha1-KjMkTO0fTmsQYR/24DhKXbv8Vm4=","requires":{"babel-runtime":"6.x","classnames":"^2.2.0","rmc-dialog":"^1.0.1","rmc-feedback":"^2.0.0"}},"rnpm":{"version":"1.5.2","resolved":"http://registry.npm.taobao.org/rnpm/download/rnpm-1.5.2.tgz","integrity":"sha1-FmPUzgh1lEbMS3tutCo5HwqzNo0=","requires":{"commander":"^2.9.0","glob":"^6.0.1","lodash":"^3.10.1","rnpm-plugin-install":"^1.0.0","rnpm-plugin-link":"^1.6.0","update-notifier":"^0.6.0","xmldoc":"^0.4.0"},"dependencies":{"glob":{"version":"6.0.4","resolved":"http://registry.npm.taobao.org/glob/download/glob-6.0.4.tgz","integrity":"sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=","requires":{"inflight":"^1.0.4","inherits":"2","minimatch":"2 || 3","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"lodash":{"version":"3.10.1","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-3.10.1.tgz","integrity":"sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="}}},"rnpm-plugin-install":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/rnpm-plugin-install/download/rnpm-plugin-install-1.1.0.tgz","integrity":"sha1-WkbKvyxSPlmmAGM3yW9GxPK/r2k=","requires":{"npmlog":"^2.0.2"}},"rnpm-plugin-link":{"version":"1.8.0","resolved":"http://registry.npm.taobao.org/rnpm-plugin-link/download/rnpm-plugin-link-1.8.0.tgz","integrity":"sha1-V6/lz8GMyjruDYodwlPSjtr7WTw=","requires":{"fs-extra":"^0.26.2","glob":"^7.0.0","inquirer":"^0.12.0","lodash":"^3.10.1","mime":"^1.3.4","mock-fs":"^3.9.0","npmlog":"^2.0.0","plist":"^1.2.0","semver":"^5.1.0","to-camel-case":"^1.0.0","xcode":"^0.8.8"},"dependencies":{"ansi-escapes":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz","integrity":"sha1-06ioOzGapneTZisT52HHkRQiMG4="},"bplist-creator":{"version":"0.0.4","resolved":"http://registry.npm.taobao.org/bplist-creator/download/bplist-creator-0.0.4.tgz","integrity":"sha1-SsBJZ4LhJ6hcHSAmpPXrIqev+ZE=","requires":{"stream-buffers":"~0.2.3"}},"bplist-parser":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/bplist-parser/download/bplist-parser-0.0.6.tgz","integrity":"sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk="},"cli-cursor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz","integrity":"sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=","requires":{"restore-cursor":"^1.0.1"}},"figures":{"version":"1.7.0","resolved":"http://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz","integrity":"sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=","requires":{"escape-string-regexp":"^1.0.5","object-assign":"^4.1.0"}},"fs-extra":{"version":"0.26.7","resolved":"http://registry.npm.taobao.org/fs-extra/download/fs-extra-0.26.7.tgz","integrity":"sha1-muH92UiXeY7at20JGM9C0MMYT6k=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^2.1.0","klaw":"^1.0.0","path-is-absolute":"^1.0.0","rimraf":"^2.2.8"}},"inquirer":{"version":"0.12.0","resolved":"http://registry.npm.taobao.org/inquirer/download/inquirer-0.12.0.tgz","integrity":"sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=","requires":{"ansi-escapes":"^1.1.0","ansi-regex":"^2.0.0","chalk":"^1.0.0","cli-cursor":"^1.0.1","cli-width":"^2.0.0","figures":"^1.3.5","lodash":"^4.3.0","readline2":"^1.0.1","run-async":"^0.1.0","rx-lite":"^3.1.2","string-width":"^1.0.1","strip-ansi":"^3.0.0","through":"^2.3.6"},"dependencies":{"lodash":{"version":"4.17.11","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz","integrity":"sha1-s56mIp72B+zYniyN8SU2iRysm40="}}},"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"lodash":{"version":"3.10.1","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-3.10.1.tgz","integrity":"sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="},"node-uuid":{"version":"1.4.7","resolved":"http://registry.npm.taobao.org/node-uuid/download/node-uuid-1.4.7.tgz","integrity":"sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8="},"onetime":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz","integrity":"sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="},"pegjs":{"version":"0.9.0","resolved":"http://registry.npm.taobao.org/pegjs/download/pegjs-0.9.0.tgz","integrity":"sha1-9q76LjzlYWkgjlIXnf5B+JFBo2k="},"restore-cursor":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz","integrity":"sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=","requires":{"exit-hook":"^1.0.0","onetime":"^1.0.0"}},"run-async":{"version":"0.1.0","resolved":"http://registry.npm.taobao.org/run-async/download/run-async-0.1.0.tgz","integrity":"sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=","requires":{"once":"^1.3.0"}},"rx-lite":{"version":"3.1.2","resolved":"http://registry.npm.taobao.org/rx-lite/download/rx-lite-3.1.2.tgz","integrity":"sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="},"simple-plist":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/simple-plist/download/simple-plist-0.1.4.tgz","integrity":"sha1-EOtRtH4zxVbrjsRtXuZNZOcX210=","requires":{"bplist-creator":"0.0.4","bplist-parser":"0.0.6","plist":"1.2.0"}},"stream-buffers":{"version":"0.2.6","resolved":"http://registry.npm.taobao.org/stream-buffers/download/stream-buffers-0.2.6.tgz","integrity":"sha1-GBwI1bs2kARfaUAbmuanoM8zE/w="},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}},"xcode":{"version":"0.8.9","resolved":"http://registry.npm.taobao.org/xcode/download/xcode-0.8.9.tgz","integrity":"sha1-7Gdl9w6dzMzJ9umlubTn6BS0zzU=","requires":{"node-uuid":"1.4.7","pegjs":"0.9.0","simple-plist":"0.1.4"}}}},"rsvp":{"version":"3.6.2","resolved":"http://registry.npm.taobao.org/rsvp/download/rsvp-3.6.2.tgz","integrity":"sha1-LpZJFZmpbN4bUV1WdKj3qRRSkmo=","dev":true},"run-async":{"version":"2.3.0","resolved":"http://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz","integrity":"sha1-A3GrSuC91yDUFm19/aZP96RFpsA=","requires":{"is-promise":"^2.1.0"}},"rx-lite":{"version":"4.0.8","resolved":"http://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz","integrity":"sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="},"rx-lite-aggregates":{"version":"4.0.8","resolved":"http://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz","integrity":"sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=","requires":{"rx-lite":"*"}},"rxjs":{"version":"6.4.0","resolved":"http://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz","integrity":"sha1-87sP572n+2nerAwW8XtQsLh5BQQ=","dev":true,"requires":{"tslib":"^1.9.0"}},"safe-buffer":{"version":"5.1.2","resolved":"http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz","integrity":"sha1-mR7GnSluAxN0fVm9/St0XDX4go0="},"safe-regex":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz","integrity":"sha1-QKNmnzsHfR6UPURinhV91IAjvy4=","requires":{"ret":"~0.1.10"}},"safer-buffer":{"version":"2.1.2","resolved":"http://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz","integrity":"sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="},"sane":{"version":"2.5.2","resolved":"http://registry.npm.taobao.org/sane/download/sane-2.5.2.tgz","integrity":"sha1-tNwYYcIbQn6SlQej51HiosuKs/o=","dev":true,"requires":{"anymatch":"^2.0.0","capture-exit":"^1.2.0","exec-sh":"^0.2.0","fb-watchman":"^2.0.0","fsevents":"^1.2.3","micromatch":"^3.1.4","minimist":"^1.1.1","walker":"~1.0.5","watch":"~0.18.0"},"dependencies":{"arr-diff":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz","integrity":"sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=","dev":true},"array-unique":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=","dev":true},"braces":{"version":"2.3.2","resolved":"http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz","integrity":"sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=","dev":true,"requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","dev":true,"requires":{"is-extendable":"^0.1.0"}}}},"expand-brackets":{"version":"2.1.4","resolved":"http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","dev":true,"requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","dev":true,"requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","dev":true,"requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","dev":true,"requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","dev":true,"requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","dev":true,"requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=","dev":true}}},"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","dev":true,"requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"},"dependencies":{"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","dev":true,"requires":{"is-plain-object":"^2.0.4"}}}},"extglob":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz","integrity":"sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=","dev":true,"requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","dev":true,"requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","dev":true,"requires":{"is-extendable":"^0.1.0"}}}},"fill-range":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","dev":true,"requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","dev":true,"requires":{"is-extendable":"^0.1.0"}}}},"fsevents":{"version":"1.2.9","resolved":"https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz?cache=0&sync_timestamp=1573319284429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.9.tgz","integrity":"sha1-P17WZYPM1vQAtaANtvfoYTY+OI8=","dev":true,"optional":true,"requires":{"nan":"^2.12.1","node-pre-gyp":"^0.12.0"},"dependencies":{"abbrev":{"version":"1.1.1","bundled":true,"dev":true,"optional":true},"ansi-regex":{"version":"2.1.1","bundled":true,"dev":true,"optional":true},"aproba":{"version":"1.2.0","bundled":true,"dev":true,"optional":true},"are-we-there-yet":{"version":"1.1.5","bundled":true,"dev":true,"optional":true,"requires":{"delegates":"^1.0.0","readable-stream":"^2.0.6"}},"balanced-match":{"version":"1.0.0","bundled":true,"dev":true,"optional":true},"brace-expansion":{"version":"1.1.11","bundled":true,"dev":true,"optional":true,"requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"chownr":{"version":"1.1.1","bundled":true,"dev":true,"optional":true},"code-point-at":{"version":"1.1.0","bundled":true,"dev":true,"optional":true},"concat-map":{"version":"0.0.1","bundled":true,"dev":true,"optional":true},"console-control-strings":{"version":"1.1.0","bundled":true,"dev":true,"optional":true},"core-util-is":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"debug":{"version":"4.1.1","bundled":true,"dev":true,"optional":true,"requires":{"ms":"^2.1.1"}},"deep-extend":{"version":"0.6.0","bundled":true,"dev":true,"optional":true},"delegates":{"version":"1.0.0","bundled":true,"dev":true,"optional":true},"detect-libc":{"version":"1.0.3","bundled":true,"dev":true,"optional":true},"fs-minipass":{"version":"1.2.5","bundled":true,"dev":true,"optional":true,"requires":{"minipass":"^2.2.1"}},"fs.realpath":{"version":"1.0.0","bundled":true,"dev":true,"optional":true},"gauge":{"version":"2.7.4","bundled":true,"dev":true,"optional":true,"requires":{"aproba":"^1.0.3","console-control-strings":"^1.0.0","has-unicode":"^2.0.0","object-assign":"^4.1.0","signal-exit":"^3.0.0","string-width":"^1.0.1","strip-ansi":"^3.0.1","wide-align":"^1.1.0"}},"glob":{"version":"7.1.3","bundled":true,"dev":true,"optional":true,"requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.4","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"has-unicode":{"version":"2.0.1","bundled":true,"dev":true,"optional":true},"iconv-lite":{"version":"0.4.24","bundled":true,"dev":true,"optional":true,"requires":{"safer-buffer":">= 2.1.2 < 3"}},"ignore-walk":{"version":"3.0.1","bundled":true,"dev":true,"optional":true,"requires":{"minimatch":"^3.0.4"}},"inflight":{"version":"1.0.6","bundled":true,"dev":true,"optional":true,"requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.3","bundled":true,"dev":true,"optional":true},"ini":{"version":"1.3.5","bundled":true,"dev":true,"optional":true},"is-fullwidth-code-point":{"version":"1.0.0","bundled":true,"dev":true,"optional":true,"requires":{"number-is-nan":"^1.0.0"}},"isarray":{"version":"1.0.0","bundled":true,"dev":true,"optional":true},"minimatch":{"version":"3.0.4","bundled":true,"dev":true,"optional":true,"requires":{"brace-expansion":"^1.1.7"}},"minimist":{"version":"0.0.8","bundled":true,"dev":true,"optional":true},"minipass":{"version":"2.3.5","bundled":true,"dev":true,"optional":true,"requires":{"safe-buffer":"^5.1.2","yallist":"^3.0.0"}},"minizlib":{"version":"1.2.1","bundled":true,"dev":true,"optional":true,"requires":{"minipass":"^2.2.1"}},"mkdirp":{"version":"0.5.1","bundled":true,"dev":true,"optional":true,"requires":{"minimist":"0.0.8"}},"ms":{"version":"2.1.1","bundled":true,"dev":true,"optional":true},"needle":{"version":"2.3.0","bundled":true,"dev":true,"optional":true,"requires":{"debug":"^4.1.0","iconv-lite":"^0.4.4","sax":"^1.2.4"}},"node-pre-gyp":{"version":"0.12.0","bundled":true,"dev":true,"optional":true,"requires":{"detect-libc":"^1.0.2","mkdirp":"^0.5.1","needle":"^2.2.1","nopt":"^4.0.1","npm-packlist":"^1.1.6","npmlog":"^4.0.2","rc":"^1.2.7","rimraf":"^2.6.1","semver":"^5.3.0","tar":"^4"}},"nopt":{"version":"4.0.1","bundled":true,"dev":true,"optional":true,"requires":{"abbrev":"1","osenv":"^0.1.4"}},"npm-bundled":{"version":"1.0.6","bundled":true,"dev":true,"optional":true},"npm-packlist":{"version":"1.4.1","bundled":true,"dev":true,"optional":true,"requires":{"ignore-walk":"^3.0.1","npm-bundled":"^1.0.1"}},"npmlog":{"version":"4.1.2","bundled":true,"dev":true,"optional":true,"requires":{"are-we-there-yet":"~1.1.2","console-control-strings":"~1.1.0","gauge":"~2.7.3","set-blocking":"~2.0.0"}},"number-is-nan":{"version":"1.0.1","bundled":true,"dev":true,"optional":true},"object-assign":{"version":"4.1.1","bundled":true,"dev":true,"optional":true},"once":{"version":"1.4.0","bundled":true,"dev":true,"optional":true,"requires":{"wrappy":"1"}},"os-homedir":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"os-tmpdir":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"osenv":{"version":"0.1.5","bundled":true,"dev":true,"optional":true,"requires":{"os-homedir":"^1.0.0","os-tmpdir":"^1.0.0"}},"path-is-absolute":{"version":"1.0.1","bundled":true,"dev":true,"optional":true},"process-nextick-args":{"version":"2.0.0","bundled":true,"dev":true,"optional":true},"rc":{"version":"1.2.8","bundled":true,"dev":true,"optional":true,"requires":{"deep-extend":"^0.6.0","ini":"~1.3.0","minimist":"^1.2.0","strip-json-comments":"~2.0.1"},"dependencies":{"minimist":{"version":"1.2.0","bundled":true,"dev":true,"optional":true}}},"readable-stream":{"version":"2.3.6","bundled":true,"dev":true,"optional":true,"requires":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"}},"rimraf":{"version":"2.6.3","bundled":true,"dev":true,"optional":true,"requires":{"glob":"^7.1.3"}},"safe-buffer":{"version":"5.1.2","bundled":true,"dev":true,"optional":true},"safer-buffer":{"version":"2.1.2","bundled":true,"dev":true,"optional":true},"sax":{"version":"1.2.4","bundled":true,"dev":true,"optional":true},"semver":{"version":"5.7.0","bundled":true,"dev":true,"optional":true},"set-blocking":{"version":"2.0.0","bundled":true,"dev":true,"optional":true},"signal-exit":{"version":"3.0.2","bundled":true,"dev":true,"optional":true},"string-width":{"version":"1.0.2","bundled":true,"dev":true,"optional":true,"requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}},"string_decoder":{"version":"1.1.1","bundled":true,"dev":true,"optional":true,"requires":{"safe-buffer":"~5.1.0"}},"strip-ansi":{"version":"3.0.1","bundled":true,"dev":true,"optional":true,"requires":{"ansi-regex":"^2.0.0"}},"strip-json-comments":{"version":"2.0.1","bundled":true,"dev":true,"optional":true},"tar":{"version":"4.4.8","bundled":true,"dev":true,"optional":true,"requires":{"chownr":"^1.1.1","fs-minipass":"^1.2.5","minipass":"^2.3.4","minizlib":"^1.1.1","mkdirp":"^0.5.0","safe-buffer":"^5.1.2","yallist":"^3.0.2"}},"util-deprecate":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"wide-align":{"version":"1.1.3","bundled":true,"dev":true,"optional":true,"requires":{"string-width":"^1.0.2 || 2"}},"wrappy":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"yallist":{"version":"3.0.3","bundled":true,"dev":true,"optional":true}}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","dev":true,"requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","dev":true,"requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","dev":true,"requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","dev":true,"requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8=","dev":true},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE=","dev":true},"micromatch":{"version":"3.1.10","resolved":"http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz","integrity":"sha1-cIWbyVyYQJUvNZoGij/En57PrCM=","dev":true,"requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}}}},"sax":{"version":"1.1.6","resolved":"http://registry.npm.taobao.org/sax/download/sax-1.1.6.tgz","integrity":"sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA="},"scheduler":{"version":"0.15.0","resolved":"https://registry.npm.taobao.org/scheduler/download/scheduler-0.15.0.tgz","integrity":"sha1-a/z4D/hQsoD+1K7sxlE7wLTxf44=","requires":{"loose-envify":"^1.1.0","object-assign":"^4.1.1"}},"seedrandom":{"version":"2.4.3","resolved":"http://registry.npm.taobao.org/seedrandom/download/seedrandom-2.4.3.tgz","integrity":"sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw="},"semver":{"version":"5.7.0","resolved":"http://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.0.tgz","integrity":"sha1-eQp89v6lRZuslhELKbYEEtyP+Ws="},"semver-compare":{"version":"1.0.0","resolved":"https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz","integrity":"sha1-De4hahyUGrN+nvsXiPavxf9VN/w=","dev":true},"semver-diff":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/semver-diff/download/semver-diff-2.1.0.tgz","integrity":"sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=","requires":{"semver":"^5.0.3"}},"semver-regex":{"version":"2.0.0","resolved":"https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz","integrity":"sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==","dev":true},"send":{"version":"0.17.1","resolved":"https://registry.npmjs.org/send/-/send-0.17.1.tgz","integrity":"sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==","requires":{"debug":"2.6.9","depd":"~1.1.2","destroy":"~1.0.4","encodeurl":"~1.0.2","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.7.2","mime":"1.6.0","ms":"2.1.1","on-finished":"~2.3.0","range-parser":"~1.2.1","statuses":"~1.5.0"},"dependencies":{"ms":{"version":"2.1.1","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz","integrity":"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="},"statuses":{"version":"1.5.0","resolved":"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz","integrity":"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="}}},"serialize-error":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/serialize-error/download/serialize-error-2.1.0.tgz","integrity":"sha1-ULZ51WNc34Rme9yOWa9OW4HV9go="},"serve-static":{"version":"1.14.1","resolved":"https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz","integrity":"sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==","requires":{"encodeurl":"~1.0.2","escape-html":"~1.0.3","parseurl":"~1.3.3","send":"0.17.1"},"dependencies":{"parseurl":{"version":"1.3.3","resolved":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","integrity":"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="}}},"set-blocking":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz","integrity":"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="},"set-value":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/set-value/download/set-value-2.0.0.tgz","integrity":"sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=","requires":{"extend-shallow":"^2.0.1","is-extendable":"^0.1.1","is-plain-object":"^2.0.3","split-string":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"setimmediate":{"version":"1.0.5","resolved":"http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz","integrity":"sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="},"setprototypeof":{"version":"1.1.1","resolved":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz","integrity":"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="},"shaka-player":{"version":"2.5.10","resolved":"https://registry.npm.taobao.org/shaka-player/download/shaka-player-2.5.10.tgz","integrity":"sha1-b05y4kMwAtEYJKIjsC7dUATjDis=","requires":{"eme-encryption-scheme-polyfill":"^2.0.1"}},"shebang-command":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz","integrity":"sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=","requires":{"shebang-regex":"^1.0.0"}},"shebang-regex":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz","integrity":"sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="},"shell-quote":{"version":"1.6.1","resolved":"http://registry.npm.taobao.org/shell-quote/download/shell-quote-1.6.1.tgz","integrity":"sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=","requires":{"array-filter":"~0.0.0","array-map":"~0.0.0","array-reduce":"~0.0.0","jsonify":"~0.0.0"}},"shellwords":{"version":"0.1.1","resolved":"https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz","integrity":"sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww=="},"signal-exit":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz","integrity":"sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="},"simple-plist":{"version":"1.1.0","resolved":"https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.0.tgz","integrity":"sha512-2i5Tc0BYAqppM7jVzmNrI+aEUntPolIq4fDgji6WuNNn1D/qYdn2KwoLhZdzQkE04lu9L5tUoeJsjuJAvd+lFg==","requires":{"bplist-creator":"0.0.8","bplist-parser":"0.2.0","plist":"^3.0.1"},"dependencies":{"plist":{"version":"3.0.1","resolved":"https://registry.npmjs.org/plist/-/plist-3.0.1.tgz","integrity":"sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==","requires":{"base64-js":"^1.2.3","xmlbuilder":"^9.0.7","xmldom":"0.1.x"}},"xmlbuilder":{"version":"9.0.7","resolved":"https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz","integrity":"sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="}}},"slash":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz","integrity":"sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=","dev":true},"slice-ansi":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz","integrity":"sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=","requires":{"ansi-styles":"^3.2.0","astral-regex":"^1.0.0","is-fullwidth-code-point":"^2.0.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}}}},"slide":{"version":"1.1.6","resolved":"http://registry.npm.taobao.org/slide/download/slide-1.1.6.tgz","integrity":"sha1-VusCfWW00tzmyy4tMsTUr8nh1wc="},"snapdragon":{"version":"0.8.2","resolved":"http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz","integrity":"sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=","requires":{"base":"^0.11.1","debug":"^2.2.0","define-property":"^0.2.5","extend-shallow":"^2.0.1","map-cache":"^0.2.2","source-map":"^0.5.6","source-map-resolve":"^0.5.0","use":"^3.1.0"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"snapdragon-node":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz","integrity":"sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=","requires":{"define-property":"^1.0.0","isobject":"^3.0.0","snapdragon-util":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="}}},"snapdragon-util":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz","integrity":"sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=","requires":{"kind-of":"^3.2.0"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"sort-array":{"version":"2.0.0","resolved":"https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz","integrity":"sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI=","dev":true,"requires":{"array-back":"^1.0.4","object-get":"^2.1.0","typical":"^2.6.0"},"dependencies":{"array-back":{"version":"1.0.4","resolved":"https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz","integrity":"sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=","dev":true,"requires":{"typical":"^2.6.0"}}}},"source-map":{"version":"0.5.7","resolved":"http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz","integrity":"sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="},"source-map-resolve":{"version":"0.5.2","resolved":"http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz","integrity":"sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=","requires":{"atob":"^2.1.1","decode-uri-component":"^0.2.0","resolve-url":"^0.2.1","source-map-url":"^0.4.0","urix":"^0.1.0"}},"source-map-support":{"version":"0.4.18","resolved":"http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz","integrity":"sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=","dev":true,"requires":{"source-map":"^0.5.6"}},"source-map-url":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz","integrity":"sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="},"spdx-correct":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz","integrity":"sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=","requires":{"spdx-expression-parse":"^3.0.0","spdx-license-ids":"^3.0.0"}},"spdx-exceptions":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz","integrity":"sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc="},"spdx-expression-parse":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz","integrity":"sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=","requires":{"spdx-exceptions":"^2.1.0","spdx-license-ids":"^3.0.0"}},"spdx-license-ids":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.4.tgz","integrity":"sha1-dezRqI3owYTvAV6vtRtbSL/RG7E="},"split-on-first":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/split-on-first/download/split-on-first-1.0.0.tgz","integrity":"sha1-ZIr0zpoo+8qt1DJ0RV8pi1UCX8Y="},"split-string":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz","integrity":"sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=","requires":{"extend-shallow":"^3.0.0"},"dependencies":{"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"}},"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"sprintf-js":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz","integrity":"sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="},"sshpk":{"version":"1.16.1","resolved":"http://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz","integrity":"sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=","dev":true,"requires":{"asn1":"~0.2.3","assert-plus":"^1.0.0","bcrypt-pbkdf":"^1.0.0","dashdash":"^1.12.0","ecc-jsbn":"~0.1.1","getpass":"^0.1.1","jsbn":"~0.1.0","safer-buffer":"^2.0.2","tweetnacl":"~0.14.0"}},"stack-trace":{"version":"0.0.10","resolved":"https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz","integrity":"sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=","dev":true},"stack-utils":{"version":"1.0.2","resolved":"https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz","integrity":"sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA=="},"stacktrace-parser":{"version":"0.1.10","resolved":"http://registry.npm.pt.mi.com/stacktrace-parser/download/stacktrace-parser-0.1.10.tgz","integrity":"sha1-KfsMrk4NC4UVWHlAKFehY562BRo=","requires":{"type-fest":"^0.7.1"}},"static-container":{"version":"1.5.1","resolved":"https://registry.npm.taobao.org/static-container/download/static-container-1.5.1.tgz","integrity":"sha1-nXqU4E3qhkU5p7ahMEhDradA3Bk="},"static-extend":{"version":"0.1.2","resolved":"http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz","integrity":"sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=","requires":{"define-property":"^0.2.5","object-copy":"^0.1.0"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}}}},"statuses":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz","integrity":"sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="},"stream":{"version":"0.0.2","resolved":"http://registry.npm.taobao.org/stream/download/stream-0.0.2.tgz","integrity":"sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=","requires":{"emitter-component":"^1.1.1"}},"stream-buffers":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/stream-buffers/download/stream-buffers-2.2.0.tgz","integrity":"sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ="},"stream-connect":{"version":"1.0.2","resolved":"https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz","integrity":"sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=","dev":true,"requires":{"array-back":"^1.0.2"},"dependencies":{"array-back":{"version":"1.0.4","resolved":"https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz","integrity":"sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=","dev":true,"requires":{"typical":"^2.6.0"}}}},"stream-via":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/stream-via/download/stream-via-1.0.4.tgz","integrity":"sha1-jcy7CskJMo64vI4qS9OTSv2vYGw=","dev":true},"streamifier":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/streamifier/download/streamifier-0.1.1.tgz","integrity":"sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=","dev":true},"strict-uri-encode":{"version":"2.0.0","resolved":"https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz","integrity":"sha1-ucczDHBChi9rFC3CdLvMWGbONUY="},"string-width":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz","integrity":"sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=","requires":{"is-fullwidth-code-point":"^2.0.0","strip-ansi":"^4.0.0"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="},"strip-ansi":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","requires":{"ansi-regex":"^3.0.0"}}}},"string_decoder":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz","integrity":"sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=","requires":{"safe-buffer":"~5.1.0"}},"strip-ansi":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz","integrity":"sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=","requires":{"ansi-regex":"^2.0.0"}},"strip-bom":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz","integrity":"sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="},"strip-eof":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz","integrity":"sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="},"strip-json-comments":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz","integrity":"sha1-PFMZQukIwml8DsNEhYwobHygpgo="},"sudo-prompt":{"version":"9.2.1","resolved":"http://registry.npm.pt.mi.com/sudo-prompt/download/sudo-prompt-9.2.1.tgz","integrity":"sha1-d++4QwnJykiVJ6TnSfKH5r3VKv0="},"supports-color":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz","integrity":"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="},"symbol-observable":{"version":"1.0.1","resolved":"https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz","integrity":"sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="},"table":{"version":"5.2.3","resolved":"http://registry.npm.taobao.org/table/download/table-5.2.3.tgz","integrity":"sha1-zeDMbrBnUcAJ76sn6Mggyltnt/I=","dev":true,"requires":{"ajv":"^6.9.1","lodash":"^4.17.11","slice-ansi":"^2.1.0","string-width":"^3.0.0"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz","integrity":"sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=","dev":true},"string-width":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz","integrity":"sha1-InZ74htirxCBV0MG9prFG2IgOWE=","dev":true,"requires":{"emoji-regex":"^7.0.1","is-fullwidth-code-point":"^2.0.0","strip-ansi":"^5.1.0"}},"strip-ansi":{"version":"5.2.0","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz","integrity":"sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=","dev":true,"requires":{"ansi-regex":"^4.1.0"}}}},"table-layout":{"version":"0.4.4","resolved":"http://registry.npm.taobao.org/table-layout/download/table-layout-0.4.4.tgz","integrity":"sha1-vFOYsqBeWLZ7Bd2SODVLie8nvg8=","dev":true,"requires":{"array-back":"^2.0.0","deep-extend":"~0.6.0","lodash.padend":"^4.6.1","typical":"^2.6.1","wordwrapjs":"^3.0.0"}},"taffydb":{"version":"2.6.2","resolved":"https://registry.npm.taobao.org/taffydb/download/taffydb-2.6.2.tgz","integrity":"sha1-fLy2S1oUG2ou/CxdLGe04VCyomg="},"tar-stream":{"version":"1.6.2","resolved":"http://registry.npm.taobao.org/tar-stream/download/tar-stream-1.6.2.tgz","integrity":"sha1-jqVdqzeXIlPZqa+Q/c1VmuQ1xVU=","dev":true,"requires":{"bl":"^1.0.0","buffer-alloc":"^1.2.0","end-of-stream":"^1.0.0","fs-constants":"^1.0.0","readable-stream":"^2.3.0","to-buffer":"^1.1.1","xtend":"^4.0.0"}},"temp":{"version":"0.8.3","resolved":"http://registry.npm.taobao.org/temp/download/temp-0.8.3.tgz","integrity":"sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=","requires":{"os-tmpdir":"^1.0.0","rimraf":"~2.2.6"},"dependencies":{"rimraf":{"version":"2.2.8","resolved":"http://registry.npm.taobao.org/rimraf/download/rimraf-2.2.8.tgz","integrity":"sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="}}},"temp-path":{"version":"1.0.0","resolved":"https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz","integrity":"sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=","dev":true},"test-value":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/test-value/download/test-value-3.0.0.tgz","integrity":"sha1-kWjAYvqxGoa41ETdlou0tzhRzpI=","dev":true,"requires":{"array-back":"^2.0.0","typical":"^2.6.1"}},"text-table":{"version":"0.2.0","resolved":"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz","integrity":"sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=","dev":true},"throat":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz","integrity":"sha1-iQN8vJLFarGJJua6TLsgDhVnKmo="},"through":{"version":"2.3.8","resolved":"http://registry.npm.taobao.org/through/download/through-2.3.8.tgz","integrity":"sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="},"through2":{"version":"2.0.5","resolved":"http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz","integrity":"sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=","requires":{"readable-stream":"~2.3.6","xtend":"~4.0.1"}},"time-stamp":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/time-stamp/download/time-stamp-1.1.0.tgz","integrity":"sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="},"timed-out":{"version":"3.1.3","resolved":"http://registry.npm.taobao.org/timed-out/download/timed-out-3.1.3.tgz","integrity":"sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc="},"tmp":{"version":"0.0.33","resolved":"http://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz","integrity":"sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=","requires":{"os-tmpdir":"~1.0.2"}},"tmpl":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz","integrity":"sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE="},"to-buffer":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/to-buffer/download/to-buffer-1.1.1.tgz","integrity":"sha1-STvUj2LXxD/N7TE6A9ytsuEhOoA=","dev":true},"to-camel-case":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/to-camel-case/download/to-camel-case-1.0.0.tgz","integrity":"sha1-GlYFSy+daWKYzmamCJcyK29CPkY=","requires":{"to-space-case":"^1.0.0"}},"to-fast-properties":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz","integrity":"sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="},"to-no-case":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/to-no-case/download/to-no-case-1.0.2.tgz","integrity":"sha1-xyKQcWTvaxeBMsjmmTAhLRtKoWo="},"to-object-path":{"version":"0.3.0","resolved":"http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz","integrity":"sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"to-regex":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz","integrity":"sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=","requires":{"define-property":"^2.0.2","extend-shallow":"^3.0.2","regex-not":"^1.0.2","safe-regex":"^1.1.0"},"dependencies":{"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"}},"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"to-regex-range":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz","integrity":"sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=","requires":{"is-number":"^3.0.0","repeat-string":"^1.6.1"},"dependencies":{"is-number":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"}},"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"to-space-case":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/to-space-case/download/to-space-case-1.0.0.tgz","integrity":"sha1-sFLar7Gysp3HcM6gFj5ewOvJ/Bc=","requires":{"to-no-case":"^1.0.0"}},"toidentifier":{"version":"1.0.0","resolved":"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz","integrity":"sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="},"tough-cookie":{"version":"2.4.3","resolved":"http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz","integrity":"sha1-U/Nto/R3g7CSWvoG/587FlKA94E=","dev":true,"requires":{"psl":"^1.1.24","punycode":"^1.4.1"},"dependencies":{"punycode":{"version":"1.4.1","resolved":"http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz","integrity":"sha1-wNWmOycYgArY4esPpSachN1BhF4=","dev":true}}},"trim-right":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz","integrity":"sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="},"tslib":{"version":"1.9.3","resolved":"http://registry.npm.taobao.org/tslib/download/tslib-1.9.3.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.9.3.tgz","integrity":"sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=","dev":true},"tunnel-agent":{"version":"0.6.0","resolved":"http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz","integrity":"sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=","dev":true,"requires":{"safe-buffer":"^5.0.1"}},"tween-functions":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/tween-functions/download/tween-functions-1.2.0.tgz","integrity":"sha1-GuOlDnxguz3vd06scHrLynO7w/8="},"tweetnacl":{"version":"0.14.5","resolved":"http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz","integrity":"sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=","dev":true},"type-check":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz","integrity":"sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=","dev":true,"requires":{"prelude-ls":"~1.1.2"}},"type-fest":{"version":"0.7.1","resolved":"https://registry.npm.taobao.org/type-fest/download/type-fest-0.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.7.1.tgz","integrity":"sha1-jdpl/q8D7Xjwo/lnjxhpFH98XEg="},"typedarray":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz","integrity":"sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="},"typical":{"version":"2.6.1","resolved":"https://registry.npmjs.org/typical/-/typical-2.6.1.tgz","integrity":"sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=","dev":true},"ua-parser-js":{"version":"0.7.19","resolved":"http://registry.npm.taobao.org/ua-parser-js/download/ua-parser-js-0.7.19.tgz","integrity":"sha1-lBUb5MCn+x0AGvcCL9rKRkJlnks="},"uc.micro":{"version":"1.0.6","resolved":"https://registry.npm.taobao.org/uc.micro/download/uc.micro-1.0.6.tgz","integrity":"sha1-nEEagCpAmpH8bPdAgbq6NLJEmaw="},"uglify-es":{"version":"3.3.9","resolved":"https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz","integrity":"sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==","requires":{"commander":"~2.13.0","source-map":"~0.6.1"},"dependencies":{"commander":{"version":"2.13.0","resolved":"https://registry.npmjs.org/commander/-/commander-2.13.0.tgz","integrity":"sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA=="},"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="}}},"ultron":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/ultron/download/ultron-1.0.2.tgz","integrity":"sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="},"underscore":{"version":"1.9.2","resolved":"https://registry.npm.taobao.org/underscore/download/underscore-1.9.2.tgz","integrity":"sha1-DI1vU21vN4pa8mSnL3vsUP63zy8="},"unicode-canonical-property-names-ecmascript":{"version":"1.0.4","resolved":"https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz","integrity":"sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="},"unicode-match-property-ecmascript":{"version":"1.0.4","resolved":"https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz","integrity":"sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==","requires":{"unicode-canonical-property-names-ecmascript":"^1.0.4","unicode-property-aliases-ecmascript":"^1.0.4"}},"unicode-match-property-value-ecmascript":{"version":"1.1.0","resolved":"https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz","integrity":"sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g=="},"unicode-property-aliases-ecmascript":{"version":"1.0.5","resolved":"https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz","integrity":"sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw=="},"union-value":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/union-value/download/union-value-1.0.0.tgz","integrity":"sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=","requires":{"arr-union":"^3.1.0","get-value":"^2.0.6","is-extendable":"^0.1.1","set-value":"^0.4.3"},"dependencies":{"arr-union":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz","integrity":"sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"set-value":{"version":"0.4.3","resolved":"http://registry.npm.taobao.org/set-value/download/set-value-0.4.3.tgz","integrity":"sha1-fbCPnT0i3H945Trzw79GZuzfzPE=","requires":{"extend-shallow":"^2.0.1","is-extendable":"^0.1.1","is-plain-object":"^2.0.1","to-object-path":"^0.3.0"}}}},"universalify":{"version":"0.1.2","resolved":"https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz","integrity":"sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="},"unpipe":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz","integrity":"sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="},"unset-value":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz","integrity":"sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=","requires":{"has-value":"^0.3.1","isobject":"^3.0.0"},"dependencies":{"has-value":{"version":"0.3.1","resolved":"http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz","integrity":"sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=","requires":{"get-value":"^2.0.3","has-values":"^0.1.4","isobject":"^2.0.0"},"dependencies":{"isobject":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz","integrity":"sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=","requires":{"isarray":"1.0.0"}}}},"has-values":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz","integrity":"sha1-bWHeldkd/Km5oCCJrThL/49it3E="},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"unzip-response":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/unzip-response/download/unzip-response-1.0.2.tgz","integrity":"sha1-uYTwh3/AqJwsdzzB73tbIytbBv4="},"update-notifier":{"version":"0.6.3","resolved":"http://registry.npm.taobao.org/update-notifier/download/update-notifier-0.6.3.tgz","integrity":"sha1-d23sjaoT6WKjQeih2YNUMGtnrgg=","requires":{"boxen":"^0.3.1","chalk":"^1.0.0","configstore":"^2.0.0","is-npm":"^1.0.0","latest-version":"^2.0.0","semver-diff":"^2.0.0"}},"uri-js":{"version":"4.2.2","resolved":"http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz","integrity":"sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=","dev":true,"requires":{"punycode":"^2.1.0"}},"urix":{"version":"0.1.0","resolved":"http://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz","integrity":"sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="},"url-parse-lax":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz","integrity":"sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=","requires":{"prepend-http":"^1.0.1"}},"use":{"version":"3.1.1","resolved":"http://registry.npm.taobao.org/use/download/use-3.1.1.tgz","integrity":"sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8="},"util-deprecate":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz","integrity":"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="},"utile":{"version":"0.2.1","resolved":"https://registry.npmjs.org/utile/-/utile-0.2.1.tgz","integrity":"sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=","dev":true,"requires":{"async":"~0.2.9","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.4.x","rimraf":"2.x.x"},"dependencies":{"async":{"version":"0.2.10","resolved":"https://registry.npmjs.org/async/-/async-0.2.10.tgz","integrity":"sha1-trvgsGdLnXGXCMo43owjfLUmw9E=","dev":true}}},"utils-merge":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz","integrity":"sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="},"uuid":{"version":"3.3.2","resolved":"http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz","integrity":"sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE="},"validate-npm-package-license":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz","integrity":"sha1-/JH2uce6FchX9MssXe/uw51PQQo=","requires":{"spdx-correct":"^3.0.0","spdx-expression-parse":"^3.0.0"}},"vary":{"version":"1.1.2","resolved":"http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz","integrity":"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="},"verror":{"version":"1.10.0","resolved":"http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz","integrity":"sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=","dev":true,"requires":{"assert-plus":"^1.0.0","core-util-is":"1.0.2","extsprintf":"^1.2.0"}},"victory-area":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-area/-/victory-area-33.1.2.tgz","integrity":"sha512-ZHpeXI0cdK3gJRdKzBHDKxe37x6ljO8nThyGcKWrgErsz1rqaG9ZNTEHvTkQWeepwVh3UZa32N8RR/RBCQpztQ==","requires":{"d3-shape":"^1.2.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-axis":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-axis/-/victory-axis-33.1.2.tgz","integrity":"sha512-j8wDlN/Nv/nGu+DneI/xtcnlRMHXche4PzObZg/CJ91aZaAyBgEpJPnLKXSanwFWgK6eSL1D4chI8fEOBVOOlw==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-bar":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-bar/-/victory-bar-33.1.2.tgz","integrity":"sha512-qSbFXSyioK6TautyhUb4QPOFDjwRO80M3CJKqE/wcRkt3cLykwQoPYYtjOqSIPlWZmBZa/JOBwxeXIsz6bhAzQ==","requires":{"d3-shape":"^1.2.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-box-plot":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-box-plot/-/victory-box-plot-33.1.2.tgz","integrity":"sha512-pb1CayUXaGNeopkbw3t/yEPZxv4AJyKL0P+ja2QPXcOfL1ATjhHBLqogWyKGP0V+KurqXcni4oSTDc3yzEwsjA==","requires":{"d3-array":"^1.2.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-brush-container":{"version":"33.1.3","resolved":"https://registry.npmjs.org/victory-brush-container/-/victory-brush-container-33.1.3.tgz","integrity":"sha512-7m2XV0UnkTrt2zdFAt/SnEoPzMCaC6JX3A4z9M/BCfeHDA12FP5BrPTFVduRmrS7f6xD7GlGacyepUg1XOPFQw==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-brush-line":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-brush-line/-/victory-brush-line-33.1.2.tgz","integrity":"sha512-qU+7UamqUqxl1OacWuhriiLRn5FDREO04HWp3Oixz9JqoIvpmjSc1mZcoJALYBHNZ0QIxkAhd1ZYol2cQrhnlQ==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-candlestick":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-candlestick/-/victory-candlestick-33.1.2.tgz","integrity":"sha512-UaQ+bG3tXLrbdBjwhXvUOcgiYJhOkLh0JLFusSkJ0yCnSvvEaxI2LRaLHPOThK98CPvqvdrOnZ4teVUtQtL9IA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-chart":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-chart/-/victory-chart-33.1.2.tgz","integrity":"sha512-4wJh+os9hRGX8BR3Vz/ip1r3EjCv8ricixK6o14nslONUH7zTTB1ze9lAPDCFKnWfDDOJlYCCJaeQWYbMcu8Dg==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0","victory-axis":"^33.1.2","victory-core":"^33.1.2","victory-polar-axis":"^33.1.2","victory-shared-events":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-core":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-core/-/victory-core-33.1.2.tgz","integrity":"sha512-7IONalf4b4MSGJRaHiTBFcrt9exOnky0y+LvU04eddX1sYuqSSCtRGGC+HT9k9bNh56PPpgVT6GPbwWIz2RFCQ==","requires":{"d3-ease":"^1.0.0","d3-interpolate":"^1.1.1","d3-scale":"^1.0.0","d3-shape":"^1.2.0","d3-timer":"^1.0.0","lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-create-container":{"version":"33.1.3","resolved":"https://registry.npmjs.org/victory-create-container/-/victory-create-container-33.1.3.tgz","integrity":"sha512-qnAtIpmSBFW7cDzqkmVtVRD//iqFXQsndeJ+uDyRkHpRVdVvGwH5ATzl/z5Qj14r+f7cvgjYAZb+TbsINqdW2A==","requires":{"lodash":"^4.17.15","victory-brush-container":"^33.1.3","victory-core":"^33.1.2","victory-cursor-container":"^33.1.2","victory-selection-container":"^33.1.2","victory-voronoi-container":"^33.1.2","victory-zoom-container":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-cursor-container":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-cursor-container/-/victory-cursor-container-33.1.2.tgz","integrity":"sha512-+rUem56YVdAX/JEUpLh6MtfHtTMVQbiiQXceDJPbghB0tNu9nqIlfh+eelSvdvP2C3nB3bAGcjJqdbgnV00fhg==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-errorbar":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-errorbar/-/victory-errorbar-33.1.2.tgz","integrity":"sha512-Qf8EQAJAT9FB91woMKdgj3uzMu+SYQVcc/JGboB77awqg36cJHqqL3hsnsrPJb9TH6EMLyQIWlk/xsIkGgF8ow==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-group":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-group/-/victory-group-33.1.2.tgz","integrity":"sha512-BX4Gjw0zbm2RmgQNXo464Dr16tPWGKDJSwKoBczx3kKOaty7rJDdFWcYtoCJ2UXab9zNdVX0ouXevNyzYpSPqA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-legend":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-legend/-/victory-legend-33.1.2.tgz","integrity":"sha512-au9IYRQOuRJqeHOTUelg8IoxdL4Uogy6PvlR5ecKj9t5NvgculI+deqKxvJhpfqlb78q8TYYYcADGZAfn0pAug==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-line":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-line/-/victory-line-33.1.2.tgz","integrity":"sha512-QsGX5edI7oPOfSqi98JgykgoDuKIWUiG8d9okx+Sj8QRuPSmRtxZ2f3n/N4K1lP5MoQRAEJFCqEAjfJLiuGEfg==","requires":{"d3-shape":"^1.2.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-native":{"version":"33.0.0","resolved":"https://registry.npmjs.org/victory-native/-/victory-native-33.0.0.tgz","integrity":"sha512-Tz3R/aEBQp3l3GYbiVKDn6x+kTw8K9WoVjcO1/g00TVLD6vJWdTC1ADw9cQ0BwARi1MBNxzs6Qhsky7d5vOwag==","requires":{"lodash":"^4.17.11","prop-types":"^15.5.10","react-fast-compare":"^2.0.0","victory-area":"^33.0.0","victory-axis":"^33.0.0","victory-bar":"^33.0.0","victory-box-plot":"^33.0.0","victory-brush-container":"^33.0.0","victory-brush-line":"^33.0.0","victory-candlestick":"^33.0.0","victory-chart":"^33.0.0","victory-core":"^33.0.0","victory-create-container":"^33.0.0","victory-cursor-container":"^33.0.0","victory-errorbar":"^33.0.0","victory-group":"^33.0.0","victory-legend":"^33.0.0","victory-line":"^33.0.0","victory-pie":"^33.0.0","victory-polar-axis":"^33.0.0","victory-scatter":"^33.0.0","victory-selection-container":"^33.0.0","victory-shared-events":"^33.0.0","victory-stack":"^33.0.0","victory-tooltip":"^33.0.0","victory-voronoi":"^33.0.0","victory-voronoi-container":"^33.0.0","victory-zoom-container":"^33.0.0"}},"victory-pie":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-pie/-/victory-pie-33.1.2.tgz","integrity":"sha512-ZCHqG1N8htc2x4i2AnRn6cfcs0+u/E+mk+dCFgRS85x/iwIZlqdPKKcC51kIJ6LTrcNuzKhMqcawx+OpFm+//Q==","requires":{"d3-shape":"^1.0.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-polar-axis":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-polar-axis/-/victory-polar-axis-33.1.2.tgz","integrity":"sha512-Nkl3n8WB1nSS8AFsxdRXlATfMpJsPNlS01xhOA2m/MstSHHErOC9tSj/GtXviV5+n8Dg0AA9srpStNa7z/Rx6g==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-scatter":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-scatter/-/victory-scatter-33.1.2.tgz","integrity":"sha512-wT6dLdoUWaM7wSWOmMKpJi12dRAjqvQn1iOvVpmngK0DqVxwbXeK0fJqvDqRs2RIScqJgx2UvZ+sIiMijlb8og==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-selection-container":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-selection-container/-/victory-selection-container-33.1.2.tgz","integrity":"sha512-KR/c3Ij4W+JUiYA67t6wj4T3tnF8UK8373dPnAihNOliKB6d4CSX4JmgCEs6UySrJBTCciYcZ88rZVSpI7QIrA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-shared-events":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-shared-events/-/victory-shared-events-33.1.2.tgz","integrity":"sha512-TNnLZ0uY7tbZm56uDee0TA+501aTeikpuBKTx/vpfT6ifFwiYfQ9n5Orx3aVmJvkinmLaifqnxWA9UwAwuIL7w==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-stack":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-stack/-/victory-stack-33.1.2.tgz","integrity":"sha512-4eOvyPx0EpmZGuwbtc+XlWuuM8CSC4RAiEsAcDuqNPmWPJShuuB9ABBHV04yVGF9Ub80d+kTowuQJD5PsxtRyA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-tooltip":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-tooltip/-/victory-tooltip-33.1.2.tgz","integrity":"sha512-iFxQfsF2hwJR2ZnhNmkiBKfLlfyIcpSfn2x+vZlxA144BGTmvfrC05Pn17erZnAT50AiVf0aW5YJNKLv06MWaA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-voronoi":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-voronoi/-/victory-voronoi-33.1.2.tgz","integrity":"sha512-oLoicPWgGHxEHAtCjzNQsN/fILmXV/6QBlJoCN04TzLyA063xvy2E+n6yuAtGHEkrpVCG7VTB/T5cJN7MCOyIQ==","requires":{"d3-voronoi":"^1.1.2","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-voronoi-container":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-voronoi-container/-/victory-voronoi-container-33.1.2.tgz","integrity":"sha512-ydsWYLGi9dSVbr+/5v1E6NvuV9C2OvdqTvHuH5r6BthSqFu0u+6bbv4QIbJY9sWc2L1zhknZByikV1ty9bGIfA==","requires":{"delaunay-find":"0.0.5","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2","victory-tooltip":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-zoom-container":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-zoom-container/-/victory-zoom-container-33.1.2.tgz","integrity":"sha512-hNvBg/N64BhSTJunonuoiH38eKtgxJiobbcNPFM2BPiuKJAr7a8SKSngFgECrwTQQVgt2sC7qVX/+WYwrJCpYA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"vlq":{"version":"1.0.1","resolved":"https://registry.npm.taobao.org/vlq/download/vlq-1.0.1.tgz","integrity":"sha1-wAP258C0we3WI/1u5Qu8DWod5Gg="},"walk-back":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/walk-back/download/walk-back-3.0.1.tgz","integrity":"sha1-DAASaUclYElg1sL3Wq8aHn1FXTU=","dev":true},"walker":{"version":"1.0.7","resolved":"http://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz","integrity":"sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=","requires":{"makeerror":"1.0.x"}},"watch":{"version":"0.18.0","resolved":"http://registry.npm.taobao.org/watch/download/watch-0.18.0.tgz","integrity":"sha1-KAlUdsbffJDJYxOJkMClQj60uYY=","dev":true,"requires":{"exec-sh":"^0.2.0","minimist":"^1.2.0"}},"wcwidth":{"version":"1.0.1","resolved":"https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz","integrity":"sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=","requires":{"defaults":"^1.0.3"}},"whatwg-fetch":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-2.0.4.tgz","integrity":"sha1-3eal3zFfnTmZGqF2IYU9cguFVm8="},"which":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/which/download/which-1.3.1.tgz","integrity":"sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=","requires":{"isexe":"^2.0.0"}},"which-module":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz","integrity":"sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="},"which-pm-runs":{"version":"1.0.0","resolved":"https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz","integrity":"sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=","dev":true},"widest-line":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/widest-line/download/widest-line-1.0.0.tgz","integrity":"sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=","requires":{"string-width":"^1.0.1"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}}}},"winston":{"version":"0.8.3","resolved":"https://registry.npmjs.org/winston/-/winston-0.8.3.tgz","integrity":"sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=","dev":true,"requires":{"async":"0.2.x","colors":"0.6.x","cycle":"1.0.x","eyes":"0.1.x","isstream":"0.1.x","pkginfo":"0.3.x","stack-trace":"0.0.x"},"dependencies":{"async":{"version":"0.2.10","resolved":"https://registry.npmjs.org/async/-/async-0.2.10.tgz","integrity":"sha1-trvgsGdLnXGXCMo43owjfLUmw9E=","dev":true},"pkginfo":{"version":"0.3.1","resolved":"https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz","integrity":"sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=","dev":true}}},"wordwrap":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz","integrity":"sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="},"wordwrapjs":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/wordwrapjs/download/wordwrapjs-3.0.0.tgz","integrity":"sha1-yUw3KJTK3G/rGma/9k4dmvksXR4=","dev":true,"requires":{"reduce-flatten":"^1.0.1","typical":"^2.6.1"}},"wrap-ansi":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz","integrity":"sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=","requires":{"string-width":"^1.0.1","strip-ansi":"^3.0.1"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}}}},"wrappy":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz","integrity":"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="},"write":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/write/download/write-1.0.3.tgz","integrity":"sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=","dev":true,"requires":{"mkdirp":"^0.5.1"}},"write-file-atomic":{"version":"1.3.4","resolved":"http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-1.3.4.tgz","integrity":"sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=","requires":{"graceful-fs":"^4.1.11","imurmurhash":"^0.1.4","slide":"^1.1.5"}},"ws":{"version":"1.1.5","resolved":"http://registry.npm.taobao.org/ws/download/ws-1.1.5.tgz","integrity":"sha1-y9nm514J/F0skAFfIfDECHXg3VE=","requires":{"options":">=0.0.5","ultron":"1.0.x"}},"xcode":{"version":"2.0.0","resolved":"https://registry.npmjs.org/xcode/-/xcode-2.0.0.tgz","integrity":"sha512-5xF6RCjAdDEiEsbbZaS/gBRt3jZ/177otZcpoLCjGN/u1LrfgH7/Sgeeavpr/jELpyDqN2im3AKosl2G2W8hfw==","requires":{"simple-plist":"^1.0.0","uuid":"^3.3.2"}},"xdg-basedir":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-2.0.0.tgz","integrity":"sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=","requires":{"os-homedir":"^1.0.0"}},"xmlbuilder":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-4.0.0.tgz","integrity":"sha1-mLj2UcowqmJANvEn0RzGbce5B6M=","requires":{"lodash":"^3.5.0"},"dependencies":{"lodash":{"version":"3.10.1","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-3.10.1.tgz","integrity":"sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="}}},"xmlcreate":{"version":"2.0.3","resolved":"https://registry.npm.taobao.org/xmlcreate/download/xmlcreate-2.0.3.tgz","integrity":"sha1-357NUY/TiQqzVI4bgR0EBhSZNJc="},"xmldoc":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/xmldoc/download/xmldoc-0.4.0.tgz","integrity":"sha1-0lciS+g5PqrL+DfvIn/Y7CWzaIg=","requires":{"sax":"~1.1.1"}},"xmldom":{"version":"0.1.27","resolved":"http://registry.npm.taobao.org/xmldom/download/xmldom-0.1.27.tgz","integrity":"sha1-1QH5ezvbQDr4757MIFcxh6rawOk="},"xpipe":{"version":"1.0.5","resolved":"http://registry.npm.taobao.org/xpipe/download/xpipe-1.0.5.tgz","integrity":"sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98="},"xtend":{"version":"4.0.1","resolved":"http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz","integrity":"sha1-pcbVMr5lbiPbgg77lDofBJmNY68="},"y18n":{"version":"3.2.1","resolved":"http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz","integrity":"sha1-bRX7qITAhnnA136I53WegR4H+kE="},"yallist":{"version":"2.1.2","resolved":"http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz","integrity":"sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="},"yaml":{"version":"1.9.2","resolved":"https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz","integrity":"sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==","dev":true,"requires":{"@babel/runtime":"^7.9.2"},"dependencies":{"@babel/runtime":{"version":"7.9.6","resolved":"https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz","integrity":"sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==","dev":true,"requires":{"regenerator-runtime":"^0.13.4"}},"regenerator-runtime":{"version":"0.13.5","resolved":"https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz","integrity":"sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==","dev":true}}},"yargs":{"version":"9.0.1","resolved":"http://registry.npm.taobao.org/yargs/download/yargs-9.0.1.tgz","integrity":"sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=","requires":{"camelcase":"^4.1.0","cliui":"^3.2.0","decamelize":"^1.1.1","get-caller-file":"^1.0.1","os-locale":"^2.0.0","read-pkg-up":"^2.0.0","require-directory":"^2.1.1","require-main-filename":"^1.0.1","set-blocking":"^2.0.0","string-width":"^2.0.0","which-module":"^2.0.0","y18n":"^3.2.1","yargs-parser":"^7.0.0"}},"yargs-parser":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-7.0.0.tgz","integrity":"sha1-jQrELxbqVd69MyyvTEA4s+P139k=","requires":{"camelcase":"^4.1.0"}},"yauzl":{"version":"2.10.0","resolved":"http://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz","integrity":"sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=","dev":true,"requires":{"buffer-crc32":"~0.2.3","fd-slicer":"~1.1.0"}},"yazl":{"version":"2.5.1","resolved":"http://registry.npm.taobao.org/yazl/download/yazl-2.5.1.tgz","integrity":"sha1-o9ZdPdZZpbCTeFDoYJ8i//orXDU=","dev":true,"requires":{"buffer-crc32":"~0.2.3"}}}} +{"name":"miot-workspace","version":"1.0.42","lockfileVersion":1,"requires":true,"dependencies":{"@babel/code-frame":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.0.0.tgz","integrity":"sha1-BuKrGb21NThVWaq7W6WXKUgoAPg=","requires":{"@babel/highlight":"^7.0.0"}},"@babel/core":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/core/download/@babel/core-7.4.3.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.4.3.tgz","integrity":"sha1-GY1tOvRWe+OYlVDZfgaN6UUDB08=","requires":{"@babel/code-frame":"^7.0.0","@babel/generator":"^7.4.0","@babel/helpers":"^7.4.3","@babel/parser":"^7.4.3","@babel/template":"^7.4.0","@babel/traverse":"^7.4.3","@babel/types":"^7.4.0","convert-source-map":"^1.1.0","debug":"^4.1.0","json5":"^2.1.0","lodash":"^4.17.11","resolve":"^1.3.2","semver":"^5.4.1","source-map":"^0.5.0"},"dependencies":{"debug":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz","integrity":"sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=","requires":{"ms":"^2.1.1"}},"json5":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/json5/download/json5-2.1.0.tgz","integrity":"sha1-56DGLEgoXGKNIKELhcibuAfDKFA=","requires":{"minimist":"^1.2.0"}},"ms":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz","integrity":"sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo="}}},"@babel/generator":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.4.0.tgz","integrity":"sha1-wjDnlYmuenKf1GMbne1NwiBBgZY=","requires":{"@babel/types":"^7.4.0","jsesc":"^2.5.1","lodash":"^4.17.11","source-map":"^0.5.0","trim-right":"^1.0.1"},"dependencies":{"jsesc":{"version":"2.5.2","resolved":"http://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz","integrity":"sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q="}}},"@babel/helper-annotate-as-pure":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.0.0.tgz","integrity":"sha1-Mj053QtQ4Qx8Bsp9djjmhk2MXDI=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-builder-binary-assignment-operator-visitor":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz","integrity":"sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw==","requires":{"@babel/helper-explode-assignable-expression":"^7.7.0","@babel/types":"^7.7.0"},"dependencies":{"@babel/types":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz","integrity":"sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/helper-builder-react-jsx":{"version":"7.3.0","resolved":"http://registry.npm.taobao.org/@babel/helper-builder-react-jsx/download/@babel/helper-builder-react-jsx-7.3.0.tgz","integrity":"sha1-oayVpdKz6Irl5UhGv0Yu64GzGKQ=","requires":{"@babel/types":"^7.3.0","esutils":"^2.0.0"}},"@babel/helper-call-delegate":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.4.0.tgz","integrity":"sha1-8wjqvg1E9FEheFOu303qX2/jKU8=","requires":{"@babel/helper-hoist-variables":"^7.4.0","@babel/traverse":"^7.4.0","@babel/types":"^7.4.0"}},"@babel/helper-create-class-features-plugin":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.4.3.tgz","integrity":"sha1-W70nnGw6xqYCZribv+f4AhCAoe8=","requires":{"@babel/helper-function-name":"^7.1.0","@babel/helper-member-expression-to-functions":"^7.0.0","@babel/helper-optimise-call-expression":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-replace-supers":"^7.4.0","@babel/helper-split-export-declaration":"^7.4.0"}},"@babel/helper-create-regexp-features-plugin":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz","integrity":"sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ==","requires":{"@babel/helper-regex":"^7.4.4","regexpu-core":"^4.6.0"},"dependencies":{"jsesc":{"version":"0.5.0","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz","integrity":"sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="},"regexpu-core":{"version":"4.6.0","resolved":"https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz","integrity":"sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==","requires":{"regenerate":"^1.4.0","regenerate-unicode-properties":"^8.1.0","regjsgen":"^0.5.0","regjsparser":"^0.6.0","unicode-match-property-ecmascript":"^1.0.4","unicode-match-property-value-ecmascript":"^1.1.0"}},"regjsgen":{"version":"0.5.1","resolved":"https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz","integrity":"sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg=="},"regjsparser":{"version":"0.6.0","resolved":"https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz","integrity":"sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==","requires":{"jsesc":"~0.5.0"}}}},"@babel/helper-define-map":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.4.0.tgz","integrity":"sha1-y/2MGy8ScI4mLCb2AM0W7Wo7xsk=","requires":{"@babel/helper-function-name":"^7.1.0","@babel/types":"^7.4.0","lodash":"^4.17.11"}},"@babel/helper-explode-assignable-expression":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz","integrity":"sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg==","requires":{"@babel/traverse":"^7.7.0","@babel/types":"^7.7.0"},"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","requires":{"@babel/highlight":"^7.0.0"}},"@babel/generator":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/generator/-/generator-7.7.2.tgz","integrity":"sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ==","requires":{"@babel/types":"^7.7.2","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-function-name":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz","integrity":"sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==","requires":{"@babel/helper-get-function-arity":"^7.7.0","@babel/template":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-get-function-arity":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz","integrity":"sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-split-export-declaration":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz","integrity":"sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==","requires":{"@babel/types":"^7.7.0"}},"@babel/parser":{"version":"7.7.3","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz","integrity":"sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A=="},"@babel/template":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz","integrity":"sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/traverse":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.2.tgz","integrity":"sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw==","requires":{"@babel/code-frame":"^7.5.5","@babel/generator":"^7.7.2","@babel/helper-function-name":"^7.7.0","@babel/helper-split-export-declaration":"^7.7.0","@babel/parser":"^7.7.2","@babel/types":"^7.7.2","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"}},"@babel/types":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz","integrity":"sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npmjs.org/globals/-/globals-11.12.0.tgz","integrity":"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="},"jsesc":{"version":"2.5.2","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz","integrity":"sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/helper-function-name":{"version":"7.1.0","resolved":"http://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.1.0.tgz","integrity":"sha1-oM6wFoX3M1XUNgwSR/WCv6/I/1M=","requires":{"@babel/helper-get-function-arity":"^7.0.0","@babel/template":"^7.1.0","@babel/types":"^7.0.0"}},"@babel/helper-get-function-arity":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0.tgz","integrity":"sha1-g1ctQyDipGVyY3NBE8QoaLZOScM=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-hoist-variables":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.4.0.tgz","integrity":"sha1-JbYhOZriKYaTKXMKYgFbvrCm+9Y=","requires":{"@babel/types":"^7.4.0"}},"@babel/helper-member-expression-to-functions":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.0.0.tgz","integrity":"sha1-jNFLCg33/wDwCefXpDaUX0fHoW8=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-module-imports":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.0.0.tgz","integrity":"sha1-lggbcRHkhtpNLNlxrRpP4hbMLj0=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-module-transforms":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.4.3.tgz","integrity":"sha1-seNXocSeWKRyEaaFOruOKq7+sGQ=","requires":{"@babel/helper-module-imports":"^7.0.0","@babel/helper-simple-access":"^7.1.0","@babel/helper-split-export-declaration":"^7.0.0","@babel/template":"^7.2.2","@babel/types":"^7.2.2","lodash":"^4.17.11"}},"@babel/helper-optimise-call-expression":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.0.0.tgz","integrity":"sha1-opIMVwKwc8Fd5REGIAqoytIEl9U=","requires":{"@babel/types":"^7.0.0"}},"@babel/helper-plugin-utils":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.0.0.tgz","integrity":"sha1-u7P77phmHFaQNCN8wDlnupm08lA="},"@babel/helper-regex":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz","integrity":"sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==","requires":{"lodash":"^4.17.13"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"@babel/helper-remap-async-to-generator":{"version":"7.1.0","resolved":"http://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.1.0.tgz","integrity":"sha1-Nh2AghtvONp1vT8HheziCojF/n8=","dev":true,"requires":{"@babel/helper-annotate-as-pure":"^7.0.0","@babel/helper-wrap-function":"^7.1.0","@babel/template":"^7.1.0","@babel/traverse":"^7.1.0","@babel/types":"^7.0.0"}},"@babel/helper-replace-supers":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.4.0.tgz","integrity":"sha1-T1attq7c1EnS2pOZwtzwVFRjtkw=","requires":{"@babel/helper-member-expression-to-functions":"^7.0.0","@babel/helper-optimise-call-expression":"^7.0.0","@babel/traverse":"^7.4.0","@babel/types":"^7.4.0"}},"@babel/helper-simple-access":{"version":"7.1.0","resolved":"http://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.1.0.tgz","integrity":"sha1-Ze65VMjCRb6qToWdphiPOdceWFw=","requires":{"@babel/template":"^7.1.0","@babel/types":"^7.0.0"}},"@babel/helper-split-export-declaration":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.4.0.tgz","integrity":"sha1-Vxv9UnAfSSkg1jt/c1Aw6aPhC1U=","requires":{"@babel/types":"^7.4.0"}},"@babel/helper-validator-identifier":{"version":"7.9.0","resolved":"https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.9.0.tgz?cache=0&sync_timestamp=1584718876452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.9.0.tgz","integrity":"sha1-rVNWKn/Cmzuakbv30QOX/RRjRu0=","dev":true},"@babel/helper-wrap-function":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.2.0.tgz","integrity":"sha1-xOABJEV2nigVtVKW6tQ6lYVJ9vo=","dev":true,"requires":{"@babel/helper-function-name":"^7.1.0","@babel/template":"^7.1.0","@babel/traverse":"^7.1.0","@babel/types":"^7.2.0"}},"@babel/helpers":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.4.3.tgz","integrity":"sha1-ex01Q2NJSzHLmiQXroavMreFOjs=","requires":{"@babel/template":"^7.4.0","@babel/traverse":"^7.4.3","@babel/types":"^7.4.0"}},"@babel/highlight":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.0.0.tgz","integrity":"sha1-9xDDjI1Fjm3ZogGvtjf8t4HOmeQ=","requires":{"chalk":"^2.0.0","esutils":"^2.0.2","js-tokens":"^4.0.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"supports-color":{"version":"5.5.0","resolved":"http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}}}},"@babel/parser":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.4.3.tgz","integrity":"sha1-6zrID2SqEByQfUzlQGNg/nW3iVs="},"@babel/plugin-check-constants":{"version":"7.0.0-beta.38","resolved":"http://registry.npm.taobao.org/@babel/plugin-check-constants/download/@babel/plugin-check-constants-7.0.0-beta.38.tgz","integrity":"sha1-u9pjBtRaTwl8y0FsC1LWUD9lAs8=","dev":true},"@babel/plugin-external-helpers":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-external-helpers/download/@babel/plugin-external-helpers-7.2.0.tgz","integrity":"sha1-f0y33uZRzTgNIDSEfZFCiEZ6a+Q=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-proposal-class-properties":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.4.0.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.4.0.tgz","integrity":"sha1-1w22Gi8f153pJ+6pH2QRyWTghLg=","requires":{"@babel/helper-create-class-features-plugin":"^7.4.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-proposal-decorators":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.8.3.tgz","integrity":"sha1-IVaGCrZcWr8GjD9nBCGEBBBmVD4=","dev":true,"requires":{"@babel/helper-create-class-features-plugin":"^7.8.3","@babel/helper-plugin-utils":"^7.8.3","@babel/plugin-syntax-decorators":"^7.8.3"},"dependencies":{"@babel/code-frame":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz","integrity":"sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=","dev":true,"requires":{"@babel/highlight":"^7.8.3"}},"@babel/generator":{"version":"7.9.4","resolved":"https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.9.4.tgz?cache=0&sync_timestamp=1585038807794&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.9.4.tgz","integrity":"sha1-EkQekMOzxBWc3s8xIHW/Gozi284=","dev":true,"requires":{"@babel/types":"^7.9.0","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-create-class-features-plugin":{"version":"7.8.6","resolved":"https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.8.6.tgz?cache=0&sync_timestamp=1582806396819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.8.6.tgz","integrity":"sha1-JDpbRuL48PZ03BOHYx62souFHeA=","dev":true,"requires":{"@babel/helper-function-name":"^7.8.3","@babel/helper-member-expression-to-functions":"^7.8.3","@babel/helper-optimise-call-expression":"^7.8.3","@babel/helper-plugin-utils":"^7.8.3","@babel/helper-replace-supers":"^7.8.6","@babel/helper-split-export-declaration":"^7.8.3"}},"@babel/helper-function-name":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.8.3.tgz","integrity":"sha1-7utmWgGx8RBo6fuGrVahyxqCTMo=","dev":true,"requires":{"@babel/helper-get-function-arity":"^7.8.3","@babel/template":"^7.8.3","@babel/types":"^7.8.3"}},"@babel/helper-get-function-arity":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz","integrity":"sha1-uJS5R70AQ4HOY+odufCFR+kgq9U=","dev":true,"requires":{"@babel/types":"^7.8.3"}},"@babel/helper-member-expression-to-functions":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz","integrity":"sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw=","dev":true,"requires":{"@babel/types":"^7.8.3"}},"@babel/helper-optimise-call-expression":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz","integrity":"sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk=","dev":true,"requires":{"@babel/types":"^7.8.3"}},"@babel/helper-plugin-utils":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz","integrity":"sha1-nqKTvhm6vA9S/4yoizTDYRsghnA=","dev":true},"@babel/helper-replace-supers":{"version":"7.8.6","resolved":"https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.6.tgz","integrity":"sha1-Wtp0T9WtcyA78dZ0WaJ9y6Z+/8g=","dev":true,"requires":{"@babel/helper-member-expression-to-functions":"^7.8.3","@babel/helper-optimise-call-expression":"^7.8.3","@babel/traverse":"^7.8.6","@babel/types":"^7.8.6"}},"@babel/helper-split-export-declaration":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz","integrity":"sha1-ManzAHD5E2inGCzwX4MXgQZfx6k=","dev":true,"requires":{"@babel/types":"^7.8.3"}},"@babel/highlight":{"version":"7.9.0","resolved":"https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.9.0.tgz?cache=0&sync_timestamp=1584746125589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.9.0.tgz","integrity":"sha1-TptFzLgreWBycbKXmtgse2gWMHk=","dev":true,"requires":{"@babel/helper-validator-identifier":"^7.9.0","chalk":"^2.0.0","js-tokens":"^4.0.0"}},"@babel/parser":{"version":"7.9.4","resolved":"https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.9.4.tgz","integrity":"sha1-aKNeawMZu8AURlvkOCgwARPy8ug=","dev":true},"@babel/template":{"version":"7.8.6","resolved":"https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.6.tgz?cache=0&sync_timestamp=1582806406689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.8.6.tgz","integrity":"sha1-hrIq8V+CjfsIZHT5ZNzD45xDzis=","dev":true,"requires":{"@babel/code-frame":"^7.8.3","@babel/parser":"^7.8.6","@babel/types":"^7.8.6"}},"@babel/traverse":{"version":"7.9.0","resolved":"https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.9.0.tgz?cache=0&sync_timestamp=1584746132410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.9.0.tgz","integrity":"sha1-04gsKDDlE/T+TOyf526hzHh0eJI=","dev":true,"requires":{"@babel/code-frame":"^7.8.3","@babel/generator":"^7.9.0","@babel/helper-function-name":"^7.8.3","@babel/helper-split-export-declaration":"^7.8.3","@babel/parser":"^7.9.0","@babel/types":"^7.9.0","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"}},"@babel/types":{"version":"7.9.0","resolved":"https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.9.0.tgz?cache=0&sync_timestamp=1584746126419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.9.0.tgz","integrity":"sha1-ALBkw9+DrTKy2/X/BzErFcfx77U=","dev":true,"requires":{"@babel/helper-validator-identifier":"^7.9.0","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","dev":true,"requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1573282918610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","dev":true,"requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz","integrity":"sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=","dev":true,"requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz","integrity":"sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=","dev":true},"jsesc":{"version":"2.5.2","resolved":"https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz","integrity":"sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=","dev":true},"lodash":{"version":"4.17.15","resolved":"https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&sync_timestamp=1571657272199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz","integrity":"sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=","dev":true},"ms":{"version":"2.1.2","resolved":"https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz","integrity":"sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=","dev":true},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","dev":true,"requires":{"has-flag":"^3.0.0"}},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550569293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=","dev":true}}},"@babel/plugin-proposal-export-default-from":{"version":"7.5.2","resolved":"https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz","integrity":"sha512-wr9Itk05L1/wyyZKVEmXWCdcsp/e185WUNl6AfYZeEKYaUPPvHXRDqO5K1VH7/UamYqGJowFRuCv30aDYZawsg==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-export-default-from":"^7.2.0"}},"@babel/plugin-proposal-nullish-coalescing-operator":{"version":"7.4.4","resolved":"https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.4.4.tgz","integrity":"sha512-Amph7Epui1Dh/xxUxS2+K22/MUi6+6JVTvy3P58tja3B6yKTSjwwx0/d83rF7551D6PVSSoplQb8GCwqec7HRw==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-nullish-coalescing-operator":"^7.2.0"}},"@babel/plugin-proposal-object-rest-spread":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.4.3.tgz","integrity":"sha1-vifNQW7O66hBQTBbk8KC9d4ju7Q=","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.2.0"}},"@babel/plugin-proposal-optional-catch-binding":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz","integrity":"sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-optional-catch-binding":"^7.2.0"}},"@babel/plugin-proposal-optional-chaining":{"version":"7.6.0","resolved":"https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.6.0.tgz","integrity":"sha512-kj4gkZ6qUggkprRq3Uh5KP8XnE1MdIO0J7MhdDX8+rAbB6dJ2UrensGIS+0NPZAaaJ1Vr0PN6oLUgXMU1uMcSg==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-optional-chaining":"^7.2.0"}},"@babel/plugin-syntax-class-properties":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.2.0.tgz","integrity":"sha512-UxYaGXYQ7rrKJS/PxIKRkv3exi05oH7rokBAsmCSsCxz1sVPZ7Fu6FzKoGgUvmY+0YgSkYHgUoCh5R5bCNBQlw==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-decorators":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.8.3.tgz","integrity":"sha1-jSwVqfGvYksAJflhaCqdU9MAG9o=","dev":true,"requires":{"@babel/helper-plugin-utils":"^7.8.3"},"dependencies":{"@babel/helper-plugin-utils":{"version":"7.8.3","resolved":"https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz","integrity":"sha1-nqKTvhm6vA9S/4yoizTDYRsghnA=","dev":true}}},"@babel/plugin-syntax-dynamic-import":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.2.0.tgz","integrity":"sha1-acFZ/69JmBIhYa2OvF5tH1XfhhI=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-export-default-from":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz","integrity":"sha512-c7nqUnNST97BWPtoe+Ssi+fJukc9P9/JMZ71IOMNQWza2E+Psrd46N6AEvtw6pqK+gt7ChjXyrw4SPDO79f3Lw==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-flow":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.2.0.tgz","integrity":"sha1-p2XwYfgDvEjyQMJvh0f6+Xwmv3w=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-jsx":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.2.0.tgz","integrity":"sha1-C4WjtLx830zEuL8jYzW5B8oi58c=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-nullish-coalescing-operator":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.2.0.tgz","integrity":"sha512-lRCEaKE+LTxDQtgbYajI04ddt6WW0WJq57xqkAZ+s11h4YgfRHhVA/Y2VhfPzzFD4qeLHWg32DMp9HooY4Kqlg==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-object-rest-spread":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.2.0.tgz","integrity":"sha1-O3o+czUQxX6CC5FCpleayLDfrS4=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-optional-catch-binding":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz","integrity":"sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-optional-chaining":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz","integrity":"sha512-HtGCtvp5Uq/jH/WNUPkK6b7rufnCPLLlDAFN7cmACoIjaOOiXxUt3SswU5loHqrhtqTsa/WoLQ1OQ1AGuZqaWA==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-syntax-typescript":{"version":"7.3.3","resolved":"https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz","integrity":"sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-arrow-functions":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.2.0.tgz","integrity":"sha1-mur75Nb/xlY7+Pg3IJFijwB3lVA=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-async-to-generator":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz","integrity":"sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==","requires":{"@babel/helper-module-imports":"^7.7.4","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-remap-async-to-generator":"^7.7.4"},"dependencies":{"@babel/generator":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz","integrity":"sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==","requires":{"@babel/types":"^7.7.4","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-annotate-as-pure":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz","integrity":"sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==","requires":{"@babel/types":"^7.7.4"}},"@babel/helper-function-name":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz","integrity":"sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==","requires":{"@babel/helper-get-function-arity":"^7.7.4","@babel/template":"^7.7.4","@babel/types":"^7.7.4"}},"@babel/helper-get-function-arity":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz","integrity":"sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==","requires":{"@babel/types":"^7.7.4"}},"@babel/helper-module-imports":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz","integrity":"sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==","requires":{"@babel/types":"^7.7.4"}},"@babel/helper-remap-async-to-generator":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz","integrity":"sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==","requires":{"@babel/helper-annotate-as-pure":"^7.7.4","@babel/helper-wrap-function":"^7.7.4","@babel/template":"^7.7.4","@babel/traverse":"^7.7.4","@babel/types":"^7.7.4"}},"@babel/helper-split-export-declaration":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz","integrity":"sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==","requires":{"@babel/types":"^7.7.4"}},"@babel/helper-wrap-function":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz","integrity":"sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==","requires":{"@babel/helper-function-name":"^7.7.4","@babel/template":"^7.7.4","@babel/traverse":"^7.7.4","@babel/types":"^7.7.4"}},"@babel/parser":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz","integrity":"sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g=="},"@babel/template":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz","integrity":"sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.7.4","@babel/types":"^7.7.4"}},"@babel/traverse":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz","integrity":"sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==","requires":{"@babel/code-frame":"^7.5.5","@babel/generator":"^7.7.4","@babel/helper-function-name":"^7.7.4","@babel/helper-split-export-declaration":"^7.7.4","@babel/parser":"^7.7.4","@babel/types":"^7.7.4","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"},"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","requires":{"@babel/highlight":"^7.0.0"}}}},"@babel/types":{"version":"7.7.4","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz","integrity":"sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npmjs.org/globals/-/globals-11.12.0.tgz","integrity":"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="},"jsesc":{"version":"2.5.2","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz","integrity":"sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/plugin-transform-block-scoped-functions":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz","integrity":"sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-block-scoping":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.4.0.tgz","integrity":"sha1-Fk3zu0Hj3rlUxMoy/6n8qlbTC8s=","requires":{"@babel/helper-plugin-utils":"^7.0.0","lodash":"^4.17.11"}},"@babel/plugin-transform-classes":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.4.3.tgz","integrity":"sha1-rcehE3q0KHpVXUKcxW7N6PQMBiw=","requires":{"@babel/helper-annotate-as-pure":"^7.0.0","@babel/helper-define-map":"^7.4.0","@babel/helper-function-name":"^7.1.0","@babel/helper-optimise-call-expression":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-replace-supers":"^7.4.0","@babel/helper-split-export-declaration":"^7.4.0","globals":"^11.1.0"},"dependencies":{"globals":{"version":"11.11.0","resolved":"http://registry.npm.taobao.org/globals/download/globals-11.11.0.tgz","integrity":"sha1-3Pk3V/ot5Uhvvu1xGFOK33ienC4="}}},"@babel/plugin-transform-computed-properties":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.2.0.tgz","integrity":"sha1-g6ffamWIZbHI9kHVEMbzryICFto=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-destructuring":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.4.3.tgz","integrity":"sha1-GpX1yivy+R7wZI1d44qNRy2kNQ8=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-exponentiation-operator":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz","integrity":"sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==","requires":{"@babel/helper-builder-binary-assignment-operator-visitor":"^7.1.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-flow-strip-types":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-flow-strip-types/download/@babel/plugin-transform-flow-strip-types-7.4.0.tgz","integrity":"sha1-88We7P9oyZucluqv5P6dH6iUcTg=","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-flow":"^7.2.0"}},"@babel/plugin-transform-for-of":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.4.3.tgz","integrity":"sha1-w2/0DYk/K4NSIColWIJPcM116f4=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-function-name":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.4.3.tgz","integrity":"sha1-Ewwn7H+08MujDpWJiUSeXsjSK70=","requires":{"@babel/helper-function-name":"^7.1.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-literals":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.2.0.tgz","integrity":"sha1-aQNT6B+SZ9rU/Yz9d+r6hqulPqE=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-member-expression-literals":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz","integrity":"sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-modules-commonjs":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.4.3.tgz","integrity":"sha1-ORfyYEY6wI+Ilqpb1UQD9uH+0WU=","requires":{"@babel/helper-module-transforms":"^7.4.3","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-simple-access":"^7.1.0"}},"@babel/plugin-transform-object-assign":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-object-assign/download/@babel/plugin-transform-object-assign-7.2.0.tgz","integrity":"sha1-b97qQr4XBA8RnjjiPqD0nzGWi94=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-object-super":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz","integrity":"sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/helper-replace-supers":"^7.5.5"},"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","requires":{"@babel/highlight":"^7.0.0"}},"@babel/generator":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/generator/-/generator-7.7.2.tgz","integrity":"sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ==","requires":{"@babel/types":"^7.7.2","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-function-name":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz","integrity":"sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==","requires":{"@babel/helper-get-function-arity":"^7.7.0","@babel/template":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-get-function-arity":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz","integrity":"sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-member-expression-to-functions":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz","integrity":"sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-optimise-call-expression":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz","integrity":"sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-replace-supers":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz","integrity":"sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg==","requires":{"@babel/helper-member-expression-to-functions":"^7.7.0","@babel/helper-optimise-call-expression":"^7.7.0","@babel/traverse":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-split-export-declaration":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz","integrity":"sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==","requires":{"@babel/types":"^7.7.0"}},"@babel/parser":{"version":"7.7.3","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz","integrity":"sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A=="},"@babel/template":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz","integrity":"sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/traverse":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.2.tgz","integrity":"sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw==","requires":{"@babel/code-frame":"^7.5.5","@babel/generator":"^7.7.2","@babel/helper-function-name":"^7.7.0","@babel/helper-split-export-declaration":"^7.7.0","@babel/parser":"^7.7.2","@babel/types":"^7.7.2","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"}},"@babel/types":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz","integrity":"sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npmjs.org/globals/-/globals-11.12.0.tgz","integrity":"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="},"jsesc":{"version":"2.5.2","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz","integrity":"sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/plugin-transform-parameters":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.4.3.tgz","integrity":"sha1-5f9ikp/fTPk+WLrbXiQwMDADgA0=","requires":{"@babel/helper-call-delegate":"^7.4.0","@babel/helper-get-function-arity":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-property-literals":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz","integrity":"sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-react-display-name":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.2.0.tgz","integrity":"sha1-6/rth4NM6NxCeWCaTwwyTBVuPrA=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-react-jsx":{"version":"7.3.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-react-jsx/download/@babel/plugin-transform-react-jsx-7.3.0.tgz","integrity":"sha1-8sq5kCZjHHZ+J0WlNoszHP6PUpA=","requires":{"@babel/helper-builder-react-jsx":"^7.3.0","@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-jsx":"^7.2.0"}},"@babel/plugin-transform-react-jsx-source":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-source/download/@babel/plugin-transform-react-jsx-source-7.2.0.tgz","integrity":"sha1-IMjGDwFA9d081jQY1FKAHPP3GA8=","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-jsx":"^7.2.0"}},"@babel/plugin-transform-regenerator":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.4.3.tgz","integrity":"sha1-Kml6+WiH4rv10wOrAiHROd5ec5w=","requires":{"regenerator-transform":"^0.13.4"}},"@babel/plugin-transform-runtime":{"version":"7.6.2","resolved":"https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz","integrity":"sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA==","requires":{"@babel/helper-module-imports":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0","resolve":"^1.8.1","semver":"^5.5.1"}},"@babel/plugin-transform-shorthand-properties":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.2.0.tgz","integrity":"sha1-YzOu4vjW7n4oYVRXKYk0o7RhmPA=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-spread":{"version":"7.2.2","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.2.2.tgz","integrity":"sha1-MQOpq+IvdCttQG7NPNSbd0kZtAY=","requires":{"@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-sticky-regex":{"version":"7.2.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz","integrity":"sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==","requires":{"@babel/helper-plugin-utils":"^7.0.0","@babel/helper-regex":"^7.0.0"}},"@babel/plugin-transform-template-literals":{"version":"7.2.0","resolved":"http://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.2.0.tgz","integrity":"sha1-2H7QG46qx6kkc/YIyXwIneK6Hls=","requires":{"@babel/helper-annotate-as-pure":"^7.0.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/plugin-transform-typescript":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.7.2.tgz","integrity":"sha512-UWhDaJRqdPUtdK1s0sKYdoRuqK0NepjZto2UZltvuCgMoMZmdjhgz5hcRokie/3aYEaSz3xvusyoayVaq4PjRg==","requires":{"@babel/helper-create-class-features-plugin":"^7.7.0","@babel/helper-plugin-utils":"^7.0.0","@babel/plugin-syntax-typescript":"^7.2.0"},"dependencies":{"@babel/generator":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/generator/-/generator-7.7.2.tgz","integrity":"sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ==","requires":{"@babel/types":"^7.7.2","jsesc":"^2.5.1","lodash":"^4.17.13","source-map":"^0.5.0"}},"@babel/helper-create-class-features-plugin":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.0.tgz","integrity":"sha512-MZiB5qvTWoyiFOgootmRSDV1udjIqJW/8lmxgzKq6oDqxdmHUjeP2ZUOmgHdYjmUVNABqRrHjYAYRvj8Eox/UA==","requires":{"@babel/helper-function-name":"^7.7.0","@babel/helper-member-expression-to-functions":"^7.7.0","@babel/helper-optimise-call-expression":"^7.7.0","@babel/helper-plugin-utils":"^7.0.0","@babel/helper-replace-supers":"^7.7.0","@babel/helper-split-export-declaration":"^7.7.0"}},"@babel/helper-function-name":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz","integrity":"sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==","requires":{"@babel/helper-get-function-arity":"^7.7.0","@babel/template":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-get-function-arity":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz","integrity":"sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-member-expression-to-functions":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz","integrity":"sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-optimise-call-expression":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz","integrity":"sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg==","requires":{"@babel/types":"^7.7.0"}},"@babel/helper-replace-supers":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz","integrity":"sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg==","requires":{"@babel/helper-member-expression-to-functions":"^7.7.0","@babel/helper-optimise-call-expression":"^7.7.0","@babel/traverse":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/helper-split-export-declaration":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz","integrity":"sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==","requires":{"@babel/types":"^7.7.0"}},"@babel/parser":{"version":"7.7.3","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz","integrity":"sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A=="},"@babel/template":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz","integrity":"sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.7.0","@babel/types":"^7.7.0"}},"@babel/traverse":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.2.tgz","integrity":"sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw==","requires":{"@babel/code-frame":"^7.5.5","@babel/generator":"^7.7.2","@babel/helper-function-name":"^7.7.0","@babel/helper-split-export-declaration":"^7.7.0","@babel/parser":"^7.7.2","@babel/types":"^7.7.2","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.13"},"dependencies":{"@babel/code-frame":{"version":"7.5.5","resolved":"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz","integrity":"sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==","requires":{"@babel/highlight":"^7.0.0"}}}},"@babel/types":{"version":"7.7.2","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz","integrity":"sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==","requires":{"esutils":"^2.0.2","lodash":"^4.17.13","to-fast-properties":"^2.0.0"}},"debug":{"version":"4.1.1","resolved":"https://registry.npmjs.org/debug/-/debug-4.1.1.tgz","integrity":"sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.12.0","resolved":"https://registry.npmjs.org/globals/-/globals-11.12.0.tgz","integrity":"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="},"jsesc":{"version":"2.5.2","resolved":"https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz","integrity":"sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="},"to-fast-properties":{"version":"2.0.0","resolved":"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@babel/plugin-transform-unicode-regex":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz","integrity":"sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA==","requires":{"@babel/helper-create-regexp-features-plugin":"^7.7.0","@babel/helper-plugin-utils":"^7.0.0"}},"@babel/register":{"version":"7.7.0","resolved":"https://registry.npmjs.org/@babel/register/-/register-7.7.0.tgz","integrity":"sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg==","requires":{"find-cache-dir":"^2.0.0","lodash":"^4.17.13","make-dir":"^2.1.0","pirates":"^4.0.0","source-map-support":"^0.5.16"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="},"source-map-support":{"version":"0.5.16","resolved":"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz","integrity":"sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==","requires":{"buffer-from":"^1.0.0","source-map":"^0.6.0"}}}},"@babel/runtime":{"version":"7.7.7","resolved":"https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.7.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.7.7.tgz","integrity":"sha1-GUdpyo1td5DsI2Ba+e4+QqCqec8=","requires":{"regenerator-runtime":"^0.13.2"},"dependencies":{"regenerator-runtime":{"version":"0.13.5","resolved":"http://registry.npm.pt.mi.com/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz","integrity":"sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc="}}},"@babel/template":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/template/download/@babel/template-7.4.0.tgz","integrity":"sha1-EkdOnAd7rlhcXYNalcCwt5DCXIs=","requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.4.0","@babel/types":"^7.4.0"}},"@babel/traverse":{"version":"7.4.3","resolved":"http://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.4.3.tgz","integrity":"sha1-GgHwePxXXVif8wwPcb88PZzLrYQ=","requires":{"@babel/code-frame":"^7.0.0","@babel/generator":"^7.4.0","@babel/helper-function-name":"^7.1.0","@babel/helper-split-export-declaration":"^7.4.0","@babel/parser":"^7.4.3","@babel/types":"^7.4.0","debug":"^4.1.0","globals":"^11.1.0","lodash":"^4.17.11"},"dependencies":{"debug":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz","integrity":"sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=","requires":{"ms":"^2.1.1"}},"globals":{"version":"11.11.0","resolved":"http://registry.npm.taobao.org/globals/download/globals-11.11.0.tgz","integrity":"sha1-3Pk3V/ot5Uhvvu1xGFOK33ienC4="},"ms":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz","integrity":"sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo="}}},"@babel/types":{"version":"7.4.0","resolved":"http://registry.npm.taobao.org/@babel/types/download/@babel/types-7.4.0.tgz","integrity":"sha1-Zwck930kzObMfYz2RZnVEdFkiUw=","requires":{"esutils":"^2.0.2","lodash":"^4.17.11","to-fast-properties":"^2.0.0"},"dependencies":{"to-fast-properties":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz","integrity":"sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="}}},"@cnakazawa/watch":{"version":"1.0.3","resolved":"https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz","integrity":"sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==","requires":{"exec-sh":"^0.3.2","minimist":"^1.2.0"},"dependencies":{"exec-sh":{"version":"0.3.4","resolved":"https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz","integrity":"sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A=="}}},"@hapi/address":{"version":"2.1.2","resolved":"https://registry.npmjs.org/@hapi/address/-/address-2.1.2.tgz","integrity":"sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q=="},"@hapi/bourne":{"version":"1.3.2","resolved":"https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz","integrity":"sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA=="},"@hapi/hoek":{"version":"8.5.0","resolved":"https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz","integrity":"sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw=="},"@hapi/joi":{"version":"15.1.1","resolved":"https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz","integrity":"sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==","requires":{"@hapi/address":"2.x.x","@hapi/bourne":"1.x.x","@hapi/hoek":"8.x.x","@hapi/topo":"3.x.x"}},"@hapi/topo":{"version":"3.1.6","resolved":"https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz","integrity":"sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==","requires":{"@hapi/hoek":"^8.3.0"}},"@jest/console":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz","integrity":"sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==","requires":{"@jest/source-map":"^24.9.0","chalk":"^2.0.1","slash":"^2.0.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"slash":{"version":"2.0.0","resolved":"https://registry.npmjs.org/slash/-/slash-2.0.0.tgz","integrity":"sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"@jest/fake-timers":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz","integrity":"sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==","requires":{"@jest/types":"^24.9.0","jest-message-util":"^24.9.0","jest-mock":"^24.9.0"}},"@jest/source-map":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz","integrity":"sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==","requires":{"callsites":"^3.0.0","graceful-fs":"^4.1.15","source-map":"^0.6.0"},"dependencies":{"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="}}},"@jest/test-result":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz","integrity":"sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==","requires":{"@jest/console":"^24.9.0","@jest/types":"^24.9.0","@types/istanbul-lib-coverage":"^2.0.0"}},"@jest/types":{"version":"24.9.0","resolved":"https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz","integrity":"sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==","requires":{"@types/istanbul-lib-coverage":"^2.0.0","@types/istanbul-reports":"^1.1.1","@types/yargs":"^13.0.0"}},"@react-native-community/art":{"version":"1.2.0","resolved":"https://registry.npmjs.org/@react-native-community/art/-/art-1.2.0.tgz","integrity":"sha512-a+ZcRGl/BzLa89yi33Mbn5SHavsEXqKUMdbfLf3U8MDLElndPqUetoJyGkv63+BcPO49UMWiQRP1YUz6/zfJ+A==","requires":{"art":"^0.10.3","invariant":"^2.2.4","prop-types":"^15.7.2"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz","integrity":"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==","requires":{"loose-envify":"^1.0.0"}}}},"@react-native-community/blur":{"version":"3.3.1","resolved":"https://registry.npm.taobao.org/@react-native-community/blur/download/@react-native-community/blur-3.3.1.tgz","integrity":"sha1-vJ7NbYXYlznYGAE4cWU1rHz6RoA=","requires":{"prop-types":"^15.5.10"}},"@react-native-community/cli":{"version":"3.2.1","resolved":"https://registry.npmjs.org/@react-native-community/cli/-/cli-3.2.1.tgz","integrity":"sha512-bZ/bfZ+9r1gQSxp6t7+00DcpC6vmbVYSvzUCFM/yo5k8bhsDdcy8aocscIaXXVGG+v9Edri/Q7hH9ks7L18/Rg==","requires":{"@hapi/joi":"^15.0.3","@react-native-community/cli-debugger-ui":"^3.0.0","@react-native-community/cli-tools":"^3.0.0","@react-native-community/cli-types":"^3.0.0","chalk":"^2.4.2","command-exists":"^1.2.8","commander":"^2.19.0","compression":"^1.7.1","connect":"^3.6.5","cosmiconfig":"^5.1.0","deepmerge":"^3.2.0","didyoumean":"^1.2.1","envinfo":"^7.1.0","errorhandler":"^1.5.0","execa":"^1.0.0","find-up":"^4.1.0","fs-extra":"^7.0.1","glob":"^7.1.1","graceful-fs":"^4.1.3","inquirer":"^3.0.6","lodash":"^4.17.5","metro":"^0.56.0","metro-config":"^0.56.0","metro-core":"^0.56.0","metro-react-native-babel-transformer":"^0.56.0","minimist":"^1.2.0","mkdirp":"^0.5.1","morgan":"^1.9.0","node-notifier":"^5.2.1","open":"^6.2.0","ora":"^3.4.0","plist":"^3.0.0","pretty-format":"^25.1.0","semver":"^6.3.0","serve-static":"^1.13.1","shell-quote":"1.6.1","strip-ansi":"^5.2.0","sudo-prompt":"^9.0.0","wcwidth":"^1.0.1","ws":"^1.1.0"},"dependencies":{"@types/yargs":{"version":"15.0.5","resolved":"https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz","integrity":"sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==","requires":{"@types/yargs-parser":"*"}},"ansi-regex":{"version":"4.1.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz","integrity":"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"array-unique":{"version":"0.3.2","resolved":"https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz","integrity":"sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"braces":{"version":"2.3.2","resolved":"https://registry.npmjs.org/braces/-/braces-2.3.2.tgz","integrity":"sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"capture-exit":{"version":"2.0.0","resolved":"https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz","integrity":"sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==","requires":{"rsvp":"^4.8.4"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"color-name":{"version":"1.1.4","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","integrity":"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="},"core-js":{"version":"2.6.11","resolved":"https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz","integrity":"sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="},"exec-sh":{"version":"0.3.4","resolved":"https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz","integrity":"sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A=="},"expand-brackets":{"version":"2.1.4","resolved":"https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz","integrity":"sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz","integrity":"sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="}}},"extglob":{"version":"2.0.4","resolved":"https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz","integrity":"sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fbjs":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz","integrity":"sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==","requires":{"core-js":"^2.4.1","fbjs-css-vars":"^1.0.0","isomorphic-fetch":"^2.1.1","loose-envify":"^1.0.0","object-assign":"^4.1.0","promise":"^7.1.1","setimmediate":"^1.0.5","ua-parser-js":"^0.7.18"}},"fill-range":{"version":"4.0.0","resolved":"https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"find-up":{"version":"4.1.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz","integrity":"sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==","requires":{"locate-path":"^5.0.0","path-exists":"^4.0.0"}},"fs-extra":{"version":"7.0.1","resolved":"https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz","integrity":"sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==","requires":{"graceful-fs":"^4.1.2","jsonfile":"^4.0.0","universalify":"^0.1.0"}},"fsevents":{"version":"1.2.13","resolved":"https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz","integrity":"sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==","optional":true,"requires":{"bindings":"^1.5.0","nan":"^2.12.1"}},"invariant":{"version":"2.2.4","resolved":"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz","integrity":"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==","requires":{"loose-envify":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz","integrity":"sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz","integrity":"sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz","integrity":"sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"jest-haste-map":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz","integrity":"sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==","requires":{"@jest/types":"^24.9.0","anymatch":"^2.0.0","fb-watchman":"^2.0.0","fsevents":"^1.2.7","graceful-fs":"^4.1.15","invariant":"^2.2.4","jest-serializer":"^24.9.0","jest-util":"^24.9.0","jest-worker":"^24.9.0","micromatch":"^3.1.10","sane":"^4.0.3","walker":"^1.0.7"}},"jest-serializer":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz","integrity":"sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ=="},"jest-worker":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz","integrity":"sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==","requires":{"merge-stream":"^2.0.0","supports-color":"^6.1.0"},"dependencies":{"merge-stream":{"version":"2.0.0","resolved":"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz","integrity":"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="},"supports-color":{"version":"6.1.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz","integrity":"sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==","requires":{"has-flag":"^3.0.0"}}}},"jsonfile":{"version":"4.0.0","resolved":"https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz","integrity":"sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=","requires":{"graceful-fs":"^4.1.6"}},"locate-path":{"version":"5.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz","integrity":"sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==","requires":{"p-locate":"^4.1.0"}},"metro":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro/-/metro-0.56.4.tgz","integrity":"sha512-Kt3OQJQtQdts0JrKnyGdLpKHDjqYBgIfzvYrvfhmFCkKuZ8aqRlVnvpfjQ4/OBm0Fmm9NyyxbNRD9VIbj7WjnA==","requires":{"@babel/core":"^7.0.0","@babel/generator":"^7.0.0","@babel/parser":"^7.0.0","@babel/plugin-external-helpers":"^7.0.0","@babel/template":"^7.0.0","@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","absolute-path":"^0.0.0","async":"^2.4.0","babel-preset-fbjs":"^3.1.2","buffer-crc32":"^0.2.13","chalk":"^2.4.1","concat-stream":"^1.6.0","connect":"^3.6.5","debug":"^2.2.0","denodeify":"^1.2.1","eventemitter3":"^3.0.0","fbjs":"^1.0.0","fs-extra":"^1.0.0","graceful-fs":"^4.1.3","image-size":"^0.6.0","invariant":"^2.2.4","jest-haste-map":"^24.7.1","jest-worker":"^24.6.0","json-stable-stringify":"^1.0.1","lodash.throttle":"^4.1.1","merge-stream":"^1.0.1","metro-babel-register":"^0.56.4","metro-babel-transformer":"^0.56.4","metro-cache":"^0.56.4","metro-config":"^0.56.4","metro-core":"^0.56.4","metro-inspector-proxy":"^0.56.4","metro-minify-uglify":"^0.56.4","metro-react-native-babel-preset":"^0.56.4","metro-resolver":"^0.56.4","metro-source-map":"^0.56.4","metro-symbolicate":"^0.56.4","mime-types":"2.1.11","mkdirp":"^0.5.1","node-fetch":"^2.2.0","nullthrows":"^1.1.0","resolve":"^1.5.0","rimraf":"^2.5.4","serialize-error":"^2.1.0","source-map":"^0.5.6","temp":"0.8.3","throat":"^4.1.0","wordwrap":"^1.0.0","write-file-atomic":"^1.2.0","ws":"^1.1.5","xpipe":"^1.0.5","yargs":"^9.0.0"},"dependencies":{"fs-extra":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz","integrity":"sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^2.1.0","klaw":"^1.0.0"}},"jsonfile":{"version":"2.4.0","resolved":"https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz","integrity":"sha1-NzaitCi4e72gzIO1P6PWM6NcKug=","requires":{"graceful-fs":"^4.1.6"}},"metro-config":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-config/-/metro-config-0.56.4.tgz","integrity":"sha512-O85QDHwWdMn/8ERe13y4a6vbZL0AHyO8atTvL+9BCulLEO+FQBi1iJjr3+ViLa8cf0m5dRftDsa7P47m5euk4A==","requires":{"cosmiconfig":"^5.0.5","jest-validate":"^24.7.0","metro":"^0.56.4","metro-cache":"^0.56.4","metro-core":"^0.56.4","pretty-format":"^24.7.0"}},"pretty-format":{"version":"24.9.0","resolved":"https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz","integrity":"sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==","requires":{"@jest/types":"^24.9.0","ansi-regex":"^4.0.0","ansi-styles":"^3.2.0","react-is":"^16.8.4"}}}},"metro-babel-register":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.56.4.tgz","integrity":"sha512-Phm6hMluOWYqfykftjJ1jsTpWvbgb49AC/1taxEctxUdRCZlFgZwBleJZAhQYxJD5J+ikFkEbHDzePEXb29KVA==","requires":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-proposal-optional-catch-binding":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-transform-async-to-generator":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/register":"^7.0.0","core-js":"^2.2.2","escape-string-regexp":"^1.0.5"}},"metro-babel-transformer":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.56.4.tgz","integrity":"sha512-IOi4ILgZvaX7GCGHBJp79paNVOq5QxhhbyqAdEJgDP8bHfl/OVHoVKSypfrsMSKSiBrqxhIjyc4XjkXsQtkx5g==","requires":{"@babel/core":"^7.0.0","metro-source-map":"^0.56.4"}},"metro-cache":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-cache/-/metro-cache-0.56.4.tgz","integrity":"sha512-d1hiUSKwtRsuMxUhHVJ3tjK2BbpUlJGvTyMWohK8Wxx+0GbnWRWWFcI4vlCzlZfoK0VtZK2MJEl5t7Du1mIniQ==","requires":{"jest-serializer":"^24.4.0","metro-core":"^0.56.4","mkdirp":"^0.5.1","rimraf":"^2.5.4"}},"metro-core":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-core/-/metro-core-0.56.4.tgz","integrity":"sha512-hMzkBdgPt5Zm9nr/1KtIT+A6H7TNiLVCEGG5OiAXj8gTRsA2yy7wAdQpwy0xbE+zi88t/pLOzXpd3ClG/YxyWg==","requires":{"jest-haste-map":"^24.7.1","lodash.throttle":"^4.1.1","metro-resolver":"^0.56.4","wordwrap":"^1.0.0"}},"metro-inspector-proxy":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.56.4.tgz","integrity":"sha512-E1S3MO25mWKmcLn1UQuCDiS0hf9P2Fwq8sEAX5lBLoZbehepNH+4xJ3xXSY51JX4dozBrE8GGoKL4ll3II40LA==","requires":{"connect":"^3.6.5","debug":"^2.2.0","rxjs":"^5.4.3","ws":"^1.1.5","yargs":"^9.0.0"}},"metro-minify-uglify":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.56.4.tgz","integrity":"sha512-BHgj7+BKEK2pHvWHUR730bIrsZwl8DPtr49x9L0j2grPZ5/UROWXzEr8VZgIss7fl64t845uu1HXNNyuSj2EhA==","requires":{"uglify-es":"^3.1.9"}},"metro-react-native-babel-preset":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz","integrity":"sha512-CzbBDM9Rh6w8s1fq+ZqihAh7DDqUAcfo9pPww25+N/eJ7UK436Q7JdfxwdIPpBwLFn6o6MyYn+uwL9OEWBJarA==","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-export-default-from":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-proposal-optional-catch-binding":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-syntax-dynamic-import":"^7.0.0","@babel/plugin-syntax-export-default-from":"^7.0.0","@babel/plugin-syntax-flow":"^7.2.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-exponentiation-operator":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-assign":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-react-jsx-source":"^7.0.0","@babel/plugin-transform-regenerator":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-sticky-regex":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","@babel/plugin-transform-typescript":"^7.0.0","@babel/plugin-transform-unicode-regex":"^7.0.0","@babel/template":"^7.0.0","react-refresh":"^0.4.0"}},"metro-resolver":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.56.4.tgz","integrity":"sha512-Ug4ulVfpkKZ1Wu7mdYj9XLGuOqZTuWCqEhyx3siKTc/2eBwKZQXmiNo5d/IxWNvmwL/87Abeb724I6CMzMfjiQ==","requires":{"absolute-path":"^0.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.56.4.tgz","integrity":"sha512-f1P9/rpFmG3Z0Jatiw2zvLItx1TwR7mXTSDj4qLDCWeVMB3kEXAr3R0ucumTW8c6HfpJljeRBWzYFXF33fd81g==","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}},"metro-symbolicate":{"version":"0.56.4","resolved":"https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.56.4.tgz","integrity":"sha512-8mCNNn6zV5FFKCIcRgI7736Xl+owgvYuy8qanPxZN36f7utiWRYeB+PirEBPcglBk4qQvoy2lT6oPULNXZQbbQ==","requires":{"invariant":"^2.2.4","metro-source-map":"^0.56.4","source-map":"^0.5.6","through2":"^2.0.1","vlq":"^1.0.0"}},"micromatch":{"version":"3.1.10","resolved":"https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz","integrity":"sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}},"mime-db":{"version":"1.23.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz","integrity":"sha1-oxtAcK2uon1zLqMzdApk0OyaZlk="},"mime-types":{"version":"2.1.11","resolved":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz","integrity":"sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=","requires":{"mime-db":"~1.23.0"}},"node-fetch":{"version":"2.6.0","resolved":"https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz","integrity":"sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="},"ob1":{"version":"0.56.4","resolved":"https://registry.npmjs.org/ob1/-/ob1-0.56.4.tgz","integrity":"sha512-URgFof9z2wotiYFsqlydXtQfGV81gvBI2ODy64xfd3vPo+AYom5PVDX4t4zn23t/O+S2IxqApSQM8uJAybmz7w=="},"p-limit":{"version":"2.3.0","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz","integrity":"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==","requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"4.1.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz","integrity":"sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==","requires":{"p-limit":"^2.2.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz","integrity":"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="},"path-exists":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz","integrity":"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="},"plist":{"version":"3.0.1","resolved":"https://registry.npmjs.org/plist/-/plist-3.0.1.tgz","integrity":"sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==","requires":{"base64-js":"^1.2.3","xmlbuilder":"^9.0.7","xmldom":"0.1.x"}},"pretty-format":{"version":"25.5.0","resolved":"https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz","integrity":"sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==","requires":{"@jest/types":"^25.5.0","ansi-regex":"^5.0.0","ansi-styles":"^4.0.0","react-is":"^16.12.0"},"dependencies":{"@jest/types":{"version":"25.5.0","resolved":"https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz","integrity":"sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==","requires":{"@types/istanbul-lib-coverage":"^2.0.0","@types/istanbul-reports":"^1.1.1","@types/yargs":"^15.0.0","chalk":"^3.0.0"}},"ansi-regex":{"version":"5.0.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz","integrity":"sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="},"ansi-styles":{"version":"4.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz","integrity":"sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==","requires":{"@types/color-name":"^1.1.1","color-convert":"^2.0.1"}},"chalk":{"version":"3.0.0","resolved":"https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz","integrity":"sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==","requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}},"color-convert":{"version":"2.0.1","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","integrity":"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==","requires":{"color-name":"~1.1.4"}},"has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="},"react-is":{"version":"16.13.1","resolved":"https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz","integrity":"sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="},"supports-color":{"version":"7.1.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz","integrity":"sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==","requires":{"has-flag":"^4.0.0"}}}},"rsvp":{"version":"4.8.5","resolved":"https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz","integrity":"sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="},"rxjs":{"version":"5.5.12","resolved":"https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz","integrity":"sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==","requires":{"symbol-observable":"1.0.1"}},"sane":{"version":"4.1.0","resolved":"https://registry.npmjs.org/sane/-/sane-4.1.0.tgz","integrity":"sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==","requires":{"@cnakazawa/watch":"^1.0.3","anymatch":"^2.0.0","capture-exit":"^2.0.0","exec-sh":"^0.3.2","execa":"^1.0.0","fb-watchman":"^2.0.0","micromatch":"^3.1.4","minimist":"^1.1.1","walker":"~1.0.5"}},"semver":{"version":"6.3.0","resolved":"https://registry.npmjs.org/semver/-/semver-6.3.0.tgz","integrity":"sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="},"strip-ansi":{"version":"5.2.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz","integrity":"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==","requires":{"ansi-regex":"^4.1.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}},"xmlbuilder":{"version":"9.0.7","resolved":"https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz","integrity":"sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="}}},"@react-native-community/cli-debugger-ui":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/@react-native-community/cli-debugger-ui/download/@react-native-community/cli-debugger-ui-3.0.0.tgz","integrity":"sha1-0B0I0eXdwWM9gsfYTUj/8HvTlBY=","requires":{"serve-static":"^1.13.1"}},"@react-native-community/cli-platform-android":{"version":"3.1.4","resolved":"http://registry.npm.pt.mi.com/@react-native-community/cli-platform-android/download/@react-native-community/cli-platform-android-3.1.4.tgz","integrity":"sha1-Yflk3DEWI+YLD7KcXzcyzIpvB28=","requires":{"@react-native-community/cli-tools":"^3.0.0","chalk":"^2.4.2","execa":"^1.0.0","jetifier":"^1.6.2","logkitty":"^0.6.0","slash":"^3.0.0","xmldoc":"^1.1.2"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"sax":{"version":"1.2.4","resolved":"https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz","integrity":"sha1-KBYjTiN4vdxOU1T6tcqold9xANk="},"slash":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz","integrity":"sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}},"xmldoc":{"version":"1.1.2","resolved":"https://registry.npm.taobao.org/xmldoc/download/xmldoc-1.1.2.tgz","integrity":"sha1-ZmbgKf4lRw1ZnNMOI/8NHtUEZtc=","requires":{"sax":"^1.2.1"}}}},"@react-native-community/cli-platform-ios":{"version":"3.2.0","resolved":"http://registry.npm.pt.mi.com/@react-native-community/cli-platform-ios/download/@react-native-community/cli-platform-ios-3.2.0.tgz","integrity":"sha1-xGlET1mTyeZzeksW14zwM+NwLwA=","requires":{"@react-native-community/cli-tools":"^3.0.0","chalk":"^2.4.2","js-yaml":"^3.13.1","xcode":"^2.0.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}}}},"@react-native-community/cli-tools":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/@react-native-community/cli-tools/download/@react-native-community/cli-tools-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40react-native-community%2Fcli-tools%2Fdownload%2F%40react-native-community%2Fcli-tools-3.0.0.tgz","integrity":"sha1-/ki4CCLtfkm4rwUfn+QeIqKnELE=","requires":{"chalk":"^2.4.2","lodash":"^4.17.5","mime":"^2.4.1","node-fetch":"^2.5.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"mime":{"version":"2.4.5","resolved":"http://registry.npm.pt.mi.com/mime/download/mime-2.4.5.tgz","integrity":"sha1-2N4uy5KYLe27ZUHJtoQdfyGOoAk="},"node-fetch":{"version":"2.6.0","resolved":"https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz","integrity":"sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}}}},"@react-native-community/cli-types":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/@react-native-community/cli-types/download/@react-native-community/cli-types-3.0.0.tgz","integrity":"sha1-SI1GYFywXohTfgMPONojbu2nRlI="},"@react-native-community/netinfo":{"version":"4.6.1","resolved":"http://registry.npm.pt.mi.com/@react-native-community/netinfo/download/@react-native-community/netinfo-4.6.1.tgz","integrity":"sha1-CZYLSSF9VV5UFE9U5jSF/lXWc60="},"@react-native-community/viewpager":{"version":"3.1.0","resolved":"http://registry.npm.pt.mi.com/@react-native-community/viewpager/download/@react-native-community/viewpager-3.1.0.tgz","integrity":"sha1-sz+ARSv7aMdqJQGWTHMfihsME7I="},"@types/color-name":{"version":"1.1.1","resolved":"https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz","integrity":"sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="},"@types/istanbul-lib-coverage":{"version":"2.0.1","resolved":"https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz","integrity":"sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg=="},"@types/istanbul-lib-report":{"version":"1.1.1","resolved":"https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz","integrity":"sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==","requires":{"@types/istanbul-lib-coverage":"*"}},"@types/istanbul-reports":{"version":"1.1.1","resolved":"https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz","integrity":"sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==","requires":{"@types/istanbul-lib-coverage":"*","@types/istanbul-lib-report":"*"}},"@types/parse-json":{"version":"4.0.0","resolved":"https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz","integrity":"sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==","dev":true},"@types/prop-types":{"version":"15.7.3","resolved":"https://registry.npm.taobao.org/@types/prop-types/download/@types/prop-types-15.7.3.tgz?cache=0&sync_timestamp=1580843756408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz","integrity":"sha1-KrDV2i5YFflLC51LldHl8kOrLKc="},"@types/react":{"version":"16.9.19","resolved":"https://registry.npm.taobao.org/@types/react/download/@types/react-16.9.19.tgz?cache=0&sync_timestamp=1580843757472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.19.tgz","integrity":"sha1-yEKqg+pJAAfSmTgUb/Lk2eQ2DEA=","requires":{"@types/prop-types":"*","csstype":"^2.2.0"}},"@types/stack-utils":{"version":"1.0.1","resolved":"https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz","integrity":"sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw=="},"@types/yargs":{"version":"13.0.3","resolved":"https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz","integrity":"sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==","requires":{"@types/yargs-parser":"*"}},"@types/yargs-parser":{"version":"13.1.0","resolved":"https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz","integrity":"sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg=="},"abort-controller":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/abort-controller/download/abort-controller-3.0.0.tgz","integrity":"sha1-6vVNU7YrrkE46AnKIlyEOabvs5I=","requires":{"event-target-shim":"^5.0.0"}},"absolute-path":{"version":"0.0.0","resolved":"http://registry.npm.taobao.org/absolute-path/download/absolute-path-0.0.0.tgz","integrity":"sha1-p4di+9rftSl76ZsV01p4Wy8JW/c="},"accepts":{"version":"1.3.7","resolved":"https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz","integrity":"sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==","requires":{"mime-types":"~2.1.24","negotiator":"0.6.2"},"dependencies":{"mime-db":{"version":"1.40.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz","integrity":"sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="},"mime-types":{"version":"2.1.24","resolved":"https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz","integrity":"sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==","requires":{"mime-db":"1.40.0"}}}},"acorn":{"version":"6.1.1","resolved":"http://registry.npm.taobao.org/acorn/download/acorn-6.1.1.tgz","integrity":"sha1-fSWuBbuK0fm2mRCOEJTs14hK3B8=","dev":true},"acorn-jsx":{"version":"5.0.1","resolved":"http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.0.1.tgz","integrity":"sha1-MqBk/ZJUKSFqCbFBECv90YX65A4=","dev":true},"ajv":{"version":"6.10.0","resolved":"http://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz","integrity":"sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=","dev":true,"requires":{"fast-deep-equal":"^2.0.1","fast-json-stable-stringify":"^2.0.0","json-schema-traverse":"^0.4.1","uri-js":"^4.2.2"}},"ansi":{"version":"0.3.1","resolved":"http://registry.npm.taobao.org/ansi/download/ansi-0.3.1.tgz","integrity":"sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="},"ansi-colors":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/ansi-colors/download/ansi-colors-1.1.0.tgz","integrity":"sha1-Y3S03V1HGP884npnGjscrQdxMqk=","requires":{"ansi-wrap":"^0.1.0"}},"ansi-cyan":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/ansi-cyan/download/ansi-cyan-0.1.1.tgz","integrity":"sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=","requires":{"ansi-wrap":"0.1.0"}},"ansi-escape-sequences":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/ansi-escape-sequences/download/ansi-escape-sequences-4.1.0.tgz","integrity":"sha1-JIPIdz9Q3ZF03ZVX6SsXGPGBYJc=","dev":true,"requires":{"array-back":"^3.0.1"},"dependencies":{"array-back":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/array-back/download/array-back-3.1.0.tgz","integrity":"sha1-uIWdelCIccmnss9C+ZQo9l6Wv7A=","dev":true}}},"ansi-escapes":{"version":"3.2.0","resolved":"http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz","integrity":"sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s="},"ansi-fragments":{"version":"0.2.1","resolved":"https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz","integrity":"sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==","requires":{"colorette":"^1.0.7","slice-ansi":"^2.0.0","strip-ansi":"^5.0.0"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz","integrity":"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="},"strip-ansi":{"version":"5.2.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz","integrity":"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==","requires":{"ansi-regex":"^4.1.0"}}}},"ansi-gray":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/ansi-gray/download/ansi-gray-0.1.1.tgz","integrity":"sha1-KWLPVOyXksSFEKPetSRDaGHvclE=","requires":{"ansi-wrap":"0.1.0"}},"ansi-red":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/ansi-red/download/ansi-red-0.1.1.tgz","integrity":"sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=","requires":{"ansi-wrap":"0.1.0"}},"ansi-regex":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz","integrity":"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="},"ansi-styles":{"version":"2.2.1","resolved":"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz","integrity":"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="},"ansi-wrap":{"version":"0.1.0","resolved":"http://registry.npm.taobao.org/ansi-wrap/download/ansi-wrap-0.1.0.tgz","integrity":"sha1-qCJQ3bABXponyoLoLqYDu/pF768="},"anymatch":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz","integrity":"sha1-vLJLTzeTTZqnrBe0ra+J58du8us=","requires":{"micromatch":"^3.1.4","normalize-path":"^2.1.1"},"dependencies":{"arr-diff":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz","integrity":"sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="},"array-unique":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"braces":{"version":"2.3.2","resolved":"http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz","integrity":"sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"expand-brackets":{"version":"2.1.4","resolved":"http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="}}},"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"},"dependencies":{"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"extglob":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz","integrity":"sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fill-range":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="},"micromatch":{"version":"3.1.10","resolved":"http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz","integrity":"sha1-cIWbyVyYQJUvNZoGij/En57PrCM=","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}}}},"are-we-there-yet":{"version":"1.1.5","resolved":"http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz","integrity":"sha1-SzXClE8GKov82mZBB2A1D+nd/CE=","requires":{"delegates":"^1.0.0","readable-stream":"^2.0.6"}},"argparse":{"version":"1.0.10","resolved":"http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz","integrity":"sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=","requires":{"sprintf-js":"~1.0.2"}},"aria-query":{"version":"3.0.0","resolved":"https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz","integrity":"sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=","dev":true,"requires":{"ast-types-flow":"0.0.7","commander":"^2.11.0"}},"arr-diff":{"version":"4.0.0","resolved":"https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz","integrity":"sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="},"arr-flatten":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz","integrity":"sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="},"arr-union":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/arr-union/download/arr-union-2.1.0.tgz","integrity":"sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0="},"array-back":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/array-back/download/array-back-2.0.0.tgz","integrity":"sha1-aHdHHVHsycm/phNvtsfV/ml0gCI=","dev":true,"requires":{"typical":"^2.6.1"}},"array-filter":{"version":"0.0.1","resolved":"http://registry.npm.taobao.org/array-filter/download/array-filter-0.0.1.tgz","integrity":"sha1-fajPLiZijtcygDWB/SH2fKzS7uw="},"array-includes":{"version":"3.0.3","resolved":"https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz","integrity":"sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=","dev":true,"requires":{"define-properties":"^1.1.2","es-abstract":"^1.7.0"}},"array-map":{"version":"0.0.0","resolved":"http://registry.npm.taobao.org/array-map/download/array-map-0.0.0.tgz","integrity":"sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI="},"array-reduce":{"version":"0.0.0","resolved":"http://registry.npm.taobao.org/array-reduce/download/array-reduce-0.0.0.tgz","integrity":"sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys="},"array-slice":{"version":"0.2.3","resolved":"http://registry.npm.taobao.org/array-slice/download/array-slice-0.2.3.tgz","integrity":"sha1-3Tz7gO15c6dRF82sabC5nshhhvU="},"array-unique":{"version":"0.2.1","resolved":"http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz","integrity":"sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=","dev":true},"art":{"version":"0.10.3","resolved":"http://registry.npm.taobao.org/art/download/art-0.10.3.tgz","integrity":"sha1-sB2EqWjMzmII31WnM4OMlsrurqI="},"asap":{"version":"2.0.6","resolved":"http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz","integrity":"sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="},"asn1":{"version":"0.2.4","resolved":"http://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz","integrity":"sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=","dev":true,"requires":{"safer-buffer":"~2.1.0"}},"assert-plus":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz","integrity":"sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=","dev":true},"assign-symbols":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz","integrity":"sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="},"ast-types-flow":{"version":"0.0.7","resolved":"https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz","integrity":"sha1-9wtzXGvKGlycItmCw+Oef+ujva0=","dev":true},"astral-regex":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz","integrity":"sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k="},"async":{"version":"2.6.2","resolved":"http://registry.npm.taobao.org/async/download/async-2.6.2.tgz","integrity":"sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=","requires":{"lodash":"^4.17.11"}},"async-limiter":{"version":"1.0.1","resolved":"https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz","integrity":"sha1-3TeelPDbgxCwgpH51kwyCXZmF/0="},"asynckit":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz","integrity":"sha1-x57Zf380y48robyXkLzDZkdLS3k=","dev":true},"atob":{"version":"2.1.2","resolved":"http://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz","integrity":"sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="},"aws-sign2":{"version":"0.7.0","resolved":"http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz","integrity":"sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=","dev":true},"aws4":{"version":"1.8.0","resolved":"http://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz","integrity":"sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=","dev":true},"axobject-query":{"version":"2.0.2","resolved":"http://registry.npm.taobao.org/axobject-query/download/axobject-query-2.0.2.tgz","integrity":"sha1-6hh6vluQArN3+SXYv30cVhrfOPk=","dev":true,"requires":{"ast-types-flow":"0.0.7"}},"babel-code-frame":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz","integrity":"sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=","requires":{"chalk":"^1.1.3","esutils":"^2.0.2","js-tokens":"^3.0.2"},"dependencies":{"js-tokens":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz","integrity":"sha1-mGbfOVECEw449/mWvOtlRDIJwls="}}},"babel-core":{"version":"6.26.3","resolved":"http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz","integrity":"sha1-suLwnjQtDwyI4vAuBneUEl51wgc=","dev":true,"requires":{"babel-code-frame":"^6.26.0","babel-generator":"^6.26.0","babel-helpers":"^6.24.1","babel-messages":"^6.23.0","babel-register":"^6.26.0","babel-runtime":"^6.26.0","babel-template":"^6.26.0","babel-traverse":"^6.26.0","babel-types":"^6.26.0","babylon":"^6.18.0","convert-source-map":"^1.5.1","debug":"^2.6.9","json5":"^0.5.1","lodash":"^4.17.4","minimatch":"^3.0.4","path-is-absolute":"^1.0.1","private":"^0.1.8","slash":"^1.0.0","source-map":"^0.5.7"}},"babel-eslint":{"version":"10.0.1","resolved":"http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.0.1.tgz","integrity":"sha1-kZaB3AmWFM19MdRciQhpUJKh+u0=","dev":true,"requires":{"@babel/code-frame":"^7.0.0","@babel/parser":"^7.0.0","@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","eslint-scope":"3.7.1","eslint-visitor-keys":"^1.0.0"}},"babel-generator":{"version":"6.26.1","resolved":"http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz","integrity":"sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=","dev":true,"requires":{"babel-messages":"^6.23.0","babel-runtime":"^6.26.0","babel-types":"^6.26.0","detect-indent":"^4.0.0","jsesc":"^1.3.0","lodash":"^4.17.4","source-map":"^0.5.7","trim-right":"^1.0.1"}},"babel-helper-builder-binary-assignment-operator-visitor":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz","integrity":"sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=","dev":true,"requires":{"babel-helper-explode-assignable-expression":"^6.24.1","babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-helper-builder-react-jsx":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.26.0.tgz","integrity":"sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=","dev":true,"requires":{"babel-runtime":"^6.26.0","babel-types":"^6.26.0","esutils":"^2.0.2"}},"babel-helper-call-delegate":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz","integrity":"sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=","dev":true,"requires":{"babel-helper-hoist-variables":"^6.24.1","babel-runtime":"^6.22.0","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helper-define-map":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz","integrity":"sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=","dev":true,"requires":{"babel-helper-function-name":"^6.24.1","babel-runtime":"^6.26.0","babel-types":"^6.26.0","lodash":"^4.17.4"}},"babel-helper-explode-assignable-expression":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz","integrity":"sha1-8luCz33BBDPFX3BZLVdGQArCLKo=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helper-function-name":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz","integrity":"sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=","requires":{"babel-helper-get-function-arity":"^6.24.1","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helper-get-function-arity":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz","integrity":"sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=","requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-helper-hoist-variables":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz","integrity":"sha1-HssnaJydJVE+rbyZFKc/VAi+enY=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-helper-optimise-call-expression":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz","integrity":"sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-helper-regex":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz","integrity":"sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=","dev":true,"requires":{"babel-runtime":"^6.26.0","babel-types":"^6.26.0","lodash":"^4.17.4"}},"babel-helper-remap-async-to-generator":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz","integrity":"sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=","requires":{"babel-helper-function-name":"^6.24.1","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helper-replace-supers":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz","integrity":"sha1-v22/5Dk40XNpohPKiov3S2qQqxo=","dev":true,"requires":{"babel-helper-optimise-call-expression":"^6.24.1","babel-messages":"^6.23.0","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-helpers":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz","integrity":"sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-template":"^6.24.1"}},"babel-messages":{"version":"6.23.0","resolved":"http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz","integrity":"sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=","requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-check-es2015-constants":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz","integrity":"sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-external-helpers":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-external-helpers/download/babel-plugin-external-helpers-6.22.0.tgz","integrity":"sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-react-transform":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/babel-plugin-react-transform/download/babel-plugin-react-transform-3.0.0.tgz","integrity":"sha1-QC8lE3t7tm6bVOrXVVffvH7KqnQ=","dev":true,"requires":{"lodash":"^4.6.1"}},"babel-plugin-syntax-async-functions":{"version":"6.13.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz","integrity":"sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU="},"babel-plugin-syntax-class-properties":{"version":"6.13.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz","integrity":"sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=","dev":true},"babel-plugin-syntax-dynamic-import":{"version":"6.18.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz","integrity":"sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=","dev":true},"babel-plugin-syntax-exponentiation-operator":{"version":"6.13.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz","integrity":"sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=","dev":true},"babel-plugin-syntax-flow":{"version":"6.18.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-flow/download/babel-plugin-syntax-flow-6.18.0.tgz","integrity":"sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=","dev":true},"babel-plugin-syntax-jsx":{"version":"6.18.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz","integrity":"sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=","dev":true},"babel-plugin-syntax-object-rest-spread":{"version":"6.13.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz","integrity":"sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=","dev":true},"babel-plugin-syntax-trailing-function-commas":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz","integrity":"sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=","dev":true},"babel-plugin-transform-async-to-generator":{"version":"6.24.1","resolved":"https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz","integrity":"sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=","requires":{"babel-helper-remap-async-to-generator":"^6.24.1","babel-plugin-syntax-async-functions":"^6.8.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-class-properties":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.24.1.tgz","integrity":"sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=","dev":true,"requires":{"babel-helper-function-name":"^6.24.1","babel-plugin-syntax-class-properties":"^6.8.0","babel-runtime":"^6.22.0","babel-template":"^6.24.1"}},"babel-plugin-transform-es2015-arrow-functions":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz","integrity":"sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-block-scoped-functions":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz","integrity":"sha1-u8UbSflk1wy42OC5ToICRs46YUE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-block-scoping":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz","integrity":"sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=","dev":true,"requires":{"babel-runtime":"^6.26.0","babel-template":"^6.26.0","babel-traverse":"^6.26.0","babel-types":"^6.26.0","lodash":"^4.17.4"}},"babel-plugin-transform-es2015-classes":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz","integrity":"sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=","dev":true,"requires":{"babel-helper-define-map":"^6.24.1","babel-helper-function-name":"^6.24.1","babel-helper-optimise-call-expression":"^6.24.1","babel-helper-replace-supers":"^6.24.1","babel-messages":"^6.23.0","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-computed-properties":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz","integrity":"sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-template":"^6.24.1"}},"babel-plugin-transform-es2015-destructuring":{"version":"6.23.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz","integrity":"sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-for-of":{"version":"6.23.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz","integrity":"sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-function-name":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz","integrity":"sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=","dev":true,"requires":{"babel-helper-function-name":"^6.24.1","babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-literals":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz","integrity":"sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-modules-commonjs":{"version":"6.26.2","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz","integrity":"sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=","dev":true,"requires":{"babel-plugin-transform-strict-mode":"^6.24.1","babel-runtime":"^6.26.0","babel-template":"^6.26.0","babel-types":"^6.26.0"}},"babel-plugin-transform-es2015-object-super":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz","integrity":"sha1-JM72muIcuDp/hgPa0CH1cusnj40=","dev":true,"requires":{"babel-helper-replace-supers":"^6.24.1","babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-parameters":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz","integrity":"sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=","dev":true,"requires":{"babel-helper-call-delegate":"^6.24.1","babel-helper-get-function-arity":"^6.24.1","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-shorthand-properties":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz","integrity":"sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-spread":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz","integrity":"sha1-1taKmfia7cRTbIGlQujdnxdG+NE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-sticky-regex":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz","integrity":"sha1-AMHNsaynERLN8M9hJsLta0V8zbw=","dev":true,"requires":{"babel-helper-regex":"^6.24.1","babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-plugin-transform-es2015-template-literals":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz","integrity":"sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es2015-unicode-regex":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz","integrity":"sha1-04sS9C6nMj9yk4fxinxa4frrNek=","dev":true,"requires":{"babel-helper-regex":"^6.24.1","babel-runtime":"^6.22.0","regexpu-core":"^2.0.0"}},"babel-plugin-transform-es3-member-expression-literals":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es3-member-expression-literals/download/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz","integrity":"sha1-cz00RPPsxBvvjtGmpOCWV7iWnrs=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-es3-property-literals":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-es3-property-literals/download/babel-plugin-transform-es3-property-literals-6.22.0.tgz","integrity":"sha1-sgeNWELiKr9A9z6M3pzTcRq9V1g=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-exponentiation-operator":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz","integrity":"sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=","dev":true,"requires":{"babel-helper-builder-binary-assignment-operator-visitor":"^6.24.1","babel-plugin-syntax-exponentiation-operator":"^6.8.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-flow-strip-types":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-flow-strip-types/download/babel-plugin-transform-flow-strip-types-6.22.0.tgz","integrity":"sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=","dev":true,"requires":{"babel-plugin-syntax-flow":"^6.18.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-object-assign":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-object-assign/download/babel-plugin-transform-object-assign-6.22.0.tgz","integrity":"sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-object-rest-spread":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz","integrity":"sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=","dev":true,"requires":{"babel-plugin-syntax-object-rest-spread":"^6.8.0","babel-runtime":"^6.26.0"}},"babel-plugin-transform-react-display-name":{"version":"6.25.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-react-display-name/download/babel-plugin-transform-react-display-name-6.25.0.tgz","integrity":"sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=","dev":true,"requires":{"babel-runtime":"^6.22.0"}},"babel-plugin-transform-react-jsx":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.24.1.tgz","integrity":"sha1-hAoCjn30YN/DotKfDA2R9jduZqM=","dev":true,"requires":{"babel-helper-builder-react-jsx":"^6.24.1","babel-plugin-syntax-jsx":"^6.8.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-react-jsx-source":{"version":"6.22.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-react-jsx-source/download/babel-plugin-transform-react-jsx-source-6.22.0.tgz","integrity":"sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=","dev":true,"requires":{"babel-plugin-syntax-jsx":"^6.8.0","babel-runtime":"^6.22.0"}},"babel-plugin-transform-regenerator":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz","integrity":"sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=","dev":true,"requires":{"regenerator-transform":"^0.10.0"},"dependencies":{"regenerator-transform":{"version":"0.10.1","resolved":"http://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.10.1.tgz","integrity":"sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=","dev":true,"requires":{"babel-runtime":"^6.18.0","babel-types":"^6.19.0","private":"^0.1.6"}}}},"babel-plugin-transform-remove-console":{"version":"6.9.4","resolved":"https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz","integrity":"sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=","dev":true},"babel-plugin-transform-strict-mode":{"version":"6.24.1","resolved":"http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz","integrity":"sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=","dev":true,"requires":{"babel-runtime":"^6.22.0","babel-types":"^6.24.1"}},"babel-preset-es2015-node":{"version":"6.1.1","resolved":"http://registry.npm.taobao.org/babel-preset-es2015-node/download/babel-preset-es2015-node-6.1.1.tgz","integrity":"sha1-YLIxVwJLDP6/OmNVTLBe4DW05V8=","dev":true,"requires":{"babel-plugin-transform-es2015-destructuring":"6.x","babel-plugin-transform-es2015-function-name":"6.x","babel-plugin-transform-es2015-modules-commonjs":"6.x","babel-plugin-transform-es2015-parameters":"6.x","babel-plugin-transform-es2015-shorthand-properties":"6.x","babel-plugin-transform-es2015-spread":"6.x","babel-plugin-transform-es2015-sticky-regex":"6.x","babel-plugin-transform-es2015-unicode-regex":"6.x","semver":"5.x"}},"babel-preset-fbjs":{"version":"2.3.0","resolved":"http://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-2.3.0.tgz","integrity":"sha1-kv+BMHwYuSaJURT5gorhZ0wJf4A=","dev":true,"requires":{"babel-plugin-check-es2015-constants":"^6.8.0","babel-plugin-syntax-class-properties":"^6.8.0","babel-plugin-syntax-flow":"^6.8.0","babel-plugin-syntax-jsx":"^6.8.0","babel-plugin-syntax-object-rest-spread":"^6.8.0","babel-plugin-syntax-trailing-function-commas":"^6.8.0","babel-plugin-transform-class-properties":"^6.8.0","babel-plugin-transform-es2015-arrow-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoped-functions":"^6.8.0","babel-plugin-transform-es2015-block-scoping":"^6.8.0","babel-plugin-transform-es2015-classes":"^6.8.0","babel-plugin-transform-es2015-computed-properties":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.8.0","babel-plugin-transform-es2015-for-of":"^6.8.0","babel-plugin-transform-es2015-function-name":"^6.8.0","babel-plugin-transform-es2015-literals":"^6.8.0","babel-plugin-transform-es2015-modules-commonjs":"^6.8.0","babel-plugin-transform-es2015-object-super":"^6.8.0","babel-plugin-transform-es2015-parameters":"^6.8.0","babel-plugin-transform-es2015-shorthand-properties":"^6.8.0","babel-plugin-transform-es2015-spread":"^6.8.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-flow-strip-types":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-react-display-name":"^6.8.0","babel-plugin-transform-react-jsx":"^6.8.0"}},"babel-preset-react-native":{"version":"4.0.1","resolved":"http://registry.npm.taobao.org/babel-preset-react-native/download/babel-preset-react-native-4.0.1.tgz","integrity":"sha1-FP8HvbbI35QICCwMGLLOjjOS52o=","dev":true,"requires":{"babel-plugin-check-es2015-constants":"^6.5.0","babel-plugin-react-transform":"^3.0.0","babel-plugin-syntax-async-functions":"^6.5.0","babel-plugin-syntax-class-properties":"^6.5.0","babel-plugin-syntax-dynamic-import":"^6.18.0","babel-plugin-syntax-flow":"^6.5.0","babel-plugin-syntax-jsx":"^6.5.0","babel-plugin-syntax-trailing-function-commas":"^6.5.0","babel-plugin-transform-class-properties":"^6.5.0","babel-plugin-transform-es2015-arrow-functions":"^6.5.0","babel-plugin-transform-es2015-block-scoping":"^6.5.0","babel-plugin-transform-es2015-classes":"^6.5.0","babel-plugin-transform-es2015-computed-properties":"^6.5.0","babel-plugin-transform-es2015-destructuring":"^6.5.0","babel-plugin-transform-es2015-for-of":"^6.5.0","babel-plugin-transform-es2015-function-name":"^6.5.0","babel-plugin-transform-es2015-literals":"^6.5.0","babel-plugin-transform-es2015-modules-commonjs":"^6.5.0","babel-plugin-transform-es2015-parameters":"^6.5.0","babel-plugin-transform-es2015-shorthand-properties":"^6.5.0","babel-plugin-transform-es2015-spread":"^6.5.0","babel-plugin-transform-es2015-template-literals":"^6.5.0","babel-plugin-transform-exponentiation-operator":"^6.5.0","babel-plugin-transform-flow-strip-types":"^6.5.0","babel-plugin-transform-object-assign":"^6.5.0","babel-plugin-transform-object-rest-spread":"^6.5.0","babel-plugin-transform-react-display-name":"^6.5.0","babel-plugin-transform-react-jsx":"^6.5.0","babel-plugin-transform-react-jsx-source":"^6.5.0","babel-plugin-transform-regenerator":"^6.5.0","babel-template":"^6.24.1","react-transform-hmr":"^1.0.4"}},"babel-register":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz","integrity":"sha1-btAhFz4vy0htestFxgCahW9kcHE=","dev":true,"requires":{"babel-core":"^6.26.0","babel-runtime":"^6.26.0","core-js":"^2.5.0","home-or-tmp":"^2.0.0","lodash":"^4.17.4","mkdirp":"^0.5.1","source-map-support":"^0.4.15"},"dependencies":{"core-js":{"version":"2.6.5","resolved":"http://registry.npm.taobao.org/core-js/download/core-js-2.6.5.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.5.tgz","integrity":"sha1-RLyNJJ5/sv9dAOA0Gn/7lPv2eJU=","dev":true}}},"babel-runtime":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz","integrity":"sha1-llxwWGaOgrVde/4E/yM3vItWR/4=","requires":{"core-js":"^2.4.0","regenerator-runtime":"^0.11.0"},"dependencies":{"core-js":{"version":"2.6.5","resolved":"http://registry.npm.taobao.org/core-js/download/core-js-2.6.5.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.5.tgz","integrity":"sha1-RLyNJJ5/sv9dAOA0Gn/7lPv2eJU="}}},"babel-template":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz","integrity":"sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=","requires":{"babel-runtime":"^6.26.0","babel-traverse":"^6.26.0","babel-types":"^6.26.0","babylon":"^6.18.0","lodash":"^4.17.4"}},"babel-traverse":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz","integrity":"sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=","requires":{"babel-code-frame":"^6.26.0","babel-messages":"^6.23.0","babel-runtime":"^6.26.0","babel-types":"^6.26.0","babylon":"^6.18.0","debug":"^2.6.8","globals":"^9.18.0","invariant":"^2.2.2","lodash":"^4.17.4"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}}}},"babel-types":{"version":"6.26.0","resolved":"http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz","integrity":"sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=","requires":{"babel-runtime":"^6.26.0","esutils":"^2.0.2","lodash":"^4.17.4","to-fast-properties":"^1.0.3"}},"babylon":{"version":"6.18.0","resolved":"http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz","integrity":"sha1-ry87iPpvXB5MY00aD46sT1WzleM="},"balanced-match":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz","integrity":"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="},"base":{"version":"0.11.2","resolved":"http://registry.npm.taobao.org/base/download/base-0.11.2.tgz","integrity":"sha1-e95c7RRbbVUakNuH+DxVi060io8=","requires":{"cache-base":"^1.0.1","class-utils":"^0.3.5","component-emitter":"^1.2.1","define-property":"^1.0.0","isobject":"^3.0.1","mixin-deep":"^1.2.0","pascalcase":"^0.1.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="}}},"base64-js":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz","integrity":"sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM="},"basic-auth":{"version":"2.0.1","resolved":"https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz","integrity":"sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==","requires":{"safe-buffer":"5.1.2"}},"bcrypt-pbkdf":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz","integrity":"sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=","dev":true,"requires":{"tweetnacl":"^0.14.3"}},"big-integer":{"version":"1.6.47","resolved":"https://registry.npmjs.org/big-integer/-/big-integer-1.6.47.tgz","integrity":"sha512-9t9f7X3as2XGX8b52GqG6ox0GvIdM86LyIXASJnDCFhYNgt+A+MByQZ3W2PyMRZjEvG5f8TEbSPfEotVuMJnQg=="},"bindings":{"version":"1.5.0","resolved":"https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz","integrity":"sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=","optional":true,"requires":{"file-uri-to-path":"1.0.0"}},"bl":{"version":"1.2.2","resolved":"http://registry.npm.taobao.org/bl/download/bl-1.2.2.tgz","integrity":"sha1-oWCRFxcQPAdBDO9j71Gzl8Alr5w=","dev":true,"requires":{"readable-stream":"^2.3.5","safe-buffer":"^5.1.1"}},"bluebird":{"version":"3.7.2","resolved":"https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz","integrity":"sha1-nyKcFb4nJFT/qXOs4NvueaGww28="},"boxen":{"version":"0.3.1","resolved":"http://registry.npm.taobao.org/boxen/download/boxen-0.3.1.tgz","integrity":"sha1-p9iYJDrmIvertrtgTXQKdsalRhs=","requires":{"chalk":"^1.1.1","filled-array":"^1.0.0","object-assign":"^4.0.1","repeating":"^2.0.0","string-width":"^1.0.1","widest-line":"^1.0.0"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}}}},"bplist-creator":{"version":"0.0.8","resolved":"https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz","integrity":"sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==","requires":{"stream-buffers":"~2.2.0"}},"bplist-parser":{"version":"0.2.0","resolved":"https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz","integrity":"sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==","requires":{"big-integer":"^1.6.44"}},"brace-expansion":{"version":"1.1.11","resolved":"http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz","integrity":"sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=","requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"braces":{"version":"1.8.5","resolved":"http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz","integrity":"sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=","dev":true,"requires":{"expand-range":"^1.8.1","preserve":"^0.2.0","repeat-element":"^1.1.2"}},"bser":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/bser/download/bser-2.0.0.tgz","integrity":"sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=","requires":{"node-int64":"^0.4.0"}},"buffer":{"version":"5.2.1","resolved":"http://registry.npm.taobao.org/buffer/download/buffer-5.2.1.tgz","integrity":"sha1-3Vf6DxCaxZxgJHkETcp7iz0LcdY=","requires":{"base64-js":"^1.0.2","ieee754":"^1.1.4"}},"buffer-alloc":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz","integrity":"sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=","dev":true,"requires":{"buffer-alloc-unsafe":"^1.1.0","buffer-fill":"^1.0.0"}},"buffer-alloc-unsafe":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz","integrity":"sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=","dev":true},"buffer-crc32":{"version":"0.2.13","resolved":"http://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz","integrity":"sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="},"buffer-fill":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz","integrity":"sha1-+PeLdniYiO858gXNY39o5wISKyw=","dev":true},"buffer-from":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz","integrity":"sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8="},"bytes":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz","integrity":"sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="},"cache-base":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz","integrity":"sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=","requires":{"collection-visit":"^1.0.0","component-emitter":"^1.2.1","get-value":"^2.0.6","has-value":"^1.0.0","isobject":"^3.0.1","set-value":"^2.0.0","to-object-path":"^0.3.0","union-value":"^1.0.0","unset-value":"^1.0.0"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"cache-point":{"version":"0.4.1","resolved":"http://registry.npm.taobao.org/cache-point/download/cache-point-0.4.1.tgz","integrity":"sha1-zIycvZnZDXsMZpEM0z13oaq4hA4=","dev":true,"requires":{"array-back":"^2.0.0","fs-then-native":"^2.0.0","mkdirp2":"^1.0.3"}},"caller-callsite":{"version":"2.0.0","resolved":"https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz","integrity":"sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=","requires":{"callsites":"^2.0.0"},"dependencies":{"callsites":{"version":"2.0.0","resolved":"https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz","integrity":"sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="}}},"caller-path":{"version":"2.0.0","resolved":"https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz","integrity":"sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=","requires":{"caller-callsite":"^2.0.0"}},"callsites":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz","integrity":"sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M="},"camelcase":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz","integrity":"sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="},"capture-exit":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/capture-exit/download/capture-exit-1.2.0.tgz","integrity":"sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=","dev":true,"requires":{"rsvp":"^3.3.3"}},"capture-stack-trace":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/capture-stack-trace/download/capture-stack-trace-1.0.1.tgz","integrity":"sha1-psC74fOPOqC5Ijjstv9Cw0TUE10="},"caseless":{"version":"0.12.0","resolved":"http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz","integrity":"sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=","dev":true},"catharsis":{"version":"0.8.11","resolved":"https://registry.npm.taobao.org/catharsis/download/catharsis-0.8.11.tgz","integrity":"sha1-0Os9K4K32no84u+xp7AL7MZkNGg=","requires":{"lodash":"^4.17.14"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&sync_timestamp=1571657272199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz","integrity":"sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="}}},"chalk":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz","integrity":"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=","requires":{"ansi-styles":"^2.2.1","escape-string-regexp":"^1.0.2","has-ansi":"^2.0.0","strip-ansi":"^3.0.0","supports-color":"^2.0.0"}},"chardet":{"version":"0.4.2","resolved":"http://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz","integrity":"sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="},"ci-info":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz","integrity":"sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="},"clamp":{"version":"1.0.1","resolved":"https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz","integrity":"sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ="},"class-utils":{"version":"0.3.6","resolved":"http://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz","integrity":"sha1-+TNprouafOAv1B+q0MqDAzGQxGM=","requires":{"arr-union":"^3.1.0","define-property":"^0.2.5","isobject":"^3.0.0","static-extend":"^0.1.1"},"dependencies":{"arr-union":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz","integrity":"sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="},"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"classnames":{"version":"2.2.6","resolved":"http://registry.npm.taobao.org/classnames/download/classnames-2.2.6.tgz","integrity":"sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4="},"cli-cursor":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz","integrity":"sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=","requires":{"restore-cursor":"^2.0.0"}},"cli-spinners":{"version":"2.2.0","resolved":"https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz","integrity":"sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ=="},"cli-width":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz","integrity":"sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="},"cliui":{"version":"3.2.0","resolved":"http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz","integrity":"sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=","requires":{"string-width":"^1.0.1","strip-ansi":"^3.0.1","wrap-ansi":"^2.0.0"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}}}},"clone":{"version":"1.0.4","resolved":"https://registry.npmjs.org/clone/-/clone-1.0.4.tgz","integrity":"sha1-2jCcwmPfFZlMaIypAheco8fNfH4="},"code-point-at":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz","integrity":"sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="},"collect-all":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/collect-all/download/collect-all-1.0.3.tgz","integrity":"sha1-GrzCBEi1ihRHSH/PNBMOlRKwrPg=","dev":true,"requires":{"stream-connect":"^1.0.2","stream-via":"^1.0.4"}},"collection-visit":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz","integrity":"sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=","requires":{"map-visit":"^1.0.0","object-visit":"^1.0.0"}},"color-convert":{"version":"1.9.3","resolved":"http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz","integrity":"sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=","requires":{"color-name":"1.1.3"}},"color-name":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz","integrity":"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="},"color-support":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/color-support/download/color-support-1.1.3.tgz","integrity":"sha1-k4NDeaHMmgxh+C9S8NBDIiUb1aI="},"colorette":{"version":"1.1.0","resolved":"https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz","integrity":"sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg=="},"colors":{"version":"0.6.2","resolved":"https://registry.npmjs.org/colors/-/colors-0.6.2.tgz","integrity":"sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=","dev":true},"combined-stream":{"version":"1.0.7","resolved":"http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.7.tgz","integrity":"sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=","dev":true,"requires":{"delayed-stream":"~1.0.0"}},"command-exists":{"version":"1.2.9","resolved":"http://registry.npm.pt.mi.com/command-exists/download/command-exists-1.2.9.tgz","integrity":"sha1-xQclrzgIyKsCYP1gsB+/oluVT2k="},"command-line-args":{"version":"5.1.1","resolved":"http://registry.npm.taobao.org/command-line-args/download/command-line-args-5.1.1.tgz","integrity":"sha1-iOeT5bs86zB1SoaGPwQBrJL9Npo=","dev":true,"requires":{"array-back":"^3.0.1","find-replace":"^3.0.0","lodash.camelcase":"^4.3.0","typical":"^4.0.0"},"dependencies":{"array-back":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/array-back/download/array-back-3.1.0.tgz","integrity":"sha1-uIWdelCIccmnss9C+ZQo9l6Wv7A=","dev":true},"typical":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/typical/download/typical-4.0.0.tgz","integrity":"sha1-y+r/O5164eK7+vWk5vEezP3pT8Q=","dev":true}}},"command-line-tool":{"version":"0.8.0","resolved":"http://registry.npm.taobao.org/command-line-tool/download/command-line-tool-0.8.0.tgz","integrity":"sha1-sAKQ7x38EcxzHdH0OpLPpfIecVs=","dev":true,"requires":{"ansi-escape-sequences":"^4.0.0","array-back":"^2.0.0","command-line-args":"^5.0.0","command-line-usage":"^4.1.0","typical":"^2.6.1"}},"command-line-usage":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/command-line-usage/download/command-line-usage-4.1.0.tgz","integrity":"sha1-prOy4nA7Tc+L1GrhnhGKmlKXKII=","dev":true,"requires":{"ansi-escape-sequences":"^4.0.0","array-back":"^2.0.0","table-layout":"^0.4.2","typical":"^2.6.1"}},"commander":{"version":"2.20.0","resolved":"https://registry.npm.taobao.org/commander/download/commander-2.20.0.tgz?cache=0&sync_timestamp=1564195111889&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.0.tgz","integrity":"sha1-1YuytcHuj4ew00ACfp6U4iLFpCI="},"common-sequence":{"version":"1.0.2","resolved":"https://registry.npmjs.org/common-sequence/-/common-sequence-1.0.2.tgz","integrity":"sha1-MOB/P49vf5s97oVPILLTnu4Ibeg=","dev":true},"commondir":{"version":"1.0.1","resolved":"https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz","integrity":"sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="},"compare-versions":{"version":"3.6.0","resolved":"https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz","integrity":"sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==","dev":true},"component-classes":{"version":"1.2.6","resolved":"http://registry.npm.taobao.org/component-classes/download/component-classes-1.2.6.tgz","integrity":"sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=","requires":{"component-indexof":"0.0.3"}},"component-emitter":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz","integrity":"sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A="},"component-indexof":{"version":"0.0.3","resolved":"http://registry.npm.taobao.org/component-indexof/download/component-indexof-0.0.3.tgz","integrity":"sha1-EdCRMSI5648yyPJa6csAL/6NPCQ="},"compressible":{"version":"2.0.17","resolved":"https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz","integrity":"sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==","requires":{"mime-db":">= 1.40.0 < 2"},"dependencies":{"mime-db":{"version":"1.42.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz","integrity":"sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="}}},"compressing":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/compressing/download/compressing-1.3.1.tgz","integrity":"sha1-nxGpTWSIFurOSm2XQS+xf8bidn8=","dev":true,"requires":{"flushwritable":"^1.0.0","get-ready":"^1.0.0","mkdirp":"^0.5.1","pump":"^3.0.0","streamifier":"^0.1.1","tar-stream":"^1.5.2","yauzl":"^2.7.0","yazl":"^2.4.2"}},"compression":{"version":"1.7.4","resolved":"https://registry.npmjs.org/compression/-/compression-1.7.4.tgz","integrity":"sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==","requires":{"accepts":"~1.3.5","bytes":"3.0.0","compressible":"~2.0.16","debug":"2.6.9","on-headers":"~1.0.2","safe-buffer":"5.1.2","vary":"~1.1.2"}},"concat-map":{"version":"0.0.1","resolved":"http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz","integrity":"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="},"concat-stream":{"version":"1.6.2","resolved":"http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz","integrity":"sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=","requires":{"buffer-from":"^1.0.0","inherits":"^2.0.3","readable-stream":"^2.2.2","typedarray":"^0.0.6"}},"config-master":{"version":"3.1.0","resolved":"https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz","integrity":"sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=","dev":true,"requires":{"walk-back":"^2.0.1"},"dependencies":{"walk-back":{"version":"2.0.1","resolved":"https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz","integrity":"sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=","dev":true}}},"configstore":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/configstore/download/configstore-2.1.0.tgz","integrity":"sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE=","requires":{"dot-prop":"^3.0.0","graceful-fs":"^4.1.2","mkdirp":"^0.5.0","object-assign":"^4.0.1","os-tmpdir":"^1.0.0","osenv":"^0.1.0","uuid":"^2.0.1","write-file-atomic":"^1.1.2","xdg-basedir":"^2.0.0"},"dependencies":{"uuid":{"version":"2.0.3","resolved":"http://registry.npm.taobao.org/uuid/download/uuid-2.0.3.tgz","integrity":"sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="}}},"connect":{"version":"3.6.6","resolved":"http://registry.npm.taobao.org/connect/download/connect-3.6.6.tgz","integrity":"sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=","requires":{"debug":"2.6.9","finalhandler":"1.1.0","parseurl":"~1.3.2","utils-merge":"1.0.1"}},"contains-path":{"version":"0.1.0","resolved":"https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz","integrity":"sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=","dev":true},"convert-source-map":{"version":"1.6.0","resolved":"http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz","integrity":"sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=","requires":{"safe-buffer":"~5.1.1"}},"copy-descriptor":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz","integrity":"sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="},"core-js":{"version":"1.2.7","resolved":"http://registry.npm.taobao.org/core-js/download/core-js-1.2.7.tgz","integrity":"sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="},"core-util-is":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz","integrity":"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="},"cosmiconfig":{"version":"5.2.1","resolved":"https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz","integrity":"sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==","requires":{"import-fresh":"^2.0.0","is-directory":"^0.3.1","js-yaml":"^3.13.1","parse-json":"^4.0.0"},"dependencies":{"import-fresh":{"version":"2.0.0","resolved":"https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz","integrity":"sha1-2BNVwVYS04bGH53dOSLUMEgipUY=","requires":{"caller-path":"^2.0.0","resolve-from":"^3.0.0"}},"parse-json":{"version":"4.0.0","resolved":"https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz","integrity":"sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=","requires":{"error-ex":"^1.3.1","json-parse-better-errors":"^1.0.1"}},"resolve-from":{"version":"3.0.0","resolved":"https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz","integrity":"sha1-six699nWiBvItuZTM17rywoYh0g="}}},"create-error-class":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/create-error-class/download/create-error-class-3.0.2.tgz","integrity":"sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=","requires":{"capture-stack-trace":"^1.0.0"}},"create-react-class":{"version":"15.6.3","resolved":"http://registry.npm.taobao.org/create-react-class/download/create-react-class-15.6.3.tgz","integrity":"sha1-LXMjf7P5cK5uvgEanmb0bbyoADY=","requires":{"fbjs":"^0.8.9","loose-envify":"^1.3.1","object-assign":"^4.1.1"}},"create-react-context":{"version":"0.2.2","resolved":"http://registry.npm.taobao.org/create-react-context/download/create-react-context-0.2.2.tgz","integrity":"sha1-mDZUL5qqIoaM19Sm+CZn3zgBnco=","requires":{"fbjs":"^0.8.0","gud":"^1.0.0"}},"cross-spawn":{"version":"5.1.0","resolved":"http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz","integrity":"sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=","requires":{"lru-cache":"^4.0.1","shebang-command":"^1.2.0","which":"^1.2.9"}},"crypto":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/crypto/download/crypto-1.0.1.tgz","integrity":"sha1-KvG3ytgXXSTIobB3glV5SiGAMDc=","dev":true},"css-animation":{"version":"1.5.0","resolved":"http://registry.npm.taobao.org/css-animation/download/css-animation-1.5.0.tgz","integrity":"sha1-yWuQl6XvdKe+hIC0XMROTsbKK/U=","requires":{"babel-runtime":"6.x","component-classes":"^1.2.5"}},"csstype":{"version":"2.6.9","resolved":"https://registry.npm.taobao.org/csstype/download/csstype-2.6.9.tgz?cache=0&sync_timestamp=1581689110987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.9.tgz","integrity":"sha1-BRQdDNVXpWuIkTlMGRHEDIqY0Jg="},"cycle":{"version":"1.0.3","resolved":"https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz","integrity":"sha1-IegLK+hYD5i0aPN5QwZisEbDStI=","dev":true},"d3-array":{"version":"1.2.4","resolved":"https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz","integrity":"sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="},"d3-collection":{"version":"1.0.7","resolved":"https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz","integrity":"sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A=="},"d3-color":{"version":"1.2.3","resolved":"http://registry.npm.taobao.org/d3-color/download/d3-color-1.2.3.tgz","integrity":"sha1-bGe7KvbfPMjXnvzE06PoPijIBI8="},"d3-ease":{"version":"1.0.5","resolved":"https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.5.tgz","integrity":"sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ=="},"d3-format":{"version":"1.4.1","resolved":"https://registry.npmjs.org/d3-format/-/d3-format-1.4.1.tgz","integrity":"sha512-TUswGe6hfguUX1CtKxyG2nymO+1lyThbkS1ifLX0Sr+dOQtAD5gkrffpHnx+yHNKUZ0Bmg5T4AjUQwugPDrm0g=="},"d3-interpolate":{"version":"1.1.2","resolved":"https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.2.tgz","integrity":"sha1-tS5pJ6BP4f4qTP/BOeU4ntPl55A=","requires":{"d3-color":"1"}},"d3-path":{"version":"1.0.8","resolved":"https://registry.npmjs.org/d3-path/-/d3-path-1.0.8.tgz","integrity":"sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg=="},"d3-scale":{"version":"1.0.7","resolved":"https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz","integrity":"sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==","requires":{"d3-array":"^1.2.0","d3-collection":"1","d3-color":"1","d3-format":"1","d3-interpolate":"1","d3-time":"1","d3-time-format":"2"}},"d3-shape":{"version":"1.3.5","resolved":"https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.5.tgz","integrity":"sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg==","requires":{"d3-path":"1"}},"d3-time":{"version":"1.1.0","resolved":"https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz","integrity":"sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA=="},"d3-time-format":{"version":"2.2.1","resolved":"https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.1.tgz","integrity":"sha512-VA6WqORO1+H1SvSzgl2oT0z3niANh3opa8Cencpen1LFthw/bEX71R/DgjPlWw78J4UHmD0jCPP1W0HpwMkhjg==","requires":{"d3-time":"1"}},"d3-timer":{"version":"1.0.9","resolved":"https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.9.tgz","integrity":"sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg=="},"d3-voronoi":{"version":"1.1.4","resolved":"https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz","integrity":"sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg=="},"damerau-levenshtein":{"version":"1.0.4","resolved":"https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz","integrity":"sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=","dev":true},"dashdash":{"version":"1.14.1","resolved":"http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz","integrity":"sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=","dev":true,"requires":{"assert-plus":"^1.0.0"}},"dayjs":{"version":"1.8.17","resolved":"https://registry.npmjs.org/dayjs/-/dayjs-1.8.17.tgz","integrity":"sha512-47VY/htqYqr9GHd7HW/h56PpQzRBSJcxIQFwqL3P20bMF/3az5c3PWdVY3LmPXFl6cQCYHL7c79b9ov+2bOBbw=="},"debug":{"version":"2.6.9","resolved":"http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz","integrity":"sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=","requires":{"ms":"2.0.0"}},"decamelize":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz","integrity":"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="},"decode-uri-component":{"version":"0.2.0","resolved":"http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz","integrity":"sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="},"dedent":{"version":"0.6.0","resolved":"http://registry.npm.taobao.org/dedent/download/dedent-0.6.0.tgz","integrity":"sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s="},"deep-equal":{"version":"1.1.0","resolved":"https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz","integrity":"sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==","dev":true,"requires":{"is-arguments":"^1.0.4","is-date-object":"^1.0.1","is-regex":"^1.0.4","object-is":"^1.0.1","object-keys":"^1.1.1","regexp.prototype.flags":"^1.2.0"}},"deep-extend":{"version":"0.6.0","resolved":"http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz","integrity":"sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw="},"deep-is":{"version":"0.1.3","resolved":"http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz","integrity":"sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=","dev":true},"deepmerge":{"version":"3.3.0","resolved":"https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz","integrity":"sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="},"defaults":{"version":"1.0.3","resolved":"https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz","integrity":"sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=","requires":{"clone":"^1.0.2"}},"define-properties":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz","integrity":"sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=","dev":true,"requires":{"object-keys":"^1.0.12"}},"define-property":{"version":"2.0.2","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz","integrity":"sha1-1Flono1lS6d+AqgX+HENcCyxbp0=","requires":{"is-descriptor":"^1.0.2","isobject":"^3.0.1"},"dependencies":{"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="}}},"delaunator":{"version":"4.0.1","resolved":"https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz","integrity":"sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag=="},"delaunay-find":{"version":"0.0.5","resolved":"https://registry.npmjs.org/delaunay-find/-/delaunay-find-0.0.5.tgz","integrity":"sha512-7yAJ/wmKWj3SgqjtkGqT/RCwI0HWAo5YnHMoF5nYXD8cdci+YSo23iPmgrZUNOpDxRWN91PqxUvMMr2lKpjr+w==","requires":{"delaunator":"^4.0.0"}},"delayed-stream":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz","integrity":"sha1-3zrhmayt+31ECqrgsp4icrJOxhk=","dev":true},"delegates":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz","integrity":"sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="},"denodeify":{"version":"1.2.1","resolved":"http://registry.npm.taobao.org/denodeify/download/denodeify-1.2.1.tgz","integrity":"sha1-OjYof1A05pnnV3kBBSwubJQlFjE="},"depd":{"version":"1.1.2","resolved":"http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz","integrity":"sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="},"deprecated-react-native-listview":{"version":"0.0.6","resolved":"https://registry.npm.taobao.org/deprecated-react-native-listview/download/deprecated-react-native-listview-0.0.6.tgz","integrity":"sha1-+Rad1wM5ineS5by4uFHnQajLaYA=","requires":{"create-react-class":"*","fbjs":"*","invariant":"*","react-clone-referenced-element":"*"}},"destroy":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz","integrity":"sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="},"detect-indent":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz","integrity":"sha1-920GQ1LN9Docts5hnE7jqUdd4gg=","dev":true,"requires":{"repeating":"^2.0.0"}},"detect-newline":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz","integrity":"sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=","dev":true},"didyoumean":{"version":"1.2.1","resolved":"https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz","integrity":"sha1-6S7f2tplN9SE1zwBcv0eugxJdv8="},"dmd":{"version":"3.0.13","resolved":"http://registry.npm.taobao.org/dmd/download/dmd-3.0.13.tgz","integrity":"sha1-cylOj64aehochJ2GsCet8E+9VmI=","dev":true,"requires":{"array-back":"^2.0.0","cache-point":"^0.4.1","common-sequence":"^1.0.2","file-set":"^2.0.0","handlebars":"^4.0.11","marked":"^0.3.16","object-get":"^2.1.0","reduce-flatten":"^1.0.1","reduce-unique":"^1.0.0","reduce-without":"^1.0.1","test-value":"^3.0.0","walk-back":"^3.0.0"}},"doctrine":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz","integrity":"sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=","dev":true,"requires":{"esutils":"^2.0.2"}},"dom-walk":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.1.tgz","integrity":"sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=","dev":true},"dot-prop":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/dot-prop/download/dot-prop-3.0.0.tgz","integrity":"sha1-G3CK8JSknJoOfbyteQq6U52sEXc=","requires":{"is-obj":"^1.0.0"}},"duplexer2":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz","integrity":"sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=","requires":{"readable-stream":"^2.0.2"}},"ecc-jsbn":{"version":"0.1.2","resolved":"http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz","integrity":"sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=","dev":true,"requires":{"jsbn":"~0.1.0","safer-buffer":"^2.1.0"}},"ee-first":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz","integrity":"sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="},"eme-encryption-scheme-polyfill":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/eme-encryption-scheme-polyfill/download/eme-encryption-scheme-polyfill-2.0.1.tgz","integrity":"sha1-sICwG//XTHXJz4BEwcq+3zuDlU8="},"emitter-component":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/emitter-component/download/emitter-component-1.1.1.tgz","integrity":"sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY="},"emoji-regex":{"version":"7.0.3","resolved":"http://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz","integrity":"sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=","dev":true},"encodeurl":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz","integrity":"sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="},"encoding":{"version":"0.1.12","resolved":"http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz","integrity":"sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=","requires":{"iconv-lite":"~0.4.13"}},"end-of-stream":{"version":"1.4.1","resolved":"http://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.1.tgz","integrity":"sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=","requires":{"once":"^1.4.0"}},"entities":{"version":"1.1.2","resolved":"https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1563403318326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz","integrity":"sha1-vfpzUplmTfr9NFKe1PhSKidf6lY="},"envinfo":{"version":"7.4.0","resolved":"https://registry.npmjs.org/envinfo/-/envinfo-7.4.0.tgz","integrity":"sha512-FdDfnWnCVjxTTpWE3d6Jgh5JDIA3Cw7LCgpM/pI7kK1ORkjaqI2r6NqQ+ln2j0dfpgxY00AWieSvtkiZQKIItA=="},"error-ex":{"version":"1.3.2","resolved":"http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz","integrity":"sha1-tKxAZIEH/c3PriQvQovqihTU8b8=","requires":{"is-arrayish":"^0.2.1"}},"errorhandler":{"version":"1.5.1","resolved":"https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz","integrity":"sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==","requires":{"accepts":"~1.3.7","escape-html":"~1.0.3"}},"es-abstract":{"version":"1.13.0","resolved":"http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz","integrity":"sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=","dev":true,"requires":{"es-to-primitive":"^1.2.0","function-bind":"^1.1.1","has":"^1.0.3","is-callable":"^1.1.4","is-regex":"^1.0.4","object-keys":"^1.0.12"}},"es-to-primitive":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz","integrity":"sha1-7fckeAM0VujdqO8J4ArZZQcH83c=","dev":true,"requires":{"is-callable":"^1.1.4","is-date-object":"^1.0.1","is-symbol":"^1.0.2"}},"escape-html":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz","integrity":"sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="},"escape-string-regexp":{"version":"1.0.5","resolved":"http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz","integrity":"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="},"eslint":{"version":"5.16.0","resolved":"http://registry.npm.taobao.org/eslint/download/eslint-5.16.0.tgz","integrity":"sha1-oeOsGq5KP72Clvz496tzFMu2q+o=","dev":true,"requires":{"@babel/code-frame":"^7.0.0","ajv":"^6.9.1","chalk":"^2.1.0","cross-spawn":"^6.0.5","debug":"^4.0.1","doctrine":"^3.0.0","eslint-scope":"^4.0.3","eslint-utils":"^1.3.1","eslint-visitor-keys":"^1.0.0","espree":"^5.0.1","esquery":"^1.0.1","esutils":"^2.0.2","file-entry-cache":"^5.0.1","functional-red-black-tree":"^1.0.1","glob":"^7.1.2","globals":"^11.7.0","ignore":"^4.0.6","import-fresh":"^3.0.0","imurmurhash":"^0.1.4","inquirer":"^6.2.2","js-yaml":"^3.13.0","json-stable-stringify-without-jsonify":"^1.0.1","levn":"^0.3.0","lodash":"^4.17.11","minimatch":"^3.0.4","mkdirp":"^0.5.1","natural-compare":"^1.4.0","optionator":"^0.8.2","path-is-inside":"^1.0.2","progress":"^2.0.0","regexpp":"^2.0.1","semver":"^5.5.1","strip-ansi":"^4.0.0","strip-json-comments":"^2.0.1","table":"^5.2.3","text-table":"^0.2.0"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz","integrity":"sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=","dev":true},"ansi-styles":{"version":"3.2.1","resolved":"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","dev":true,"requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","dev":true,"requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"chardet":{"version":"0.7.0","resolved":"http://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz","integrity":"sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=","dev":true},"cross-spawn":{"version":"6.0.5","resolved":"http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz","integrity":"sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=","dev":true,"requires":{"nice-try":"^1.0.4","path-key":"^2.0.1","semver":"^5.5.0","shebang-command":"^1.2.0","which":"^1.2.9"}},"debug":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz","integrity":"sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=","dev":true,"requires":{"ms":"^2.1.1"}},"eslint-scope":{"version":"4.0.3","resolved":"http://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz","integrity":"sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=","dev":true,"requires":{"esrecurse":"^4.1.0","estraverse":"^4.1.1"}},"external-editor":{"version":"3.0.3","resolved":"http://registry.npm.taobao.org/external-editor/download/external-editor-3.0.3.tgz","integrity":"sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=","dev":true,"requires":{"chardet":"^0.7.0","iconv-lite":"^0.4.24","tmp":"^0.0.33"}},"globals":{"version":"11.11.0","resolved":"http://registry.npm.taobao.org/globals/download/globals-11.11.0.tgz","integrity":"sha1-3Pk3V/ot5Uhvvu1xGFOK33ienC4=","dev":true},"inquirer":{"version":"6.3.1","resolved":"http://registry.npm.taobao.org/inquirer/download/inquirer-6.3.1.tgz","integrity":"sha1-ekE7XnlQgRATo9tJHGHR87d26Oc=","dev":true,"requires":{"ansi-escapes":"^3.2.0","chalk":"^2.4.2","cli-cursor":"^2.1.0","cli-width":"^2.0.0","external-editor":"^3.0.3","figures":"^2.0.0","lodash":"^4.17.11","mute-stream":"0.0.7","run-async":"^2.2.0","rxjs":"^6.4.0","string-width":"^2.1.0","strip-ansi":"^5.1.0","through":"^2.3.6"},"dependencies":{"strip-ansi":{"version":"5.2.0","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz","integrity":"sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=","dev":true,"requires":{"ansi-regex":"^4.1.0"}}}},"ms":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz","integrity":"sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=","dev":true},"strip-ansi":{"version":"4.0.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","dev":true,"requires":{"ansi-regex":"^3.0.0"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=","dev":true}}},"supports-color":{"version":"5.5.0","resolved":"http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","dev":true,"requires":{"has-flag":"^3.0.0"}}}},"eslint-config-airbnb":{"version":"17.1.0","resolved":"http://registry.npm.taobao.org/eslint-config-airbnb/download/eslint-config-airbnb-17.1.0.tgz","integrity":"sha1-OWTtS8GYJAMV/1IDC/hjb0K8RzI=","dev":true,"requires":{"eslint-config-airbnb-base":"^13.1.0","object.assign":"^4.1.0","object.entries":"^1.0.4"}},"eslint-config-airbnb-base":{"version":"13.1.0","resolved":"http://registry.npm.taobao.org/eslint-config-airbnb-base/download/eslint-config-airbnb-base-13.1.0.tgz","integrity":"sha1-taG0gLgN+tFkM9bErYTmYFBSwFw=","dev":true,"requires":{"eslint-restricted-globals":"^0.1.1","object.assign":"^4.1.0","object.entries":"^1.0.4"}},"eslint-import-resolver-node":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.2.tgz","integrity":"sha1-WPFfuDm40FdsqYBBNHaqskcttmo=","dev":true,"requires":{"debug":"^2.6.9","resolve":"^1.5.0"}},"eslint-module-utils":{"version":"2.4.0","resolved":"http://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.4.0.tgz","integrity":"sha1-i5NJnpsA6rgMy2YU5p8DZ46E4Jo=","dev":true,"requires":{"debug":"^2.6.8","pkg-dir":"^2.0.0"}},"eslint-plugin-import":{"version":"2.17.1","resolved":"http://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.17.1.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.17.1.tgz","integrity":"sha1-uIj+tNmz7hVRE8jczdS+xdszvfQ=","dev":true,"requires":{"array-includes":"^3.0.3","contains-path":"^0.1.0","debug":"^2.6.9","doctrine":"1.5.0","eslint-import-resolver-node":"^0.3.2","eslint-module-utils":"^2.4.0","has":"^1.0.3","lodash":"^4.17.11","minimatch":"^3.0.4","read-pkg-up":"^2.0.0","resolve":"^1.10.0"},"dependencies":{"doctrine":{"version":"1.5.0","resolved":"https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz","integrity":"sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=","dev":true,"requires":{"esutils":"^2.0.2","isarray":"^1.0.0"}}}},"eslint-plugin-jsx-a11y":{"version":"6.2.1","resolved":"http://registry.npm.taobao.org/eslint-plugin-jsx-a11y/download/eslint-plugin-jsx-a11y-6.2.1.tgz","integrity":"sha1-Trup8zm2AP9BWuQWbj4uAIgxzww=","dev":true,"requires":{"aria-query":"^3.0.0","array-includes":"^3.0.3","ast-types-flow":"^0.0.7","axobject-query":"^2.0.2","damerau-levenshtein":"^1.0.4","emoji-regex":"^7.0.2","has":"^1.0.3","jsx-ast-utils":"^2.0.1"}},"eslint-plugin-mihome-plugin":{"version":"file:eslint-mihome-plugin","dev":true,"requires":{"requireindex":"~1.1.0"},"dependencies":{"acorn":{"version":"5.7.4","resolved":"https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz","integrity":"sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="},"acorn-jsx":{"version":"3.0.1","resolved":"https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz","integrity":"sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=","requires":{"acorn":"^3.0.4"},"dependencies":{"acorn":{"version":"3.3.0","resolved":"https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz","integrity":"sha1-ReN/s56No/JbruP/U2niu18iAXo="}}},"ajv":{"version":"4.11.8","resolved":"https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz","integrity":"sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=","requires":{"co":"^4.6.0","json-stable-stringify":"^1.0.1"}},"ajv-keywords":{"version":"1.5.1","resolved":"https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz","integrity":"sha1-MU3QpLM2j609/NxU7eYXG4htrzw="},"ansi-escapes":{"version":"1.4.0","resolved":"https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz","integrity":"sha1-06ioOzGapneTZisT52HHkRQiMG4="},"ansi-regex":{"version":"2.1.1","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz","integrity":"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="},"ansi-styles":{"version":"2.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz","integrity":"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="},"argparse":{"version":"1.0.10","resolved":"https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz","integrity":"sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==","requires":{"sprintf-js":"~1.0.2"}},"babel-code-frame":{"version":"6.26.0","resolved":"https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz","integrity":"sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=","requires":{"chalk":"^1.1.3","esutils":"^2.0.2","js-tokens":"^3.0.2"}},"balanced-match":{"version":"1.0.0","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz","integrity":"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="},"brace-expansion":{"version":"1.1.11","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz","integrity":"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==","requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"browser-stdout":{"version":"1.3.0","resolved":"https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz","integrity":"sha1-81HTKWnTL6XXpVZxVCY9korjvR8="},"buffer-from":{"version":"1.1.1","resolved":"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz","integrity":"sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="},"caller-path":{"version":"0.1.0","resolved":"https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz","integrity":"sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=","requires":{"callsites":"^0.2.0"}},"callsites":{"version":"0.2.0","resolved":"https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz","integrity":"sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo="},"chalk":{"version":"1.1.3","resolved":"https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz","integrity":"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=","requires":{"ansi-styles":"^2.2.1","escape-string-regexp":"^1.0.2","has-ansi":"^2.0.0","strip-ansi":"^3.0.0","supports-color":"^2.0.0"}},"circular-json":{"version":"0.3.3","resolved":"https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz","integrity":"sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A=="},"cli-cursor":{"version":"1.0.2","resolved":"https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz","integrity":"sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=","requires":{"restore-cursor":"^1.0.1"}},"cli-width":{"version":"2.2.1","resolved":"https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz","integrity":"sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="},"co":{"version":"4.6.0","resolved":"https://registry.npmjs.org/co/-/co-4.6.0.tgz","integrity":"sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="},"code-point-at":{"version":"1.1.0","resolved":"https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz","integrity":"sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="},"commander":{"version":"2.9.0","resolved":"https://registry.npmjs.org/commander/-/commander-2.9.0.tgz","integrity":"sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=","requires":{"graceful-readlink":">= 1.0.0"}},"concat-map":{"version":"0.0.1","resolved":"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz","integrity":"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="},"concat-stream":{"version":"1.6.2","resolved":"https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz","integrity":"sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==","requires":{"buffer-from":"^1.0.0","inherits":"^2.0.3","readable-stream":"^2.2.2","typedarray":"^0.0.6"}},"core-util-is":{"version":"1.0.2","resolved":"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz","integrity":"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="},"d":{"version":"1.0.1","resolved":"https://registry.npmjs.org/d/-/d-1.0.1.tgz","integrity":"sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==","requires":{"es5-ext":"^0.10.50","type":"^1.0.1"}},"debug":{"version":"2.6.9","resolved":"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz","integrity":"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==","requires":{"ms":"2.0.0"}},"deep-is":{"version":"0.1.3","resolved":"https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz","integrity":"sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="},"diff":{"version":"3.2.0","resolved":"https://registry.npmjs.org/diff/-/diff-3.2.0.tgz","integrity":"sha1-yc45Okt8vQsFinJck98pkCeGj/k="},"doctrine":{"version":"1.5.0","resolved":"https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz","integrity":"sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=","requires":{"esutils":"^2.0.2","isarray":"^1.0.0"}},"es5-ext":{"version":"0.10.53","resolved":"https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz","integrity":"sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==","requires":{"es6-iterator":"~2.0.3","es6-symbol":"~3.1.3","next-tick":"~1.0.0"}},"es6-iterator":{"version":"2.0.3","resolved":"https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz","integrity":"sha1-p96IkUGgWpSwhUQDstCg+/qY87c=","requires":{"d":"1","es5-ext":"^0.10.35","es6-symbol":"^3.1.1"}},"es6-map":{"version":"0.1.5","resolved":"https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz","integrity":"sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=","requires":{"d":"1","es5-ext":"~0.10.14","es6-iterator":"~2.0.1","es6-set":"~0.1.5","es6-symbol":"~3.1.1","event-emitter":"~0.3.5"}},"es6-set":{"version":"0.1.5","resolved":"https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz","integrity":"sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=","requires":{"d":"1","es5-ext":"~0.10.14","es6-iterator":"~2.0.1","es6-symbol":"3.1.1","event-emitter":"~0.3.5"},"dependencies":{"es6-symbol":{"version":"3.1.1","resolved":"https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz","integrity":"sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=","requires":{"d":"1","es5-ext":"~0.10.14"}}}},"es6-symbol":{"version":"3.1.3","resolved":"https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz","integrity":"sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==","requires":{"d":"^1.0.1","ext":"^1.1.2"}},"es6-weak-map":{"version":"2.0.3","resolved":"https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz","integrity":"sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==","requires":{"d":"1","es5-ext":"^0.10.46","es6-iterator":"^2.0.3","es6-symbol":"^3.1.1"}},"escape-string-regexp":{"version":"1.0.5","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz","integrity":"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="},"escope":{"version":"3.6.0","resolved":"https://registry.npmjs.org/escope/-/escope-3.6.0.tgz","integrity":"sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=","requires":{"es6-map":"^0.1.3","es6-weak-map":"^2.0.1","esrecurse":"^4.1.0","estraverse":"^4.1.1"}},"eslint":{"version":"3.9.1","resolved":"https://registry.npmjs.org/eslint/-/eslint-3.9.1.tgz","integrity":"sha1-WoWXcG/GBIvGBhrHVNSiEdKPT1s=","requires":{"babel-code-frame":"^6.16.0","chalk":"^1.1.3","concat-stream":"^1.4.6","debug":"^2.1.1","doctrine":"^1.2.2","escope":"^3.6.0","espree":"^3.3.1","estraverse":"^4.2.0","esutils":"^2.0.2","file-entry-cache":"^2.0.0","glob":"^7.0.3","globals":"^9.2.0","ignore":"^3.1.5","imurmurhash":"^0.1.4","inquirer":"^0.12.0","is-my-json-valid":"^2.10.0","is-resolvable":"^1.0.0","js-yaml":"^3.5.1","json-stable-stringify":"^1.0.0","levn":"^0.3.0","lodash":"^4.0.0","mkdirp":"^0.5.0","natural-compare":"^1.4.0","optionator":"^0.8.2","path-is-inside":"^1.0.1","pluralize":"^1.2.1","progress":"^1.1.8","require-uncached":"^1.0.2","shelljs":"^0.7.5","strip-bom":"^3.0.0","strip-json-comments":"~1.0.1","table":"^3.7.8","text-table":"~0.2.0","user-home":"^2.0.0"}},"espree":{"version":"3.5.4","resolved":"https://registry.npmjs.org/espree/-/espree-3.5.4.tgz","integrity":"sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==","requires":{"acorn":"^5.5.0","acorn-jsx":"^3.0.0"}},"esprima":{"version":"4.0.1","resolved":"https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz","integrity":"sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="},"esrecurse":{"version":"4.2.1","resolved":"https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz","integrity":"sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==","requires":{"estraverse":"^4.1.0"}},"estraverse":{"version":"4.3.0","resolved":"https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz","integrity":"sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="},"esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="},"event-emitter":{"version":"0.3.5","resolved":"https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz","integrity":"sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=","requires":{"d":"1","es5-ext":"~0.10.14"}},"exit-hook":{"version":"1.1.1","resolved":"https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz","integrity":"sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="},"ext":{"version":"1.4.0","resolved":"https://registry.npmjs.org/ext/-/ext-1.4.0.tgz","integrity":"sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==","requires":{"type":"^2.0.0"},"dependencies":{"type":{"version":"2.0.0","resolved":"https://registry.npmjs.org/type/-/type-2.0.0.tgz","integrity":"sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="}}},"fast-levenshtein":{"version":"2.0.6","resolved":"https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz","integrity":"sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="},"figures":{"version":"1.7.0","resolved":"https://registry.npmjs.org/figures/-/figures-1.7.0.tgz","integrity":"sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=","requires":{"escape-string-regexp":"^1.0.5","object-assign":"^4.1.0"}},"file-entry-cache":{"version":"2.0.0","resolved":"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz","integrity":"sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=","requires":{"flat-cache":"^1.2.1","object-assign":"^4.0.1"}},"flat-cache":{"version":"1.3.4","resolved":"https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz","integrity":"sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==","requires":{"circular-json":"^0.3.1","graceful-fs":"^4.1.2","rimraf":"~2.6.2","write":"^0.2.1"}},"fs.realpath":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz","integrity":"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="},"generate-function":{"version":"2.3.1","resolved":"https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz","integrity":"sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==","requires":{"is-property":"^1.0.2"}},"generate-object-property":{"version":"1.2.0","resolved":"https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz","integrity":"sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=","requires":{"is-property":"^1.0.0"}},"glob":{"version":"7.1.6","resolved":"https://registry.npmjs.org/glob/-/glob-7.1.6.tgz","integrity":"sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==","requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.4","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"globals":{"version":"9.18.0","resolved":"https://registry.npmjs.org/globals/-/globals-9.18.0.tgz","integrity":"sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="},"graceful-fs":{"version":"4.2.4","resolved":"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz","integrity":"sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="},"graceful-readlink":{"version":"1.0.1","resolved":"https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz","integrity":"sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="},"growl":{"version":"1.9.2","resolved":"https://registry.npmjs.org/growl/-/growl-1.9.2.tgz","integrity":"sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8="},"has-ansi":{"version":"2.0.0","resolved":"https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz","integrity":"sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=","requires":{"ansi-regex":"^2.0.0"}},"has-flag":{"version":"1.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz","integrity":"sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="},"he":{"version":"1.1.1","resolved":"https://registry.npmjs.org/he/-/he-1.1.1.tgz","integrity":"sha1-k0EP0hsAlzUVH4howvJx80J+I/0="},"ignore":{"version":"3.3.10","resolved":"https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz","integrity":"sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug=="},"imurmurhash":{"version":"0.1.4","resolved":"https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz","integrity":"sha1-khi5srkoojixPcT7a21XbyMUU+o="},"inflight":{"version":"1.0.6","resolved":"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz","integrity":"sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=","requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="},"inquirer":{"version":"0.12.0","resolved":"https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz","integrity":"sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=","requires":{"ansi-escapes":"^1.1.0","ansi-regex":"^2.0.0","chalk":"^1.0.0","cli-cursor":"^1.0.1","cli-width":"^2.0.0","figures":"^1.3.5","lodash":"^4.3.0","readline2":"^1.0.1","run-async":"^0.1.0","rx-lite":"^3.1.2","string-width":"^1.0.1","strip-ansi":"^3.0.0","through":"^2.3.6"}},"interpret":{"version":"1.2.0","resolved":"https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz","integrity":"sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=="},"is-fullwidth-code-point":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"is-my-ip-valid":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz","integrity":"sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ=="},"is-my-json-valid":{"version":"2.20.0","resolved":"https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz","integrity":"sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==","requires":{"generate-function":"^2.0.0","generate-object-property":"^1.1.0","is-my-ip-valid":"^1.0.0","jsonpointer":"^4.0.0","xtend":"^4.0.0"}},"is-property":{"version":"1.0.2","resolved":"https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz","integrity":"sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="},"is-resolvable":{"version":"1.1.0","resolved":"https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz","integrity":"sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="},"isarray":{"version":"1.0.0","resolved":"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz","integrity":"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="},"js-tokens":{"version":"3.0.2","resolved":"https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz","integrity":"sha1-mGbfOVECEw449/mWvOtlRDIJwls="},"js-yaml":{"version":"3.14.0","resolved":"https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz","integrity":"sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==","requires":{"argparse":"^1.0.7","esprima":"^4.0.0"}},"json-stable-stringify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz","integrity":"sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=","requires":{"jsonify":"~0.0.0"}},"json3":{"version":"3.3.2","resolved":"https://registry.npmjs.org/json3/-/json3-3.3.2.tgz","integrity":"sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE="},"jsonify":{"version":"0.0.0","resolved":"https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz","integrity":"sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="},"jsonpointer":{"version":"4.0.1","resolved":"https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz","integrity":"sha1-T9kss04OnbPInIYi7PUfm5eMbLk="},"levn":{"version":"0.3.0","resolved":"https://registry.npmjs.org/levn/-/levn-0.3.0.tgz","integrity":"sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=","requires":{"prelude-ls":"~1.1.2","type-check":"~0.3.2"}},"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="},"lodash._baseassign":{"version":"3.2.0","resolved":"https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz","integrity":"sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=","requires":{"lodash._basecopy":"^3.0.0","lodash.keys":"^3.0.0"}},"lodash._basecopy":{"version":"3.0.1","resolved":"https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz","integrity":"sha1-jaDmqHbPNEwK2KVIghEd08XHyjY="},"lodash._basecreate":{"version":"3.0.3","resolved":"https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz","integrity":"sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE="},"lodash._getnative":{"version":"3.9.1","resolved":"https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz","integrity":"sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="},"lodash._isiterateecall":{"version":"3.0.9","resolved":"https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz","integrity":"sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw="},"lodash.create":{"version":"3.1.1","resolved":"https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz","integrity":"sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=","requires":{"lodash._baseassign":"^3.0.0","lodash._basecreate":"^3.0.0","lodash._isiterateecall":"^3.0.0"}},"lodash.isarguments":{"version":"3.1.0","resolved":"https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz","integrity":"sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="},"lodash.isarray":{"version":"3.0.4","resolved":"https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz","integrity":"sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="},"lodash.keys":{"version":"3.1.2","resolved":"https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz","integrity":"sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=","requires":{"lodash._getnative":"^3.0.0","lodash.isarguments":"^3.0.0","lodash.isarray":"^3.0.0"}},"minimatch":{"version":"3.0.4","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz","integrity":"sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==","requires":{"brace-expansion":"^1.1.7"}},"minimist":{"version":"1.2.5","resolved":"https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz","integrity":"sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="},"mkdirp":{"version":"0.5.5","resolved":"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz","integrity":"sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==","requires":{"minimist":"^1.2.5"}},"mocha":{"version":"3.5.3","resolved":"https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz","integrity":"sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==","requires":{"browser-stdout":"1.3.0","commander":"2.9.0","debug":"2.6.8","diff":"3.2.0","escape-string-regexp":"1.0.5","glob":"7.1.1","growl":"1.9.2","he":"1.1.1","json3":"3.3.2","lodash.create":"3.1.1","mkdirp":"0.5.1","supports-color":"3.1.2"},"dependencies":{"debug":{"version":"2.6.8","resolved":"https://registry.npmjs.org/debug/-/debug-2.6.8.tgz","integrity":"sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=","requires":{"ms":"2.0.0"}},"glob":{"version":"7.1.1","resolved":"https://registry.npmjs.org/glob/-/glob-7.1.1.tgz","integrity":"sha1-gFIR3wT6rxxjo2ADBs31reULLsg=","requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.2","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"minimist":{"version":"0.0.8","resolved":"https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz","integrity":"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="},"mkdirp":{"version":"0.5.1","resolved":"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz","integrity":"sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=","requires":{"minimist":"0.0.8"}},"supports-color":{"version":"3.1.2","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz","integrity":"sha1-cqJiiU2dQIuVbKBf83su2KbiotU=","requires":{"has-flag":"^1.0.0"}}}},"ms":{"version":"2.0.0","resolved":"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="},"mute-stream":{"version":"0.0.5","resolved":"https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz","integrity":"sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="},"natural-compare":{"version":"1.4.0","resolved":"https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz","integrity":"sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="},"next-tick":{"version":"1.0.0","resolved":"https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz","integrity":"sha1-yobR/ogoFpsBICCOPchCS524NCw="},"number-is-nan":{"version":"1.0.1","resolved":"https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz","integrity":"sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="},"object-assign":{"version":"4.1.1","resolved":"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz","integrity":"sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="},"once":{"version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha1-WDsap3WWHUsROsF9nFC6753Xa9E=","requires":{"wrappy":"1"}},"onetime":{"version":"1.1.0","resolved":"https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz","integrity":"sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="},"optionator":{"version":"0.8.3","resolved":"https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz","integrity":"sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==","requires":{"deep-is":"~0.1.3","fast-levenshtein":"~2.0.6","levn":"~0.3.0","prelude-ls":"~1.1.2","type-check":"~0.3.2","word-wrap":"~1.2.3"}},"os-homedir":{"version":"1.0.2","resolved":"https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz","integrity":"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="},"path-is-absolute":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz","integrity":"sha1-F0uSaHNVNP+8es5r9TpanhtcX18="},"path-is-inside":{"version":"1.0.2","resolved":"https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz","integrity":"sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="},"path-parse":{"version":"1.0.6","resolved":"https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz","integrity":"sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="},"pluralize":{"version":"1.2.1","resolved":"https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz","integrity":"sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU="},"prelude-ls":{"version":"1.1.2","resolved":"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz","integrity":"sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="},"process-nextick-args":{"version":"2.0.1","resolved":"https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz","integrity":"sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="},"progress":{"version":"1.1.8","resolved":"https://registry.npmjs.org/progress/-/progress-1.1.8.tgz","integrity":"sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="},"readable-stream":{"version":"2.3.7","resolved":"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz","integrity":"sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==","requires":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"}},"readline2":{"version":"1.0.1","resolved":"https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz","integrity":"sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","mute-stream":"0.0.5"}},"rechoir":{"version":"0.6.2","resolved":"https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz","integrity":"sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=","requires":{"resolve":"^1.1.6"}},"require-uncached":{"version":"1.0.3","resolved":"https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz","integrity":"sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=","requires":{"caller-path":"^0.1.0","resolve-from":"^1.0.0"}},"requireindex":{"version":"1.1.0","resolved":"https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz","integrity":"sha1-5UBLgVV+91225JxacgBIk/4D4WI=","dev":true},"resolve":{"version":"1.17.0","resolved":"https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz","integrity":"sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==","requires":{"path-parse":"^1.0.6"}},"resolve-from":{"version":"1.0.1","resolved":"https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz","integrity":"sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY="},"restore-cursor":{"version":"1.0.1","resolved":"https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz","integrity":"sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=","requires":{"exit-hook":"^1.0.0","onetime":"^1.0.0"}},"rimraf":{"version":"2.6.3","resolved":"https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz","integrity":"sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==","requires":{"glob":"^7.1.3"}},"run-async":{"version":"0.1.0","resolved":"https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz","integrity":"sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=","requires":{"once":"^1.3.0"}},"rx-lite":{"version":"3.1.2","resolved":"https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz","integrity":"sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="},"safe-buffer":{"version":"5.1.2","resolved":"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz","integrity":"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="},"shelljs":{"version":"0.7.8","resolved":"https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz","integrity":"sha1-3svPh0sNHl+3LhSxZKloMEjprLM=","requires":{"glob":"^7.0.0","interpret":"^1.0.0","rechoir":"^0.6.2"}},"slice-ansi":{"version":"0.0.4","resolved":"https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz","integrity":"sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU="},"sprintf-js":{"version":"1.0.3","resolved":"https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz","integrity":"sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="},"string-width":{"version":"1.0.2","resolved":"https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}},"string_decoder":{"version":"1.1.1","resolved":"https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz","integrity":"sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==","requires":{"safe-buffer":"~5.1.0"}},"strip-ansi":{"version":"3.0.1","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz","integrity":"sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=","requires":{"ansi-regex":"^2.0.0"}},"strip-bom":{"version":"3.0.0","resolved":"https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz","integrity":"sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="},"strip-json-comments":{"version":"1.0.4","resolved":"https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz","integrity":"sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E="},"supports-color":{"version":"2.0.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz","integrity":"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="},"table":{"version":"3.8.3","resolved":"https://registry.npmjs.org/table/-/table-3.8.3.tgz","integrity":"sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=","requires":{"ajv":"^4.7.0","ajv-keywords":"^1.0.0","chalk":"^1.1.1","lodash":"^4.0.0","slice-ansi":"0.0.4","string-width":"^2.0.0"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="},"is-fullwidth-code-point":{"version":"2.0.0","resolved":"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz","integrity":"sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="},"string-width":{"version":"2.1.1","resolved":"https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz","integrity":"sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==","requires":{"is-fullwidth-code-point":"^2.0.0","strip-ansi":"^4.0.0"}},"strip-ansi":{"version":"4.0.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","requires":{"ansi-regex":"^3.0.0"}}}},"text-table":{"version":"0.2.0","resolved":"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz","integrity":"sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="},"through":{"version":"2.3.8","resolved":"https://registry.npmjs.org/through/-/through-2.3.8.tgz","integrity":"sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="},"type":{"version":"1.2.0","resolved":"https://registry.npmjs.org/type/-/type-1.2.0.tgz","integrity":"sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="},"type-check":{"version":"0.3.2","resolved":"https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz","integrity":"sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=","requires":{"prelude-ls":"~1.1.2"}},"typedarray":{"version":"0.0.6","resolved":"https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz","integrity":"sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="},"user-home":{"version":"2.0.0","resolved":"https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz","integrity":"sha1-nHC/2Babwdy/SGBODwS4tJzenp8=","requires":{"os-homedir":"^1.0.0"}},"util-deprecate":{"version":"1.0.2","resolved":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz","integrity":"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="},"word-wrap":{"version":"1.2.3","resolved":"https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz","integrity":"sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="},"wrappy":{"version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="},"write":{"version":"0.2.1","resolved":"https://registry.npmjs.org/write/-/write-0.2.1.tgz","integrity":"sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=","requires":{"mkdirp":"^0.5.1"}},"xtend":{"version":"4.0.2","resolved":"https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz","integrity":"sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="}}},"eslint-plugin-react":{"version":"7.12.4","resolved":"http://registry.npm.taobao.org/eslint-plugin-react/download/eslint-plugin-react-7.12.4.tgz","integrity":"sha1-sezyZHnWGu5lDaYS5CXFOpn0jIw=","dev":true,"requires":{"array-includes":"^3.0.3","doctrine":"^2.1.0","has":"^1.0.3","jsx-ast-utils":"^2.0.1","object.fromentries":"^2.0.0","prop-types":"^15.6.2","resolve":"^1.9.0"},"dependencies":{"doctrine":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz","integrity":"sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=","dev":true,"requires":{"esutils":"^2.0.2"}}}},"eslint-restricted-globals":{"version":"0.1.1","resolved":"https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz","integrity":"sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=","dev":true},"eslint-scope":{"version":"3.7.1","resolved":"http://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.1.tgz","integrity":"sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=","dev":true,"requires":{"esrecurse":"^4.1.0","estraverse":"^4.1.1"}},"eslint-utils":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.3.1.tgz","integrity":"sha1-moUbqJ7nxGA0b5fPiTnHKYgn5RI=","dev":true},"eslint-visitor-keys":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.0.0.tgz","integrity":"sha1-PzGA+y4pEBdxastMnW1bXDSmqB0=","dev":true},"espree":{"version":"5.0.1","resolved":"http://registry.npm.taobao.org/espree/download/espree-5.0.1.tgz","integrity":"sha1-XWUm+k/H8HiKXPdbFfMDI+L4H3o=","dev":true,"requires":{"acorn":"^6.0.7","acorn-jsx":"^5.0.0","eslint-visitor-keys":"^1.0.0"}},"esprima":{"version":"4.0.1","resolved":"http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz","integrity":"sha1-E7BM2z5sXRnfkatph6hpVhmwqnE="},"esquery":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/esquery/download/esquery-1.0.1.tgz","integrity":"sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=","dev":true,"requires":{"estraverse":"^4.0.0"}},"esrecurse":{"version":"4.2.1","resolved":"http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz","integrity":"sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=","dev":true,"requires":{"estraverse":"^4.1.0"}},"estraverse":{"version":"4.2.0","resolved":"http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz","integrity":"sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=","dev":true},"esutils":{"version":"2.0.2","resolved":"http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz","integrity":"sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="},"etag":{"version":"1.8.1","resolved":"http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz","integrity":"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="},"event-target-shim":{"version":"5.0.1","resolved":"https://registry.npm.taobao.org/event-target-shim/download/event-target-shim-5.0.1.tgz","integrity":"sha1-XU0+vflYPWOlMzzi3rdICrKwV4k="},"eventemitter3":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.0.tgz","integrity":"sha1-CQtNbNvWRe0Qv3UNS1QHlC17oWM="},"exec-sh":{"version":"0.2.2","resolved":"http://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.2.tgz","integrity":"sha1-Kl5//L19C6J1W97LFuWkJ9+97DY=","dev":true,"requires":{"merge":"^1.2.0"}},"execa":{"version":"1.0.0","resolved":"https://registry.npmjs.org/execa/-/execa-1.0.0.tgz","integrity":"sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==","requires":{"cross-spawn":"^6.0.0","get-stream":"^4.0.0","is-stream":"^1.1.0","npm-run-path":"^2.0.0","p-finally":"^1.0.0","signal-exit":"^3.0.0","strip-eof":"^1.0.0"},"dependencies":{"cross-spawn":{"version":"6.0.5","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz","integrity":"sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==","requires":{"nice-try":"^1.0.4","path-key":"^2.0.1","semver":"^5.5.0","shebang-command":"^1.2.0","which":"^1.2.9"}},"get-stream":{"version":"4.1.0","resolved":"https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz","integrity":"sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==","requires":{"pump":"^3.0.0"}}}},"exit-hook":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz","integrity":"sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="},"expand-brackets":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz","integrity":"sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=","dev":true,"requires":{"is-posix-bracket":"^0.1.0"}},"expand-range":{"version":"1.8.2","resolved":"http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz","integrity":"sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=","dev":true,"requires":{"fill-range":"^2.1.0"}},"extend":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz","integrity":"sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=","dev":true},"extend-shallow":{"version":"3.0.2","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"},"dependencies":{"is-extendable":{"version":"1.0.1","resolved":"https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz","integrity":"sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==","requires":{"is-plain-object":"^2.0.4"}}}},"external-editor":{"version":"2.2.0","resolved":"https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz","integrity":"sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==","requires":{"chardet":"^0.4.0","iconv-lite":"^0.4.17","tmp":"^0.0.33"}},"extglob":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz","integrity":"sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=","dev":true,"requires":{"is-extglob":"^1.0.0"}},"extsprintf":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz","integrity":"sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=","dev":true},"eyes":{"version":"0.1.8","resolved":"https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz","integrity":"sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=","dev":true},"fancy-log":{"version":"1.3.3","resolved":"http://registry.npm.taobao.org/fancy-log/download/fancy-log-1.3.3.tgz","integrity":"sha1-28GRVPVYaQFQojlToK29A1vkX8c=","requires":{"ansi-gray":"^0.1.1","color-support":"^1.1.3","parse-node-version":"^1.0.0","time-stamp":"^1.0.0"}},"fast-deep-equal":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz","integrity":"sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=","dev":true},"fast-json-stable-stringify":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz","integrity":"sha1-1RQsDK7msRifh9OnYREGT4bIu/I=","dev":true},"fast-levenshtein":{"version":"2.0.6","resolved":"http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz","integrity":"sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=","dev":true},"fb-watchman":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.0.tgz","integrity":"sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=","requires":{"bser":"^2.0.0"}},"fbjs":{"version":"0.8.17","resolved":"http://registry.npm.taobao.org/fbjs/download/fbjs-0.8.17.tgz","integrity":"sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=","requires":{"core-js":"^1.0.0","isomorphic-fetch":"^2.1.1","loose-envify":"^1.0.0","object-assign":"^4.1.0","promise":"^7.1.1","setimmediate":"^1.0.5","ua-parser-js":"^0.7.18"}},"fbjs-css-vars":{"version":"1.0.2","resolved":"https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz","integrity":"sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="},"fbjs-scripts":{"version":"1.2.0","resolved":"https://registry.npm.taobao.org/fbjs-scripts/download/fbjs-scripts-1.2.0.tgz","integrity":"sha1-BpoMBjQkLRADHGRg7x/M782uiyc=","requires":{"@babel/core":"^7.0.0","ansi-colors":"^1.0.1","babel-preset-fbjs":"^3.2.0","core-js":"^2.4.1","cross-spawn":"^5.1.0","fancy-log":"^1.3.2","object-assign":"^4.0.1","plugin-error":"^0.1.2","semver":"^5.1.0","through2":"^2.0.0"},"dependencies":{"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha1-qiE8FDXiv/62/KhCKH71NK0F1c8="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz","integrity":"sha1-pgJHZOqGyOBqIteUyotpU00mNUE=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"core-js":{"version":"2.6.11","resolved":"https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz","integrity":"sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="}}},"fd-slicer":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.1.0.tgz","integrity":"sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=","dev":true,"requires":{"pend":"~1.2.0"}},"figures":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz","integrity":"sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=","requires":{"escape-string-regexp":"^1.0.5"}},"file-entry-cache":{"version":"5.0.1","resolved":"http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz","integrity":"sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=","dev":true,"requires":{"flat-cache":"^2.0.1"}},"file-set":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/file-set/download/file-set-2.0.1.tgz","integrity":"sha1-25vEtwp+W6gcnSecIKN/EzaceFA=","dev":true,"requires":{"array-back":"^2.0.0","glob":"^7.1.3"}},"file-uri-to-path":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz","integrity":"sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=","optional":true},"filename-regex":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz","integrity":"sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=","dev":true},"fill-range":{"version":"2.2.4","resolved":"http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz","integrity":"sha1-6x53OrsFbc2N8r/favWbizqTZWU=","dev":true,"requires":{"is-number":"^2.1.0","isobject":"^2.0.0","randomatic":"^3.0.0","repeat-element":"^1.1.2","repeat-string":"^1.5.2"}},"filled-array":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/filled-array/download/filled-array-1.1.0.tgz","integrity":"sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q="},"finalhandler":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz","integrity":"sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=","requires":{"debug":"2.6.9","encodeurl":"~1.0.1","escape-html":"~1.0.3","on-finished":"~2.3.0","parseurl":"~1.3.2","statuses":"~1.3.1","unpipe":"~1.0.0"}},"find-cache-dir":{"version":"2.1.0","resolved":"https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz","integrity":"sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==","requires":{"commondir":"^1.0.1","make-dir":"^2.0.0","pkg-dir":"^3.0.0"},"dependencies":{"find-up":{"version":"3.0.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz","integrity":"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==","requires":{"locate-path":"^3.0.0"}},"locate-path":{"version":"3.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz","integrity":"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==","requires":{"p-locate":"^3.0.0","path-exists":"^3.0.0"}},"p-limit":{"version":"2.2.1","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz","integrity":"sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==","requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"3.0.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz","integrity":"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==","requires":{"p-limit":"^2.0.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz","integrity":"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="},"pkg-dir":{"version":"3.0.0","resolved":"https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz","integrity":"sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==","requires":{"find-up":"^3.0.0"}}}},"find-replace":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/find-replace/download/find-replace-3.0.0.tgz","integrity":"sha1-Pn4j07BRZ6dvdwyfvVJYsN72jDg=","dev":true,"requires":{"array-back":"^3.0.1"},"dependencies":{"array-back":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/array-back/download/array-back-3.1.0.tgz","integrity":"sha1-uIWdelCIccmnss9C+ZQo9l6Wv7A=","dev":true}}},"find-up":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz","integrity":"sha1-RdG35QbHF93UgndaK3eSCjwMV6c=","requires":{"locate-path":"^2.0.0"}},"find-versions":{"version":"3.2.0","resolved":"https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz","integrity":"sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==","dev":true,"requires":{"semver-regex":"^2.0.0"}},"flat-cache":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz","integrity":"sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=","dev":true,"requires":{"flatted":"^2.0.0","rimraf":"2.6.3","write":"1.0.3"}},"flatted":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/flatted/download/flatted-2.0.0.tgz","integrity":"sha1-VRIrZTbqSWtLRIk+4mCBQdENmRY=","dev":true},"flushwritable":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/flushwritable/download/flushwritable-1.0.0.tgz","integrity":"sha1-PjKNj95BKtR+c44751C00pAENJg=","dev":true},"for-in":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz","integrity":"sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="},"for-own":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz","integrity":"sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=","dev":true,"requires":{"for-in":"^1.0.1"}},"forever-agent":{"version":"0.6.1","resolved":"http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz","integrity":"sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=","dev":true},"form-data":{"version":"2.3.3","resolved":"http://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz","integrity":"sha1-3M5SwF9kTymManq5Nr1yTO/786Y=","dev":true,"requires":{"asynckit":"^0.4.0","combined-stream":"^1.0.6","mime-types":"^2.1.12"}},"fragment-cache":{"version":"0.2.1","resolved":"http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz","integrity":"sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=","requires":{"map-cache":"^0.2.2"}},"fresh":{"version":"0.5.2","resolved":"http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz","integrity":"sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="},"fs-constants":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/fs-constants/download/fs-constants-1.0.0.tgz","integrity":"sha1-a+Dem+mYzhavivwkSXue6bfM2a0=","dev":true},"fs-extra":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/fs-extra/download/fs-extra-1.0.0.tgz","integrity":"sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^2.1.0","klaw":"^1.0.0"}},"fs-then-native":{"version":"2.0.0","resolved":"https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz","integrity":"sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=","dev":true},"fs.realpath":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz","integrity":"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="},"fsevents":{"version":"2.1.2","resolved":"https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.2.tgz?cache=0&sync_timestamp=1573319284429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.2.tgz","integrity":"sha1-TAofs0vGjlQ7S4Kp7Dkr+9qECAU=","optional":true},"function-bind":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz","integrity":"sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=","dev":true},"functional-red-black-tree":{"version":"1.0.1","resolved":"https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz","integrity":"sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=","dev":true},"gauge":{"version":"1.2.7","resolved":"http://registry.npm.taobao.org/gauge/download/gauge-1.2.7.tgz","integrity":"sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=","requires":{"ansi":"^0.3.0","has-unicode":"^2.0.0","lodash.pad":"^4.1.0","lodash.padend":"^4.1.0","lodash.padstart":"^4.1.0"}},"get-caller-file":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz","integrity":"sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o="},"get-ready":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/get-ready/download/get-ready-1.0.0.tgz","integrity":"sha1-+RgX8emt7P6hOlYq38jeiDqzR4I=","dev":true},"get-stream":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz","integrity":"sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="},"get-value":{"version":"2.0.6","resolved":"http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz","integrity":"sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="},"getpass":{"version":"0.1.7","resolved":"http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz","integrity":"sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=","dev":true,"requires":{"assert-plus":"^1.0.0"}},"gl-react":{"version":"2.3.1","resolved":"http://registry.npm.taobao.org/gl-react/download/gl-react-2.3.1.tgz","integrity":"sha1-ShU+uoCtkmpUdOi1YV8SsCiLbck=","requires":{"invariant":"2.2.1","prop-types":"^15.5.10"}},"gl-react-blur":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/gl-react-blur/download/gl-react-blur-2.0.1.tgz","integrity":"sha1-1WrE/umoI6CXdlaPW0VKu0XIU0c=","requires":{"prop-types":"^15.6.0"}},"gl-react-native":{"version":"2.57.0","resolved":"https://registry.npmjs.org/gl-react-native/-/gl-react-native-2.57.0.tgz","integrity":"sha512-GiZxcjSsMUZ6KwVC7LOpOxzxRWMH1GsiYZ2+RSKwjbNtw3DElh9FOIgiMwSiaMINuYwVNrO6qQRQF9iq2uSHjA==","requires":{"invariant":"2.2.0"},"dependencies":{"invariant":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/invariant/download/invariant-2.2.0.tgz","integrity":"sha1-yNfoRzZqScwYtiLwWKaJ1IHolfI=","requires":{"loose-envify":"^1.0.0"}}}},"glob":{"version":"7.1.3","resolved":"http://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz","integrity":"sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=","requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.4","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"glob-base":{"version":"0.3.0","resolved":"http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz","integrity":"sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=","dev":true,"requires":{"glob-parent":"^2.0.0","is-glob":"^2.0.0"}},"glob-parent":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz","integrity":"sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=","dev":true,"requires":{"is-glob":"^2.0.0"}},"global":{"version":"4.3.2","resolved":"http://registry.npm.taobao.org/global/download/global-4.3.2.tgz","integrity":"sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=","dev":true,"requires":{"min-document":"^2.19.0","process":"~0.5.1"}},"globals":{"version":"9.18.0","resolved":"http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz","integrity":"sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo="},"got":{"version":"5.7.1","resolved":"http://registry.npm.taobao.org/got/download/got-5.7.1.tgz","integrity":"sha1-X4FjWmHkplifGAVp6k44FoClHzU=","requires":{"create-error-class":"^3.0.1","duplexer2":"^0.1.4","is-redirect":"^1.0.0","is-retry-allowed":"^1.0.0","is-stream":"^1.0.0","lowercase-keys":"^1.0.0","node-status-codes":"^1.0.0","object-assign":"^4.0.1","parse-json":"^2.1.0","pinkie-promise":"^2.0.0","read-all-stream":"^3.0.0","readable-stream":"^2.0.5","timed-out":"^3.0.0","unzip-response":"^1.0.2","url-parse-lax":"^1.0.0"}},"graceful-fs":{"version":"4.1.15","resolved":"http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.15.tgz","integrity":"sha1-/7cD4QZuig7qpMi4C6klPu77+wA="},"growly":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz","integrity":"sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE="},"gud":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/gud/download/gud-1.0.0.tgz","integrity":"sha1-pIlYGxfmpwvsqavjrlfeekmYUsA="},"handlebars":{"version":"4.1.2","resolved":"http://registry.npm.taobao.org/handlebars/download/handlebars-4.1.2.tgz","integrity":"sha1-trN8HO0DBrIh4JT8eso+wjsTG2c=","dev":true,"requires":{"neo-async":"^2.6.0","optimist":"^0.6.1","source-map":"^0.6.1","uglify-js":"^3.1.4"},"dependencies":{"source-map":{"version":"0.6.1","resolved":"http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz","integrity":"sha1-dHIq8y6WFOnCh6jQu95IteLxomM=","dev":true},"uglify-js":{"version":"3.5.4","resolved":"http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.5.4.tgz","integrity":"sha1-SmTVf1kOIKiYugV/g43N+2epObk=","dev":true,"optional":true,"requires":{"commander":"~2.20.0","source-map":"~0.6.1"}}}},"har-schema":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz","integrity":"sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=","dev":true},"har-validator":{"version":"5.1.3","resolved":"http://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz","integrity":"sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=","dev":true,"requires":{"ajv":"^6.5.5","har-schema":"^2.0.0"}},"has":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/has/download/has-1.0.3.tgz","integrity":"sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=","dev":true,"requires":{"function-bind":"^1.1.1"}},"has-ansi":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz","integrity":"sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=","requires":{"ansi-regex":"^2.0.0"}},"has-flag":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz","integrity":"sha1-tdRU3CGZriJWmfNGfloH87lVuv0="},"has-symbols":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz","integrity":"sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=","dev":true},"has-unicode":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz","integrity":"sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="},"has-value":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz","integrity":"sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=","requires":{"get-value":"^2.0.6","has-values":"^1.0.0","isobject":"^3.0.0"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"has-values":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz","integrity":"sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=","requires":{"is-number":"^3.0.0","kind-of":"^4.0.0"},"dependencies":{"is-number":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"kind-of":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz","integrity":"sha1-IIE989cSkosgc3hpGkUGb65y3Vc=","requires":{"is-buffer":"^1.1.5"}}}},"hermes-engine":{"version":"0.2.1","resolved":"https://registry.npm.taobao.org/hermes-engine/download/hermes-engine-0.2.1.tgz","integrity":"sha1-JcDx/4UlEqkstcXMR8+Wfh5yLqI="},"hoist-non-react-statics":{"version":"2.5.5","resolved":"http://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-2.5.5.tgz","integrity":"sha1-xZA89AnA39kI84jmGdhrnBF0y0c="},"home-or-tmp":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz","integrity":"sha1-42w/LSyufXRqhX440Y1fMqeILbg=","dev":true,"requires":{"os-homedir":"^1.0.0","os-tmpdir":"^1.0.1"}},"hosted-git-info":{"version":"2.7.1","resolved":"http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz","integrity":"sha1-l/I2l3vW4SVAiTD/bePuxigewEc="},"http-errors":{"version":"1.7.3","resolved":"https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz","integrity":"sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==","requires":{"depd":"~1.1.2","inherits":"2.0.4","setprototypeof":"1.1.1","statuses":">= 1.5.0 < 2","toidentifier":"1.0.0"},"dependencies":{"inherits":{"version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="},"statuses":{"version":"1.5.0","resolved":"http://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz","integrity":"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="}}},"http-signature":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz","integrity":"sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=","dev":true,"requires":{"assert-plus":"^1.0.0","jsprim":"^1.2.2","sshpk":"^1.7.0"}},"husky":{"version":"4.2.5","resolved":"https://registry.npmjs.org/husky/-/husky-4.2.5.tgz","integrity":"sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==","dev":true,"requires":{"chalk":"^4.0.0","ci-info":"^2.0.0","compare-versions":"^3.6.0","cosmiconfig":"^6.0.0","find-versions":"^3.2.0","opencollective-postinstall":"^2.0.2","pkg-dir":"^4.2.0","please-upgrade-node":"^3.2.0","slash":"^3.0.0","which-pm-runs":"^1.0.0"},"dependencies":{"ansi-styles":{"version":"4.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz","integrity":"sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==","dev":true,"requires":{"@types/color-name":"^1.1.1","color-convert":"^2.0.1"}},"chalk":{"version":"4.0.0","resolved":"https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz","integrity":"sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==","dev":true,"requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}},"color-convert":{"version":"2.0.1","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","integrity":"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==","dev":true,"requires":{"color-name":"~1.1.4"}},"color-name":{"version":"1.1.4","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","integrity":"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==","dev":true},"cosmiconfig":{"version":"6.0.0","resolved":"https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz","integrity":"sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==","dev":true,"requires":{"@types/parse-json":"^4.0.0","import-fresh":"^3.1.0","parse-json":"^5.0.0","path-type":"^4.0.0","yaml":"^1.7.2"}},"find-up":{"version":"4.1.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz","integrity":"sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==","dev":true,"requires":{"locate-path":"^5.0.0","path-exists":"^4.0.0"}},"has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==","dev":true},"import-fresh":{"version":"3.2.1","resolved":"https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz","integrity":"sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==","dev":true,"requires":{"parent-module":"^1.0.0","resolve-from":"^4.0.0"}},"locate-path":{"version":"5.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz","integrity":"sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==","dev":true,"requires":{"p-locate":"^4.1.0"}},"p-limit":{"version":"2.3.0","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz","integrity":"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==","dev":true,"requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"4.1.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz","integrity":"sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==","dev":true,"requires":{"p-limit":"^2.2.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz","integrity":"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==","dev":true},"parse-json":{"version":"5.0.0","resolved":"https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz","integrity":"sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==","dev":true,"requires":{"@babel/code-frame":"^7.0.0","error-ex":"^1.3.1","json-parse-better-errors":"^1.0.1","lines-and-columns":"^1.1.6"}},"path-exists":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz","integrity":"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==","dev":true},"path-type":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz","integrity":"sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==","dev":true},"pkg-dir":{"version":"4.2.0","resolved":"https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz","integrity":"sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==","dev":true,"requires":{"find-up":"^4.0.0"}},"slash":{"version":"3.0.0","resolved":"https://registry.npmjs.org/slash/-/slash-3.0.0.tgz","integrity":"sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==","dev":true},"supports-color":{"version":"7.1.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz","integrity":"sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==","dev":true,"requires":{"has-flag":"^4.0.0"}}}},"i":{"version":"0.3.6","resolved":"https://registry.npmjs.org/i/-/i-0.3.6.tgz","integrity":"sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=","dev":true},"iconv-lite":{"version":"0.4.24","resolved":"http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz","integrity":"sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=","requires":{"safer-buffer":">= 2.1.2 < 3"}},"ieee754":{"version":"1.1.13","resolved":"http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz","integrity":"sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q="},"ignore":{"version":"4.0.6","resolved":"http://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz","integrity":"sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=","dev":true},"image-size":{"version":"0.6.3","resolved":"http://registry.npm.taobao.org/image-size/download/image-size-0.6.3.tgz","integrity":"sha1-5+XGW7U0vXzc7dbLUWYnKoX3X7I="},"import-fresh":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/import-fresh/download/import-fresh-3.0.0.tgz","integrity":"sha1-o9iX9CDKsOZxI2iX91vBS0iFw5A=","dev":true,"requires":{"parent-module":"^1.0.0","resolve-from":"^4.0.0"}},"imurmurhash":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz","integrity":"sha1-khi5srkoojixPcT7a21XbyMUU+o="},"inflight":{"version":"1.0.6","resolved":"http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz","integrity":"sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=","requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.3","resolved":"http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz","integrity":"sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="},"ini":{"version":"1.3.5","resolved":"http://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz","integrity":"sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc="},"inquirer":{"version":"3.3.0","resolved":"https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz","integrity":"sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==","requires":{"ansi-escapes":"^3.0.0","chalk":"^2.0.0","cli-cursor":"^2.1.0","cli-width":"^2.0.0","external-editor":"^2.0.4","figures":"^2.0.0","lodash":"^4.3.0","mute-stream":"0.0.7","run-async":"^2.2.0","rx-lite":"^4.0.8","rx-lite-aggregates":"^4.0.8","string-width":"^2.1.0","strip-ansi":"^4.0.0","through":"^2.3.6"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"strip-ansi":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","requires":{"ansi-regex":"^3.0.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"intl":{"version":"1.2.5","resolved":"http://registry.npm.taobao.org/intl/download/intl-1.2.5.tgz","integrity":"sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94="},"intl-messageformat":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/intl-messageformat/download/intl-messageformat-2.2.0.tgz","integrity":"sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=","requires":{"intl-messageformat-parser":"1.4.0"}},"intl-messageformat-parser":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/intl-messageformat-parser/download/intl-messageformat-parser-1.4.0.tgz","integrity":"sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU="},"invariant":{"version":"2.2.1","resolved":"http://registry.npm.taobao.org/invariant/download/invariant-2.2.1.tgz","integrity":"sha1-sJcBBUdmjH4zcCjr6Bbr42yKjVQ=","requires":{"loose-envify":"^1.0.0"}},"invert-kv":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz","integrity":"sha1-EEqOSqym09jNFXqO+L+rLXo//bY="},"is-accessor-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-arguments":{"version":"1.0.4","resolved":"https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz","integrity":"sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==","dev":true},"is-arrayish":{"version":"0.2.1","resolved":"http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz","integrity":"sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="},"is-buffer":{"version":"1.1.6","resolved":"http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz","integrity":"sha1-76ouqdqg16suoTqXsritUf776L4="},"is-callable":{"version":"1.1.4","resolved":"http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz","integrity":"sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=","dev":true},"is-ci":{"version":"2.0.0","resolved":"https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz","integrity":"sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==","requires":{"ci-info":"^2.0.0"}},"is-data-descriptor":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-date-object":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz","integrity":"sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=","dev":true},"is-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"},"dependencies":{"kind-of":{"version":"5.1.0","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="}}},"is-directory":{"version":"0.3.1","resolved":"https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz","integrity":"sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="},"is-dotfile":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz","integrity":"sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=","dev":true},"is-equal-shallow":{"version":"0.1.3","resolved":"http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz","integrity":"sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=","dev":true,"requires":{"is-primitive":"^2.0.0"}},"is-extendable":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz","integrity":"sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="},"is-extglob":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz","integrity":"sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=","dev":true},"is-finite":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz","integrity":"sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=","requires":{"number-is-nan":"^1.0.0"}},"is-fullwidth-code-point":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz","integrity":"sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="},"is-glob":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz","integrity":"sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=","dev":true,"requires":{"is-extglob":"^1.0.0"}},"is-npm":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz","integrity":"sha1-8vtjpl5JBbQGyGBydloaTceTufQ="},"is-number":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz","integrity":"sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=","dev":true,"requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"is-obj":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz","integrity":"sha1-PkcprB9f3gJc19g6iW2rn09n2w8="},"is-plain-object":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz","integrity":"sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=","requires":{"isobject":"^3.0.1"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"is-posix-bracket":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz","integrity":"sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=","dev":true},"is-primitive":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz","integrity":"sha1-IHurkWOEmcB7Kt8kCkGochADRXU=","dev":true},"is-promise":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz","integrity":"sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="},"is-redirect":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz","integrity":"sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="},"is-regex":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz","integrity":"sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=","dev":true,"requires":{"has":"^1.0.1"}},"is-retry-allowed":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/is-retry-allowed/download/is-retry-allowed-1.1.0.tgz","integrity":"sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="},"is-stream":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz","integrity":"sha1-EtSj3U5o4Lec6428hBc66A2RykQ="},"is-symbol":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz","integrity":"sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=","dev":true,"requires":{"has-symbols":"^1.0.0"}},"is-typedarray":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz","integrity":"sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=","dev":true},"is-windows":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz","integrity":"sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0="},"is-wsl":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz","integrity":"sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="},"isarray":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz","integrity":"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="},"isexe":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz","integrity":"sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="},"isobject":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz","integrity":"sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=","dev":true,"requires":{"isarray":"1.0.0"}},"isomorphic-fetch":{"version":"2.2.1","resolved":"http://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz","integrity":"sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=","requires":{"node-fetch":"^1.0.1","whatwg-fetch":">=0.10.0"}},"isstream":{"version":"0.1.2","resolved":"http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz","integrity":"sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=","dev":true},"jest-docblock":{"version":"22.4.0","resolved":"http://registry.npm.taobao.org/jest-docblock/download/jest-docblock-22.4.0.tgz","integrity":"sha1-2/GHfiVQBwz8TZsHpVd1oEgxWbg=","dev":true,"requires":{"detect-newline":"^2.1.0"}},"jest-get-type":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz","integrity":"sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q=="},"jest-haste-map":{"version":"22.4.2","resolved":"http://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-22.4.2.tgz","integrity":"sha1-qQF45mFG1DeLsHY0WpSQcfOwFbQ=","dev":true,"requires":{"fb-watchman":"^2.0.0","graceful-fs":"^4.1.11","jest-docblock":"^22.4.0","jest-serializer":"^22.4.0","jest-worker":"^22.2.2","micromatch":"^2.3.11","sane":"^2.0.0"}},"jest-message-util":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz","integrity":"sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==","requires":{"@babel/code-frame":"^7.0.0","@jest/test-result":"^24.9.0","@jest/types":"^24.9.0","@types/stack-utils":"^1.0.1","chalk":"^2.0.1","micromatch":"^3.1.10","slash":"^2.0.0","stack-utils":"^1.0.1"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"array-unique":{"version":"0.3.2","resolved":"https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"braces":{"version":"2.3.2","resolved":"https://registry.npmjs.org/braces/-/braces-2.3.2.tgz","integrity":"sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"expand-brackets":{"version":"2.1.4","resolved":"https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz","integrity":"sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz","integrity":"sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="}}},"extglob":{"version":"2.0.4","resolved":"https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz","integrity":"sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fill-range":{"version":"4.0.0","resolved":"https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz","integrity":"sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz","integrity":"sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz","integrity":"sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"micromatch":{"version":"3.1.10","resolved":"https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz","integrity":"sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}},"slash":{"version":"2.0.0","resolved":"https://registry.npmjs.org/slash/-/slash-2.0.0.tgz","integrity":"sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"jest-mock":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz","integrity":"sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==","requires":{"@jest/types":"^24.9.0"}},"jest-serializer":{"version":"22.4.3","resolved":"http://registry.npm.taobao.org/jest-serializer/download/jest-serializer-22.4.3.tgz","integrity":"sha1-pnm4Gn8RHkdmI19PDEbSMO4PdDY=","dev":true},"jest-util":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz","integrity":"sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==","requires":{"@jest/console":"^24.9.0","@jest/fake-timers":"^24.9.0","@jest/source-map":"^24.9.0","@jest/test-result":"^24.9.0","@jest/types":"^24.9.0","callsites":"^3.0.0","chalk":"^2.0.1","graceful-fs":"^4.1.15","is-ci":"^2.0.0","mkdirp":"^0.5.1","slash":"^2.0.0","source-map":"^0.6.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"slash":{"version":"2.0.0","resolved":"https://registry.npmjs.org/slash/-/slash-2.0.0.tgz","integrity":"sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="},"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"jest-validate":{"version":"24.9.0","resolved":"https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz","integrity":"sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==","requires":{"@jest/types":"^24.9.0","camelcase":"^5.3.1","chalk":"^2.0.1","jest-get-type":"^24.9.0","leven":"^3.1.0","pretty-format":"^24.9.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"camelcase":{"version":"5.3.1","resolved":"https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz","integrity":"sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"jest-worker":{"version":"22.2.2","resolved":"http://registry.npm.taobao.org/jest-worker/download/jest-worker-22.2.2.tgz","integrity":"sha1-wfXcOZdohLgfaOxQy4UyssurM5A=","dev":true,"requires":{"merge-stream":"^1.0.1"}},"jetifier":{"version":"1.6.4","resolved":"https://registry.npmjs.org/jetifier/-/jetifier-1.6.4.tgz","integrity":"sha512-+f/4OLeqY8RAmXnonI1ffeY1DR8kMNJPhv5WMFehchf7U71cjMQVKkOz1n6asz6kfVoAqKNWJz1A/18i18AcXA=="},"js-tokens":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz","integrity":"sha1-GSA/tZmR35jjoocFDUZHzerzJJk="},"js-yaml":{"version":"3.13.1","resolved":"http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz","integrity":"sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=","requires":{"argparse":"^1.0.7","esprima":"^4.0.0"}},"js2xmlparser":{"version":"4.0.1","resolved":"https://registry.npm.taobao.org/js2xmlparser/download/js2xmlparser-4.0.1.tgz","integrity":"sha1-Zw73G8VmHwicyQSBuZoFoSJ6470=","requires":{"xmlcreate":"^2.0.3"}},"jsbn":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz","integrity":"sha1-peZUwuWi3rXyAdls77yoDA7y9RM=","dev":true},"jsc-android":{"version":"245459.0.0","resolved":"https://registry.npm.taobao.org/jsc-android/download/jsc-android-245459.0.0.tgz","integrity":"sha1-5YQljdCwTJFZon+xBM1dSR/SAsk="},"jsdoc":{"version":"3.6.3","resolved":"https://registry.npm.taobao.org/jsdoc/download/jsdoc-3.6.3.tgz","integrity":"sha1-3M6pfQ5i1j0wa4s+0VJxc7XiGQ0=","requires":{"@babel/parser":"^7.4.4","bluebird":"^3.5.4","catharsis":"^0.8.11","escape-string-regexp":"^2.0.0","js2xmlparser":"^4.0.0","klaw":"^3.0.0","markdown-it":"^8.4.2","markdown-it-anchor":"^5.0.2","marked":"^0.7.0","mkdirp":"^0.5.1","requizzle":"^0.2.3","strip-json-comments":"^3.0.1","taffydb":"2.6.2","underscore":"~1.9.1"},"dependencies":{"@babel/parser":{"version":"7.8.8","resolved":"https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.8.8.tgz?cache=0&sync_timestamp=1584039533516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.8.8.tgz","integrity":"sha1-TDt8422zfgYpvh8NUKVx0vhvbNQ="},"escape-string-regexp":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz","integrity":"sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q="},"klaw":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/klaw/download/klaw-3.0.0.tgz","integrity":"sha1-sRvsnPJJLwZ1bW6Amrc6KRAlkUY=","requires":{"graceful-fs":"^4.1.9"}},"marked":{"version":"0.7.0","resolved":"https://registry.npm.taobao.org/marked/download/marked-0.7.0.tgz?cache=0&sync_timestamp=1580358845415&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarked%2Fdownload%2Fmarked-0.7.0.tgz","integrity":"sha1-tkIB8FHScbHtwQoE0a6bdLuOXA4="},"strip-json-comments":{"version":"3.0.1","resolved":"https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.0.1.tgz","integrity":"sha1-hXE5dakfuHvxswXMp3OV5A0qZKc="}}},"jsdoc-api":{"version":"4.0.3","resolved":"http://registry.npm.taobao.org/jsdoc-api/download/jsdoc-api-4.0.3.tgz","integrity":"sha1-+HNXhWNJoL5AoD5kcRw0x0dUuiA=","dev":true,"requires":{"array-back":"^2.0.0","cache-point":"^0.4.1","collect-all":"^1.0.3","file-set":"^2.0.0","fs-then-native":"^2.0.0","jsdoc":"~3.5.5","object-to-spawn-args":"^1.1.1","temp-path":"^1.0.0","walk-back":"^3.0.0"},"dependencies":{"babylon":{"version":"7.0.0-beta.19","resolved":"https://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.19.tgz","integrity":"sha1-6SjH6AfpcOBTaweKs+DEj54FJQM=","dev":true},"bluebird":{"version":"3.5.5","resolved":"https://registry.npm.taobao.org/bluebird/download/bluebird-3.5.5.tgz","integrity":"sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=","dev":true},"js2xmlparser":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/js2xmlparser/download/js2xmlparser-3.0.0.tgz","integrity":"sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=","dev":true,"requires":{"xmlcreate":"^1.0.1"}},"jsdoc":{"version":"3.5.5","resolved":"https://registry.npm.taobao.org/jsdoc/download/jsdoc-3.5.5.tgz","integrity":"sha1-SEUhsSboGQTWMv+D7JqqCWcI+k0=","dev":true,"requires":{"babylon":"7.0.0-beta.19","bluebird":"~3.5.0","catharsis":"~0.8.9","escape-string-regexp":"~1.0.5","js2xmlparser":"~3.0.0","klaw":"~2.0.0","marked":"~0.3.6","mkdirp":"~0.5.1","requizzle":"~0.2.1","strip-json-comments":"~2.0.1","taffydb":"2.6.2","underscore":"~1.8.3"}},"klaw":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/klaw/download/klaw-2.0.0.tgz","integrity":"sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=","dev":true,"requires":{"graceful-fs":"^4.1.9"}},"underscore":{"version":"1.8.3","resolved":"https://registry.npm.taobao.org/underscore/download/underscore-1.8.3.tgz","integrity":"sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=","dev":true},"xmlcreate":{"version":"1.0.2","resolved":"https://registry.npm.taobao.org/xmlcreate/download/xmlcreate-1.0.2.tgz","integrity":"sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=","dev":true}}},"jsdoc-parse":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/jsdoc-parse/download/jsdoc-parse-3.0.1.tgz","integrity":"sha1-EZTWoWot++X7jMz+tQWOqAh1mJM=","dev":true,"requires":{"array-back":"^2.0.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","reduce-extract":"^1.0.0","sort-array":"^2.0.0","test-value":"^3.0.0"}},"jsdoc-to-markdown":{"version":"4.0.1","resolved":"http://registry.npm.taobao.org/jsdoc-to-markdown/download/jsdoc-to-markdown-4.0.1.tgz","integrity":"sha1-JH99l37MIJQoly7JLKFL1OYQNV0=","dev":true,"requires":{"array-back":"^2.0.0","command-line-tool":"^0.8.0","config-master":"^3.1.0","dmd":"^3.0.10","jsdoc-api":"^4.0.1","jsdoc-parse":"^3.0.1","walk-back":"^3.0.0"}},"jsesc":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz","integrity":"sha1-RsP+yMGJKxKwgz25vHYiF226s0s=","dev":true},"json-parse-better-errors":{"version":"1.0.2","resolved":"https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz","integrity":"sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="},"json-schema":{"version":"0.2.3","resolved":"http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz","integrity":"sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=","dev":true},"json-schema-traverse":{"version":"0.4.1","resolved":"http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz","integrity":"sha1-afaofZUTq4u4/mO9sJecRI5oRmA=","dev":true},"json-stable-stringify":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz","integrity":"sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=","requires":{"jsonify":"~0.0.0"}},"json-stable-stringify-without-jsonify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz","integrity":"sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=","dev":true},"json-stringify-safe":{"version":"5.0.1","resolved":"http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz","integrity":"sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=","dev":true},"json5":{"version":"0.5.1","resolved":"http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz","integrity":"sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=","dev":true},"jsonfile":{"version":"2.4.0","resolved":"http://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz","integrity":"sha1-NzaitCi4e72gzIO1P6PWM6NcKug=","requires":{"graceful-fs":"^4.1.6"}},"jsonify":{"version":"0.0.0","resolved":"http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz","integrity":"sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="},"jsprim":{"version":"1.4.1","resolved":"http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz","integrity":"sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=","dev":true,"requires":{"assert-plus":"1.0.0","extsprintf":"1.3.0","json-schema":"0.2.3","verror":"1.10.0"}},"jsx-ast-utils":{"version":"2.0.1","resolved":"https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz","integrity":"sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=","dev":true,"requires":{"array-includes":"^3.0.3"}},"keymirror":{"version":"0.1.1","resolved":"https://registry.npm.taobao.org/keymirror/download/keymirror-0.1.1.tgz","integrity":"sha1-kYiJ6hP40KQufFVyUO7nE63JXDU="},"kind-of":{"version":"6.0.2","resolved":"https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz","integrity":"sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="},"klaw":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/klaw/download/klaw-1.3.1.tgz","integrity":"sha1-QIhDO0azsbolnXh4XY6W9zugJDk=","requires":{"graceful-fs":"^4.1.9"}},"latest-version":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/latest-version/download/latest-version-2.0.0.tgz","integrity":"sha1-VvjWE5YghHuAF/jx9NeOIRMkFos=","requires":{"package-json":"^2.0.0"}},"lcid":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz","integrity":"sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=","requires":{"invert-kv":"^1.0.0"}},"left-pad":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/left-pad/download/left-pad-1.3.0.tgz","integrity":"sha1-W4o6d2Xf4AEmHd6RVYnngvjJTR4=","dev":true},"leven":{"version":"3.1.0","resolved":"https://registry.npmjs.org/leven/-/leven-3.1.0.tgz","integrity":"sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="},"levn":{"version":"0.3.0","resolved":"http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz","integrity":"sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=","dev":true,"requires":{"prelude-ls":"~1.1.2","type-check":"~0.3.2"}},"lines-and-columns":{"version":"1.1.6","resolved":"https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz","integrity":"sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=","dev":true},"linkify-it":{"version":"2.2.0","resolved":"https://registry.npm.taobao.org/linkify-it/download/linkify-it-2.2.0.tgz","integrity":"sha1-47VGl+eL+RXHCjis14/QngBYsc8=","requires":{"uc.micro":"^1.0.1"}},"load-json-file":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz","integrity":"sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=","requires":{"graceful-fs":"^4.1.2","parse-json":"^2.2.0","pify":"^2.0.0","strip-bom":"^3.0.0"}},"locate-path":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz","integrity":"sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=","requires":{"p-locate":"^2.0.0","path-exists":"^3.0.0"}},"lodash":{"version":"4.17.11","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz","integrity":"sha1-s56mIp72B+zYniyN8SU2iRysm40="},"lodash-node":{"version":"2.4.1","resolved":"http://registry.npm.taobao.org/lodash-node/download/lodash-node-2.4.1.tgz","integrity":"sha1-6oL3sQDHM9GkKvdoAeUGEF4qgOw="},"lodash.camelcase":{"version":"4.3.0","resolved":"https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz","integrity":"sha1-soqmKIorn8ZRA1x3EfZathkDMaY=","dev":true},"lodash.omit":{"version":"4.5.0","resolved":"https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz","integrity":"sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=","dev":true},"lodash.pad":{"version":"4.5.1","resolved":"http://registry.npm.taobao.org/lodash.pad/download/lodash.pad-4.5.1.tgz","integrity":"sha1-QzCUmoM6fI2iLMIPaibE1Z3runA="},"lodash.padend":{"version":"4.6.1","resolved":"http://registry.npm.taobao.org/lodash.padend/download/lodash.padend-4.6.1.tgz","integrity":"sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="},"lodash.padstart":{"version":"4.6.1","resolved":"http://registry.npm.taobao.org/lodash.padstart/download/lodash.padstart-4.6.1.tgz","integrity":"sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs="},"lodash.pick":{"version":"4.4.0","resolved":"https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz","integrity":"sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=","dev":true},"lodash.range":{"version":"3.2.0","resolved":"https://registry.npmjs.org/lodash.range/-/lodash.range-3.2.0.tgz","integrity":"sha1-9GHliPZmg/fq3q3lE+OKaaVloV0="},"lodash.throttle":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz","integrity":"sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="},"log-symbols":{"version":"2.2.0","resolved":"https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz","integrity":"sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==","requires":{"chalk":"^2.0.1"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"logkitty":{"version":"0.6.1","resolved":"https://registry.npmjs.org/logkitty/-/logkitty-0.6.1.tgz","integrity":"sha512-cHuXN8qUZuzX/7kB6VyS7kB4xyD24e8gyHXIFNhIv+fjW3P+jEXNUhj0o/7qWJtv7UZpbnPgUqzu/AZQ8RAqxQ==","requires":{"ansi-fragments":"^0.2.1","dayjs":"^1.8.15","yargs":"^12.0.5"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="},"camelcase":{"version":"5.3.1","resolved":"https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz","integrity":"sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="},"cliui":{"version":"4.1.0","resolved":"https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz","integrity":"sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==","requires":{"string-width":"^2.1.1","strip-ansi":"^4.0.0","wrap-ansi":"^2.0.0"}},"find-up":{"version":"3.0.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz","integrity":"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==","requires":{"locate-path":"^3.0.0"}},"invert-kv":{"version":"2.0.0","resolved":"https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz","integrity":"sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="},"lcid":{"version":"2.0.0","resolved":"https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz","integrity":"sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==","requires":{"invert-kv":"^2.0.0"}},"locate-path":{"version":"3.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz","integrity":"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==","requires":{"p-locate":"^3.0.0","path-exists":"^3.0.0"}},"mem":{"version":"4.3.0","resolved":"https://registry.npmjs.org/mem/-/mem-4.3.0.tgz","integrity":"sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==","requires":{"map-age-cleaner":"^0.1.1","mimic-fn":"^2.0.0","p-is-promise":"^2.0.0"}},"mimic-fn":{"version":"2.1.0","resolved":"https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz","integrity":"sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="},"os-locale":{"version":"3.1.0","resolved":"https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz","integrity":"sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==","requires":{"execa":"^1.0.0","lcid":"^2.0.0","mem":"^4.0.0"}},"p-limit":{"version":"2.2.1","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz","integrity":"sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==","requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"3.0.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz","integrity":"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==","requires":{"p-limit":"^2.0.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz","integrity":"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="},"strip-ansi":{"version":"4.0.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","requires":{"ansi-regex":"^3.0.0"}},"yargs":{"version":"12.0.5","resolved":"https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz","integrity":"sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==","requires":{"cliui":"^4.0.0","decamelize":"^1.2.0","find-up":"^3.0.0","get-caller-file":"^1.0.1","os-locale":"^3.0.0","require-directory":"^2.1.1","require-main-filename":"^1.0.1","set-blocking":"^2.0.0","string-width":"^2.0.0","which-module":"^2.0.0","y18n":"^3.2.1 || ^4.0.0","yargs-parser":"^11.1.1"}},"yargs-parser":{"version":"11.1.1","resolved":"https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz","integrity":"sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==","requires":{"camelcase":"^5.0.0","decamelize":"^1.2.0"}}}},"loose-envify":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz","integrity":"sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=","requires":{"js-tokens":"^3.0.0 || ^4.0.0"}},"lottie-ios":{"version":"2.5.3","resolved":"http://registry.npm.taobao.org/lottie-ios/download/lottie-ios-2.5.3.tgz","integrity":"sha1-v/hrZmL5JZQ5U10VSIlMJ0yeR28="},"lottie-react-native":{"version":"2.5.5","resolved":"http://registry.npm.taobao.org/lottie-react-native/download/lottie-react-native-2.5.5.tgz","integrity":"sha1-sJ3ROjbv6i8uXTVznfdxHgPOyVY=","requires":{"invariant":"^2.2.2","lottie-ios":"^2.5.0","prop-types":"^15.5.10","react-native-safe-module":"^1.1.0"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}}}},"lowercase-keys":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz","integrity":"sha1-b54wtHCE2XGnyCD/FabFFnt0wm8="},"lru-cache":{"version":"4.1.5","resolved":"http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz","integrity":"sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=","requires":{"pseudomap":"^1.0.2","yallist":"^2.1.2"}},"make-dir":{"version":"2.1.0","resolved":"https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz","integrity":"sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==","requires":{"pify":"^4.0.1","semver":"^5.6.0"},"dependencies":{"pify":{"version":"4.0.1","resolved":"https://registry.npmjs.org/pify/-/pify-4.0.1.tgz","integrity":"sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="}}},"makeerror":{"version":"1.0.11","resolved":"http://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz","integrity":"sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=","requires":{"tmpl":"1.0.x"}},"map-age-cleaner":{"version":"0.1.3","resolved":"https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz","integrity":"sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==","requires":{"p-defer":"^1.0.0"}},"map-cache":{"version":"0.2.2","resolved":"http://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz","integrity":"sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="},"map-visit":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz","integrity":"sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=","requires":{"object-visit":"^1.0.0"}},"markdown-it":{"version":"8.4.2","resolved":"https://registry.npm.taobao.org/markdown-it/download/markdown-it-8.4.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarkdown-it%2Fdownload%2Fmarkdown-it-8.4.2.tgz","integrity":"sha1-OG+YmY3BWjdyKqdyIIT0Agvdm1Q=","requires":{"argparse":"^1.0.7","entities":"~1.1.1","linkify-it":"^2.0.0","mdurl":"^1.0.1","uc.micro":"^1.0.5"}},"markdown-it-anchor":{"version":"5.2.5","resolved":"https://registry.npm.taobao.org/markdown-it-anchor/download/markdown-it-anchor-5.2.5.tgz","integrity":"sha1-2/E8/Nv/0WpRCYTxJj4dR5pH0no="},"marked":{"version":"0.3.19","resolved":"http://registry.npm.taobao.org/marked/download/marked-0.3.19.tgz","integrity":"sha1-XUf3CcTJ/Dwha21GEnKA9As515A=","dev":true},"math-random":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz","integrity":"sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=","dev":true},"mdurl":{"version":"1.0.1","resolved":"https://registry.npm.taobao.org/mdurl/download/mdurl-1.0.1.tgz","integrity":"sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="},"mem":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz","integrity":"sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=","requires":{"mimic-fn":"^1.0.0"}},"memoize-one":{"version":"5.1.1","resolved":"https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz","integrity":"sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA=="},"merge":{"version":"1.2.1","resolved":"http://registry.npm.taobao.org/merge/download/merge-1.2.1.tgz","integrity":"sha1-OL6/gMMiCopIe2/Ps5QbsRcgwUU="},"merge-stream":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz","integrity":"sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=","requires":{"readable-stream":"^2.0.1"}},"metro":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro/download/metro-0.28.0.tgz","integrity":"sha1-IpmclsMSloKnas1OHyrcF/fXfKw=","dev":true,"requires":{"@babel/core":"^7.0.0-beta","@babel/generator":"^7.0.0-beta","@babel/helper-remap-async-to-generator":"^7.0.0-beta","@babel/plugin-check-constants":"^7.0.0-beta","@babel/plugin-external-helpers":"^7.0.0-beta","@babel/plugin-proposal-class-properties":"^7.0.0-beta","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta","@babel/plugin-syntax-dynamic-import":"^7.0.0-beta","@babel/plugin-transform-arrow-functions":"^7.0.0-beta","@babel/plugin-transform-block-scoping":"^7.0.0-beta","@babel/plugin-transform-classes":"^7.0.0-beta","@babel/plugin-transform-computed-properties":"^7.0.0-beta","@babel/plugin-transform-destructuring":"^7.0.0-beta","@babel/plugin-transform-flow-strip-types":"^7.0.0-beta","@babel/plugin-transform-for-of":"^7.0.0-beta","@babel/plugin-transform-function-name":"^7.0.0-beta","@babel/plugin-transform-literals":"^7.0.0-beta","@babel/plugin-transform-modules-commonjs":"^7.0.0-beta","@babel/plugin-transform-object-assign":"^7.0.0-beta","@babel/plugin-transform-parameters":"^7.0.0-beta","@babel/plugin-transform-react-display-name":"^7.0.0-beta","@babel/plugin-transform-react-jsx":"^7.0.0-beta","@babel/plugin-transform-react-jsx-source":"^7.0.0-beta","@babel/plugin-transform-regenerator":"^7.0.0-beta","@babel/plugin-transform-shorthand-properties":"^7.0.0-beta","@babel/plugin-transform-spread":"^7.0.0-beta","@babel/plugin-transform-template-literals":"^7.0.0-beta","@babel/template":"^7.0.0-beta","@babel/traverse":"^7.0.0-beta","@babel/types":"^7.0.0-beta","absolute-path":"^0.0.0","async":"^2.4.0","babel-core":"^6.24.1","babel-generator":"^6.26.0","babel-plugin-external-helpers":"^6.22.0","babel-preset-es2015-node":"^6.1.1","babel-preset-fbjs":"^2.1.4","babel-preset-react-native":"^4.0.0","babel-register":"^6.24.1","babylon":"^6.18.0","chalk":"^1.1.1","concat-stream":"^1.6.0","connect":"^3.6.5","core-js":"^2.2.2","debug":"^2.2.0","denodeify":"^1.2.1","eventemitter3":"^3.0.0","fbjs":"^0.8.14","fs-extra":"^1.0.0","graceful-fs":"^4.1.3","image-size":"^0.6.0","jest-docblock":"22.4.0","jest-haste-map":"22.4.2","jest-worker":"22.2.2","json-stable-stringify":"^1.0.1","json5":"^0.4.0","left-pad":"^1.1.3","lodash.throttle":"^4.1.1","merge-stream":"^1.0.1","metro-babylon7":"0.28.0","metro-cache":"0.28.0","metro-core":"0.28.0","metro-minify-uglify":"0.28.0","metro-resolver":"0.28.0","metro-source-map":"0.28.0","mime-types":"2.1.11","mkdirp":"^0.5.1","request":"^2.79.0","rimraf":"^2.5.4","serialize-error":"^2.1.0","source-map":"^0.5.6","temp":"0.8.3","throat":"^4.1.0","wordwrap":"^1.0.0","write-file-atomic":"^1.2.0","ws":"^1.1.0","xpipe":"^1.0.5","yargs":"^9.0.0"},"dependencies":{"core-js":{"version":"2.6.5","resolved":"http://registry.npm.taobao.org/core-js/download/core-js-2.6.5.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.5.tgz","integrity":"sha1-RLyNJJ5/sv9dAOA0Gn/7lPv2eJU=","dev":true},"json5":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/json5/download/json5-0.4.0.tgz","integrity":"sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=","dev":true},"mime-db":{"version":"1.23.0","resolved":"http://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz","integrity":"sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=","dev":true},"mime-types":{"version":"2.1.11","resolved":"http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz","integrity":"sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=","dev":true,"requires":{"mime-db":"~1.23.0"}}}},"metro-babel-register":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-babel-register/download/metro-babel-register-0.56.4.tgz","integrity":"sha1-sMYnoc/dG912j4GveUgXVOgzqQI=","requires":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-proposal-optional-catch-binding":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-transform-async-to-generator":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/register":"^7.0.0","core-js":"^2.2.2","escape-string-regexp":"^1.0.5"},"dependencies":{"core-js":{"version":"2.6.11","resolved":"https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz","integrity":"sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="}}},"metro-babel-transformer":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-babel-transformer/download/metro-babel-transformer-0.56.4.tgz","integrity":"sha1-/h0NxgD8+QIBpb6k1CyuoQuAEFc=","requires":{"@babel/core":"^7.0.0","metro-source-map":"^0.56.4"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}}}},"metro-babylon7":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-babylon7/download/metro-babylon7-0.28.0.tgz","integrity":"sha1-z5cB/9wZktFWK0y2Z9lpIWSVDfQ=","dev":true,"requires":{"babylon":"^7.0.0-beta"},"dependencies":{"babylon":{"version":"7.0.0-beta.47","resolved":"http://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.47.tgz","integrity":"sha1-bR+kTwq+xBq3x4BIHmL9mq+96oA=","dev":true}}},"metro-cache":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-cache/download/metro-cache-0.28.0.tgz","integrity":"sha1-xRZKNhmF/AKUBZ/M306oJOMXPB0=","dev":true,"requires":{"jest-serializer":"^22.4.0","mkdirp":"^0.5.1"}},"metro-config":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-config/download/metro-config-0.56.4.tgz","integrity":"sha1-M4/YFl+6WUJM7EJ8GogXV5ReV+k=","requires":{"cosmiconfig":"^5.0.5","jest-validate":"^24.7.0","metro":"^0.56.4","metro-cache":"^0.56.4","metro-core":"^0.56.4","pretty-format":"^24.7.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"array-unique":{"version":"0.3.2","resolved":"https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha1-qiE8FDXiv/62/KhCKH71NK0F1c8="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz","integrity":"sha1-pgJHZOqGyOBqIteUyotpU00mNUE=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"braces":{"version":"2.3.2","resolved":"https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz","integrity":"sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"capture-exit":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz","integrity":"sha1-+5U7+uvreB9iiYI52rtCbQilCaQ=","requires":{"rsvp":"^4.8.4"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"core-js":{"version":"2.6.11","resolved":"https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz","integrity":"sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="},"exec-sh":{"version":"0.3.4","resolved":"https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.4.tgz","integrity":"sha1-OgGM61JsxvbfK7UEsr/o46STTsU="},"expand-brackets":{"version":"2.1.4","resolved":"https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="}}},"extglob":{"version":"2.0.4","resolved":"https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz","integrity":"sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fbjs":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/fbjs/download/fbjs-1.0.0.tgz","integrity":"sha1-UsIV4Ig6PIavKnp3btUVJa6OClo=","requires":{"core-js":"^2.4.1","fbjs-css-vars":"^1.0.0","isomorphic-fetch":"^2.1.1","loose-envify":"^1.0.0","object-assign":"^4.1.0","promise":"^7.1.1","setimmediate":"^1.0.5","ua-parser-js":"^0.7.18"}},"fill-range":{"version":"4.0.0","resolved":"https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fsevents":{"version":"1.2.13","resolved":"http://registry.npm.pt.mi.com/fsevents/download/fsevents-1.2.13.tgz","integrity":"sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=","optional":true,"requires":{"bindings":"^1.5.0","nan":"^2.12.1"}},"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"jest-haste-map":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.9.0.tgz","integrity":"sha1-s4pdZCdJNOIfpBeump++t3zqrH0=","requires":{"@jest/types":"^24.9.0","anymatch":"^2.0.0","fb-watchman":"^2.0.0","fsevents":"^1.2.7","graceful-fs":"^4.1.15","invariant":"^2.2.4","jest-serializer":"^24.9.0","jest-util":"^24.9.0","jest-worker":"^24.9.0","micromatch":"^3.1.10","sane":"^4.0.3","walker":"^1.0.7"}},"jest-serializer":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz","integrity":"sha1-5tfX75bTHouQeacUdUxdXFgojnM="},"jest-worker":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1566444249955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz","integrity":"sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=","requires":{"merge-stream":"^2.0.0","supports-color":"^6.1.0"},"dependencies":{"merge-stream":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz","integrity":"sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A="},"supports-color":{"version":"6.1.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz","integrity":"sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=","requires":{"has-flag":"^3.0.0"}}}},"metro":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro/download/metro-0.56.4.tgz","integrity":"sha1-vn4TgO5qw1UsJerYCY6rJhAp5Nc=","requires":{"@babel/core":"^7.0.0","@babel/generator":"^7.0.0","@babel/parser":"^7.0.0","@babel/plugin-external-helpers":"^7.0.0","@babel/template":"^7.0.0","@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","absolute-path":"^0.0.0","async":"^2.4.0","babel-preset-fbjs":"^3.1.2","buffer-crc32":"^0.2.13","chalk":"^2.4.1","concat-stream":"^1.6.0","connect":"^3.6.5","debug":"^2.2.0","denodeify":"^1.2.1","eventemitter3":"^3.0.0","fbjs":"^1.0.0","fs-extra":"^1.0.0","graceful-fs":"^4.1.3","image-size":"^0.6.0","invariant":"^2.2.4","jest-haste-map":"^24.7.1","jest-worker":"^24.6.0","json-stable-stringify":"^1.0.1","lodash.throttle":"^4.1.1","merge-stream":"^1.0.1","metro-babel-register":"^0.56.4","metro-babel-transformer":"^0.56.4","metro-cache":"^0.56.4","metro-config":"^0.56.4","metro-core":"^0.56.4","metro-inspector-proxy":"^0.56.4","metro-minify-uglify":"^0.56.4","metro-react-native-babel-preset":"^0.56.4","metro-resolver":"^0.56.4","metro-source-map":"^0.56.4","metro-symbolicate":"^0.56.4","mime-types":"2.1.11","mkdirp":"^0.5.1","node-fetch":"^2.2.0","nullthrows":"^1.1.0","resolve":"^1.5.0","rimraf":"^2.5.4","serialize-error":"^2.1.0","source-map":"^0.5.6","temp":"0.8.3","throat":"^4.1.0","wordwrap":"^1.0.0","write-file-atomic":"^1.2.0","ws":"^1.1.5","xpipe":"^1.0.5","yargs":"^9.0.0"}},"metro-cache":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-cache/download/metro-cache-0.56.4.tgz","integrity":"sha1-VC+fijX4+51VdvRv06tNT0KFGn4=","requires":{"jest-serializer":"^24.4.0","metro-core":"^0.56.4","mkdirp":"^0.5.1","rimraf":"^2.5.4"}},"metro-core":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-core/download/metro-core-0.56.4.tgz","integrity":"sha1-Z8xBs8C/ZunCMG9QI5oQgLHoIxI=","requires":{"jest-haste-map":"^24.7.1","lodash.throttle":"^4.1.1","metro-resolver":"^0.56.4","wordwrap":"^1.0.0"}},"metro-minify-uglify":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-minify-uglify/download/metro-minify-uglify-0.56.4.tgz","integrity":"sha1-E1id+x1DNDYIqst/eN38wFLapjw=","requires":{"uglify-es":"^3.1.9"}},"metro-resolver":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-resolver/download/metro-resolver-0.56.4.tgz","integrity":"sha1-mHb1e8o3/Rv8/9czVB4u5KifrX8=","requires":{"absolute-path":"^0.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}},"micromatch":{"version":"3.1.10","resolved":"https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz","integrity":"sha1-cIWbyVyYQJUvNZoGij/En57PrCM=","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}},"mime-db":{"version":"1.23.0","resolved":"https://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz","integrity":"sha1-oxtAcK2uon1zLqMzdApk0OyaZlk="},"mime-types":{"version":"2.1.11","resolved":"https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz","integrity":"sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=","requires":{"mime-db":"~1.23.0"}},"node-fetch":{"version":"2.6.0","resolved":"https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz","integrity":"sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0="},"rsvp":{"version":"4.8.5","resolved":"https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz","integrity":"sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ="},"sane":{"version":"4.1.0","resolved":"https://registry.npm.taobao.org/sane/download/sane-4.1.0.tgz","integrity":"sha1-7Ygf2SJzOmxGG8GJ3CtsAG8//e0=","requires":{"@cnakazawa/watch":"^1.0.3","anymatch":"^2.0.0","capture-exit":"^2.0.0","exec-sh":"^0.3.2","execa":"^1.0.0","fb-watchman":"^2.0.0","micromatch":"^3.1.4","minimist":"^1.1.1","walker":"~1.0.5"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}}}},"metro-core":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-core/download/metro-core-0.28.0.tgz","integrity":"sha1-4c7UzwfKj7UZam5cqFO12JPwYDg=","dev":true,"requires":{"lodash.throttle":"^4.1.1"}},"metro-inspector-proxy":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-inspector-proxy/download/metro-inspector-proxy-0.56.4.tgz","integrity":"sha1-c0P/PFkIr0/Znpa21kbiTpmBa+Q=","requires":{"connect":"^3.6.5","debug":"^2.2.0","rxjs":"^5.4.3","ws":"^1.1.5","yargs":"^9.0.0"},"dependencies":{"rxjs":{"version":"5.5.12","resolved":"https://registry.npm.taobao.org/rxjs/download/rxjs-5.5.12.tgz?cache=0&sync_timestamp=1577465700679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-5.5.12.tgz","integrity":"sha1-b6YbinfD15PbrycL7i9D9lLXQcw=","requires":{"symbol-observable":"1.0.1"}}}},"metro-minify-uglify":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-minify-uglify/download/metro-minify-uglify-0.28.0.tgz","integrity":"sha1-ya7Ljok0MNL9WOAM95nAC5ncD3k=","dev":true,"requires":{"uglify-es":"^3.1.9"}},"metro-react-native-babel-preset":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-react-native-babel-preset/download/metro-react-native-babel-preset-0.56.4.tgz","integrity":"sha1-3O3GS3/1wHNIOUWOcOsOvvbQY6g=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-export-default-from":"^7.0.0","@babel/plugin-proposal-nullish-coalescing-operator":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-proposal-optional-catch-binding":"^7.0.0","@babel/plugin-proposal-optional-chaining":"^7.0.0","@babel/plugin-syntax-dynamic-import":"^7.0.0","@babel/plugin-syntax-export-default-from":"^7.0.0","@babel/plugin-syntax-flow":"^7.2.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-exponentiation-operator":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-assign":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-react-jsx-source":"^7.0.0","@babel/plugin-transform-regenerator":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-sticky-regex":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","@babel/plugin-transform-typescript":"^7.0.0","@babel/plugin-transform-unicode-regex":"^7.0.0","@babel/template":"^7.0.0","react-refresh":"^0.4.0"}},"metro-react-native-babel-transformer":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.56.4.tgz","integrity":"sha1-PG5ItgXDBTYu5iTkX/M4ZW41/B0=","requires":{"@babel/core":"^7.0.0","babel-preset-fbjs":"^3.1.2","metro-babel-transformer":"^0.56.4","metro-react-native-babel-preset":"^0.56.4","metro-source-map":"^0.56.4"},"dependencies":{"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha1-qiE8FDXiv/62/KhCKH71NK0F1c8="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz","integrity":"sha1-pgJHZOqGyOBqIteUyotpU00mNUE=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}}}},"metro-resolver":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-resolver/download/metro-resolver-0.28.0.tgz","integrity":"sha1-gTgC1g/HYncpJ8gdAuAcfuyEutg=","dev":true,"requires":{"absolute-path":"^0.0.0"}},"metro-source-map":{"version":"0.28.0","resolved":"http://registry.npm.taobao.org/metro-source-map/download/metro-source-map-0.28.0.tgz","integrity":"sha1-7IwxYdhRatPE5xSfLD1IAvT9b6I=","dev":true,"requires":{"source-map":"^0.5.6"}},"metro-symbolicate":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-symbolicate/download/metro-symbolicate-0.56.4.tgz","integrity":"sha1-U+nUC+rJBJ+nWj5iDd1H1JB/8BU=","requires":{"invariant":"^2.2.4","metro-source-map":"^0.56.4","source-map":"^0.5.6","through2":"^2.0.1","vlq":"^1.0.0"},"dependencies":{"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}}}},"mhui-rn":{"version":"1.0.7","resolved":"https://registry.npmjs.org/mhui-rn/-/mhui-rn-1.0.7.tgz","integrity":"sha512-+dZHVA+PdeBFTddPxUNneZFIJqMVYZclcWokXUn93GtoKIhbzPZkYwsFua0el5BGRJLYDDrqlqekRpdvUI54lQ==","requires":{"@react-native-community/art":"^1.2.0","memoize-one":"^5.1.1","react-native-indicators":"^0.13.0","react-native-iphone-x-helper":"^1.2.0","react-native-linear-gradient":"^2.5.4","react-native-progress":"^3.5.0","react-native-shadow":"^1.2.2","react-native-slider":"^0.11.0","react-native-svg":"^9.5.3","react-native-swiper":"^1.6.0-nightly.5","react-native-ui-kitten":"^3.1.2","react-navigation":"2.16.0"}},"micromatch":{"version":"2.3.11","resolved":"http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz","integrity":"sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=","dev":true,"requires":{"arr-diff":"^2.0.0","array-unique":"^0.2.1","braces":"^1.8.2","expand-brackets":"^0.1.4","extglob":"^0.3.1","filename-regex":"^2.0.0","is-extglob":"^1.0.0","is-glob":"^2.0.1","kind-of":"^3.0.2","normalize-path":"^2.0.1","object.omit":"^2.0.0","parse-glob":"^3.0.4","regex-cache":"^0.4.2"},"dependencies":{"arr-diff":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz","integrity":"sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=","dev":true,"requires":{"arr-flatten":"^1.0.1"}},"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"mime":{"version":"1.6.0","resolved":"http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz","integrity":"sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE="},"mime-db":{"version":"1.38.0","resolved":"http://registry.npm.taobao.org/mime-db/download/mime-db-1.38.0.tgz","integrity":"sha1-GiqrFtqesWe0nG5N8tnGjWPY4q0=","dev":true},"mime-types":{"version":"2.1.22","resolved":"http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.22.tgz","integrity":"sha1-/ms1WhkJJqt2mMmgVWoRGZshmb0=","dev":true,"requires":{"mime-db":"~1.38.0"}},"mimic-fn":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz","integrity":"sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI="},"min-document":{"version":"2.19.0","resolved":"http://registry.npm.taobao.org/min-document/download/min-document-2.19.0.tgz","integrity":"sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=","dev":true,"requires":{"dom-walk":"^0.1.0"}},"minimatch":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz","integrity":"sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=","requires":{"brace-expansion":"^1.1.7"}},"minimist":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz","integrity":"sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="},"miot":{"version":"file:miot-sdk"},"mixin-deep":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.1.tgz","integrity":"sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=","requires":{"for-in":"^1.0.2","is-extendable":"^1.0.1"},"dependencies":{"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"mkdirp":{"version":"0.5.1","resolved":"http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz","integrity":"sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=","requires":{"minimist":"0.0.8"},"dependencies":{"minimist":{"version":"0.0.8","resolved":"http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz","integrity":"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="}}},"mkdirp2":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/mkdirp2/download/mkdirp2-1.0.4.tgz","integrity":"sha1-Vt4fj1yTzyGZkGNi66D58mLuRDc=","dev":true},"mock-fs":{"version":"3.12.1","resolved":"http://registry.npm.taobao.org/mock-fs/download/mock-fs-3.12.1.tgz","integrity":"sha1-/yeCTNarJjp+sFoRUjnUHTYx9fg=","requires":{"rewire":"2.5.2","semver":"5.3.0"},"dependencies":{"semver":{"version":"5.3.0","resolved":"http://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz","integrity":"sha1-myzl094C0XxgEq0yaqa00M9U+U8="}}},"morgan":{"version":"1.9.1","resolved":"https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz","integrity":"sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==","requires":{"basic-auth":"~2.0.0","debug":"2.6.9","depd":"~1.1.2","on-finished":"~2.3.0","on-headers":"~1.0.1"}},"ms":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz","integrity":"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="},"mute-stream":{"version":"0.0.7","resolved":"http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz","integrity":"sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="},"nan":{"version":"2.14.0","resolved":"https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz","integrity":"sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=","optional":true},"nanomatch":{"version":"1.2.13","resolved":"http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz","integrity":"sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","define-property":"^2.0.2","extend-shallow":"^3.0.2","fragment-cache":"^0.2.1","is-windows":"^1.0.2","kind-of":"^6.0.2","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"arr-diff":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz","integrity":"sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="},"array-unique":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"}},"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="}}},"natural-compare":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz","integrity":"sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=","dev":true},"ncp":{"version":"0.4.2","resolved":"https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz","integrity":"sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=","dev":true},"negotiator":{"version":"0.6.2","resolved":"https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz","integrity":"sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="},"neo-async":{"version":"2.6.0","resolved":"http://registry.npm.taobao.org/neo-async/download/neo-async-2.6.0.tgz","integrity":"sha1-udFeTXHGdikIZUtRg+04t1M0CDU=","dev":true},"nice-try":{"version":"1.0.5","resolved":"http://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz","integrity":"sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y="},"node-fetch":{"version":"1.7.3","resolved":"http://registry.npm.taobao.org/node-fetch/download/node-fetch-1.7.3.tgz","integrity":"sha1-mA9vcthSEaU0fGsrwYxbhMPrR+8=","requires":{"encoding":"^0.1.11","is-stream":"^1.0.1"}},"node-int64":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz","integrity":"sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs="},"node-modules-regexp":{"version":"1.0.0","resolved":"https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz","integrity":"sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA="},"node-notifier":{"version":"5.4.3","resolved":"https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz","integrity":"sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==","requires":{"growly":"^1.3.0","is-wsl":"^1.1.0","semver":"^5.5.0","shellwords":"^0.1.1","which":"^1.3.0"}},"node-status-codes":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/node-status-codes/download/node-status-codes-1.0.0.tgz","integrity":"sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="},"node-uuid":{"version":"1.3.3","resolved":"http://registry.npm.taobao.org/node-uuid/download/node-uuid-1.3.3.tgz","integrity":"sha1-09tNe1aBDZ5AMjQnZigq8HORcps="},"normalize-package-data":{"version":"2.5.0","resolved":"http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz","integrity":"sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=","requires":{"hosted-git-info":"^2.1.4","resolve":"^1.10.0","semver":"2 || 3 || 4 || 5","validate-npm-package-license":"^3.0.1"}},"normalize-path":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz","integrity":"sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=","requires":{"remove-trailing-separator":"^1.0.1"}},"npm-run-path":{"version":"2.0.2","resolved":"http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz","integrity":"sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=","requires":{"path-key":"^2.0.0"}},"npmlog":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/npmlog/download/npmlog-2.0.4.tgz","integrity":"sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=","requires":{"ansi":"~0.3.1","are-we-there-yet":"~1.1.2","gauge":"~1.2.5"}},"nullthrows":{"version":"1.1.1","resolved":"https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz","integrity":"sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="},"number-is-nan":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz","integrity":"sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="},"oauth-sign":{"version":"0.9.0","resolved":"http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz","integrity":"sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=","dev":true},"ob1":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/ob1/download/ob1-0.56.4.tgz","integrity":"sha1-xKyzuqQvSZOkSzWy2nyO9EPczOw="},"object-assign":{"version":"4.1.1","resolved":"http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz","integrity":"sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="},"object-copy":{"version":"0.1.0","resolved":"http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz","integrity":"sha1-fn2Fi3gb18mRpBupde04EnVOmYw=","requires":{"copy-descriptor":"^0.1.0","define-property":"^0.2.5","kind-of":"^3.0.3"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"object-get":{"version":"2.1.0","resolved":"https://registry.npmjs.org/object-get/-/object-get-2.1.0.tgz","integrity":"sha1-ciu9tgA576R8rTxtws5RqFwCxa4=","dev":true},"object-is":{"version":"1.0.1","resolved":"https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz","integrity":"sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=","dev":true},"object-keys":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz","integrity":"sha1-HEfyct8nfzsdrwYWd9nILiMixg4=","dev":true},"object-to-spawn-args":{"version":"1.1.1","resolved":"https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz","integrity":"sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U=","dev":true},"object-visit":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz","integrity":"sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=","requires":{"isobject":"^3.0.0"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"object.assign":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz","integrity":"sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=","dev":true,"requires":{"define-properties":"^1.1.2","function-bind":"^1.1.1","has-symbols":"^1.0.0","object-keys":"^1.0.11"}},"object.entries":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/object.entries/download/object.entries-1.1.0.tgz","integrity":"sha1-ICT8bWuiRq7ji9sP/Vz7zzcbdRk=","dev":true,"requires":{"define-properties":"^1.1.3","es-abstract":"^1.12.0","function-bind":"^1.1.1","has":"^1.0.3"}},"object.fromentries":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/object.fromentries/download/object.fromentries-2.0.0.tgz","integrity":"sha1-SaVD2SFR+Cd7OslgDx6TCxidMKs=","dev":true,"requires":{"define-properties":"^1.1.2","es-abstract":"^1.11.0","function-bind":"^1.1.1","has":"^1.0.1"}},"object.omit":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz","integrity":"sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=","dev":true,"requires":{"for-own":"^0.1.4","is-extendable":"^0.1.1"}},"object.pick":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz","integrity":"sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=","requires":{"isobject":"^3.0.1"},"dependencies":{"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"on-finished":{"version":"2.3.0","resolved":"http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz","integrity":"sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=","requires":{"ee-first":"1.1.1"}},"on-headers":{"version":"1.0.2","resolved":"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz","integrity":"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="},"once":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/once/download/once-1.4.0.tgz","integrity":"sha1-WDsap3WWHUsROsF9nFC6753Xa9E=","requires":{"wrappy":"1"}},"onetime":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz","integrity":"sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=","requires":{"mimic-fn":"^1.0.0"}},"open":{"version":"6.4.0","resolved":"https://registry.npmjs.org/open/-/open-6.4.0.tgz","integrity":"sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==","requires":{"is-wsl":"^1.1.0"}},"opencollective-postinstall":{"version":"2.0.2","resolved":"https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz","integrity":"sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==","dev":true},"optimist":{"version":"0.6.1","resolved":"http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz","integrity":"sha1-2j6nRob6IaGaERwybpDrFaAZZoY=","dev":true,"requires":{"minimist":"~0.0.1","wordwrap":"~0.0.2"},"dependencies":{"minimist":{"version":"0.0.10","resolved":"http://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz","integrity":"sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=","dev":true},"wordwrap":{"version":"0.0.3","resolved":"http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz","integrity":"sha1-o9XabNXAvAAI03I0u68b7WMFkQc=","dev":true}}},"optionator":{"version":"0.8.2","resolved":"http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz","integrity":"sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=","dev":true,"requires":{"deep-is":"~0.1.3","fast-levenshtein":"~2.0.4","levn":"~0.3.0","prelude-ls":"~1.1.2","type-check":"~0.3.2","wordwrap":"~1.0.0"}},"options":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/options/download/options-0.0.6.tgz","integrity":"sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="},"ora":{"version":"3.4.0","resolved":"https://registry.npmjs.org/ora/-/ora-3.4.0.tgz","integrity":"sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==","requires":{"chalk":"^2.4.2","cli-cursor":"^2.1.0","cli-spinners":"^2.0.0","log-symbols":"^2.2.0","strip-ansi":"^5.2.0","wcwidth":"^1.0.1"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz","integrity":"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity":"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"strip-ansi":{"version":"5.2.0","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz","integrity":"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==","requires":{"ansi-regex":"^4.1.0"}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz","integrity":"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==","requires":{"has-flag":"^3.0.0"}}}},"os-homedir":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz","integrity":"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="},"os-locale":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz","integrity":"sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=","requires":{"execa":"^0.7.0","lcid":"^1.0.0","mem":"^1.1.0"},"dependencies":{"execa":{"version":"0.7.0","resolved":"http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz","integrity":"sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=","requires":{"cross-spawn":"^5.0.1","get-stream":"^3.0.0","is-stream":"^1.1.0","npm-run-path":"^2.0.0","p-finally":"^1.0.0","signal-exit":"^3.0.0","strip-eof":"^1.0.0"}}}},"os-tmpdir":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz","integrity":"sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="},"osenv":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz","integrity":"sha1-hc36+uso6Gd/QW4odZK18/SepBA=","requires":{"os-homedir":"^1.0.0","os-tmpdir":"^1.0.0"}},"p-defer":{"version":"1.0.0","resolved":"https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz","integrity":"sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="},"p-finally":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz","integrity":"sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="},"p-is-promise":{"version":"2.1.0","resolved":"https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz","integrity":"sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="},"p-limit":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz","integrity":"sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=","requires":{"p-try":"^1.0.0"}},"p-locate":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz","integrity":"sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=","requires":{"p-limit":"^1.1.0"}},"p-try":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz","integrity":"sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="},"package-json":{"version":"2.4.0","resolved":"http://registry.npm.taobao.org/package-json/download/package-json-2.4.0.tgz","integrity":"sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs=","requires":{"got":"^5.0.0","registry-auth-token":"^3.0.1","registry-url":"^3.0.3","semver":"^5.1.0"}},"parent-module":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz","integrity":"sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=","dev":true,"requires":{"callsites":"^3.0.0"}},"parse-glob":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz","integrity":"sha1-ssN2z7EfNVE7rdFz7wu246OIORw=","dev":true,"requires":{"glob-base":"^0.3.0","is-dotfile":"^1.0.0","is-extglob":"^1.0.0","is-glob":"^2.0.0"}},"parse-json":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz","integrity":"sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=","requires":{"error-ex":"^1.2.0"}},"parse-node-version":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/parse-node-version/download/parse-node-version-1.0.1.tgz","integrity":"sha1-4rXb7eAOf6m8NjYH9TMn6LBzGJs="},"parseurl":{"version":"1.3.2","resolved":"http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz","integrity":"sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="},"pascalcase":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz","integrity":"sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="},"path-exists":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz","integrity":"sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="},"path-is-absolute":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz","integrity":"sha1-F0uSaHNVNP+8es5r9TpanhtcX18="},"path-is-inside":{"version":"1.0.2","resolved":"https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz","integrity":"sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=","dev":true},"path-key":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz","integrity":"sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="},"path-parse":{"version":"1.0.6","resolved":"http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz","integrity":"sha1-1i27VnlAXXLEc37FhgDp3c8G0kw="},"path-to-regexp":{"version":"1.7.0","resolved":"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz","integrity":"sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=","requires":{"isarray":"0.0.1"},"dependencies":{"isarray":{"version":"0.0.1","resolved":"https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz","integrity":"sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="}}},"path-type":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz","integrity":"sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=","requires":{"pify":"^2.0.0"}},"pend":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz","integrity":"sha1-elfrVQpng/kRUzH89GY9XI4AelA=","dev":true},"performance-now":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz","integrity":"sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="},"pify":{"version":"2.3.0","resolved":"http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz","integrity":"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="},"pinkie":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz","integrity":"sha1-clVrgM+g1IqXToDnckjoDtT3+HA="},"pinkie-promise":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz","integrity":"sha1-ITXW36ejWMBprJsXh3YogihFD/o=","requires":{"pinkie":"^2.0.0"}},"pirates":{"version":"4.0.1","resolved":"https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz","integrity":"sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==","requires":{"node-modules-regexp":"^1.0.0"}},"pkg-dir":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz","integrity":"sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=","dev":true,"requires":{"find-up":"^2.1.0"}},"pkginfo":{"version":"0.4.1","resolved":"https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz","integrity":"sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=","dev":true},"please-upgrade-node":{"version":"3.2.0","resolved":"https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz","integrity":"sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==","dev":true,"requires":{"semver-compare":"^1.0.0"}},"plist":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/plist/download/plist-1.2.0.tgz","integrity":"sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=","requires":{"base64-js":"0.0.8","util-deprecate":"1.0.2","xmlbuilder":"4.0.0","xmldom":"0.1.x"},"dependencies":{"base64-js":{"version":"0.0.8","resolved":"http://registry.npm.taobao.org/base64-js/download/base64-js-0.0.8.tgz","integrity":"sha1-EQHpVE9KdrG8OybUUsqW16NeeXg="}}},"plugin-error":{"version":"0.1.2","resolved":"http://registry.npm.taobao.org/plugin-error/download/plugin-error-0.1.2.tgz","integrity":"sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=","requires":{"ansi-cyan":"^0.1.1","ansi-red":"^0.1.1","arr-diff":"^1.0.1","arr-union":"^2.0.1","extend-shallow":"^1.1.2"},"dependencies":{"arr-diff":{"version":"1.1.0","resolved":"https://registry.npm.taobao.org/arr-diff/download/arr-diff-1.1.0.tgz","integrity":"sha1-aHwydYFjWI/vfeezb6vklesaOZo=","requires":{"arr-flatten":"^1.0.1","array-slice":"^0.2.3"}},"extend-shallow":{"version":"1.1.4","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-1.1.4.tgz","integrity":"sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=","requires":{"kind-of":"^1.1.0"}},"kind-of":{"version":"1.1.0","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-1.1.0.tgz","integrity":"sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ="}}},"posix-character-classes":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz","integrity":"sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="},"prelude-ls":{"version":"1.1.2","resolved":"http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz","integrity":"sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=","dev":true},"prepend-http":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz","integrity":"sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="},"preserve":{"version":"0.2.0","resolved":"http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz","integrity":"sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=","dev":true},"pretty-format":{"version":"24.9.0","resolved":"https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz","integrity":"sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==","requires":{"@jest/types":"^24.9.0","ansi-regex":"^4.0.0","ansi-styles":"^3.2.0","react-is":"^16.8.4"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz","integrity":"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity":"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires":{"color-convert":"^1.9.0"}}}},"private":{"version":"0.1.8","resolved":"http://registry.npm.taobao.org/private/download/private-0.1.8.tgz","integrity":"sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8="},"process":{"version":"0.5.2","resolved":"http://registry.npm.taobao.org/process/download/process-0.5.2.tgz","integrity":"sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=","dev":true},"process-nextick-args":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz","integrity":"sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o="},"progress":{"version":"2.0.3","resolved":"http://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz","integrity":"sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=","dev":true},"promise":{"version":"7.3.1","resolved":"http://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz","integrity":"sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=","requires":{"asap":"~2.0.3"}},"prompt":{"version":"0.2.14","resolved":"https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz","integrity":"sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=","dev":true,"requires":{"pkginfo":"0.x.x","read":"1.0.x","revalidator":"0.1.x","utile":"0.2.x","winston":"0.8.x"}},"prop-types":{"version":"15.7.2","resolved":"http://registry.npm.taobao.org/prop-types/download/prop-types-15.7.2.tgz","integrity":"sha1-UsQedbjIfnK52TYOAga5ncv/psU=","requires":{"loose-envify":"^1.4.0","object-assign":"^4.1.1","react-is":"^16.8.1"}},"pseudomap":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz","integrity":"sha1-8FKijacOYYkX7wqKw0wa5aaChrM="},"psl":{"version":"1.1.31","resolved":"http://registry.npm.taobao.org/psl/download/psl-1.1.31.tgz","integrity":"sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=","dev":true},"pump":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz","integrity":"sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=","requires":{"end-of-stream":"^1.1.0","once":"^1.3.1"}},"punycode":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz","integrity":"sha1-tYsBCsQMIsVldhbI0sLALHv0eew=","dev":true},"qs":{"version":"6.5.2","resolved":"http://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz","integrity":"sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=","dev":true},"query-string":{"version":"6.4.2","resolved":"http://registry.npm.taobao.org/query-string/download/query-string-6.4.2.tgz","integrity":"sha1-i+Hb0QUwauv4YCIUT1daKdUWtxM=","requires":{"decode-uri-component":"^0.2.0","split-on-first":"^1.0.0","strict-uri-encode":"^2.0.0"}},"raf":{"version":"3.4.1","resolved":"http://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz","integrity":"sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=","requires":{"performance-now":"^2.1.0"}},"randomatic":{"version":"3.1.1","resolved":"http://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz","integrity":"sha1-t3bvxZN1mE42xTey9RofCv8Noe0=","dev":true,"requires":{"is-number":"^4.0.0","kind-of":"^6.0.0","math-random":"^1.0.1"},"dependencies":{"is-number":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz","integrity":"sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=","dev":true},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE=","dev":true}}},"range-parser":{"version":"1.2.1","resolved":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","integrity":"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="},"rc":{"version":"1.2.8","resolved":"http://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz","integrity":"sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=","requires":{"deep-extend":"^0.6.0","ini":"~1.3.0","minimist":"^1.2.0","strip-json-comments":"~2.0.1"}},"rc-animate":{"version":"2.6.0","resolved":"http://registry.npm.taobao.org/rc-animate/download/rc-animate-2.6.0.tgz","integrity":"sha1-yoRA0EJ4GvehMp2E+X6pR5TF7BU=","requires":{"babel-runtime":"6.x","classnames":"^2.2.6","css-animation":"^1.3.2","prop-types":"15.x","raf":"^3.4.0","react-lifecycles-compat":"^3.0.4"}},"react":{"version":"16.9.0","resolved":"https://registry.npmjs.org/react/-/react-16.9.0.tgz","integrity":"sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==","requires":{"loose-envify":"^1.1.0","object-assign":"^4.1.1","prop-types":"^15.6.2"}},"react-clone-referenced-element":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/react-clone-referenced-element/download/react-clone-referenced-element-1.1.0.tgz","integrity":"sha1-nN2n8q61T+p5Hzq4xquWx6d9AVg="},"react-deep-force-update":{"version":"1.1.2","resolved":"http://registry.npm.taobao.org/react-deep-force-update/download/react-deep-force-update-1.1.2.tgz","integrity":"sha1-PSrkXCyQQMuxdyvlL46hrebKLuE=","dev":true},"react-devtools-core":{"version":"3.6.3","resolved":"https://registry.npm.taobao.org/react-devtools-core/download/react-devtools-core-3.6.3.tgz","integrity":"sha1-l32VtoTGrSggXwxi4eEsXxZnWBQ=","requires":{"shell-quote":"^1.6.1","ws":"^3.3.1"},"dependencies":{"ultron":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/ultron/download/ultron-1.1.1.tgz","integrity":"sha1-n+FTahCmZKZSZqHjzPhf02MCvJw="},"ws":{"version":"3.3.3","resolved":"https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz?cache=0&sync_timestamp=1576314828024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-3.3.3.tgz","integrity":"sha1-8c+E/i1ekB686U767OeF8YeiKPI=","requires":{"async-limiter":"~1.0.0","safe-buffer":"~5.1.0","ultron":"~1.1.0"}}}},"react-fast-compare":{"version":"2.0.4","resolved":"https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz","integrity":"sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw=="},"react-is":{"version":"16.8.6","resolved":"http://registry.npm.taobao.org/react-is/download/react-is-16.8.6.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.8.6.tgz","integrity":"sha1-W7weLSkUHJ+9/tRWND/ivEMKahY="},"react-lifecycles-compat":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/react-lifecycles-compat/download/react-lifecycles-compat-3.0.4.tgz","integrity":"sha1-TxonOv38jzSIqMUWv9p4+HI1I2I="},"react-native":{"version":"0.61.0","resolved":"http://registry.npm.pt.mi.com/react-native/download/react-native-0.61.0.tgz","integrity":"sha1-6fwGzZl2KVsR9/H3LkuEDw7dXY4=","requires":{"@babel/runtime":"^7.0.0","@react-native-community/cli":"^3.0.0-alpha.1","@react-native-community/cli-platform-android":"^3.0.0-alpha.1","@react-native-community/cli-platform-ios":"^3.0.0-alpha.1","abort-controller":"^3.0.0","art":"^0.10.0","base64-js":"^1.1.2","connect":"^3.6.5","create-react-class":"^15.6.3","escape-string-regexp":"^1.0.5","event-target-shim":"^5.0.1","fbjs":"^1.0.0","fbjs-scripts":"^1.1.0","hermes-engine":"^0.2.1","invariant":"^2.2.4","jsc-android":"^245459.0.0","metro-babel-register":"^0.56.0","metro-react-native-babel-transformer":"^0.56.0","metro-source-map":"^0.56.0","nullthrows":"^1.1.0","pretty-format":"^24.7.0","promise":"^7.1.1","prop-types":"^15.7.2","react-devtools-core":"^3.6.3","react-refresh":"^0.4.0","regenerator-runtime":"^0.13.2","scheduler":"0.15.0","stacktrace-parser":"^0.1.3","whatwg-fetch":"^3.0.0"},"dependencies":{"@react-native-community/cli":{"version":"3.2.1","resolved":"http://registry.npm.pt.mi.com/@react-native-community/cli/download/@react-native-community/cli-3.2.1.tgz","integrity":"sha1-KkZoAetggKH3M1jF10DFPCTtjG8=","requires":{"@hapi/joi":"^15.0.3","@react-native-community/cli-debugger-ui":"^3.0.0","@react-native-community/cli-tools":"^3.0.0","@react-native-community/cli-types":"^3.0.0","chalk":"^2.4.2","command-exists":"^1.2.8","commander":"^2.19.0","compression":"^1.7.1","connect":"^3.6.5","cosmiconfig":"^5.1.0","deepmerge":"^3.2.0","didyoumean":"^1.2.1","envinfo":"^7.1.0","errorhandler":"^1.5.0","execa":"^1.0.0","find-up":"^4.1.0","fs-extra":"^7.0.1","glob":"^7.1.1","graceful-fs":"^4.1.3","inquirer":"^3.0.6","lodash":"^4.17.5","metro":"^0.56.0","metro-config":"^0.56.0","metro-core":"^0.56.0","metro-react-native-babel-transformer":"^0.56.0","minimist":"^1.2.0","mkdirp":"^0.5.1","morgan":"^1.9.0","node-notifier":"^5.2.1","open":"^6.2.0","ora":"^3.4.0","plist":"^3.0.0","pretty-format":"^25.1.0","semver":"^6.3.0","serve-static":"^1.13.1","shell-quote":"1.6.1","strip-ansi":"^5.2.0","sudo-prompt":"^9.0.0","wcwidth":"^1.0.1","ws":"^1.1.0"},"dependencies":{"@jest/types":{"version":"25.5.0","resolved":"http://registry.npm.pt.mi.com/@jest/types/download/@jest/types-25.5.0.tgz","integrity":"sha1-TWpHk/e5WZ/DaAh3uFapfbzPKp0=","requires":{"@types/istanbul-lib-coverage":"^2.0.0","@types/istanbul-reports":"^1.1.1","@types/yargs":"^15.0.0","chalk":"^3.0.0"},"dependencies":{"chalk":{"version":"3.0.0","resolved":"http://registry.npm.pt.mi.com/chalk/download/chalk-3.0.0.tgz","integrity":"sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=","requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}}}},"ansi-styles":{"version":"4.2.1","resolved":"http://registry.npm.pt.mi.com/ansi-styles/download/ansi-styles-4.2.1.tgz","integrity":"sha1-kK51xCTQCNJiTFvynq0xd+v881k=","requires":{"@types/color-name":"^1.1.1","color-convert":"^2.0.1"}},"color-convert":{"version":"2.0.1","resolved":"http://registry.npm.pt.mi.com/color-convert/download/color-convert-2.0.1.tgz","integrity":"sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=","requires":{"color-name":"~1.1.4"}},"has-flag":{"version":"4.0.0","resolved":"http://registry.npm.pt.mi.com/has-flag/download/has-flag-4.0.0.tgz","integrity":"sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s="},"pretty-format":{"version":"25.5.0","resolved":"http://registry.npm.pt.mi.com/pretty-format/download/pretty-format-25.5.0.tgz","integrity":"sha1-eHPB13T2gsNLjUi2dDor8qxVeRo=","requires":{"@jest/types":"^25.5.0","ansi-regex":"^5.0.0","ansi-styles":"^4.0.0","react-is":"^16.12.0"}},"supports-color":{"version":"7.1.0","resolved":"http://registry.npm.pt.mi.com/supports-color/download/supports-color-7.1.0.tgz","integrity":"sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=","requires":{"has-flag":"^4.0.0"}}}},"@types/yargs":{"version":"15.0.5","resolved":"http://registry.npm.pt.mi.com/@types/yargs/download/@types/yargs-15.0.5.tgz","integrity":"sha1-lH6aZWFIO97prf/Jg+kaaQKvi3k=","requires":{"@types/yargs-parser":"*"}},"ansi-regex":{"version":"5.0.0","resolved":"http://registry.npm.pt.mi.com/ansi-regex/download/ansi-regex-5.0.0.tgz","integrity":"sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U="},"ansi-styles":{"version":"3.2.1","resolved":"https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}},"array-unique":{"version":"0.3.2","resolved":"https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="},"babel-plugin-syntax-trailing-function-commas":{"version":"7.0.0-beta.0","resolved":"https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz","integrity":"sha1-qiE8FDXiv/62/KhCKH71NK0F1c8="},"babel-preset-fbjs":{"version":"3.3.0","resolved":"https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz","integrity":"sha1-pgJHZOqGyOBqIteUyotpU00mNUE=","requires":{"@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-syntax-class-properties":"^7.0.0","@babel/plugin-syntax-flow":"^7.0.0","@babel/plugin-syntax-jsx":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/plugin-transform-arrow-functions":"^7.0.0","@babel/plugin-transform-block-scoped-functions":"^7.0.0","@babel/plugin-transform-block-scoping":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-computed-properties":"^7.0.0","@babel/plugin-transform-destructuring":"^7.0.0","@babel/plugin-transform-flow-strip-types":"^7.0.0","@babel/plugin-transform-for-of":"^7.0.0","@babel/plugin-transform-function-name":"^7.0.0","@babel/plugin-transform-literals":"^7.0.0","@babel/plugin-transform-member-expression-literals":"^7.0.0","@babel/plugin-transform-modules-commonjs":"^7.0.0","@babel/plugin-transform-object-super":"^7.0.0","@babel/plugin-transform-parameters":"^7.0.0","@babel/plugin-transform-property-literals":"^7.0.0","@babel/plugin-transform-react-display-name":"^7.0.0","@babel/plugin-transform-react-jsx":"^7.0.0","@babel/plugin-transform-shorthand-properties":"^7.0.0","@babel/plugin-transform-spread":"^7.0.0","@babel/plugin-transform-template-literals":"^7.0.0","babel-plugin-syntax-trailing-function-commas":"^7.0.0-beta.0"}},"braces":{"version":"2.3.2","resolved":"https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz","integrity":"sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=","requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"capture-exit":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz","integrity":"sha1-+5U7+uvreB9iiYI52rtCbQilCaQ=","requires":{"rsvp":"^4.8.4"}},"chalk":{"version":"2.4.2","resolved":"https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz","integrity":"sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=","requires":{"ansi-styles":"^3.2.1","escape-string-regexp":"^1.0.5","supports-color":"^5.3.0"}},"color-name":{"version":"1.1.4","resolved":"http://registry.npm.pt.mi.com/color-name/download/color-name-1.1.4.tgz","integrity":"sha1-wqCah6y95pVD3m9j+jmVyCbFNqI="},"core-js":{"version":"2.6.11","resolved":"https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz","integrity":"sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="},"exec-sh":{"version":"0.3.4","resolved":"https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.4.tgz","integrity":"sha1-OgGM61JsxvbfK7UEsr/o46STTsU="},"expand-brackets":{"version":"2.1.4","resolved":"https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="}}},"extglob":{"version":"2.0.4","resolved":"https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz","integrity":"sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=","requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"fbjs":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/fbjs/download/fbjs-1.0.0.tgz","integrity":"sha1-UsIV4Ig6PIavKnp3btUVJa6OClo=","requires":{"core-js":"^2.4.1","fbjs-css-vars":"^1.0.0","isomorphic-fetch":"^2.1.1","loose-envify":"^1.0.0","object-assign":"^4.1.0","promise":"^7.1.1","setimmediate":"^1.0.5","ua-parser-js":"^0.7.18"}},"fill-range":{"version":"4.0.0","resolved":"https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"find-up":{"version":"4.1.0","resolved":"https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz","integrity":"sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=","requires":{"locate-path":"^5.0.0","path-exists":"^4.0.0"}},"fs-extra":{"version":"7.0.1","resolved":"https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz","integrity":"sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^4.0.0","universalify":"^0.1.0"}},"fsevents":{"version":"1.2.13","resolved":"http://registry.npm.pt.mi.com/fsevents/download/fsevents-1.2.13.tgz","integrity":"sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=","optional":true,"requires":{"bindings":"^1.5.0","nan":"^2.12.1"}},"invariant":{"version":"2.2.4","resolved":"https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz","integrity":"sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=","requires":{"loose-envify":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"jest-haste-map":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.9.0.tgz","integrity":"sha1-s4pdZCdJNOIfpBeump++t3zqrH0=","requires":{"@jest/types":"^24.9.0","anymatch":"^2.0.0","fb-watchman":"^2.0.0","fsevents":"^1.2.7","graceful-fs":"^4.1.15","invariant":"^2.2.4","jest-serializer":"^24.9.0","jest-util":"^24.9.0","jest-worker":"^24.9.0","micromatch":"^3.1.10","sane":"^4.0.3","walker":"^1.0.7"}},"jest-serializer":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz","integrity":"sha1-5tfX75bTHouQeacUdUxdXFgojnM="},"jest-worker":{"version":"24.9.0","resolved":"https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1566444249955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz","integrity":"sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=","requires":{"merge-stream":"^2.0.0","supports-color":"^6.1.0"},"dependencies":{"merge-stream":{"version":"2.0.0","resolved":"https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz","integrity":"sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A="},"supports-color":{"version":"6.1.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz","integrity":"sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=","requires":{"has-flag":"^3.0.0"}}}},"jsonfile":{"version":"4.0.0","resolved":"https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz","integrity":"sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=","requires":{"graceful-fs":"^4.1.6"}},"locate-path":{"version":"5.0.0","resolved":"https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz","integrity":"sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=","requires":{"p-locate":"^4.1.0"}},"metro":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro/download/metro-0.56.4.tgz","integrity":"sha1-vn4TgO5qw1UsJerYCY6rJhAp5Nc=","requires":{"@babel/core":"^7.0.0","@babel/generator":"^7.0.0","@babel/parser":"^7.0.0","@babel/plugin-external-helpers":"^7.0.0","@babel/template":"^7.0.0","@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","absolute-path":"^0.0.0","async":"^2.4.0","babel-preset-fbjs":"^3.1.2","buffer-crc32":"^0.2.13","chalk":"^2.4.1","concat-stream":"^1.6.0","connect":"^3.6.5","debug":"^2.2.0","denodeify":"^1.2.1","eventemitter3":"^3.0.0","fbjs":"^1.0.0","fs-extra":"^1.0.0","graceful-fs":"^4.1.3","image-size":"^0.6.0","invariant":"^2.2.4","jest-haste-map":"^24.7.1","jest-worker":"^24.6.0","json-stable-stringify":"^1.0.1","lodash.throttle":"^4.1.1","merge-stream":"^1.0.1","metro-babel-register":"^0.56.4","metro-babel-transformer":"^0.56.4","metro-cache":"^0.56.4","metro-config":"^0.56.4","metro-core":"^0.56.4","metro-inspector-proxy":"^0.56.4","metro-minify-uglify":"^0.56.4","metro-react-native-babel-preset":"^0.56.4","metro-resolver":"^0.56.4","metro-source-map":"^0.56.4","metro-symbolicate":"^0.56.4","mime-types":"2.1.11","mkdirp":"^0.5.1","node-fetch":"^2.2.0","nullthrows":"^1.1.0","resolve":"^1.5.0","rimraf":"^2.5.4","serialize-error":"^2.1.0","source-map":"^0.5.6","temp":"0.8.3","throat":"^4.1.0","wordwrap":"^1.0.0","write-file-atomic":"^1.2.0","ws":"^1.1.5","xpipe":"^1.0.5","yargs":"^9.0.0"},"dependencies":{"fs-extra":{"version":"1.0.0","resolved":"https://registry.npm.taobao.org/fs-extra/download/fs-extra-1.0.0.tgz","integrity":"sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^2.1.0","klaw":"^1.0.0"}},"jsonfile":{"version":"2.4.0","resolved":"https://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz","integrity":"sha1-NzaitCi4e72gzIO1P6PWM6NcKug=","requires":{"graceful-fs":"^4.1.6"}}}},"metro-cache":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-cache/download/metro-cache-0.56.4.tgz","integrity":"sha1-VC+fijX4+51VdvRv06tNT0KFGn4=","requires":{"jest-serializer":"^24.4.0","metro-core":"^0.56.4","mkdirp":"^0.5.1","rimraf":"^2.5.4"}},"metro-core":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-core/download/metro-core-0.56.4.tgz","integrity":"sha1-Z8xBs8C/ZunCMG9QI5oQgLHoIxI=","requires":{"jest-haste-map":"^24.7.1","lodash.throttle":"^4.1.1","metro-resolver":"^0.56.4","wordwrap":"^1.0.0"}},"metro-minify-uglify":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-minify-uglify/download/metro-minify-uglify-0.56.4.tgz","integrity":"sha1-E1id+x1DNDYIqst/eN38wFLapjw=","requires":{"uglify-es":"^3.1.9"}},"metro-resolver":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-resolver/download/metro-resolver-0.56.4.tgz","integrity":"sha1-mHb1e8o3/Rv8/9czVB4u5KifrX8=","requires":{"absolute-path":"^0.0.0"}},"metro-source-map":{"version":"0.56.4","resolved":"http://registry.npm.pt.mi.com/metro-source-map/download/metro-source-map-0.56.4.tgz","integrity":"sha1-hozKw/NRn+FOyjWLwYb2NlGyubw=","requires":{"@babel/traverse":"^7.0.0","@babel/types":"^7.0.0","invariant":"^2.2.4","metro-symbolicate":"^0.56.4","ob1":"^0.56.4","source-map":"^0.5.6","vlq":"^1.0.0"}},"micromatch":{"version":"3.1.10","resolved":"https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz","integrity":"sha1-cIWbyVyYQJUvNZoGij/En57PrCM=","requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}},"mime-db":{"version":"1.23.0","resolved":"https://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz","integrity":"sha1-oxtAcK2uon1zLqMzdApk0OyaZlk="},"mime-types":{"version":"2.1.11","resolved":"https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz","integrity":"sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=","requires":{"mime-db":"~1.23.0"}},"node-fetch":{"version":"2.6.0","resolved":"https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz","integrity":"sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0="},"p-limit":{"version":"2.3.0","resolved":"http://registry.npm.pt.mi.com/p-limit/download/p-limit-2.3.0.tgz","integrity":"sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=","requires":{"p-try":"^2.0.0"}},"p-locate":{"version":"4.1.0","resolved":"https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz","integrity":"sha1-o0KLtwiLOmApL2aRkni3wpetTwc=","requires":{"p-limit":"^2.2.0"}},"p-try":{"version":"2.2.0","resolved":"https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz","integrity":"sha1-yyhoVA4xPWHeWPr741zpAE1VQOY="},"path-exists":{"version":"4.0.0","resolved":"https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz","integrity":"sha1-UTvb4tO5XXdi6METfvoZXGxhtbM="},"plist":{"version":"3.0.1","resolved":"https://registry.npm.taobao.org/plist/download/plist-3.0.1.tgz","integrity":"sha1-qbkx0XwwTokS7wujvdYYK68uH4w=","requires":{"base64-js":"^1.2.3","xmlbuilder":"^9.0.7","xmldom":"0.1.x"}},"react-is":{"version":"16.13.1","resolved":"http://registry.npm.pt.mi.com/react-is/download/react-is-16.13.1.tgz","integrity":"sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ="},"regenerator-runtime":{"version":"0.13.5","resolved":"http://registry.npm.pt.mi.com/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz","integrity":"sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc="},"rsvp":{"version":"4.8.5","resolved":"https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz","integrity":"sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ="},"sane":{"version":"4.1.0","resolved":"https://registry.npm.taobao.org/sane/download/sane-4.1.0.tgz","integrity":"sha1-7Ygf2SJzOmxGG8GJ3CtsAG8//e0=","requires":{"@cnakazawa/watch":"^1.0.3","anymatch":"^2.0.0","capture-exit":"^2.0.0","exec-sh":"^0.3.2","execa":"^1.0.0","fb-watchman":"^2.0.0","micromatch":"^3.1.4","minimist":"^1.1.1","walker":"~1.0.5"}},"semver":{"version":"6.3.0","resolved":"https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1576601833267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz","integrity":"sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0="},"strip-ansi":{"version":"5.2.0","resolved":"https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz","integrity":"sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=","requires":{"ansi-regex":"^4.1.0"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"http://registry.npm.pt.mi.com/ansi-regex/download/ansi-regex-4.1.0.tgz","integrity":"sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc="}}},"supports-color":{"version":"5.5.0","resolved":"https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1569557271992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz","integrity":"sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=","requires":{"has-flag":"^3.0.0"}},"whatwg-fetch":{"version":"3.0.0","resolved":"https://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-fetch%2Fdownload%2Fwhatwg-fetch-3.0.0.tgz","integrity":"sha1-/IBORYzEYACbGiuWa8iBfSV4rvs="},"xmlbuilder":{"version":"9.0.7","resolved":"https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz","integrity":"sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="}}},"react-native-camera":{"version":"3.15.0","resolved":"https://registry.npm.taobao.org/react-native-camera/download/react-native-camera-3.15.0.tgz","integrity":"sha1-3Yx/z3WzR+CwfB3t66K6R1BP+Ao=","requires":{"prop-types":"^15.6.2"}},"react-native-cli":{"version":"2.0.1","resolved":"https://registry.npmjs.org/react-native-cli/-/react-native-cli-2.0.1.tgz","integrity":"sha1-8s08eqG4OCjN+6Yw4t/YF992bVQ=","dev":true,"requires":{"chalk":"^1.1.1","minimist":"^1.2.0","prompt":"^0.2.14","semver":"^5.0.3"}},"react-native-contacts":{"version":"2.1.3","resolved":"http://registry.npm.taobao.org/react-native-contacts/download/react-native-contacts-2.1.3.tgz","integrity":"sha1-dDtEpLiqhIRZQ5U3g/rCPUcylgw="},"react-native-dismiss-keyboard":{"version":"1.0.0","resolved":"https://registry.npmjs.org/react-native-dismiss-keyboard/-/react-native-dismiss-keyboard-1.0.0.tgz","integrity":"sha1-MohiQrPyMX4SHzrrmwpYXiuHm0k="},"react-native-drawer-layout":{"version":"1.3.2","resolved":"http://registry.npm.taobao.org/react-native-drawer-layout/download/react-native-drawer-layout-1.3.2.tgz","integrity":"sha1-uXQNdmOh3E+IphucbZPS2UjqQm4=","requires":{"react-native-dismiss-keyboard":"1.0.0"}},"react-native-drawer-layout-polyfill":{"version":"1.3.2","resolved":"http://registry.npm.taobao.org/react-native-drawer-layout-polyfill/download/react-native-drawer-layout-polyfill-1.3.2.tgz","integrity":"sha1-GSyE16WmuKbSvix9ql5BZFGNDMc=","requires":{"react-native-drawer-layout":"1.3.2"}},"react-native-image-capinsets":{"version":"0.5.0","resolved":"https://registry.npm.taobao.org/react-native-image-capinsets/download/react-native-image-capinsets-0.5.0.tgz","integrity":"sha1-V3OFdyd59xsP8depaZaimt0CS10="},"react-native-image-picker":{"version":"0.26.10","resolved":"http://registry.npm.taobao.org/react-native-image-picker/download/react-native-image-picker-0.26.10.tgz","integrity":"sha1-C7mrkomElIxnruC55kIWvuAHqfw="},"react-native-indicators":{"version":"0.13.0","resolved":"https://registry.npmjs.org/react-native-indicators/-/react-native-indicators-0.13.0.tgz","integrity":"sha1-ABgku6GUscpuZU2QO+rwFo1Oasg=","requires":{"prop-types":"^15.5.10"}},"react-native-iphone-x-helper":{"version":"1.2.0","resolved":"https://registry.npm.taobao.org/react-native-iphone-x-helper/download/react-native-iphone-x-helper-1.2.0.tgz","integrity":"sha1-n4o3brALxxIRWr/0QgMYoAY/p5Y="},"react-native-linear-gradient":{"version":"2.5.4","resolved":"https://registry.npm.taobao.org/react-native-linear-gradient/download/react-native-linear-gradient-2.5.4.tgz","integrity":"sha1-3OEzUm9aVRCmOa+UVE8e0MmEvR4="},"react-native-nordic-dfu":{"version":"3.0.0","resolved":"https://registry.npmjs.org/react-native-nordic-dfu/-/react-native-nordic-dfu-3.0.0.tgz","integrity":"sha512-sgTvaszz+Pico+hV9ibr6MGNZZd6+pE3jLRCQ9KPZmzHKci4rdrr+tvwSFXsJJ5DxRwmO8vBm2aJ2rHq6ELueg=="},"react-native-orientation":{"version":"3.1.3","resolved":"http://registry.npm.taobao.org/react-native-orientation/download/react-native-orientation-3.1.3.tgz","integrity":"sha1-1FgDhB/pS2zOmsvpBP1coZGjcR4="},"react-native-progress":{"version":"3.5.0","resolved":"https://registry.npmjs.org/react-native-progress/-/react-native-progress-3.5.0.tgz","integrity":"sha512-Tgc002D0BGes1fTlObu/qNItlsTPYKFrF9XRQaJLme77TNxNX9I04sgIz3kaq8O4R+z/jlai64dk1HDEDQhzMA==","requires":{"prop-types":"^15.5.8"}},"react-native-root-siblings":{"version":"4.0.6","resolved":"https://registry.npm.taobao.org/react-native-root-siblings/download/react-native-root-siblings-4.0.6.tgz","integrity":"sha1-bdfu23Jfqs17oZwVndJ5zy5thHY=","requires":{"static-container":"^1.5.1"}},"react-native-root-toast":{"version":"3.2.0","resolved":"https://registry.npm.taobao.org/react-native-root-toast/download/react-native-root-toast-3.2.0.tgz","integrity":"sha1-7s1Qu5FK10FSwASdd/jnyYQuA/o=","requires":{"prop-types":"^15.5.10","react-native-root-siblings":"^4.0.0"}},"react-native-safe-area-view":{"version":"0.11.0","resolved":"http://registry.npm.taobao.org/react-native-safe-area-view/download/react-native-safe-area-view-0.11.0.tgz","integrity":"sha1-Tz3aQ8K6zjeWXnxq71/IPU8Z0XQ=","requires":{"hoist-non-react-statics":"^2.3.1"}},"react-native-safe-module":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/react-native-safe-module/download/react-native-safe-module-1.2.0.tgz","integrity":"sha1-ojgkyiTtwpAZE2lKdmRkdRE9Vw0=","requires":{"dedent":"^0.6.0"}},"react-native-screens":{"version":"1.0.0-alpha.22","resolved":"http://registry.npm.taobao.org/react-native-screens/download/react-native-screens-1.0.0-alpha.22.tgz","integrity":"sha1-ehIDd7Uqqbu5TQuFQaAUAmvpKJs="},"react-native-shadow":{"version":"1.2.2","resolved":"http://registry.npm.taobao.org/react-native-shadow/download/react-native-shadow-1.2.2.tgz","integrity":"sha1-CJkc0Utx4y8vxjY5EcE50jGUmmY="},"react-native-slider":{"version":"0.11.0","resolved":"http://registry.npm.taobao.org/react-native-slider/download/react-native-slider-0.11.0.tgz","integrity":"sha1-tooLxDyEIrJM1XlHzFrCvNtY+tw=","requires":{"prop-types":"^15.5.6"}},"react-native-sqlite-storage":{"version":"3.1.2","resolved":"http://registry.npm.taobao.org/react-native-sqlite-storage/download/react-native-sqlite-storage-3.1.2.tgz","integrity":"sha1-uhiGM4WwOe0lFBgQMlWlFhmf/R8=","requires":{"rnpm":"1.5.2","xcode":"0.8.4"},"dependencies":{"base64-js":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/base64-js/download/base64-js-0.0.6.tgz","integrity":"sha1-e4WfefC7vVWGe6Z6f6s5fiSiCUc="},"bplist-creator":{"version":"0.0.4","resolved":"http://registry.npm.taobao.org/bplist-creator/download/bplist-creator-0.0.4.tgz","integrity":"sha1-SsBJZ4LhJ6hcHSAmpPXrIqev+ZE=","requires":{"stream-buffers":"~0.2.3"}},"bplist-parser":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/bplist-parser/download/bplist-parser-0.0.6.tgz","integrity":"sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk="},"pegjs":{"version":"0.6.2","resolved":"http://registry.npm.taobao.org/pegjs/download/pegjs-0.6.2.tgz","integrity":"sha1-dGUfioAORE22iOTuro7bZWN6F6U="},"plist":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/plist/download/plist-1.1.0.tgz","integrity":"sha1-/2cIWQyXzEOOe8Rd5SUb1yXz+J0=","requires":{"base64-js":"0.0.6","util-deprecate":"1.0.0","xmlbuilder":"2.2.1","xmldom":"0.1.x"}},"simple-plist":{"version":"0.0.4","resolved":"http://registry.npm.taobao.org/simple-plist/download/simple-plist-0.0.4.tgz","integrity":"sha1-f4Y0OLY8t135ndgbgzbXxQdc/As=","requires":{"bplist-creator":"0.0.4","bplist-parser":"0.0.6","plist":"1.1.0"}},"stream-buffers":{"version":"0.2.6","resolved":"http://registry.npm.taobao.org/stream-buffers/download/stream-buffers-0.2.6.tgz","integrity":"sha1-GBwI1bs2kARfaUAbmuanoM8zE/w="},"util-deprecate":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.0.tgz","integrity":"sha1-MAevASwUDq4m3gVXbsInhcrDq/I="},"xcode":{"version":"0.8.4","resolved":"http://registry.npm.taobao.org/xcode/download/xcode-0.8.4.tgz","integrity":"sha1-6CxkZ1/K48sC6c64AdeG3ZASNgQ=","requires":{"node-uuid":"1.3.3","pegjs":"0.6.2","simple-plist":"0.0.4"}},"xmlbuilder":{"version":"2.2.1","resolved":"http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-2.2.1.tgz","integrity":"sha1-kyZDDxMNh0NdTECGZDqikm4QWjI=","requires":{"lodash-node":"~2.4.1"}}}},"react-native-svg":{"version":"9.5.3","resolved":"https://registry.npmjs.org/react-native-svg/-/react-native-svg-9.5.3.tgz","integrity":"sha512-VUOe4TLz7RFdmm/XT9EH87VSwlRykx49qbwJMA+dh9eFM7KPY1qH3kEyN7uRCqJD2eE8toxt9NpjR6ByvtPNlA=="},"react-native-swipeout":{"version":"2.3.6","resolved":"http://registry.npm.taobao.org/react-native-swipeout/download/react-native-swipeout-2.3.6.tgz","integrity":"sha1-R9rIqDWCXPPy7vnklVdKPZq20/o=","requires":{"create-react-class":"^15.6.0","prop-types":"^15.5.10","react-tween-state":"^0.1.5"}},"react-native-swiper":{"version":"1.6.0-nightly.5","resolved":"https://registry.npmjs.org/react-native-swiper/-/react-native-swiper-1.6.0-nightly.5.tgz","integrity":"sha512-0siIUvD7FcGPSjRtsMyTWWmosUA+kJNT0WbJ0lf3Drp8vxeuWAg5kSmvQO+dJpISugcBWpfBc0OBDC5fBl+DsA==","requires":{"prop-types":"^15.5.10"}},"react-native-tab-view":{"version":"0.0.77","resolved":"http://registry.npm.taobao.org/react-native-tab-view/download/react-native-tab-view-0.0.77.tgz","integrity":"sha1-Ec6458IxANB+Yo3BUbV3l1JNANQ=","requires":{"prop-types":"^15.6.0"}},"react-native-ui-kitten":{"version":"3.1.2","resolved":"http://registry.npm.taobao.org/react-native-ui-kitten/download/react-native-ui-kitten-3.1.2.tgz","integrity":"sha1-fQx3EQK+TgLZrTsYFUrrmLvXBFE=","requires":{"hoist-non-react-statics":"^2.0.0","lodash":"4.17.10","prop-types":"^15.5.10"},"dependencies":{"lodash":{"version":"4.17.10","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-4.17.10.tgz","integrity":"sha1-G3eTz3JZ6jj7NmHU04syYK+K5Oc="}}},"react-native-video":{"version":"4.4.4","resolved":"https://registry.npm.taobao.org/react-native-video/download/react-native-video-4.4.4.tgz","integrity":"sha1-4z2imZBVapstV11rLogZD8BNm1A=","requires":{"keymirror":"^0.1.1","prop-types":"^15.5.10","shaka-player":"^2.4.4"}},"react-native-webview":{"version":"7.4.3","resolved":"https://registry.npmjs.org/react-native-webview/-/react-native-webview-7.4.3.tgz","integrity":"sha512-4n72B2D7n1xOQSoCSD1qk9D7JksyT4d6nk8QG9guZKZn3KXQL5EejwE2yhh1TxZRQpr+OD3a96rb+rA/UEnvrQ==","requires":{"escape-string-regexp":"2.0.0","invariant":"2.2.4"},"dependencies":{"escape-string-regexp":{"version":"2.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz","integrity":"sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="},"invariant":{"version":"2.2.4","resolved":"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz","integrity":"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==","requires":{"loose-envify":"^1.0.0"}}}},"react-navigation":{"version":"2.16.0","resolved":"http://registry.npm.taobao.org/react-navigation/download/react-navigation-2.16.0.tgz","integrity":"sha1-m5MggBcAuqxQ5J6HpjZBpN8XkjA=","requires":{"clamp":"^1.0.1","create-react-context":"0.2.2","hoist-non-react-statics":"^2.2.0","path-to-regexp":"^1.7.0","query-string":"^6.1.0","react-lifecycles-compat":"^3","react-native-safe-area-view":"0.11.0","react-native-screens":"^1.0.0-alpha.11","react-navigation-deprecated-tab-navigator":"1.3.0","react-navigation-drawer":"0.5.0","react-navigation-stack":"0.6.0","react-navigation-tabs":"0.8.2"}},"react-navigation-deprecated-tab-navigator":{"version":"1.3.0","resolved":"http://registry.npm.taobao.org/react-navigation-deprecated-tab-navigator/download/react-navigation-deprecated-tab-navigator-1.3.0.tgz","integrity":"sha1-AV3K4el3uYTKfpkkUmHBVDkCa7c=","requires":{"react-native-tab-view":"^0.0.77"}},"react-navigation-drawer":{"version":"0.5.0","resolved":"http://registry.npm.taobao.org/react-navigation-drawer/download/react-navigation-drawer-0.5.0.tgz","integrity":"sha1-2RtqbsZcNLp4wA+BSx5lCJIsyew=","requires":{"react-native-drawer-layout-polyfill":"^1.3.2"}},"react-navigation-stack":{"version":"0.6.0","resolved":"http://registry.npm.taobao.org/react-navigation-stack/download/react-navigation-stack-0.6.0.tgz","integrity":"sha1-V90l0JAhN7lQeVVJxD82COntwlA="},"react-navigation-tabs":{"version":"0.8.2","resolved":"http://registry.npm.taobao.org/react-navigation-tabs/download/react-navigation-tabs-0.8.2.tgz","integrity":"sha1-ZfimzjaGhCJ2AzRbTTEtou8zZuE=","requires":{"hoist-non-react-statics":"^2.5.0","prop-types":"^15.6.1","react-lifecycles-compat":"^3.0.4","react-native-tab-view":"^1.0.0"},"dependencies":{"react-native-tab-view":{"version":"1.3.4","resolved":"http://registry.npm.taobao.org/react-native-tab-view/download/react-native-tab-view-1.3.4.tgz","integrity":"sha1-Y/w+sJZSZR0OoOAWz/DzpeU19N4=","requires":{"prop-types":"^15.6.1"}}}},"react-proxy":{"version":"1.1.8","resolved":"http://registry.npm.taobao.org/react-proxy/download/react-proxy-1.1.8.tgz","integrity":"sha1-nb/Z2SdSjDqp9ETkVYw3gwq4wmo=","dev":true,"requires":{"lodash":"^4.6.1","react-deep-force-update":"^1.0.0"}},"react-refresh":{"version":"0.4.2","resolved":"https://registry.npm.taobao.org/react-refresh/download/react-refresh-0.4.2.tgz","integrity":"sha1-VKJ3psqqwoA9iPHW8Twdz72B4zQ="},"react-timer-mixin":{"version":"0.13.4","resolved":"http://registry.npm.taobao.org/react-timer-mixin/download/react-timer-mixin-0.13.4.tgz","integrity":"sha1-daAMPJTBOr4ptD1jtMZaiPyCZNM="},"react-transform-hmr":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/react-transform-hmr/download/react-transform-hmr-1.0.4.tgz","integrity":"sha1-4aQL0Krvxy6N/Xp82gmvhQZjl7s=","dev":true,"requires":{"global":"^4.3.0","react-proxy":"^1.1.7"}},"react-tween-state":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/react-tween-state/download/react-tween-state-0.1.5.tgz","integrity":"sha1-6YsGZVHvuTy5LdG+FJlcLj3q4zk=","requires":{"raf":"^3.1.0","tween-functions":"^1.0.1"}},"read":{"version":"1.0.7","resolved":"https://registry.npmjs.org/read/-/read-1.0.7.tgz","integrity":"sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=","dev":true,"requires":{"mute-stream":"~0.0.4"}},"read-all-stream":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/read-all-stream/download/read-all-stream-3.1.0.tgz","integrity":"sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=","requires":{"pinkie-promise":"^2.0.0","readable-stream":"^2.0.0"}},"read-pkg":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz","integrity":"sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=","requires":{"load-json-file":"^2.0.0","normalize-package-data":"^2.3.2","path-type":"^2.0.0"}},"read-pkg-up":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz","integrity":"sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=","requires":{"find-up":"^2.0.0","read-pkg":"^2.0.0"}},"readable-stream":{"version":"2.3.6","resolved":"http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz","integrity":"sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=","requires":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"}},"readline2":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/readline2/download/readline2-1.0.1.tgz","integrity":"sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","mute-stream":"0.0.5"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"mute-stream":{"version":"0.0.5","resolved":"http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.5.tgz","integrity":"sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="}}},"reduce-extract":{"version":"1.0.0","resolved":"https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz","integrity":"sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=","dev":true,"requires":{"test-value":"^1.0.1"},"dependencies":{"array-back":{"version":"1.0.4","resolved":"https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz","integrity":"sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=","dev":true,"requires":{"typical":"^2.6.0"}},"test-value":{"version":"1.1.0","resolved":"https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz","integrity":"sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=","dev":true,"requires":{"array-back":"^1.0.2","typical":"^2.4.2"}}}},"reduce-flatten":{"version":"1.0.1","resolved":"https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz","integrity":"sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=","dev":true},"reduce-unique":{"version":"1.0.0","resolved":"https://registry.npmjs.org/reduce-unique/-/reduce-unique-1.0.0.tgz","integrity":"sha1-flhrz4ek4ytter2Cd/rWzeyfSAM=","dev":true},"reduce-without":{"version":"1.0.1","resolved":"https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz","integrity":"sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=","dev":true,"requires":{"test-value":"^2.0.0"},"dependencies":{"array-back":{"version":"1.0.4","resolved":"https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz","integrity":"sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=","dev":true,"requires":{"typical":"^2.6.0"}},"test-value":{"version":"2.1.0","resolved":"https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz","integrity":"sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=","dev":true,"requires":{"array-back":"^1.0.3","typical":"^2.6.0"}}}},"regenerate":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz","integrity":"sha1-SoVuxLVuQHfFV1icroXnpMiGmhE="},"regenerate-unicode-properties":{"version":"8.1.0","resolved":"https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz","integrity":"sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==","requires":{"regenerate":"^1.4.0"}},"regenerator-runtime":{"version":"0.11.1","resolved":"http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz","integrity":"sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="},"regenerator-transform":{"version":"0.13.4","resolved":"http://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.13.4.tgz","integrity":"sha1-GPZ2PPE4LGnDbfdsbOEizGlChPs=","requires":{"private":"^0.1.6"}},"regex-cache":{"version":"0.4.4","resolved":"http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz","integrity":"sha1-db3FiioUls7EihKDW8VMjVYjNt0=","dev":true,"requires":{"is-equal-shallow":"^0.1.3"}},"regex-not":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz","integrity":"sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=","requires":{"extend-shallow":"^3.0.2","safe-regex":"^1.1.0"},"dependencies":{"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"}},"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"regexp.prototype.flags":{"version":"1.2.0","resolved":"https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz","integrity":"sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==","dev":true,"requires":{"define-properties":"^1.1.2"}},"regexpp":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz","integrity":"sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=","dev":true},"regexpu-core":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz","integrity":"sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=","dev":true,"requires":{"regenerate":"^1.2.1","regjsgen":"^0.2.0","regjsparser":"^0.1.4"}},"registry-auth-token":{"version":"3.4.0","resolved":"http://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-3.4.0.tgz","integrity":"sha1-10RoFUM/XV7WQxzV3KIQSPZrOX4=","requires":{"rc":"^1.1.6","safe-buffer":"^5.0.1"}},"registry-url":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/registry-url/download/registry-url-3.1.0.tgz","integrity":"sha1-PU74cPc93h138M+aOBQyRE4XSUI=","requires":{"rc":"^1.0.1"}},"regjsgen":{"version":"0.2.0","resolved":"http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz","integrity":"sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=","dev":true},"regjsparser":{"version":"0.1.5","resolved":"http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz","integrity":"sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=","dev":true,"requires":{"jsesc":"~0.5.0"},"dependencies":{"jsesc":{"version":"0.5.0","resolved":"http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz","integrity":"sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=","dev":true}}},"remove-trailing-separator":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz","integrity":"sha1-wkvOKig62tW8P1jg1IJJuSN52O8="},"repeat-element":{"version":"1.1.3","resolved":"http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz","integrity":"sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4="},"repeat-string":{"version":"1.6.1","resolved":"http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz","integrity":"sha1-jcrkcOHIirwtYA//Sndihtp15jc="},"repeating":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz","integrity":"sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=","requires":{"is-finite":"^1.0.0"}},"request":{"version":"2.88.0","resolved":"http://registry.npm.taobao.org/request/download/request-2.88.0.tgz","integrity":"sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=","dev":true,"requires":{"aws-sign2":"~0.7.0","aws4":"^1.8.0","caseless":"~0.12.0","combined-stream":"~1.0.6","extend":"~3.0.2","forever-agent":"~0.6.1","form-data":"~2.3.2","har-validator":"~5.1.0","http-signature":"~1.2.0","is-typedarray":"~1.0.0","isstream":"~0.1.2","json-stringify-safe":"~5.0.1","mime-types":"~2.1.19","oauth-sign":"~0.9.0","performance-now":"^2.1.0","qs":"~6.5.2","safe-buffer":"^5.1.2","tough-cookie":"~2.4.3","tunnel-agent":"^0.6.0","uuid":"^3.3.2"}},"require-directory":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz","integrity":"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="},"require-main-filename":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz","integrity":"sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="},"requizzle":{"version":"0.2.3","resolved":"https://registry.npm.taobao.org/requizzle/download/requizzle-0.2.3.tgz","integrity":"sha1-RnXJCqyvssA2vTm6LapKHLd3/e0=","requires":{"lodash":"^4.17.14"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&sync_timestamp=1571657272199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz","integrity":"sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="}}},"resolve":{"version":"1.10.0","resolved":"http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz","integrity":"sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=","requires":{"path-parse":"^1.0.6"}},"resolve-from":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz","integrity":"sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=","dev":true},"resolve-url":{"version":"0.2.1","resolved":"http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz","integrity":"sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="},"restore-cursor":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz","integrity":"sha1-n37ih/gv0ybU/RYpI9YhKe7g368=","requires":{"onetime":"^2.0.0","signal-exit":"^3.0.2"}},"ret":{"version":"0.1.15","resolved":"http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz","integrity":"sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w="},"revalidator":{"version":"0.1.8","resolved":"https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz","integrity":"sha1-/s5hv6DBtSoga9axgZgYS91SOjs=","dev":true},"rewire":{"version":"2.5.2","resolved":"http://registry.npm.taobao.org/rewire/download/rewire-2.5.2.tgz","integrity":"sha1-ZCfee3/u+n02QBUH62SlOFvFjcc="},"rimraf":{"version":"2.6.3","resolved":"http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz","integrity":"sha1-stEE/g2Psnz54KHNqCYt04M8bKs=","requires":{"glob":"^7.1.3"}},"rmc-date-picker":{"version":"6.0.8","resolved":"http://registry.npm.taobao.org/rmc-date-picker/download/rmc-date-picker-6.0.8.tgz","integrity":"sha1-mquHs6qNycWlc0nY8LBd5Oj0gIo=","requires":{"babel-runtime":"6.x","rmc-picker":"~5.0.0"}},"rmc-dialog":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/rmc-dialog/download/rmc-dialog-1.1.1.tgz","integrity":"sha1-HX+8ayytWwtT+6tx/iljbXb3ghc=","requires":{"babel-runtime":"6.x","rc-animate":"2.x"}},"rmc-feedback":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/rmc-feedback/download/rmc-feedback-2.0.0.tgz","integrity":"sha1-y8bLOuY8emNe7w4l5PuvWsNm7qo=","requires":{"babel-runtime":"6.x","classnames":"^2.2.5"}},"rmc-picker":{"version":"5.0.5","resolved":"http://registry.npm.taobao.org/rmc-picker/download/rmc-picker-5.0.5.tgz","integrity":"sha1-KjMkTO0fTmsQYR/24DhKXbv8Vm4=","requires":{"babel-runtime":"6.x","classnames":"^2.2.0","rmc-dialog":"^1.0.1","rmc-feedback":"^2.0.0"}},"rnpm":{"version":"1.5.2","resolved":"http://registry.npm.taobao.org/rnpm/download/rnpm-1.5.2.tgz","integrity":"sha1-FmPUzgh1lEbMS3tutCo5HwqzNo0=","requires":{"commander":"^2.9.0","glob":"^6.0.1","lodash":"^3.10.1","rnpm-plugin-install":"^1.0.0","rnpm-plugin-link":"^1.6.0","update-notifier":"^0.6.0","xmldoc":"^0.4.0"},"dependencies":{"glob":{"version":"6.0.4","resolved":"http://registry.npm.taobao.org/glob/download/glob-6.0.4.tgz","integrity":"sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=","requires":{"inflight":"^1.0.4","inherits":"2","minimatch":"2 || 3","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"lodash":{"version":"3.10.1","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-3.10.1.tgz","integrity":"sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="}}},"rnpm-plugin-install":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/rnpm-plugin-install/download/rnpm-plugin-install-1.1.0.tgz","integrity":"sha1-WkbKvyxSPlmmAGM3yW9GxPK/r2k=","requires":{"npmlog":"^2.0.2"}},"rnpm-plugin-link":{"version":"1.8.0","resolved":"http://registry.npm.taobao.org/rnpm-plugin-link/download/rnpm-plugin-link-1.8.0.tgz","integrity":"sha1-V6/lz8GMyjruDYodwlPSjtr7WTw=","requires":{"fs-extra":"^0.26.2","glob":"^7.0.0","inquirer":"^0.12.0","lodash":"^3.10.1","mime":"^1.3.4","mock-fs":"^3.9.0","npmlog":"^2.0.0","plist":"^1.2.0","semver":"^5.1.0","to-camel-case":"^1.0.0","xcode":"^0.8.8"},"dependencies":{"ansi-escapes":{"version":"1.4.0","resolved":"http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz","integrity":"sha1-06ioOzGapneTZisT52HHkRQiMG4="},"bplist-creator":{"version":"0.0.4","resolved":"http://registry.npm.taobao.org/bplist-creator/download/bplist-creator-0.0.4.tgz","integrity":"sha1-SsBJZ4LhJ6hcHSAmpPXrIqev+ZE=","requires":{"stream-buffers":"~0.2.3"}},"bplist-parser":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/bplist-parser/download/bplist-parser-0.0.6.tgz","integrity":"sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk="},"cli-cursor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz","integrity":"sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=","requires":{"restore-cursor":"^1.0.1"}},"figures":{"version":"1.7.0","resolved":"http://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz","integrity":"sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=","requires":{"escape-string-regexp":"^1.0.5","object-assign":"^4.1.0"}},"fs-extra":{"version":"0.26.7","resolved":"http://registry.npm.taobao.org/fs-extra/download/fs-extra-0.26.7.tgz","integrity":"sha1-muH92UiXeY7at20JGM9C0MMYT6k=","requires":{"graceful-fs":"^4.1.2","jsonfile":"^2.1.0","klaw":"^1.0.0","path-is-absolute":"^1.0.0","rimraf":"^2.2.8"}},"inquirer":{"version":"0.12.0","resolved":"http://registry.npm.taobao.org/inquirer/download/inquirer-0.12.0.tgz","integrity":"sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=","requires":{"ansi-escapes":"^1.1.0","ansi-regex":"^2.0.0","chalk":"^1.0.0","cli-cursor":"^1.0.1","cli-width":"^2.0.0","figures":"^1.3.5","lodash":"^4.3.0","readline2":"^1.0.1","run-async":"^0.1.0","rx-lite":"^3.1.2","string-width":"^1.0.1","strip-ansi":"^3.0.0","through":"^2.3.6"},"dependencies":{"lodash":{"version":"4.17.11","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz","integrity":"sha1-s56mIp72B+zYniyN8SU2iRysm40="}}},"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"lodash":{"version":"3.10.1","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-3.10.1.tgz","integrity":"sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="},"node-uuid":{"version":"1.4.7","resolved":"http://registry.npm.taobao.org/node-uuid/download/node-uuid-1.4.7.tgz","integrity":"sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8="},"onetime":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz","integrity":"sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="},"pegjs":{"version":"0.9.0","resolved":"http://registry.npm.taobao.org/pegjs/download/pegjs-0.9.0.tgz","integrity":"sha1-9q76LjzlYWkgjlIXnf5B+JFBo2k="},"restore-cursor":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz","integrity":"sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=","requires":{"exit-hook":"^1.0.0","onetime":"^1.0.0"}},"run-async":{"version":"0.1.0","resolved":"http://registry.npm.taobao.org/run-async/download/run-async-0.1.0.tgz","integrity":"sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=","requires":{"once":"^1.3.0"}},"rx-lite":{"version":"3.1.2","resolved":"http://registry.npm.taobao.org/rx-lite/download/rx-lite-3.1.2.tgz","integrity":"sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="},"simple-plist":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/simple-plist/download/simple-plist-0.1.4.tgz","integrity":"sha1-EOtRtH4zxVbrjsRtXuZNZOcX210=","requires":{"bplist-creator":"0.0.4","bplist-parser":"0.0.6","plist":"1.2.0"}},"stream-buffers":{"version":"0.2.6","resolved":"http://registry.npm.taobao.org/stream-buffers/download/stream-buffers-0.2.6.tgz","integrity":"sha1-GBwI1bs2kARfaUAbmuanoM8zE/w="},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}},"xcode":{"version":"0.8.9","resolved":"http://registry.npm.taobao.org/xcode/download/xcode-0.8.9.tgz","integrity":"sha1-7Gdl9w6dzMzJ9umlubTn6BS0zzU=","requires":{"node-uuid":"1.4.7","pegjs":"0.9.0","simple-plist":"0.1.4"}}}},"rsvp":{"version":"3.6.2","resolved":"http://registry.npm.taobao.org/rsvp/download/rsvp-3.6.2.tgz","integrity":"sha1-LpZJFZmpbN4bUV1WdKj3qRRSkmo=","dev":true},"run-async":{"version":"2.3.0","resolved":"http://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz","integrity":"sha1-A3GrSuC91yDUFm19/aZP96RFpsA=","requires":{"is-promise":"^2.1.0"}},"rx-lite":{"version":"4.0.8","resolved":"http://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz","integrity":"sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="},"rx-lite-aggregates":{"version":"4.0.8","resolved":"http://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz","integrity":"sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=","requires":{"rx-lite":"*"}},"rxjs":{"version":"6.4.0","resolved":"http://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.4.0.tgz","integrity":"sha1-87sP572n+2nerAwW8XtQsLh5BQQ=","dev":true,"requires":{"tslib":"^1.9.0"}},"safe-buffer":{"version":"5.1.2","resolved":"http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz","integrity":"sha1-mR7GnSluAxN0fVm9/St0XDX4go0="},"safe-regex":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz","integrity":"sha1-QKNmnzsHfR6UPURinhV91IAjvy4=","requires":{"ret":"~0.1.10"}},"safer-buffer":{"version":"2.1.2","resolved":"http://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz","integrity":"sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="},"sane":{"version":"2.5.2","resolved":"http://registry.npm.taobao.org/sane/download/sane-2.5.2.tgz","integrity":"sha1-tNwYYcIbQn6SlQej51HiosuKs/o=","dev":true,"requires":{"anymatch":"^2.0.0","capture-exit":"^1.2.0","exec-sh":"^0.2.0","fb-watchman":"^2.0.0","fsevents":"^1.2.3","micromatch":"^3.1.4","minimist":"^1.1.1","walker":"~1.0.5","watch":"~0.18.0"},"dependencies":{"arr-diff":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz","integrity":"sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=","dev":true},"array-unique":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz","integrity":"sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=","dev":true},"braces":{"version":"2.3.2","resolved":"http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz","integrity":"sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=","dev":true,"requires":{"arr-flatten":"^1.1.0","array-unique":"^0.3.2","extend-shallow":"^2.0.1","fill-range":"^4.0.0","isobject":"^3.0.1","repeat-element":"^1.1.2","snapdragon":"^0.8.1","snapdragon-node":"^2.0.1","split-string":"^3.0.2","to-regex":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","dev":true,"requires":{"is-extendable":"^0.1.0"}}}},"expand-brackets":{"version":"2.1.4","resolved":"http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz","integrity":"sha1-t3c14xXOMPa27/D4OwQVGiJEliI=","dev":true,"requires":{"debug":"^2.3.3","define-property":"^0.2.5","extend-shallow":"^2.0.1","posix-character-classes":"^0.1.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","dev":true,"requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","dev":true,"requires":{"is-extendable":"^0.1.0"}},"is-accessor-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz","integrity":"sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=","dev":true,"requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"is-data-descriptor":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz","integrity":"sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=","dev":true,"requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"is-descriptor":{"version":"0.1.6","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz","integrity":"sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=","dev":true,"requires":{"is-accessor-descriptor":"^0.1.6","is-data-descriptor":"^0.1.4","kind-of":"^5.0.0"}},"kind-of":{"version":"5.1.0","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz","integrity":"sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=","dev":true}}},"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","dev":true,"requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"},"dependencies":{"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","dev":true,"requires":{"is-plain-object":"^2.0.4"}}}},"extglob":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz","integrity":"sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=","dev":true,"requires":{"array-unique":"^0.3.2","define-property":"^1.0.0","expand-brackets":"^2.1.4","extend-shallow":"^2.0.1","fragment-cache":"^0.2.1","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","dev":true,"requires":{"is-descriptor":"^1.0.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","dev":true,"requires":{"is-extendable":"^0.1.0"}}}},"fill-range":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz","integrity":"sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=","dev":true,"requires":{"extend-shallow":"^2.0.1","is-number":"^3.0.0","repeat-string":"^1.6.1","to-regex-range":"^2.1.0"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","dev":true,"requires":{"is-extendable":"^0.1.0"}}}},"fsevents":{"version":"1.2.9","resolved":"https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz?cache=0&sync_timestamp=1573319284429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.9.tgz","integrity":"sha1-P17WZYPM1vQAtaANtvfoYTY+OI8=","dev":true,"optional":true,"requires":{"nan":"^2.12.1","node-pre-gyp":"^0.12.0"},"dependencies":{"abbrev":{"version":"1.1.1","bundled":true,"dev":true,"optional":true},"ansi-regex":{"version":"2.1.1","bundled":true,"dev":true,"optional":true},"aproba":{"version":"1.2.0","bundled":true,"dev":true,"optional":true},"are-we-there-yet":{"version":"1.1.5","bundled":true,"dev":true,"optional":true,"requires":{"delegates":"^1.0.0","readable-stream":"^2.0.6"}},"balanced-match":{"version":"1.0.0","bundled":true,"dev":true,"optional":true},"brace-expansion":{"version":"1.1.11","bundled":true,"dev":true,"optional":true,"requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"chownr":{"version":"1.1.1","bundled":true,"dev":true,"optional":true},"code-point-at":{"version":"1.1.0","bundled":true,"dev":true,"optional":true},"concat-map":{"version":"0.0.1","bundled":true,"dev":true,"optional":true},"console-control-strings":{"version":"1.1.0","bundled":true,"dev":true,"optional":true},"core-util-is":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"debug":{"version":"4.1.1","bundled":true,"dev":true,"optional":true,"requires":{"ms":"^2.1.1"}},"deep-extend":{"version":"0.6.0","bundled":true,"dev":true,"optional":true},"delegates":{"version":"1.0.0","bundled":true,"dev":true,"optional":true},"detect-libc":{"version":"1.0.3","bundled":true,"dev":true,"optional":true},"fs-minipass":{"version":"1.2.5","bundled":true,"dev":true,"optional":true,"requires":{"minipass":"^2.2.1"}},"fs.realpath":{"version":"1.0.0","bundled":true,"dev":true,"optional":true},"gauge":{"version":"2.7.4","bundled":true,"dev":true,"optional":true,"requires":{"aproba":"^1.0.3","console-control-strings":"^1.0.0","has-unicode":"^2.0.0","object-assign":"^4.1.0","signal-exit":"^3.0.0","string-width":"^1.0.1","strip-ansi":"^3.0.1","wide-align":"^1.1.0"}},"glob":{"version":"7.1.3","bundled":true,"dev":true,"optional":true,"requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.0.4","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"has-unicode":{"version":"2.0.1","bundled":true,"dev":true,"optional":true},"iconv-lite":{"version":"0.4.24","bundled":true,"dev":true,"optional":true,"requires":{"safer-buffer":">= 2.1.2 < 3"}},"ignore-walk":{"version":"3.0.1","bundled":true,"dev":true,"optional":true,"requires":{"minimatch":"^3.0.4"}},"inflight":{"version":"1.0.6","bundled":true,"dev":true,"optional":true,"requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.3","bundled":true,"dev":true,"optional":true},"ini":{"version":"1.3.5","bundled":true,"dev":true,"optional":true},"is-fullwidth-code-point":{"version":"1.0.0","bundled":true,"dev":true,"optional":true,"requires":{"number-is-nan":"^1.0.0"}},"isarray":{"version":"1.0.0","bundled":true,"dev":true,"optional":true},"minimatch":{"version":"3.0.4","bundled":true,"dev":true,"optional":true,"requires":{"brace-expansion":"^1.1.7"}},"minimist":{"version":"0.0.8","bundled":true,"dev":true,"optional":true},"minipass":{"version":"2.3.5","bundled":true,"dev":true,"optional":true,"requires":{"safe-buffer":"^5.1.2","yallist":"^3.0.0"}},"minizlib":{"version":"1.2.1","bundled":true,"dev":true,"optional":true,"requires":{"minipass":"^2.2.1"}},"mkdirp":{"version":"0.5.1","bundled":true,"dev":true,"optional":true,"requires":{"minimist":"0.0.8"}},"ms":{"version":"2.1.1","bundled":true,"dev":true,"optional":true},"needle":{"version":"2.3.0","bundled":true,"dev":true,"optional":true,"requires":{"debug":"^4.1.0","iconv-lite":"^0.4.4","sax":"^1.2.4"}},"node-pre-gyp":{"version":"0.12.0","bundled":true,"dev":true,"optional":true,"requires":{"detect-libc":"^1.0.2","mkdirp":"^0.5.1","needle":"^2.2.1","nopt":"^4.0.1","npm-packlist":"^1.1.6","npmlog":"^4.0.2","rc":"^1.2.7","rimraf":"^2.6.1","semver":"^5.3.0","tar":"^4"}},"nopt":{"version":"4.0.1","bundled":true,"dev":true,"optional":true,"requires":{"abbrev":"1","osenv":"^0.1.4"}},"npm-bundled":{"version":"1.0.6","bundled":true,"dev":true,"optional":true},"npm-packlist":{"version":"1.4.1","bundled":true,"dev":true,"optional":true,"requires":{"ignore-walk":"^3.0.1","npm-bundled":"^1.0.1"}},"npmlog":{"version":"4.1.2","bundled":true,"dev":true,"optional":true,"requires":{"are-we-there-yet":"~1.1.2","console-control-strings":"~1.1.0","gauge":"~2.7.3","set-blocking":"~2.0.0"}},"number-is-nan":{"version":"1.0.1","bundled":true,"dev":true,"optional":true},"object-assign":{"version":"4.1.1","bundled":true,"dev":true,"optional":true},"once":{"version":"1.4.0","bundled":true,"dev":true,"optional":true,"requires":{"wrappy":"1"}},"os-homedir":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"os-tmpdir":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"osenv":{"version":"0.1.5","bundled":true,"dev":true,"optional":true,"requires":{"os-homedir":"^1.0.0","os-tmpdir":"^1.0.0"}},"path-is-absolute":{"version":"1.0.1","bundled":true,"dev":true,"optional":true},"process-nextick-args":{"version":"2.0.0","bundled":true,"dev":true,"optional":true},"rc":{"version":"1.2.8","bundled":true,"dev":true,"optional":true,"requires":{"deep-extend":"^0.6.0","ini":"~1.3.0","minimist":"^1.2.0","strip-json-comments":"~2.0.1"},"dependencies":{"minimist":{"version":"1.2.0","bundled":true,"dev":true,"optional":true}}},"readable-stream":{"version":"2.3.6","bundled":true,"dev":true,"optional":true,"requires":{"core-util-is":"~1.0.0","inherits":"~2.0.3","isarray":"~1.0.0","process-nextick-args":"~2.0.0","safe-buffer":"~5.1.1","string_decoder":"~1.1.1","util-deprecate":"~1.0.1"}},"rimraf":{"version":"2.6.3","bundled":true,"dev":true,"optional":true,"requires":{"glob":"^7.1.3"}},"safe-buffer":{"version":"5.1.2","bundled":true,"dev":true,"optional":true},"safer-buffer":{"version":"2.1.2","bundled":true,"dev":true,"optional":true},"sax":{"version":"1.2.4","bundled":true,"dev":true,"optional":true},"semver":{"version":"5.7.0","bundled":true,"dev":true,"optional":true},"set-blocking":{"version":"2.0.0","bundled":true,"dev":true,"optional":true},"signal-exit":{"version":"3.0.2","bundled":true,"dev":true,"optional":true},"string-width":{"version":"1.0.2","bundled":true,"dev":true,"optional":true,"requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}},"string_decoder":{"version":"1.1.1","bundled":true,"dev":true,"optional":true,"requires":{"safe-buffer":"~5.1.0"}},"strip-ansi":{"version":"3.0.1","bundled":true,"dev":true,"optional":true,"requires":{"ansi-regex":"^2.0.0"}},"strip-json-comments":{"version":"2.0.1","bundled":true,"dev":true,"optional":true},"tar":{"version":"4.4.8","bundled":true,"dev":true,"optional":true,"requires":{"chownr":"^1.1.1","fs-minipass":"^1.2.5","minipass":"^2.3.4","minizlib":"^1.1.1","mkdirp":"^0.5.0","safe-buffer":"^5.1.2","yallist":"^3.0.2"}},"util-deprecate":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"wide-align":{"version":"1.1.3","bundled":true,"dev":true,"optional":true,"requires":{"string-width":"^1.0.2 || 2"}},"wrappy":{"version":"1.0.2","bundled":true,"dev":true,"optional":true},"yallist":{"version":"3.0.3","bundled":true,"dev":true,"optional":true}}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","dev":true,"requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","dev":true,"requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","dev":true,"requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"is-number":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","dev":true,"requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","dev":true,"requires":{"is-buffer":"^1.1.5"}}}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8=","dev":true},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE=","dev":true},"micromatch":{"version":"3.1.10","resolved":"http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz","integrity":"sha1-cIWbyVyYQJUvNZoGij/En57PrCM=","dev":true,"requires":{"arr-diff":"^4.0.0","array-unique":"^0.3.2","braces":"^2.3.1","define-property":"^2.0.2","extend-shallow":"^3.0.2","extglob":"^2.0.4","fragment-cache":"^0.2.1","kind-of":"^6.0.2","nanomatch":"^1.2.9","object.pick":"^1.3.0","regex-not":"^1.0.0","snapdragon":"^0.8.1","to-regex":"^3.0.2"}}}},"sax":{"version":"1.1.6","resolved":"http://registry.npm.taobao.org/sax/download/sax-1.1.6.tgz","integrity":"sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA="},"scheduler":{"version":"0.15.0","resolved":"https://registry.npm.taobao.org/scheduler/download/scheduler-0.15.0.tgz","integrity":"sha1-a/z4D/hQsoD+1K7sxlE7wLTxf44=","requires":{"loose-envify":"^1.1.0","object-assign":"^4.1.1"}},"seedrandom":{"version":"2.4.3","resolved":"http://registry.npm.taobao.org/seedrandom/download/seedrandom-2.4.3.tgz","integrity":"sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw="},"semver":{"version":"5.7.0","resolved":"http://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.0.tgz","integrity":"sha1-eQp89v6lRZuslhELKbYEEtyP+Ws="},"semver-compare":{"version":"1.0.0","resolved":"https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz","integrity":"sha1-De4hahyUGrN+nvsXiPavxf9VN/w=","dev":true},"semver-diff":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/semver-diff/download/semver-diff-2.1.0.tgz","integrity":"sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=","requires":{"semver":"^5.0.3"}},"semver-regex":{"version":"2.0.0","resolved":"https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz","integrity":"sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==","dev":true},"send":{"version":"0.17.1","resolved":"https://registry.npmjs.org/send/-/send-0.17.1.tgz","integrity":"sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==","requires":{"debug":"2.6.9","depd":"~1.1.2","destroy":"~1.0.4","encodeurl":"~1.0.2","escape-html":"~1.0.3","etag":"~1.8.1","fresh":"0.5.2","http-errors":"~1.7.2","mime":"1.6.0","ms":"2.1.1","on-finished":"~2.3.0","range-parser":"~1.2.1","statuses":"~1.5.0"},"dependencies":{"ms":{"version":"2.1.1","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.1.tgz","integrity":"sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="},"statuses":{"version":"1.5.0","resolved":"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz","integrity":"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="}}},"serialize-error":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/serialize-error/download/serialize-error-2.1.0.tgz","integrity":"sha1-ULZ51WNc34Rme9yOWa9OW4HV9go="},"serve-static":{"version":"1.14.1","resolved":"https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz","integrity":"sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==","requires":{"encodeurl":"~1.0.2","escape-html":"~1.0.3","parseurl":"~1.3.3","send":"0.17.1"},"dependencies":{"parseurl":{"version":"1.3.3","resolved":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","integrity":"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="}}},"set-blocking":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz","integrity":"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="},"set-value":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/set-value/download/set-value-2.0.0.tgz","integrity":"sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=","requires":{"extend-shallow":"^2.0.1","is-extendable":"^0.1.1","is-plain-object":"^2.0.3","split-string":"^3.0.1"},"dependencies":{"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"setimmediate":{"version":"1.0.5","resolved":"http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz","integrity":"sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="},"setprototypeof":{"version":"1.1.1","resolved":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz","integrity":"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="},"shaka-player":{"version":"2.5.10","resolved":"https://registry.npm.taobao.org/shaka-player/download/shaka-player-2.5.10.tgz","integrity":"sha1-b05y4kMwAtEYJKIjsC7dUATjDis=","requires":{"eme-encryption-scheme-polyfill":"^2.0.1"}},"shebang-command":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz","integrity":"sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=","requires":{"shebang-regex":"^1.0.0"}},"shebang-regex":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz","integrity":"sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="},"shell-quote":{"version":"1.6.1","resolved":"http://registry.npm.taobao.org/shell-quote/download/shell-quote-1.6.1.tgz","integrity":"sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=","requires":{"array-filter":"~0.0.0","array-map":"~0.0.0","array-reduce":"~0.0.0","jsonify":"~0.0.0"}},"shellwords":{"version":"0.1.1","resolved":"https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz","integrity":"sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww=="},"signal-exit":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz","integrity":"sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="},"simple-plist":{"version":"1.1.0","resolved":"https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.0.tgz","integrity":"sha512-2i5Tc0BYAqppM7jVzmNrI+aEUntPolIq4fDgji6WuNNn1D/qYdn2KwoLhZdzQkE04lu9L5tUoeJsjuJAvd+lFg==","requires":{"bplist-creator":"0.0.8","bplist-parser":"0.2.0","plist":"^3.0.1"},"dependencies":{"plist":{"version":"3.0.1","resolved":"https://registry.npmjs.org/plist/-/plist-3.0.1.tgz","integrity":"sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==","requires":{"base64-js":"^1.2.3","xmlbuilder":"^9.0.7","xmldom":"0.1.x"}},"xmlbuilder":{"version":"9.0.7","resolved":"https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz","integrity":"sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="}}},"slash":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz","integrity":"sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=","dev":true},"slice-ansi":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz","integrity":"sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=","requires":{"ansi-styles":"^3.2.0","astral-regex":"^1.0.0","is-fullwidth-code-point":"^2.0.0"},"dependencies":{"ansi-styles":{"version":"3.2.1","resolved":"http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz","integrity":"sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=","requires":{"color-convert":"^1.9.0"}}}},"slide":{"version":"1.1.6","resolved":"http://registry.npm.taobao.org/slide/download/slide-1.1.6.tgz","integrity":"sha1-VusCfWW00tzmyy4tMsTUr8nh1wc="},"snapdragon":{"version":"0.8.2","resolved":"http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz","integrity":"sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=","requires":{"base":"^0.11.1","debug":"^2.2.0","define-property":"^0.2.5","extend-shallow":"^2.0.1","map-cache":"^0.2.2","source-map":"^0.5.6","source-map-resolve":"^0.5.0","use":"^3.1.0"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}}}},"snapdragon-node":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz","integrity":"sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=","requires":{"define-property":"^1.0.0","isobject":"^3.0.0","snapdragon-util":"^3.0.1"},"dependencies":{"define-property":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz","integrity":"sha1-dp66rz9KY6rTr56NMEybvnm/sOY=","requires":{"is-descriptor":"^1.0.0"}},"is-accessor-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz","integrity":"sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=","requires":{"kind-of":"^6.0.0"}},"is-data-descriptor":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz","integrity":"sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=","requires":{"kind-of":"^6.0.0"}},"is-descriptor":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz","integrity":"sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=","requires":{"is-accessor-descriptor":"^1.0.0","is-data-descriptor":"^1.0.0","kind-of":"^6.0.2"}},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="},"kind-of":{"version":"6.0.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz","integrity":"sha1-ARRrNqYhjmTljzqNZt5df8b20FE="}}},"snapdragon-util":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz","integrity":"sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=","requires":{"kind-of":"^3.2.0"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"sort-array":{"version":"2.0.0","resolved":"https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz","integrity":"sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI=","dev":true,"requires":{"array-back":"^1.0.4","object-get":"^2.1.0","typical":"^2.6.0"},"dependencies":{"array-back":{"version":"1.0.4","resolved":"https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz","integrity":"sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=","dev":true,"requires":{"typical":"^2.6.0"}}}},"source-map":{"version":"0.5.7","resolved":"http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz","integrity":"sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="},"source-map-resolve":{"version":"0.5.2","resolved":"http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz","integrity":"sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=","requires":{"atob":"^2.1.1","decode-uri-component":"^0.2.0","resolve-url":"^0.2.1","source-map-url":"^0.4.0","urix":"^0.1.0"}},"source-map-support":{"version":"0.4.18","resolved":"http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz","integrity":"sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=","dev":true,"requires":{"source-map":"^0.5.6"}},"source-map-url":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz","integrity":"sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="},"spdx-correct":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz","integrity":"sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=","requires":{"spdx-expression-parse":"^3.0.0","spdx-license-ids":"^3.0.0"}},"spdx-exceptions":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz","integrity":"sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc="},"spdx-expression-parse":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz","integrity":"sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=","requires":{"spdx-exceptions":"^2.1.0","spdx-license-ids":"^3.0.0"}},"spdx-license-ids":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.4.tgz","integrity":"sha1-dezRqI3owYTvAV6vtRtbSL/RG7E="},"split-on-first":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/split-on-first/download/split-on-first-1.0.0.tgz","integrity":"sha1-ZIr0zpoo+8qt1DJ0RV8pi1UCX8Y="},"split-string":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz","integrity":"sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=","requires":{"extend-shallow":"^3.0.0"},"dependencies":{"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"}},"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"sprintf-js":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz","integrity":"sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="},"sshpk":{"version":"1.16.1","resolved":"http://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz","integrity":"sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=","dev":true,"requires":{"asn1":"~0.2.3","assert-plus":"^1.0.0","bcrypt-pbkdf":"^1.0.0","dashdash":"^1.12.0","ecc-jsbn":"~0.1.1","getpass":"^0.1.1","jsbn":"~0.1.0","safer-buffer":"^2.0.2","tweetnacl":"~0.14.0"}},"stack-trace":{"version":"0.0.10","resolved":"https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz","integrity":"sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=","dev":true},"stack-utils":{"version":"1.0.2","resolved":"https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz","integrity":"sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA=="},"stacktrace-parser":{"version":"0.1.10","resolved":"http://registry.npm.pt.mi.com/stacktrace-parser/download/stacktrace-parser-0.1.10.tgz","integrity":"sha1-KfsMrk4NC4UVWHlAKFehY562BRo=","requires":{"type-fest":"^0.7.1"}},"static-container":{"version":"1.5.1","resolved":"https://registry.npm.taobao.org/static-container/download/static-container-1.5.1.tgz","integrity":"sha1-nXqU4E3qhkU5p7ahMEhDradA3Bk="},"static-extend":{"version":"0.1.2","resolved":"http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz","integrity":"sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=","requires":{"define-property":"^0.2.5","object-copy":"^0.1.0"},"dependencies":{"define-property":{"version":"0.2.5","resolved":"http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz","integrity":"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=","requires":{"is-descriptor":"^0.1.0"}}}},"statuses":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz","integrity":"sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="},"stream":{"version":"0.0.2","resolved":"http://registry.npm.taobao.org/stream/download/stream-0.0.2.tgz","integrity":"sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=","requires":{"emitter-component":"^1.1.1"}},"stream-buffers":{"version":"2.2.0","resolved":"http://registry.npm.taobao.org/stream-buffers/download/stream-buffers-2.2.0.tgz","integrity":"sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ="},"stream-connect":{"version":"1.0.2","resolved":"https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz","integrity":"sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=","dev":true,"requires":{"array-back":"^1.0.2"},"dependencies":{"array-back":{"version":"1.0.4","resolved":"https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz","integrity":"sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=","dev":true,"requires":{"typical":"^2.6.0"}}}},"stream-via":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/stream-via/download/stream-via-1.0.4.tgz","integrity":"sha1-jcy7CskJMo64vI4qS9OTSv2vYGw=","dev":true},"streamifier":{"version":"0.1.1","resolved":"http://registry.npm.taobao.org/streamifier/download/streamifier-0.1.1.tgz","integrity":"sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=","dev":true},"strict-uri-encode":{"version":"2.0.0","resolved":"https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz","integrity":"sha1-ucczDHBChi9rFC3CdLvMWGbONUY="},"string-width":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz","integrity":"sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=","requires":{"is-fullwidth-code-point":"^2.0.0","strip-ansi":"^4.0.0"},"dependencies":{"ansi-regex":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz","integrity":"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="},"strip-ansi":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz","integrity":"sha1-qEeQIusaw2iocTibY1JixQXuNo8=","requires":{"ansi-regex":"^3.0.0"}}}},"string_decoder":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz","integrity":"sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=","requires":{"safe-buffer":"~5.1.0"}},"strip-ansi":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz","integrity":"sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=","requires":{"ansi-regex":"^2.0.0"}},"strip-bom":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz","integrity":"sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="},"strip-eof":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz","integrity":"sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="},"strip-json-comments":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz","integrity":"sha1-PFMZQukIwml8DsNEhYwobHygpgo="},"sudo-prompt":{"version":"9.2.1","resolved":"http://registry.npm.pt.mi.com/sudo-prompt/download/sudo-prompt-9.2.1.tgz","integrity":"sha1-d++4QwnJykiVJ6TnSfKH5r3VKv0="},"supports-color":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz","integrity":"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="},"symbol-observable":{"version":"1.0.1","resolved":"https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz","integrity":"sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="},"table":{"version":"5.2.3","resolved":"http://registry.npm.taobao.org/table/download/table-5.2.3.tgz","integrity":"sha1-zeDMbrBnUcAJ76sn6Mggyltnt/I=","dev":true,"requires":{"ajv":"^6.9.1","lodash":"^4.17.11","slice-ansi":"^2.1.0","string-width":"^3.0.0"},"dependencies":{"ansi-regex":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz","integrity":"sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=","dev":true},"string-width":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz","integrity":"sha1-InZ74htirxCBV0MG9prFG2IgOWE=","dev":true,"requires":{"emoji-regex":"^7.0.1","is-fullwidth-code-point":"^2.0.0","strip-ansi":"^5.1.0"}},"strip-ansi":{"version":"5.2.0","resolved":"http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz","integrity":"sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=","dev":true,"requires":{"ansi-regex":"^4.1.0"}}}},"table-layout":{"version":"0.4.4","resolved":"http://registry.npm.taobao.org/table-layout/download/table-layout-0.4.4.tgz","integrity":"sha1-vFOYsqBeWLZ7Bd2SODVLie8nvg8=","dev":true,"requires":{"array-back":"^2.0.0","deep-extend":"~0.6.0","lodash.padend":"^4.6.1","typical":"^2.6.1","wordwrapjs":"^3.0.0"}},"taffydb":{"version":"2.6.2","resolved":"https://registry.npm.taobao.org/taffydb/download/taffydb-2.6.2.tgz","integrity":"sha1-fLy2S1oUG2ou/CxdLGe04VCyomg="},"tar-stream":{"version":"1.6.2","resolved":"http://registry.npm.taobao.org/tar-stream/download/tar-stream-1.6.2.tgz","integrity":"sha1-jqVdqzeXIlPZqa+Q/c1VmuQ1xVU=","dev":true,"requires":{"bl":"^1.0.0","buffer-alloc":"^1.2.0","end-of-stream":"^1.0.0","fs-constants":"^1.0.0","readable-stream":"^2.3.0","to-buffer":"^1.1.1","xtend":"^4.0.0"}},"temp":{"version":"0.8.3","resolved":"http://registry.npm.taobao.org/temp/download/temp-0.8.3.tgz","integrity":"sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=","requires":{"os-tmpdir":"^1.0.0","rimraf":"~2.2.6"},"dependencies":{"rimraf":{"version":"2.2.8","resolved":"http://registry.npm.taobao.org/rimraf/download/rimraf-2.2.8.tgz","integrity":"sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="}}},"temp-path":{"version":"1.0.0","resolved":"https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz","integrity":"sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=","dev":true},"test-value":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/test-value/download/test-value-3.0.0.tgz","integrity":"sha1-kWjAYvqxGoa41ETdlou0tzhRzpI=","dev":true,"requires":{"array-back":"^2.0.0","typical":"^2.6.1"}},"text-table":{"version":"0.2.0","resolved":"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz","integrity":"sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=","dev":true},"throat":{"version":"4.1.0","resolved":"http://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz","integrity":"sha1-iQN8vJLFarGJJua6TLsgDhVnKmo="},"through":{"version":"2.3.8","resolved":"http://registry.npm.taobao.org/through/download/through-2.3.8.tgz","integrity":"sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="},"through2":{"version":"2.0.5","resolved":"http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz","integrity":"sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=","requires":{"readable-stream":"~2.3.6","xtend":"~4.0.1"}},"time-stamp":{"version":"1.1.0","resolved":"http://registry.npm.taobao.org/time-stamp/download/time-stamp-1.1.0.tgz","integrity":"sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="},"timed-out":{"version":"3.1.3","resolved":"http://registry.npm.taobao.org/timed-out/download/timed-out-3.1.3.tgz","integrity":"sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc="},"tmp":{"version":"0.0.33","resolved":"http://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz","integrity":"sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=","requires":{"os-tmpdir":"~1.0.2"}},"tmpl":{"version":"1.0.4","resolved":"http://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz","integrity":"sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE="},"to-buffer":{"version":"1.1.1","resolved":"http://registry.npm.taobao.org/to-buffer/download/to-buffer-1.1.1.tgz","integrity":"sha1-STvUj2LXxD/N7TE6A9ytsuEhOoA=","dev":true},"to-camel-case":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/to-camel-case/download/to-camel-case-1.0.0.tgz","integrity":"sha1-GlYFSy+daWKYzmamCJcyK29CPkY=","requires":{"to-space-case":"^1.0.0"}},"to-fast-properties":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz","integrity":"sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="},"to-no-case":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/to-no-case/download/to-no-case-1.0.2.tgz","integrity":"sha1-xyKQcWTvaxeBMsjmmTAhLRtKoWo="},"to-object-path":{"version":"0.3.0","resolved":"http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz","integrity":"sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=","requires":{"kind-of":"^3.0.2"},"dependencies":{"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"to-regex":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz","integrity":"sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=","requires":{"define-property":"^2.0.2","extend-shallow":"^3.0.2","regex-not":"^1.0.2","safe-regex":"^1.1.0"},"dependencies":{"extend-shallow":{"version":"3.0.2","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz","integrity":"sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=","requires":{"assign-symbols":"^1.0.0","is-extendable":"^1.0.1"}},"is-extendable":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz","integrity":"sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=","requires":{"is-plain-object":"^2.0.4"}}}},"to-regex-range":{"version":"2.1.1","resolved":"http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz","integrity":"sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=","requires":{"is-number":"^3.0.0","repeat-string":"^1.6.1"},"dependencies":{"is-number":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz","integrity":"sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=","requires":{"kind-of":"^3.0.2"}},"kind-of":{"version":"3.2.2","resolved":"http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz","integrity":"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=","requires":{"is-buffer":"^1.1.5"}}}},"to-space-case":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/to-space-case/download/to-space-case-1.0.0.tgz","integrity":"sha1-sFLar7Gysp3HcM6gFj5ewOvJ/Bc=","requires":{"to-no-case":"^1.0.0"}},"toidentifier":{"version":"1.0.0","resolved":"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz","integrity":"sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="},"tough-cookie":{"version":"2.4.3","resolved":"http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz","integrity":"sha1-U/Nto/R3g7CSWvoG/587FlKA94E=","dev":true,"requires":{"psl":"^1.1.24","punycode":"^1.4.1"},"dependencies":{"punycode":{"version":"1.4.1","resolved":"http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz","integrity":"sha1-wNWmOycYgArY4esPpSachN1BhF4=","dev":true}}},"trim-right":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz","integrity":"sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="},"tslib":{"version":"1.9.3","resolved":"http://registry.npm.taobao.org/tslib/download/tslib-1.9.3.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.9.3.tgz","integrity":"sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=","dev":true},"tunnel-agent":{"version":"0.6.0","resolved":"http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz","integrity":"sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=","dev":true,"requires":{"safe-buffer":"^5.0.1"}},"tween-functions":{"version":"1.2.0","resolved":"http://registry.npm.taobao.org/tween-functions/download/tween-functions-1.2.0.tgz","integrity":"sha1-GuOlDnxguz3vd06scHrLynO7w/8="},"tweetnacl":{"version":"0.14.5","resolved":"http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz","integrity":"sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=","dev":true},"type-check":{"version":"0.3.2","resolved":"http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz","integrity":"sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=","dev":true,"requires":{"prelude-ls":"~1.1.2"}},"type-fest":{"version":"0.7.1","resolved":"https://registry.npm.taobao.org/type-fest/download/type-fest-0.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.7.1.tgz","integrity":"sha1-jdpl/q8D7Xjwo/lnjxhpFH98XEg="},"typedarray":{"version":"0.0.6","resolved":"http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz","integrity":"sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="},"typical":{"version":"2.6.1","resolved":"https://registry.npmjs.org/typical/-/typical-2.6.1.tgz","integrity":"sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=","dev":true},"ua-parser-js":{"version":"0.7.19","resolved":"http://registry.npm.taobao.org/ua-parser-js/download/ua-parser-js-0.7.19.tgz","integrity":"sha1-lBUb5MCn+x0AGvcCL9rKRkJlnks="},"uc.micro":{"version":"1.0.6","resolved":"https://registry.npm.taobao.org/uc.micro/download/uc.micro-1.0.6.tgz","integrity":"sha1-nEEagCpAmpH8bPdAgbq6NLJEmaw="},"uglify-es":{"version":"3.3.9","resolved":"https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz","integrity":"sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==","requires":{"commander":"~2.13.0","source-map":"~0.6.1"},"dependencies":{"commander":{"version":"2.13.0","resolved":"https://registry.npmjs.org/commander/-/commander-2.13.0.tgz","integrity":"sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA=="},"source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="}}},"ultron":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/ultron/download/ultron-1.0.2.tgz","integrity":"sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="},"underscore":{"version":"1.9.2","resolved":"https://registry.npm.taobao.org/underscore/download/underscore-1.9.2.tgz","integrity":"sha1-DI1vU21vN4pa8mSnL3vsUP63zy8="},"unicode-canonical-property-names-ecmascript":{"version":"1.0.4","resolved":"https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz","integrity":"sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="},"unicode-match-property-ecmascript":{"version":"1.0.4","resolved":"https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz","integrity":"sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==","requires":{"unicode-canonical-property-names-ecmascript":"^1.0.4","unicode-property-aliases-ecmascript":"^1.0.4"}},"unicode-match-property-value-ecmascript":{"version":"1.1.0","resolved":"https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz","integrity":"sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g=="},"unicode-property-aliases-ecmascript":{"version":"1.0.5","resolved":"https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz","integrity":"sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw=="},"union-value":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/union-value/download/union-value-1.0.0.tgz","integrity":"sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=","requires":{"arr-union":"^3.1.0","get-value":"^2.0.6","is-extendable":"^0.1.1","set-value":"^0.4.3"},"dependencies":{"arr-union":{"version":"3.1.0","resolved":"http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz","integrity":"sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="},"extend-shallow":{"version":"2.0.1","resolved":"http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz","integrity":"sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=","requires":{"is-extendable":"^0.1.0"}},"set-value":{"version":"0.4.3","resolved":"http://registry.npm.taobao.org/set-value/download/set-value-0.4.3.tgz","integrity":"sha1-fbCPnT0i3H945Trzw79GZuzfzPE=","requires":{"extend-shallow":"^2.0.1","is-extendable":"^0.1.1","is-plain-object":"^2.0.1","to-object-path":"^0.3.0"}}}},"universalify":{"version":"0.1.2","resolved":"https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz","integrity":"sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="},"unpipe":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz","integrity":"sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="},"unset-value":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz","integrity":"sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=","requires":{"has-value":"^0.3.1","isobject":"^3.0.0"},"dependencies":{"has-value":{"version":"0.3.1","resolved":"http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz","integrity":"sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=","requires":{"get-value":"^2.0.3","has-values":"^0.1.4","isobject":"^2.0.0"},"dependencies":{"isobject":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz","integrity":"sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=","requires":{"isarray":"1.0.0"}}}},"has-values":{"version":"0.1.4","resolved":"http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz","integrity":"sha1-bWHeldkd/Km5oCCJrThL/49it3E="},"isobject":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz","integrity":"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="}}},"unzip-response":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/unzip-response/download/unzip-response-1.0.2.tgz","integrity":"sha1-uYTwh3/AqJwsdzzB73tbIytbBv4="},"update-notifier":{"version":"0.6.3","resolved":"http://registry.npm.taobao.org/update-notifier/download/update-notifier-0.6.3.tgz","integrity":"sha1-d23sjaoT6WKjQeih2YNUMGtnrgg=","requires":{"boxen":"^0.3.1","chalk":"^1.0.0","configstore":"^2.0.0","is-npm":"^1.0.0","latest-version":"^2.0.0","semver-diff":"^2.0.0"}},"uri-js":{"version":"4.2.2","resolved":"http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz","integrity":"sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=","dev":true,"requires":{"punycode":"^2.1.0"}},"urix":{"version":"0.1.0","resolved":"http://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz","integrity":"sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="},"url-parse-lax":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz","integrity":"sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=","requires":{"prepend-http":"^1.0.1"}},"use":{"version":"3.1.1","resolved":"http://registry.npm.taobao.org/use/download/use-3.1.1.tgz","integrity":"sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8="},"util-deprecate":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz","integrity":"sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="},"utile":{"version":"0.2.1","resolved":"https://registry.npmjs.org/utile/-/utile-0.2.1.tgz","integrity":"sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=","dev":true,"requires":{"async":"~0.2.9","deep-equal":"*","i":"0.3.x","mkdirp":"0.x.x","ncp":"0.4.x","rimraf":"2.x.x"},"dependencies":{"async":{"version":"0.2.10","resolved":"https://registry.npmjs.org/async/-/async-0.2.10.tgz","integrity":"sha1-trvgsGdLnXGXCMo43owjfLUmw9E=","dev":true}}},"utils-merge":{"version":"1.0.1","resolved":"http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz","integrity":"sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="},"uuid":{"version":"3.3.2","resolved":"http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz","integrity":"sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE="},"validate-npm-package-license":{"version":"3.0.4","resolved":"http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz","integrity":"sha1-/JH2uce6FchX9MssXe/uw51PQQo=","requires":{"spdx-correct":"^3.0.0","spdx-expression-parse":"^3.0.0"}},"vary":{"version":"1.1.2","resolved":"http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz","integrity":"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="},"verror":{"version":"1.10.0","resolved":"http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz","integrity":"sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=","dev":true,"requires":{"assert-plus":"^1.0.0","core-util-is":"1.0.2","extsprintf":"^1.2.0"}},"victory-area":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-area/-/victory-area-33.1.2.tgz","integrity":"sha512-ZHpeXI0cdK3gJRdKzBHDKxe37x6ljO8nThyGcKWrgErsz1rqaG9ZNTEHvTkQWeepwVh3UZa32N8RR/RBCQpztQ==","requires":{"d3-shape":"^1.2.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-axis":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-axis/-/victory-axis-33.1.2.tgz","integrity":"sha512-j8wDlN/Nv/nGu+DneI/xtcnlRMHXche4PzObZg/CJ91aZaAyBgEpJPnLKXSanwFWgK6eSL1D4chI8fEOBVOOlw==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-bar":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-bar/-/victory-bar-33.1.2.tgz","integrity":"sha512-qSbFXSyioK6TautyhUb4QPOFDjwRO80M3CJKqE/wcRkt3cLykwQoPYYtjOqSIPlWZmBZa/JOBwxeXIsz6bhAzQ==","requires":{"d3-shape":"^1.2.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-box-plot":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-box-plot/-/victory-box-plot-33.1.2.tgz","integrity":"sha512-pb1CayUXaGNeopkbw3t/yEPZxv4AJyKL0P+ja2QPXcOfL1ATjhHBLqogWyKGP0V+KurqXcni4oSTDc3yzEwsjA==","requires":{"d3-array":"^1.2.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-brush-container":{"version":"33.1.3","resolved":"https://registry.npmjs.org/victory-brush-container/-/victory-brush-container-33.1.3.tgz","integrity":"sha512-7m2XV0UnkTrt2zdFAt/SnEoPzMCaC6JX3A4z9M/BCfeHDA12FP5BrPTFVduRmrS7f6xD7GlGacyepUg1XOPFQw==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-brush-line":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-brush-line/-/victory-brush-line-33.1.2.tgz","integrity":"sha512-qU+7UamqUqxl1OacWuhriiLRn5FDREO04HWp3Oixz9JqoIvpmjSc1mZcoJALYBHNZ0QIxkAhd1ZYol2cQrhnlQ==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-candlestick":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-candlestick/-/victory-candlestick-33.1.2.tgz","integrity":"sha512-UaQ+bG3tXLrbdBjwhXvUOcgiYJhOkLh0JLFusSkJ0yCnSvvEaxI2LRaLHPOThK98CPvqvdrOnZ4teVUtQtL9IA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-chart":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-chart/-/victory-chart-33.1.2.tgz","integrity":"sha512-4wJh+os9hRGX8BR3Vz/ip1r3EjCv8ricixK6o14nslONUH7zTTB1ze9lAPDCFKnWfDDOJlYCCJaeQWYbMcu8Dg==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0","victory-axis":"^33.1.2","victory-core":"^33.1.2","victory-polar-axis":"^33.1.2","victory-shared-events":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-core":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-core/-/victory-core-33.1.2.tgz","integrity":"sha512-7IONalf4b4MSGJRaHiTBFcrt9exOnky0y+LvU04eddX1sYuqSSCtRGGC+HT9k9bNh56PPpgVT6GPbwWIz2RFCQ==","requires":{"d3-ease":"^1.0.0","d3-interpolate":"^1.1.1","d3-scale":"^1.0.0","d3-shape":"^1.2.0","d3-timer":"^1.0.0","lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-create-container":{"version":"33.1.3","resolved":"https://registry.npmjs.org/victory-create-container/-/victory-create-container-33.1.3.tgz","integrity":"sha512-qnAtIpmSBFW7cDzqkmVtVRD//iqFXQsndeJ+uDyRkHpRVdVvGwH5ATzl/z5Qj14r+f7cvgjYAZb+TbsINqdW2A==","requires":{"lodash":"^4.17.15","victory-brush-container":"^33.1.3","victory-core":"^33.1.2","victory-cursor-container":"^33.1.2","victory-selection-container":"^33.1.2","victory-voronoi-container":"^33.1.2","victory-zoom-container":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-cursor-container":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-cursor-container/-/victory-cursor-container-33.1.2.tgz","integrity":"sha512-+rUem56YVdAX/JEUpLh6MtfHtTMVQbiiQXceDJPbghB0tNu9nqIlfh+eelSvdvP2C3nB3bAGcjJqdbgnV00fhg==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-errorbar":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-errorbar/-/victory-errorbar-33.1.2.tgz","integrity":"sha512-Qf8EQAJAT9FB91woMKdgj3uzMu+SYQVcc/JGboB77awqg36cJHqqL3hsnsrPJb9TH6EMLyQIWlk/xsIkGgF8ow==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-group":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-group/-/victory-group-33.1.2.tgz","integrity":"sha512-BX4Gjw0zbm2RmgQNXo464Dr16tPWGKDJSwKoBczx3kKOaty7rJDdFWcYtoCJ2UXab9zNdVX0ouXevNyzYpSPqA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-legend":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-legend/-/victory-legend-33.1.2.tgz","integrity":"sha512-au9IYRQOuRJqeHOTUelg8IoxdL4Uogy6PvlR5ecKj9t5NvgculI+deqKxvJhpfqlb78q8TYYYcADGZAfn0pAug==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-line":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-line/-/victory-line-33.1.2.tgz","integrity":"sha512-QsGX5edI7oPOfSqi98JgykgoDuKIWUiG8d9okx+Sj8QRuPSmRtxZ2f3n/N4K1lP5MoQRAEJFCqEAjfJLiuGEfg==","requires":{"d3-shape":"^1.2.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-native":{"version":"33.0.0","resolved":"https://registry.npmjs.org/victory-native/-/victory-native-33.0.0.tgz","integrity":"sha512-Tz3R/aEBQp3l3GYbiVKDn6x+kTw8K9WoVjcO1/g00TVLD6vJWdTC1ADw9cQ0BwARi1MBNxzs6Qhsky7d5vOwag==","requires":{"lodash":"^4.17.11","prop-types":"^15.5.10","react-fast-compare":"^2.0.0","victory-area":"^33.0.0","victory-axis":"^33.0.0","victory-bar":"^33.0.0","victory-box-plot":"^33.0.0","victory-brush-container":"^33.0.0","victory-brush-line":"^33.0.0","victory-candlestick":"^33.0.0","victory-chart":"^33.0.0","victory-core":"^33.0.0","victory-create-container":"^33.0.0","victory-cursor-container":"^33.0.0","victory-errorbar":"^33.0.0","victory-group":"^33.0.0","victory-legend":"^33.0.0","victory-line":"^33.0.0","victory-pie":"^33.0.0","victory-polar-axis":"^33.0.0","victory-scatter":"^33.0.0","victory-selection-container":"^33.0.0","victory-shared-events":"^33.0.0","victory-stack":"^33.0.0","victory-tooltip":"^33.0.0","victory-voronoi":"^33.0.0","victory-voronoi-container":"^33.0.0","victory-zoom-container":"^33.0.0"}},"victory-pie":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-pie/-/victory-pie-33.1.2.tgz","integrity":"sha512-ZCHqG1N8htc2x4i2AnRn6cfcs0+u/E+mk+dCFgRS85x/iwIZlqdPKKcC51kIJ6LTrcNuzKhMqcawx+OpFm+//Q==","requires":{"d3-shape":"^1.0.0","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-polar-axis":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-polar-axis/-/victory-polar-axis-33.1.2.tgz","integrity":"sha512-Nkl3n8WB1nSS8AFsxdRXlATfMpJsPNlS01xhOA2m/MstSHHErOC9tSj/GtXviV5+n8Dg0AA9srpStNa7z/Rx6g==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-scatter":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-scatter/-/victory-scatter-33.1.2.tgz","integrity":"sha512-wT6dLdoUWaM7wSWOmMKpJi12dRAjqvQn1iOvVpmngK0DqVxwbXeK0fJqvDqRs2RIScqJgx2UvZ+sIiMijlb8og==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-selection-container":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-selection-container/-/victory-selection-container-33.1.2.tgz","integrity":"sha512-KR/c3Ij4W+JUiYA67t6wj4T3tnF8UK8373dPnAihNOliKB6d4CSX4JmgCEs6UySrJBTCciYcZ88rZVSpI7QIrA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-shared-events":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-shared-events/-/victory-shared-events-33.1.2.tgz","integrity":"sha512-TNnLZ0uY7tbZm56uDee0TA+501aTeikpuBKTx/vpfT6ifFwiYfQ9n5Orx3aVmJvkinmLaifqnxWA9UwAwuIL7w==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-stack":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-stack/-/victory-stack-33.1.2.tgz","integrity":"sha512-4eOvyPx0EpmZGuwbtc+XlWuuM8CSC4RAiEsAcDuqNPmWPJShuuB9ABBHV04yVGF9Ub80d+kTowuQJD5PsxtRyA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","react-fast-compare":"^2.0.0","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-tooltip":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-tooltip/-/victory-tooltip-33.1.2.tgz","integrity":"sha512-iFxQfsF2hwJR2ZnhNmkiBKfLlfyIcpSfn2x+vZlxA144BGTmvfrC05Pn17erZnAT50AiVf0aW5YJNKLv06MWaA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-voronoi":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-voronoi/-/victory-voronoi-33.1.2.tgz","integrity":"sha512-oLoicPWgGHxEHAtCjzNQsN/fILmXV/6QBlJoCN04TzLyA063xvy2E+n6yuAtGHEkrpVCG7VTB/T5cJN7MCOyIQ==","requires":{"d3-voronoi":"^1.1.2","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-voronoi-container":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-voronoi-container/-/victory-voronoi-container-33.1.2.tgz","integrity":"sha512-ydsWYLGi9dSVbr+/5v1E6NvuV9C2OvdqTvHuH5r6BthSqFu0u+6bbv4QIbJY9sWc2L1zhknZByikV1ty9bGIfA==","requires":{"delaunay-find":"0.0.5","lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2","victory-tooltip":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"victory-zoom-container":{"version":"33.1.2","resolved":"https://registry.npmjs.org/victory-zoom-container/-/victory-zoom-container-33.1.2.tgz","integrity":"sha512-hNvBg/N64BhSTJunonuoiH38eKtgxJiobbcNPFM2BPiuKJAr7a8SKSngFgECrwTQQVgt2sC7qVX/+WYwrJCpYA==","requires":{"lodash":"^4.17.15","prop-types":"^15.5.8","victory-core":"^33.1.2"},"dependencies":{"lodash":{"version":"4.17.15","resolved":"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz","integrity":"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="}}},"vlq":{"version":"1.0.1","resolved":"https://registry.npm.taobao.org/vlq/download/vlq-1.0.1.tgz","integrity":"sha1-wAP258C0we3WI/1u5Qu8DWod5Gg="},"walk-back":{"version":"3.0.1","resolved":"http://registry.npm.taobao.org/walk-back/download/walk-back-3.0.1.tgz","integrity":"sha1-DAASaUclYElg1sL3Wq8aHn1FXTU=","dev":true},"walker":{"version":"1.0.7","resolved":"http://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz","integrity":"sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=","requires":{"makeerror":"1.0.x"}},"watch":{"version":"0.18.0","resolved":"http://registry.npm.taobao.org/watch/download/watch-0.18.0.tgz","integrity":"sha1-KAlUdsbffJDJYxOJkMClQj60uYY=","dev":true,"requires":{"exec-sh":"^0.2.0","minimist":"^1.2.0"}},"wcwidth":{"version":"1.0.1","resolved":"https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz","integrity":"sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=","requires":{"defaults":"^1.0.3"}},"whatwg-fetch":{"version":"2.0.4","resolved":"http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-2.0.4.tgz","integrity":"sha1-3eal3zFfnTmZGqF2IYU9cguFVm8="},"which":{"version":"1.3.1","resolved":"http://registry.npm.taobao.org/which/download/which-1.3.1.tgz","integrity":"sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=","requires":{"isexe":"^2.0.0"}},"which-module":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz","integrity":"sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="},"which-pm-runs":{"version":"1.0.0","resolved":"https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz","integrity":"sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=","dev":true},"widest-line":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/widest-line/download/widest-line-1.0.0.tgz","integrity":"sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=","requires":{"string-width":"^1.0.1"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}}}},"winston":{"version":"0.8.3","resolved":"https://registry.npmjs.org/winston/-/winston-0.8.3.tgz","integrity":"sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=","dev":true,"requires":{"async":"0.2.x","colors":"0.6.x","cycle":"1.0.x","eyes":"0.1.x","isstream":"0.1.x","pkginfo":"0.3.x","stack-trace":"0.0.x"},"dependencies":{"async":{"version":"0.2.10","resolved":"https://registry.npmjs.org/async/-/async-0.2.10.tgz","integrity":"sha1-trvgsGdLnXGXCMo43owjfLUmw9E=","dev":true},"pkginfo":{"version":"0.3.1","resolved":"https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz","integrity":"sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=","dev":true}}},"wordwrap":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz","integrity":"sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="},"wordwrapjs":{"version":"3.0.0","resolved":"http://registry.npm.taobao.org/wordwrapjs/download/wordwrapjs-3.0.0.tgz","integrity":"sha1-yUw3KJTK3G/rGma/9k4dmvksXR4=","dev":true,"requires":{"reduce-flatten":"^1.0.1","typical":"^2.6.1"}},"wrap-ansi":{"version":"2.1.0","resolved":"http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz","integrity":"sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=","requires":{"string-width":"^1.0.1","strip-ansi":"^3.0.1"},"dependencies":{"is-fullwidth-code-point":{"version":"1.0.0","resolved":"http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz","integrity":"sha1-754xOG8DGn8NZDr4L95QxFfvAMs=","requires":{"number-is-nan":"^1.0.0"}},"string-width":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz","integrity":"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=","requires":{"code-point-at":"^1.0.0","is-fullwidth-code-point":"^1.0.0","strip-ansi":"^3.0.0"}}}},"wrappy":{"version":"1.0.2","resolved":"http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz","integrity":"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="},"write":{"version":"1.0.3","resolved":"http://registry.npm.taobao.org/write/download/write-1.0.3.tgz","integrity":"sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=","dev":true,"requires":{"mkdirp":"^0.5.1"}},"write-file-atomic":{"version":"1.3.4","resolved":"http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-1.3.4.tgz","integrity":"sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=","requires":{"graceful-fs":"^4.1.11","imurmurhash":"^0.1.4","slide":"^1.1.5"}},"ws":{"version":"1.1.5","resolved":"http://registry.npm.taobao.org/ws/download/ws-1.1.5.tgz","integrity":"sha1-y9nm514J/F0skAFfIfDECHXg3VE=","requires":{"options":">=0.0.5","ultron":"1.0.x"}},"xcode":{"version":"2.0.0","resolved":"https://registry.npmjs.org/xcode/-/xcode-2.0.0.tgz","integrity":"sha512-5xF6RCjAdDEiEsbbZaS/gBRt3jZ/177otZcpoLCjGN/u1LrfgH7/Sgeeavpr/jELpyDqN2im3AKosl2G2W8hfw==","requires":{"simple-plist":"^1.0.0","uuid":"^3.3.2"}},"xdg-basedir":{"version":"2.0.0","resolved":"http://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-2.0.0.tgz","integrity":"sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=","requires":{"os-homedir":"^1.0.0"}},"xmlbuilder":{"version":"4.0.0","resolved":"http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-4.0.0.tgz","integrity":"sha1-mLj2UcowqmJANvEn0RzGbce5B6M=","requires":{"lodash":"^3.5.0"},"dependencies":{"lodash":{"version":"3.10.1","resolved":"http://registry.npm.taobao.org/lodash/download/lodash-3.10.1.tgz","integrity":"sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="}}},"xmlcreate":{"version":"2.0.3","resolved":"https://registry.npm.taobao.org/xmlcreate/download/xmlcreate-2.0.3.tgz","integrity":"sha1-357NUY/TiQqzVI4bgR0EBhSZNJc="},"xmldoc":{"version":"0.4.0","resolved":"http://registry.npm.taobao.org/xmldoc/download/xmldoc-0.4.0.tgz","integrity":"sha1-0lciS+g5PqrL+DfvIn/Y7CWzaIg=","requires":{"sax":"~1.1.1"}},"xmldom":{"version":"0.1.27","resolved":"http://registry.npm.taobao.org/xmldom/download/xmldom-0.1.27.tgz","integrity":"sha1-1QH5ezvbQDr4757MIFcxh6rawOk="},"xpipe":{"version":"1.0.5","resolved":"http://registry.npm.taobao.org/xpipe/download/xpipe-1.0.5.tgz","integrity":"sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98="},"xtend":{"version":"4.0.1","resolved":"http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz","integrity":"sha1-pcbVMr5lbiPbgg77lDofBJmNY68="},"y18n":{"version":"3.2.1","resolved":"http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz","integrity":"sha1-bRX7qITAhnnA136I53WegR4H+kE="},"yallist":{"version":"2.1.2","resolved":"http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz","integrity":"sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="},"yaml":{"version":"1.9.2","resolved":"https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz","integrity":"sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==","dev":true,"requires":{"@babel/runtime":"^7.9.2"},"dependencies":{"@babel/runtime":{"version":"7.9.6","resolved":"https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz","integrity":"sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==","dev":true,"requires":{"regenerator-runtime":"^0.13.4"}},"regenerator-runtime":{"version":"0.13.5","resolved":"https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz","integrity":"sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==","dev":true}}},"yargs":{"version":"9.0.1","resolved":"http://registry.npm.taobao.org/yargs/download/yargs-9.0.1.tgz","integrity":"sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=","requires":{"camelcase":"^4.1.0","cliui":"^3.2.0","decamelize":"^1.1.1","get-caller-file":"^1.0.1","os-locale":"^2.0.0","read-pkg-up":"^2.0.0","require-directory":"^2.1.1","require-main-filename":"^1.0.1","set-blocking":"^2.0.0","string-width":"^2.0.0","which-module":"^2.0.0","y18n":"^3.2.1","yargs-parser":"^7.0.0"}},"yargs-parser":{"version":"7.0.0","resolved":"http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-7.0.0.tgz","integrity":"sha1-jQrELxbqVd69MyyvTEA4s+P139k=","requires":{"camelcase":"^4.1.0"}},"yauzl":{"version":"2.10.0","resolved":"http://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz","integrity":"sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=","dev":true,"requires":{"buffer-crc32":"~0.2.3","fd-slicer":"~1.1.0"}},"yazl":{"version":"2.5.1","resolved":"http://registry.npm.taobao.org/yazl/download/yazl-2.5.1.tgz","integrity":"sha1-o9ZdPdZZpbCTeFDoYJ8i//orXDU=","dev":true,"requires":{"buffer-crc32":"~0.2.3"}}}} \ No newline at end of file diff --git a/package.json b/package.json index e6aa68beb..f2386ef23 100644 --- a/package.json +++ b/package.json @@ -1 +1 @@ -{"name":"miot-workspace","version":"1.0.40","description":"MIOT Project workspace","private":true,"scripts":{"start":"node bin/runProject.js","create":"node bin/createProject.js","publish":"node bin/publishProject.js","eslint":"./node_modules/.bin/eslint ./","fix":"./node_modules/.bin/eslint --fix ./","eslint-sdk":"./node_modules/.bin/eslint ./miot-sdk/","fix-sdk":"./node_modules/.bin/eslint --fix ./miot-sdk/","eslint-plugin-prototype":"./node_modules/.bin/eslint ./miot-plugin-prototype/","fix-plugin-prototype":"./node_modules/.bin/eslint --fix ./miot-plugin-prototype/","precommit":"node ./bin/precommit.js"},"husky":{"hooks":{"pre-commit":"npm run precommit"}},"engines":{"node":">=4"},"dependencies":{"@babel/runtime":"7.7.7","@react-native-community/blur":"3.3.1","@react-native-community/cli":"^3.0.0","@react-native-community/netinfo":"4.6.1","@react-native-community/viewpager":"3.1.0","@types/react":"^16.9.19","babel-plugin-transform-async-to-generator":"^6.24.1","base64-js":"1.3.0","buffer":"^5.2.1","create-react-class":"15.6.3","d3-interpolate":"1.1.2","deprecated-react-native-listview":"0.0.6","fbjs":"0.8.17","gl-react":"2.3.1","gl-react-blur":"2.0.1","gl-react-native":"2.57.0","intl":"1.2.5","intl-messageformat":"2.2.0","jsdoc":"^3.6.3","lodash.range":"3.2.0","lottie-react-native":"2.5.5","merge":"1.2.1","miot":"file:./miot-sdk","prop-types":"15.7.2","react":"16.9.0","react-native":"0.61.0","react-native-camera":"3.15.0","react-native-contacts":"2.1.3","react-native-image-capinsets":"0.5.0","react-native-image-picker":"0.26.10","react-native-indicators":"^0.13.0","react-native-iphone-x-helper":"^1.2.0","react-native-linear-gradient":"^2.5.4","react-native-nordic-dfu":"^3.0.0","react-native-orientation":"3.1.3","react-native-progress":"^3.5.0","react-native-root-toast":"^3.2.0","react-native-safe-area-view":"0.11.0","react-native-shadow":"^1.2.2","react-native-slider":"^0.11.0","react-native-sqlite-storage":"3.1.2","react-native-svg":"9.5.3","react-native-swipeout":"2.3.6","react-native-swiper":"1.6.0-nightly.5","react-native-ui-kitten":"3.1.2","react-native-video":"4.4.4","react-native-webview":"7.4.3","react-navigation":"2.16.0","react-navigation-stack":"0.6.0","react-timer-mixin":"^0.13.4","rmc-date-picker":"6.0.8","rmc-picker":"5.0.5","seedrandom":"2.4.3","stream":"0.0.2","uglify-es":"^3.3.9","uuid":"3.3.2","victory-native":"33.0.0","whatwg-fetch":"2.0.4"},"optionalDependencies":{"fsevents":"^2.1.2"},"devDependencies":{"@babel/plugin-proposal-decorators":"^7.8.3","babel-eslint":"^10.0.1","babel-plugin-transform-remove-console":"^6.9.4","colors":"0.6.2","compressing":"1.3.1","crypto":"1.0.1","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.16.0","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-mihome-plugin":"file:eslint-mihome-plugin","eslint-plugin-react":"^7.12.4","husky":"^4.2.5","jsdoc-to-markdown":"^4.0.1","metro":"0.28.0","react-native-cli":"^2.0.1"}} +{"name":"miot-workspace","version":"1.0.42","description":"MIOT Project workspace","private":true,"scripts":{"start":"node bin/runProject.js","create":"node bin/createProject.js","publish":"node bin/publishProject.js","eslint":"./node_modules/.bin/eslint ./","fix":"./node_modules/.bin/eslint --fix ./","eslint-sdk":"./node_modules/.bin/eslint ./miot-sdk/","fix-sdk":"./node_modules/.bin/eslint --fix ./miot-sdk/","eslint-plugin-prototype":"./node_modules/.bin/eslint ./miot-plugin-prototype/","fix-plugin-prototype":"./node_modules/.bin/eslint --fix ./miot-plugin-prototype/","precommit":"node ./bin/precommit.js"},"husky":{"hooks":{"pre-commit":"npm run precommit"}},"engines":{"node":">=4"},"dependencies":{"@babel/runtime":"7.7.7","@react-native-community/blur":"3.3.1","@react-native-community/cli":"^3.0.0","@react-native-community/netinfo":"4.6.1","@react-native-community/viewpager":"3.1.0","@types/react":"^16.9.19","babel-plugin-transform-async-to-generator":"^6.24.1","base64-js":"1.3.0","buffer":"^5.2.1","create-react-class":"15.6.3","d3-interpolate":"1.1.2","deprecated-react-native-listview":"0.0.6","fbjs":"0.8.17","gl-react":"2.3.1","gl-react-blur":"2.0.1","gl-react-native":"2.57.0","intl":"1.2.5","intl-messageformat":"2.2.0","jsdoc":"^3.6.3","lodash.range":"3.2.0","lottie-react-native":"2.5.5","merge":"1.2.1","mhui-rn":"1.0.7","miot":"file:./miot-sdk","prop-types":"15.7.2","react":"16.9.0","react-native":"0.61.0","react-native-camera":"3.15.0","react-native-contacts":"2.1.3","react-native-image-capinsets":"0.5.0","react-native-image-picker":"0.26.10","react-native-indicators":"^0.13.0","react-native-iphone-x-helper":"^1.2.0","react-native-linear-gradient":"^2.5.4","react-native-nordic-dfu":"^3.0.0","react-native-orientation":"3.1.3","react-native-progress":"^3.5.0","react-native-root-toast":"^3.2.0","react-native-safe-area-view":"0.11.0","react-native-shadow":"^1.2.2","react-native-slider":"^0.11.0","react-native-sqlite-storage":"3.1.2","react-native-svg":"9.5.3","react-native-swipeout":"2.3.6","react-native-swiper":"1.6.0-nightly.5","react-native-ui-kitten":"3.1.2","react-native-video":"4.4.4","react-native-webview":"7.4.3","react-navigation":"2.16.0","react-navigation-stack":"0.6.0","react-timer-mixin":"^0.13.4","rmc-date-picker":"6.0.8","rmc-picker":"5.0.5","seedrandom":"2.4.3","stream":"0.0.2","uglify-es":"^3.3.9","uuid":"3.3.2","victory-native":"33.0.0","whatwg-fetch":"2.0.4"},"optionalDependencies":{"fsevents":"^2.1.2"},"devDependencies":{"@babel/plugin-proposal-decorators":"^7.8.3","babel-eslint":"^10.0.1","babel-plugin-transform-remove-console":"^6.9.4","colors":"0.6.2","compressing":"1.3.1","crypto":"1.0.1","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.16.0","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-mihome-plugin":"file:eslint-mihome-plugin","eslint-plugin-react":"^7.12.4","husky":"^4.2.5","jsdoc-to-markdown":"^4.0.1","metro":"0.28.0","react-native-cli":"^2.0.1"}} \ No newline at end of file diff --git a/projects/.gitignore b/projects/.gitignore index d335911c3..952883d28 100644 --- a/projects/.gitignore +++ b/projects/.gitignore @@ -2,4 +2,5 @@ node_modules/ */node_modules/ com.xiaomi.test com.xiaomi.infrared +com.xiaomi.cardcamera !__testcases__/node_modules/ \ No newline at end of file diff --git a/projects/com.xiaomi.bledemo/Main/BleControl.js b/projects/com.xiaomi.bledemo/Main/BleControl.js index 7afe52805..fb80f2906 100644 --- a/projects/com.xiaomi.bledemo/Main/BleControl.js +++ b/projects/com.xiaomi.bledemo/Main/BleControl.js @@ -21,7 +21,7 @@ const bt = Device.getBluetoothLE(); let statusEnable = false; -//uuids for testing. +// uuids for testing. const UUID_SERVICE = '00000100-0065-6C62-2E74-6F696D2E696D'; const UUID_LED_READ_WRITE = '00000101-0065-6C62-2E74-6F696D2E696D'; const UUID_BUTTON_READ_WRITE_NOTIFY = '00000102-0065-6C62-2E74-6F696D2E696D'; @@ -39,7 +39,7 @@ export default class MainPage extends React.Component { btConnect: false, blueConnecting: false, testCharNotify: false, - log: '设备类型:' + sctype, + log: `设备类型:${ sctype }`, scType: sctype, testEncrptText: '' }; @@ -47,19 +47,19 @@ export default class MainPage extends React.Component { componentDidMount() { this.showing = true; - Bluetooth.checkBluetoothIsEnabled().then(result => { - this.state.isEnable = result; + Bluetooth.checkBluetoothIsEnabled().then((result) => { + this.setState({isEnable:result}) + // this.state.isEnable = result; if (result) { this.addLog('蓝牙已开启'); - } - else { + } else { this.addLog('蓝牙未开启,请检查开启蓝牙后再试'); Host.ui.showBLESwitchGuide(); } }); - this._s5 = BluetoothEvent.bluetoothStatusChanged.addListener(isOn => { + this._s5 = BluetoothEvent.bluetoothStatusChanged.addListener((isOn) => { console.log('bluetoothStatusChanged', isOn); - this.addLog('蓝牙状态发生变化 : ' + JSON.stringify(isOn)); + this.addLog(`蓝牙状态发生变化 : ${ JSON.stringify(isOn) }`); if (!isOn) { this.addLog('蓝牙连接已断开'); this.setState({ @@ -71,9 +71,9 @@ export default class MainPage extends React.Component { }); } }); - this._s7 = BluetoothEvent.bluetoothDeviceDiscovered.addListener(result => { + this._s7 = BluetoothEvent.bluetoothDeviceDiscovered.addListener((result) => { if (result.mac === bt.mac) { - this.addLog('发现设备' + JSON.stringify(result)); + this.addLog(`发现设备${ JSON.stringify(result) }`); this.connect(result.mac); } // else { @@ -88,50 +88,50 @@ export default class MainPage extends React.Component { if (services.length <= 0) { return; } - console.log('bluetoothSeviceDiscovered', blut.mac, services.map(s => s.UUID), bt.isConnected); - this.addLog('发现蓝牙服务更新:' + JSON.stringify(services.map(s => s.UUID))); + console.log('bluetoothSeviceDiscovered', blut.mac, services.map((s) => s.UUID), bt.isConnected); + this.addLog(`发现蓝牙服务更新:${ JSON.stringify(services.map((s) => s.UUID)) }`); - const s = services.map(s => ({ uuid: s.UUID, char: [] })); + const s = services.map((s) => ({ uuid: s.UUID, char: [] })); this.setState({ services: s }); if (bt.isConnected) { this.addLog('开始扫描特征值'); - services.forEach(s => { + services.forEach((s) => { this.state.services[s.UUID] = s; s.startDiscoverCharacteristics(); }); } - Device.getBluetoothLE().getVersion(true, true).then(version => { + Device.getBluetoothLE().getVersion(true, true).then((version) => { // Device.getBluetoothLE().securityLock.decryptMessageWithToken(version).then(data => { // this.addLog('设备版本为:' + version + ', 解析结果:' + JSON.stringify(data)); // }); - }).catch(err => { + }).catch((err) => { // console.log(err, '-------'); }); }); this._s2 = BluetoothEvent.bluetoothCharacteristicDiscovered.addListener((bluetooth, service, characters) => { - console.log('bluetoothCharacteristicDiscovered', characters.map(s => s.UUID), bt.isConnected); - this.addLog(service.UUID + ' 蓝牙特征值已扫描成功' + JSON.stringify(characters.map(s => s.UUID))); + console.log('bluetoothCharacteristicDiscovered', characters.map((s) => s.UUID), bt.isConnected); + this.addLog(`${ service.UUID } 蓝牙特征值已扫描成功${ JSON.stringify(characters.map((s) => s.UUID)) }`); const { services } = this.state; - services.forEach(s => { + services.forEach((s) => { if (s.uuid === service.UUID) { - s.char = characters.map(s => s.UUID); + s.char = characters.map((s) => s.UUID); } }); this.setState({ services }); if (bt.isConnected) { - characters.forEach(c => { + characters.forEach((c) => { this.state.chars[c.UUID] = c; }); } }); this._s3 = BluetoothEvent.bluetoothCharacteristicValueChanged.addListener((bluetooth, service, character, value) => { if (service.UUID.indexOf('ffd5') > 0) { - console.log('bluetoothCharacteristicValueChanged', character.UUID, value);//刷新界面 + console.log('bluetoothCharacteristicValueChanged', character.UUID, value);// 刷新界面 } if (character.UUID.toUpperCase() === UUID_BUTTON_READ_WRITE_NOTIFY) { - this.addLog('收到原始回复:' + value); - bt.securityLock.decryptMessage(value).then(res => { - this.addLog('解密之后回复:' + res); + this.addLog(`收到原始回复:${ value }`); + bt.securityLock.decryptMessage(value).then((res) => { + this.addLog(`解密之后回复:${ res }`); }); } // this.addLog('bluetoothCharacteristicValueChanged:' + character.UUID + '>' + value); @@ -148,7 +148,7 @@ export default class MainPage extends React.Component { console.log('bluetoothConnectionStatusChanged', blut, isConnect); if (bt.mac === blut.mac) { this.setState({ connectState: isConnect ? '已连接' : '未连接' }); - this.addLog('蓝牙' + JSON.stringify(blut) + '状态变化' + isConnect); + this.addLog(`蓝牙${ JSON.stringify(blut) }状态变化${ isConnect }`); this.addLog('蓝牙连接已断开'); if (!isConnect) { this.setState({ @@ -163,7 +163,7 @@ export default class MainPage extends React.Component { } }); this._s8 = DeviceEvent.bleDeviceFirmwareNeedUpgrade.addListener((device) => { - this.addLog('bleDeviceFirmwareNeedUpgrade ' + device.needUpgrade+','+device.latestVersion+','+device.lastVersion); + this.addLog(`bleDeviceFirmwareNeedUpgrade ${ device.needUpgrade },${ device.latestVersion },${ device.lastVersion }`); }); } @@ -184,19 +184,19 @@ export default class MainPage extends React.Component { } enableNotify(val) { - if (!bt.isConnected || this.state.services.length <= 0) { - this.addLog('蓝牙尚未连接或者service未发现'); - return Promise.reject('蓝牙尚未连接或者service未发现'); - } - this.addLog('switch' + val); + // if (!bt.isConnected || this.state.services.length <= 0) { + // this.addLog('蓝牙尚未连接或者service未发现'); + // return Promise.reject('蓝牙尚未连接或者service未发现'); + // } + this.addLog(`switch${ val }`); bt.getService(UUID_SERVICE).getCharacteristic(UUID_BUTTON_READ_WRITE_NOTIFY).setNotify(val) - .then(res => { + .then((res) => { this.setState({ testCharNotify: val }); - this.addLog((val ? '开启' : '关闭') + '特征值通知成功'); + this.addLog(`${ val ? '开启' : '关闭' }特征值通知成功`); }) - .catch(err => { + .catch((err) => { this.setState({ testCharNotify: !val }); - this.addLog((val ? '开启' : '关闭') + '特征值通知失败:' + JSON.stringify(err)); + this.addLog(`${ val ? '开启' : '关闭' }特征值通知失败:${ JSON.stringify(err) }`); }); } @@ -206,8 +206,7 @@ export default class MainPage extends React.Component { if (val === '') { val = str.charCodeAt(i).toString(16); - } - else { + } else { val += str.charCodeAt(i).toString(16); } } @@ -230,29 +229,28 @@ export default class MainPage extends React.Component { text = this.stringToHex(text); // -1: 自动判断,0: 普通小米蓝牙协议设备,1: 安全芯片小米蓝牙设备(比如锁类产品),2: 分享的安全芯片小米蓝牙设备,3: 普通的BLE蓝牙设备(无 mibeacon,无小米 FE95 service), 4: Standard Auth 标准蓝牙认证协议(通常2019.10.1之后上线的新设备,使用的都是该蓝牙协议,具体详情可以与设备端开发沟通) if (this.state.scType === 0) { - this.addLog('使用Token加密传输,' + text); - bt.securityLock.encryptMessageWithToken(text).then(res => { + this.addLog(`使用Token加密传输,${ text }`); + bt.securityLock.encryptMessageWithToken(text).then((res) => { const { result } = res; bt.getService(UUID_SERVICE).getCharacteristic(UUID_LED_READ_WRITE).writeWithoutResponse(result); }) - .then(res => { - this.addLog('write res: ' + JSON.stringify(res)); + .then((res) => { + this.addLog(`write res: ${ JSON.stringify(res) }`); }) - .catch(err => { - this.addLog('write error: ' + JSON.stringify(err)); + .catch((err) => { + this.addLog(`write error: ${ JSON.stringify(err) }`); }); - } - else { - this.addLog('使用Session加密传输,' + text); + } else { + this.addLog(`使用Session加密传输,${ text }`); bt.securityLock.encryptMessage(text) - .then(hex => { + .then((hex) => { bt.getService(UUID_SERVICE).getCharacteristic(UUID_LED_READ_WRITE).writeWithoutResponse(hex); }) - .then(res => { - this.addLog('write res: ' + JSON.stringify(res)); + .then((res) => { + this.addLog(`write res: ${ JSON.stringify(res) }`); }) - .catch(err => { - this.addLog('write error: ' + JSON.stringify(err)); + .catch((err) => { + this.addLog(`write error: ${ JSON.stringify(err) }`); }); } } @@ -269,39 +267,37 @@ export default class MainPage extends React.Component { this.addLog('开始发先服务'); this.setState({ blueConnecting: false, connectState: '已连接', btConnect: true }); bt.startDiscoverServices(); - } - else if (bt.isConnecting) { + } else if (bt.isConnecting) { this.addLog('蓝牙正处于连接中,请等待连接结果后再试'); - } - else { + } else { const that = this; - this.addLog('' + Host.isAndroid); + this.addLog(`${ Host.isAndroid }`); if (Host.isAndroid && mac === undefined) { - this.setState({ blueConnecting: true, connectState: '扫描设备中' + bt.mac }); + this.setState({ blueConnecting: true, connectState: `扫描设备中${ bt.mac }` }); Bluetooth.startScan(15000); return; } - bt.connect(this.state.scType, { did: Device.deviceID }).then(data => { + bt.connect(this.state.scType, { did: Device.deviceID }).then((data) => { this.setState({ blueConnecting: false, connectState: '已连接', btConnect: true }); bt.startDiscoverServices(); - }).catch(data => { + }).catch((data) => { this.setState({ blueConnecting: false, connectState: '连接失败', btConnect: false }); - this.addLog('ble connect failed: ' + JSON.stringify(data)); + this.addLog(`ble connect failed: ${ JSON.stringify(data) }`); if (data.code === -7 && disconnectOntimeOut) { Bluetooth.retrievePeripheralsWithServicesForIOS('FE95') - .then(res => { - that.addLog('获取已连接设备:' + JSON.stringify(res)); + .then((res) => { + that.addLog(`获取已连接设备:${ JSON.stringify(res) }`); return new Promise((resolve, reject) => { for (const key in res) { - //判断V是自己要断连的设备 - that.addLog('准备断开连接:' + key); + // 判断V是自己要断连的设备 + that.addLog(`准备断开连接:${ key }`); Bluetooth.createBluetoothLE(key).disconnect(); } resolve(); }); }) .then(() => { - //重连设备 + // 重连设备 that.connect(mac, false); }); } @@ -315,7 +311,7 @@ export default class MainPage extends React.Component { } checkBluetoothIsEnabled() { - Bluetooth.checkBluetoothIsEnabled().then(yes => { + Bluetooth.checkBluetoothIsEnabled().then((yes) => { statusEnable = yes; }); } @@ -326,22 +322,22 @@ export default class MainPage extends React.Component { addLog(string) { let { log } = this.state; - log = string + '\n' + log; + log = `${ string }\n${ log }`; this.setState({ log }); } render() { return ( - { - Bluetooth.stopScan(); - this.setState({ blueConnecting: false }); - }} - visible={this.state.blueConnecting} - /> + {/* { */} + {/* Bluetooth.stopScan(); */} + {/* this.setState({ blueConnecting: false }); */} + {/* }} */} + {/* visible={this.state.blueConnecting} */} + {/* /> */} { if (!this.state.btConnect) { this.connect(); - } - else { + } else { this.disconnect(); } }} @@ -370,7 +365,7 @@ export default class MainPage extends React.Component { }} placeholder="此处填写测试写入数据" numberOfLines={1} - onChangeText={text => this.setState({ testEncrptText: text })} + onChangeText={(text) => this.setState({ testEncrptText: text })} value={this.state.testEncrptText} /> { + if(value.isChecked){ + subArray.push(value.name); + } + }); + + bt.unsubscribeMessages(); + if(subArray.length >0){ + this.addLog(`当前已订阅属性:${ JSON.stringify(subArray) }`); + bt.subscribeMessages(...subArray).then((subcription) => { + + }).catch((err) => console.log('subscribe exception fail')); + } + + + } + render() { return ( @@ -186,6 +215,30 @@ export default class MainPage extends React.Component { this.doAction() }} /> + + {this.state.specProps.map((value, index) => { + return ( + + { + value.isChecked = !value.isChecked; + console.log(`check prop item key=${ value.name },desc=${ value.desc },checked=${ value.isChecked },index=${ index }`); + }} + /> + {value.desc} + + ); + }) + } + + +