@hap-toolkit/debugger 1.9.12 → 1.9.13-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/adb/module.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _adbDevicesEmitter=_interopRequireDefault(require("adb-devices-emitter")),_adbCommander=_interopRequireDefault(require("adb-commander")),_sharedUtils=require("@hap-toolkit/shared-utils"),_recordClient=require("@hap-toolkit/shared-utils/lib/record-client"),_config=_interopRequireDefault(require("@hap-toolkit/shared-utils/config")),_debuglog=_interopRequireDefault(require("./debuglog"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const REMOTE_REVERSE_PORT=12306,REMOTE_UP_FORWARD_PORT=39517;class ADBModule{constructor(e){this.option=e,this.currentDeviceMap=new Map,this.cachedDeviceMap=new Map,this.DEBUG=(process.env.NODE_DEBUG||"").split(",").includes("adb"),this._localUpForwardPort=39517,this.commander=_adbCommander.default,this.devicesEmitter=_adbDevicesEmitter.default,this._lastPromise=null,this.emulators=new Map,this.init()}init(){(0,_debuglog.default)("init(): start"),this.devicesEmitter.addEventListener("deviceAdded",(e=>{this._listen(e,this.onDeviceAdded.bind(this))})),this.devicesEmitter.addEventListener("deviceRemoved",(e=>{this._listen(e,this.onDeviceRemoved.bind(this))})),this.devicesEmitter.start()}_listen(e,r){this._lastPromise?this._lastPromise=this._lastPromise.then((()=>r(e)),(()=>r(e))):this._lastPromise=r(e)}_getNextLocalForwardPort(){return this._localUpForwardPort++}async onDeviceAdded(e){const{sn:r}=e;_sharedUtils.colorconsole.info(`### App Server ### 设备"${r}"被连入`);const{result:t}=await this.commander.getProp(r);t&&this.emulators.set(t.trim(),r);const o=this.option.localReversePort;if((await this.establishADBProxyLink("reverse",[r,o,12306])).err)return void _sharedUtils.colorconsole.error(`### App Server ### onDeviceAdded(): (${r})建立adb reverse失败(local port: ${o}, remote port: 12306)`);let i=this.cachedDeviceMap.get(r);(0,_debuglog.default)(`onDeviceAdded():(${r})\ncachedDevice:\t${JSON.stringify(i)}\ncachedDeviceList:\t${JSON.stringify(Array.from(this.cachedDeviceMap.entries()))}`),i&&i.upForwardPortPair||(i={upForwardPortPair:[this._getNextLocalForwardPort(),39517]});if((await this.establishADBProxyLink("forward",[r].concat(i.upForwardPortPair))).err)_sharedUtils.colorconsole.error(`### App Server ### onDeviceAdded(): (${r})建立adb forward失败(local port: ${i.upForwardPortPair[0]}, remote port: ${i.upForwardPortPair[1]}) `);else{if(i.wsPortPair){(await this.establishADBProxyLink("forward",[r,i.wsPortPair[0],i.wsPortPair[1]])).err&&(_sharedUtils.colorconsole.warn(`### App Server ### onDeviceAdded():(${r}) 建立adb forward失败(local port: ${i.wsPortPair[0]}, remote port: ${i.wsPortPair[1]})`),i.wsPortPair=void 0)}this.currentDeviceMap.set(r,i),this.cachedDeviceMap.set(r,i),await this._writeClientLogFile({sn:r,ip:"127.0.0.1",port:i.upForwardPortPair[0]}),(0,_debuglog.default)(`onDeviceAdded():(${r}) end`),this.onCheckDeviceReverse(e)}}onCheckDeviceReverse(e){const{sn:r}=e;try{setTimeout((async()=>{const{result:e}=await this.commander._commandFactory(`adb -s ${r} reverse --list`);e&&-1!==e.indexOf(this.option.localReversePort)?_sharedUtils.colorconsole.info(`### App Server ### onCheckDeviceReverse(): (${r})建立adb reverse成功 )`):_sharedUtils.colorconsole.error(`### App Server ### onCheckDeviceReverse(): (${r})建立adb reverse失败,请重新运行命令调试 )`)}),6e3)}catch(e){_sharedUtils.colorconsole.error("### App Server ### onCheckDeviceReverse(): adb reverse连接检测失败")}}async onDeviceRemoved(e){const{sn:r}=e;_sharedUtils.colorconsole.info(`### App Server ### 手机设备(${r})被拔出`),this.currentDeviceMap.delete(r),this.DEBUG&&((0,_debuglog.default)(`deviceRemoved():(${r}) cachedDeviceList: ${JSON.stringify(Array.from(this.cachedDeviceMap.entries()))}`),await this.commander.print(`adb -s ${r} reverse --list`),await this.commander.print(`adb -s ${r} forward --list`)),await this._removeItemFromClientLogFile(r),(0,_debuglog.default)(`deviceRemoved():(${r}) end`)}async _writeClientLogFile(e){try{const{clientRecordPath:r}=_config.default;(0,_recordClient.recordClient)(r,e,(e=>{(0,_debuglog.default)(e)}))}catch(e){_sharedUtils.colorconsole.error(`### App Server ### writeClientLogFile(): 写入hap-toolkit-client-records.json文件出错: ${e.message}`)}}async _removeItemFromClientLogFile(e){try{const{clientRecordPath:r}=_config.default;(0,_recordClient.removeClientBySn)(r,e,(e=>{(0,_debuglog.default)(e)}))}catch(e){_sharedUtils.colorconsole.error(`### App Server ### _removeItemFromClientLogFile(): 移除hap-toolkit-client-records.json设备信息出错: ${e.message}`)}}async forwardForWsChannel(e,r){let t=this.currentDeviceMap.get(e);const o=r;if(!t){const r=this.emulators.get(e);_sharedUtils.colorconsole.warn(`### App Server ### 通过(${e})查找到设备${r}`),t=this.currentDeviceMap.get(r),t&&(e=r)}if(!t)return _sharedUtils.colorconsole.error(`### App Server ### 获取(${e})设备信息失败`),{localWsPort:o};const i=t.wsPortPair;if(i&&i[0]===o&&i[1]===r)return{localWsPort:o};const{err:s}=await this.establishADBProxyLink("forward",[e,o,r]);return s?(_sharedUtils.colorconsole.error("### AppApp Server ### forwardForWsChannel(): 创建WebSocket端口映射失败"),t.wsPortPair=void 0,{err:s}):(t.wsPortPair=[o,r],{localWsPort:o})}async establishADBProxyLink(e,r){const t=await this.commander[e](...r);return this.DEBUG&&((0,_debuglog.default)(`establishADBReverseLink(): (${r[0]}) adb ${e} setup result: ${JSON.stringify(t)}`),await this.commander.print(`adb -s ${r[0]} ${e} --list`)),t}_stop(){_sharedUtils.colorconsole.log("### ADB stop"),this.devicesEmitter.stop()}}var _default=ADBModule;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _adbDevicesEmitter=_interopRequireDefault(require("adb-devices-emitter")),_adbCommander=_interopRequireDefault(require("adb-commander")),_sharedUtils=require("@hap-toolkit/shared-utils"),_debuglog=_interopRequireDefault(require("./debuglog"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const REMOTE_REVERSE_PORT=12306,REMOTE_UP_FORWARD_PORT=39517;class ADBModule{constructor(e){this.option=e,this.currentDeviceMap=new Map,this.cachedDeviceMap=new Map,this.DEBUG=(process.env.NODE_DEBUG||"").split(",").includes("adb"),this._localUpForwardPort=39517,this.commander=_adbCommander.default,this.devicesEmitter=_adbDevicesEmitter.default,this._lastPromise=null,this.emulators=new Map,this.init()}init(){(0,_debuglog.default)("init(): start"),this.devicesEmitter.addEventListener("deviceAdded",(e=>{this._listen(e,this.onDeviceAdded.bind(this))})),this.devicesEmitter.addEventListener("deviceRemoved",(e=>{this._listen(e,this.onDeviceRemoved.bind(this))})),this.devicesEmitter.start()}_listen(e,r){this._lastPromise?this._lastPromise=this._lastPromise.then((()=>r(e)),(()=>r(e))):this._lastPromise=r(e)}_getNextLocalForwardPort(){return this._localUpForwardPort++}async onDeviceAdded(e){const{sn:r}=e;_sharedUtils.colorconsole.info(`### App Server ### 设备"${r}"被连入`);const{result:t}=await this.commander.getProp(r);t&&this.emulators.set(t.trim(),r);const o=this.option.localReversePort;if((await this.establishADBProxyLink("reverse",[r,o,12306])).err)return void _sharedUtils.colorconsole.error(`### App Server ### onDeviceAdded(): (${r})建立adb reverse失败(local port: ${o}, remote port: 12306)`);let i=this.cachedDeviceMap.get(r);(0,_debuglog.default)(`onDeviceAdded():(${r})\ncachedDevice:\t${JSON.stringify(i)}\ncachedDeviceList:\t${JSON.stringify(Array.from(this.cachedDeviceMap.entries()))}`),i&&i.upForwardPortPair||(i={upForwardPortPair:[this._getNextLocalForwardPort(),39517]});if((await this.establishADBProxyLink("forward",[r].concat(i.upForwardPortPair))).err)_sharedUtils.colorconsole.error(`### App Server ### onDeviceAdded(): (${r})建立adb forward失败(local port: ${i.upForwardPortPair[0]}, remote port: ${i.upForwardPortPair[1]}) `);else{if(i.wsPortPair){(await this.establishADBProxyLink("forward",[r,i.wsPortPair[0],i.wsPortPair[1]])).err&&(_sharedUtils.colorconsole.warn(`### App Server ### onDeviceAdded():(${r}) 建立adb forward失败(local port: ${i.wsPortPair[0]}, remote port: ${i.wsPortPair[1]})`),i.wsPortPair=void 0)}this.currentDeviceMap.set(r,i),this.cachedDeviceMap.set(r,i),await this._writeClientLogFile({sn:r,ip:"127.0.0.1",port:i.upForwardPortPair[0]}),(0,_debuglog.default)(`onDeviceAdded():(${r}) end`),this.onCheckDeviceReverse(e)}}onCheckDeviceReverse(e){const{sn:r}=e;try{setTimeout((async()=>{const{result:e}=await this.commander._commandFactory(`adb -s ${r} reverse --list`);e&&-1!==e.indexOf(this.option.localReversePort)?_sharedUtils.colorconsole.info(`### App Server ### onCheckDeviceReverse(): (${r})建立adb reverse成功 )`):_sharedUtils.colorconsole.error(`### App Server ### onCheckDeviceReverse(): (${r})建立adb reverse失败,请重新运行命令调试 )`)}),6e3)}catch(e){_sharedUtils.colorconsole.error("### App Server ### onCheckDeviceReverse(): adb reverse连接检测失败")}}async onDeviceRemoved(e){const{sn:r}=e;_sharedUtils.colorconsole.info(`### App Server ### 手机设备(${r})被拔出`),this.currentDeviceMap.delete(r),this.DEBUG&&((0,_debuglog.default)(`deviceRemoved():(${r}) cachedDeviceList: ${JSON.stringify(Array.from(this.cachedDeviceMap.entries()))}`),await this.commander.print(`adb -s ${r} reverse --list`),await this.commander.print(`adb -s ${r} forward --list`)),await this._removeItemFromClientLogFile(r),(0,_debuglog.default)(`deviceRemoved():(${r}) end`)}async _writeClientLogFile(e){try{const{clientRecordPath:r}=_sharedUtils.globalConfig;(0,_sharedUtils.recordClient)(r,e,(e=>{(0,_debuglog.default)(e)}))}catch(e){_sharedUtils.colorconsole.error(`### App Server ### writeClientLogFile(): 写入hap-toolkit-client-records.json文件出错: ${e.message}`)}}async _removeItemFromClientLogFile(e){try{const{clientRecordPath:r}=_sharedUtils.globalConfig;(0,_sharedUtils.removeClientBySn)(r,e,(e=>{(0,_debuglog.default)(e)}))}catch(e){_sharedUtils.colorconsole.error(`### App Server ### _removeItemFromClientLogFile(): 移除hap-toolkit-client-records.json设备信息出错: ${e.message}`)}}async forwardForWsChannel(e,r){let t=this.currentDeviceMap.get(e);const o=r;if(!t){const r=this.emulators.get(e);_sharedUtils.colorconsole.warn(`### App Server ### 通过(${e})查找到设备${r}`),t=this.currentDeviceMap.get(r),t&&(e=r)}if(!t)return _sharedUtils.colorconsole.error(`### App Server ### 获取(${e})设备信息失败`),{localWsPort:o};const i=t.wsPortPair;if(i&&i[0]===o&&i[1]===r)return{localWsPort:o};const{err:s}=await this.establishADBProxyLink("forward",[e,o,r]);return s?(_sharedUtils.colorconsole.error("### AppApp Server ### forwardForWsChannel(): 创建WebSocket端口映射失败"),t.wsPortPair=void 0,{err:s}):(t.wsPortPair=[o,r],{localWsPort:o})}async establishADBProxyLink(e,r){const t=await this.commander[e](...r);return this.DEBUG&&((0,_debuglog.default)(`establishADBReverseLink(): (${r[0]}) adb ${e} setup result: ${JSON.stringify(t)}`),await this.commander.print(`adb -s ${r[0]} ${e} --list`)),t}_stop(){_sharedUtils.colorconsole.log("### ADB stop"),this.devicesEmitter.stop()}}var _default=ADBModule;exports.default=_default;
2
2
  //# sourceMappingURL=module.js.map
@@ -0,0 +1,73 @@
1
+ /*
2
+ * ATTENTION: An "eval-source-map" devtool has been used.
3
+ * This devtool is neither made for production nor for readable output files.
4
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
+ * or disable the default devtool with "devtool: false".
7
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
+ */
9
+ /******/ (() => { // webpackBootstrap
10
+ /******/ "use strict";
11
+ /******/ var __webpack_modules__ = ({
12
+
13
+ /***/ 416:
14
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
15
+
16
+ eval("\n\n/*\n * Copyright (c) 2021-present, the hapjs-platform Project Contributors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n__webpack_require__(357);\nconst $ = (selector, elem) => {\n return typeof elem === 'undefined' ? document.querySelector(selector) : elem.querySelector(selector);\n};\nfunction init() {\n const qrImgId = '#j-qr-icon';\n const $qrCodeImg = $(qrImgId);\n const timeStamp = Date.now() % 1e5;\n $qrCodeImg.src = `/qrcode?ws_id=${timeStamp}`;\n bindEvents();\n}\nfunction bindEvents() {\n const socket = io(location.origin); // eslint-disable-line no-undef\n\n socket.on('appRegistered', data => {\n console.info(`on receiving appRegistered message: ${JSON.stringify(data)}`);\n updateTableElement(data);\n });\n socket.on('informUpdate', () => {\n console.info('on receiving informUpdate');\n appendUpdateInfo();\n });\n}\n\n/**\n * 更新页面调试信息\n * @param data{ inspectorUrl, application }\n */\nfunction updateTableElement(data) {\n const wrapper = '.inspector-link-panel';\n const tplId = '#j-tpl-appinfo';\n const $panelWrapper = $(wrapper);\n const $tplAppInfoElem = $(tplId);\n const $tbodyElem = $('tbody', $panelWrapper);\n let tplTextContent = $tplAppInfoElem.textContent;\n $panelWrapper.classList.add('hide');\n const dataToFill = {\n data_app_name: data.application,\n data_href_value: data.inspectorUrl,\n data_href_name: '进入调试页面'\n };\n Object.keys(dataToFill).forEach(key => {\n tplTextContent = tplTextContent.replace(`{{${key}}}`, dataToFill[key]);\n });\n $tbodyElem.innerHTML = tplTextContent;\n $panelWrapper.classList.remove('hide');\n}\nfunction appendUpdateInfo() {\n const tplId = '#j-tpl-updatetip';\n const wrapper = '.inform-tip-wrapper';\n const $tplUpdateTipElem = $(tplId);\n const $panelWrapper = $(wrapper);\n $panelWrapper.innerHTML = $tplUpdateTipElem.textContent;\n}\ninit();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QWEsQ0FBQ2tCLFNBQVMsR0FBR0UsaUJBQWlCLENBQUNoQixXQUFXO0FBQ3pEO0FBRUExQixJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NsaWVudC9pbmRleC5qcz8xOTQyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtcHJlc2VudCwgdGhlIGhhcGpzLXBsYXRmb3JtIFByb2plY3QgQ29udHJpYnV0b3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbnJlcXVpcmUoJy4vaW5kZXguY3NzJylcbmNvbnN0ICQgPSAoc2VsZWN0b3IsIGVsZW0pID0+IHtcbiAgcmV0dXJuIHR5cGVvZiBlbGVtID09PSAndW5kZWZpbmVkJ1xuICAgID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcilcbiAgICA6IGVsZW0ucXVlcnlTZWxlY3RvcihzZWxlY3Rvcilcbn1cblxuZnVuY3Rpb24gaW5pdCgpIHtcbiAgY29uc3QgcXJJbWdJZCA9ICcjai1xci1pY29uJ1xuICBjb25zdCAkcXJDb2RlSW1nID0gJChxckltZ0lkKVxuICBjb25zdCB0aW1lU3RhbXAgPSBEYXRlLm5vdygpICUgMWU1XG4gICRxckNvZGVJbWcuc3JjID0gYC9xcmNvZGU/d3NfaWQ9JHt0aW1lU3RhbXB9YFxuICBiaW5kRXZlbnRzKClcbn1cblxuZnVuY3Rpb24gYmluZEV2ZW50cygpIHtcbiAgY29uc3Qgc29ja2V0ID0gaW8obG9jYXRpb24ub3JpZ2luKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cbiAgc29ja2V0Lm9uKCdhcHBSZWdpc3RlcmVkJywgKGRhdGEpID0+IHtcbiAgICBjb25zb2xlLmluZm8oYG9uIHJlY2VpdmluZyBhcHBSZWdpc3RlcmVkIG1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YClcbiAgICB1cGRhdGVUYWJsZUVsZW1lbnQoZGF0YSlcbiAgfSlcbiAgc29ja2V0Lm9uKCdpbmZvcm1VcGRhdGUnLCAoKSA9PiB7XG4gICAgY29uc29sZS5pbmZvKCdvbiByZWNlaXZpbmcgaW5mb3JtVXBkYXRlJylcbiAgICBhcHBlbmRVcGRhdGVJbmZvKClcbiAgfSlcbn1cblxuLyoqXG4gKiDmm7TmlrDpobXpnaLosIPor5Xkv6Hmga9cbiAqIEBwYXJhbSBkYXRheyBpbnNwZWN0b3JVcmwsIGFwcGxpY2F0aW9uIH1cbiAqL1xuZnVuY3Rpb24gdXBkYXRlVGFibGVFbGVtZW50KGRhdGEpIHtcbiAgY29uc3Qgd3JhcHBlciA9ICcuaW5zcGVjdG9yLWxpbmstcGFuZWwnXG4gIGNvbnN0IHRwbElkID0gJyNqLXRwbC1hcHBpbmZvJ1xuICBjb25zdCAkcGFuZWxXcmFwcGVyID0gJCh3cmFwcGVyKVxuICBjb25zdCAkdHBsQXBwSW5mb0VsZW0gPSAkKHRwbElkKVxuICBjb25zdCAkdGJvZHlFbGVtID0gJCgndGJvZHknLCAkcGFuZWxXcmFwcGVyKVxuICBsZXQgdHBsVGV4dENvbnRlbnQgPSAkdHBsQXBwSW5mb0VsZW0udGV4dENvbnRlbnRcblxuICAkcGFuZWxXcmFwcGVyLmNsYXNzTGlzdC5hZGQoJ2hpZGUnKVxuICBjb25zdCBkYXRhVG9GaWxsID0ge1xuICAgIGRhdGFfYXBwX25hbWU6IGRhdGEuYXBwbGljYXRpb24sXG4gICAgZGF0YV9ocmVmX3ZhbHVlOiBkYXRhLmluc3BlY3RvclVybCxcbiAgICBkYXRhX2hyZWZfbmFtZTogJ+i/m+WFpeiwg+ivlemhtemdoidcbiAgfVxuICBPYmplY3Qua2V5cyhkYXRhVG9GaWxsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICB0cGxUZXh0Q29udGVudCA9IHRwbFRleHRDb250ZW50LnJlcGxhY2UoYHt7JHtrZXl9fX1gLCBkYXRhVG9GaWxsW2tleV0pXG4gIH0pXG5cbiAgJHRib2R5RWxlbS5pbm5lckhUTUwgPSB0cGxUZXh0Q29udGVudFxuICAkcGFuZWxXcmFwcGVyLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGUnKVxufVxuXG5mdW5jdGlvbiBhcHBlbmRVcGRhdGVJbmZvKCkge1xuICBjb25zdCB0cGxJZCA9ICcjai10cGwtdXBkYXRldGlwJ1xuICBjb25zdCB3cmFwcGVyID0gJy5pbmZvcm0tdGlwLXdyYXBwZXInXG4gIGNvbnN0ICR0cGxVcGRhdGVUaXBFbGVtID0gJCh0cGxJZClcbiAgY29uc3QgJHBhbmVsV3JhcHBlciA9ICQod3JhcHBlcilcbiAgJHBhbmVsV3JhcHBlci5pbm5lckhUTUwgPSAkdHBsVXBkYXRlVGlwRWxlbS50ZXh0Q29udGVudFxufVxuXG5pbml0KClcbiJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiJCIsInNlbGVjdG9yIiwiZWxlbSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImluaXQiLCJxckltZ0lkIiwiJHFyQ29kZUltZyIsInRpbWVTdGFtcCIsIkRhdGUiLCJub3ciLCJzcmMiLCJiaW5kRXZlbnRzIiwic29ja2V0IiwiaW8iLCJsb2NhdGlvbiIsIm9yaWdpbiIsIm9uIiwiZGF0YSIsImNvbnNvbGUiLCJpbmZvIiwiSlNPTiIsInN0cmluZ2lmeSIsInVwZGF0ZVRhYmxlRWxlbWVudCIsImFwcGVuZFVwZGF0ZUluZm8iLCJ3cmFwcGVyIiwidHBsSWQiLCIkcGFuZWxXcmFwcGVyIiwiJHRwbEFwcEluZm9FbGVtIiwiJHRib2R5RWxlbSIsInRwbFRleHRDb250ZW50IiwidGV4dENvbnRlbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJkYXRhVG9GaWxsIiwiZGF0YV9hcHBfbmFtZSIsImFwcGxpY2F0aW9uIiwiZGF0YV9ocmVmX3ZhbHVlIiwiaW5zcGVjdG9yVXJsIiwiZGF0YV9ocmVmX25hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInJlcGxhY2UiLCJpbm5lckhUTUwiLCJyZW1vdmUiLCIkdHBsVXBkYXRlVGlwRWxlbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///416\n");
17
+
18
+ /***/ }),
19
+
20
+ /***/ 357:
21
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22
+
23
+ eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzU3LmpzIiwibWFwcGluZ3MiOiI7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NsaWVudC9pbmRleC5jc3M/MzVkNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///357\n");
24
+
25
+ /***/ })
26
+
27
+ /******/ });
28
+ /************************************************************************/
29
+ /******/ // The module cache
30
+ /******/ var __webpack_module_cache__ = {};
31
+ /******/
32
+ /******/ // The require function
33
+ /******/ function __webpack_require__(moduleId) {
34
+ /******/ // Check if module is in cache
35
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
36
+ /******/ if (cachedModule !== undefined) {
37
+ /******/ return cachedModule.exports;
38
+ /******/ }
39
+ /******/ // Create a new module (and put it into the cache)
40
+ /******/ var module = __webpack_module_cache__[moduleId] = {
41
+ /******/ // no module.id needed
42
+ /******/ // no module.loaded needed
43
+ /******/ exports: {}
44
+ /******/ };
45
+ /******/
46
+ /******/ // Execute the module function
47
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
48
+ /******/
49
+ /******/ // Return the exports of the module
50
+ /******/ return module.exports;
51
+ /******/ }
52
+ /******/
53
+ /************************************************************************/
54
+ /******/ /* webpack/runtime/make namespace object */
55
+ /******/ (() => {
56
+ /******/ // define __esModule on exports
57
+ /******/ __webpack_require__.r = (exports) => {
58
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
59
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
60
+ /******/ }
61
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
62
+ /******/ };
63
+ /******/ })();
64
+ /******/
65
+ /************************************************************************/
66
+ /******/
67
+ /******/ // startup
68
+ /******/ // Load entry module and return exports
69
+ /******/ // This entry module can't be inlined because the eval-source-map devtool is used.
70
+ /******/ var __webpack_exports__ = __webpack_require__(416);
71
+ /******/
72
+ /******/ })()
73
+ ;
@@ -1,7 +1,7 @@
1
- <!DOCTYPE html><html><head><meta charset="UTF-8"><title>调试器</title><link href="./index-2f0485d6.css" rel="stylesheet"></head><body class="bd-bg"><section class="qr-code-wrapper"><div><div class="qr-code-panel"><div class="qr-img"><img src="" id="j-qr-icon" class="qr-icon"></div><div class="block alert alert-warning updatetip"><div class="block"><h2 class="block-title" title="在设备上预览">手机预览</h2><p>1. 扫码安装rpk包</p><p>2. 在手机的调试器上点击 <button class="btn btn-default">开始调试</button> ,启动调试界面</p></div><div class="block"><h2 class="block-title" title="在浏览器中预览">web 预览</h2><p><a href="/preview" target="_blank">打开 web 预览</a></p></div></div></div></div></section><section class="inform-tip-wrapper"></section><section class="result inspector-link-panel hide"><div class="panel panel-default"><div class="panel-heading">调试</div><div class="panel-body"><table class="table tunning"><tbody></tbody></table></div></div></section><script type="text/template" id="j-tpl-appinfo"><tr>
1
+ <!DOCTYPE html><html><head><meta charset="UTF-8"><title>调试器</title><link href="./index-43a0aa06.css" rel="stylesheet"></head><body class="bd-bg"><section class="qr-code-wrapper"><div><div class="qr-code-panel"><div class="qr-img"><img src="" id="j-qr-icon" class="qr-icon"></div><div class="block alert alert-warning updatetip"><div class="block"><h2 class="block-title" title="在设备上预览">手机预览</h2><p>1. 扫码安装rpk包</p><p>2. 在手机的调试器上点击 <button class="btn btn-default">开始调试</button> ,启动调试界面</p></div><div class="block"><h2 class="block-title" title="在浏览器中预览">web 预览</h2><p><a href="/preview" target="_blank">打开 web 预览</a></p></div></div></div></div></section><section class="inform-tip-wrapper"></section><section class="result inspector-link-panel hide"><div class="panel panel-default"><div class="panel-heading">调试</div><div class="panel-body"><table class="table tunning"><tbody></tbody></table></div></div></section><script type="text/template" id="j-tpl-appinfo"><tr>
2
2
  <td class="tname">{{data_app_name}}</td>
3
3
  <td class="tlink"><a href='{{data_href_value}}' target='_blank' class="label label-info">{{data_href_name}}</a>
4
4
  </td>
5
5
  </tr></script><script type="text/template" id="j-tpl-updatetip"><div class="alert alert-warning updatetip">
6
6
  <p>调试器已有重要更新,请更新调试器</p>
7
- </div></script><script src="/socket.io/socket.io.js"></script><script defer="defer" src="index-2f0485d6.js"></script></body></html>
7
+ </div></script><script src="/socket.io/socket.io.js"></script><script defer="defer" src="index-43a0aa06.js"></script></body></html>
package/lib/index.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={router:!0};exports.router=void 0;var _router=_interopRequireWildcard(require("./router"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var a=u?Object.getOwnPropertyDescriptor(e,n):null;a&&(a.get||a.set)?Object.defineProperty(o,n,a):o[n]=e[n]}return o.default=e,t&&t.set(e,o),o}exports.router=_router,Object.keys(_router).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_router[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _router[e]}}))}));
2
+ //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _path=_interopRequireDefault(require("@jayfate/path")),_koaRouter=_interopRequireDefault(require("koa-router")),_koaBody=_interopRequireDefault(require("koa-body")),_koaStatic=_interopRequireDefault(require("koa-static")),_koaMount=_interopRequireDefault(require("koa-mount")),_chromeDevtoolsFrontend=_interopRequireDefault(require("@hap-toolkit/chrome-devtools-frontend")),_config=_interopRequireDefault(require("@hap-toolkit/shared-utils/config")),_routes=_interopRequireDefault(require("./routes")),_wsserver=require("./wsserver"),_adb=require("../adb");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function applyRouter(e){const t=new _koaRouter.default;e.context.router=t,e.use((0,_koaStatic.default)(_path.default.resolve(__dirname,"../client")));const o=(0,_koaMount.default)("/inspector",(0,_koaStatic.default)(_chromeDevtoolsFrontend.default.devtoolsPath));return e.use(o),t.get("/",_routes.default.index),t.post("/",(0,_koaBody.default)(),_routes.default.adapterForBackwardComp),t.post("/postwsid",(0,_koaBody.default)(),_routes.default.register),t.get("/searchsn",(0,_koaBody.default)(),_routes.default.searchSn),t.post("/poststdbg",(0,_koaBody.default)(),_routes.default.startDebug),t.post("/saveskeletonfile",(0,_koaBody.default)(),_routes.default.saveSkeletonFile),t.get("/qrcode",_routes.default.qrCode),t}async function beforeStart(e,t){await(0,_wsserver.createSocketServer)(e,t);const o=t.context.conf,{disableADB:r}=o.options;r||(t.context.adbDebugger=(0,_adb.createADBDebugger)({pathClientLog:_config.default.clientRecordPath,localReversePort:o.defaults.serverPort}))}module.exports={applyRouter:applyRouter,beforeStart:beforeStart};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.applyRouter=applyRouter,exports.beforeStart=beforeStart;var _path=_interopRequireDefault(require("path")),_koaRouter=_interopRequireDefault(require("koa-router")),_koaBody=_interopRequireDefault(require("koa-body")),_koaStatic=_interopRequireDefault(require("koa-static")),_koaMount=_interopRequireDefault(require("koa-mount")),_chromeDevtoolsFrontend=_interopRequireDefault(require("@hap-toolkit/chrome-devtools-frontend")),_sharedUtils=require("@hap-toolkit/shared-utils"),_routes=_interopRequireDefault(require("./routes")),_wsserver=require("./wsserver"),_adb=require("../adb");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function applyRouter(e){const t=new _koaRouter.default;e.context.router=t,e.use((0,_koaStatic.default)(_path.default.resolve(__dirname,"../client")));const o=(0,_koaMount.default)("/inspector",(0,_koaStatic.default)(_chromeDevtoolsFrontend.default.devtoolsPath));return e.use(o),t.get("/",_routes.default.index),t.post("/",(0,_koaBody.default)(),_routes.default.adapterForBackwardComp),t.post("/postwsid",(0,_koaBody.default)(),_routes.default.register),t.get("/searchsn",(0,_koaBody.default)(),_routes.default.searchSn),t.post("/poststdbg",(0,_koaBody.default)(),_routes.default.startDebug),t.post("/saveskeletonfile",(0,_koaBody.default)(),_routes.default.saveSkeletonFile),t.get("/qrcode",_routes.default.qrCode),t}async function beforeStart(e,t){await(0,_wsserver.createSocketServer)(e,t);const o=t.context.conf,{disableADB:r}=o.options;r||(t.context.adbDebugger=(0,_adb.createADBDebugger)({pathClientLog:_sharedUtils.globalConfig.clientRecordPath,localReversePort:o.defaults.serverPort}),process.env.JEST_WORKER_ID&&setTimeout((()=>{t.context.adbDebugger._stop()}),3e4))}
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.saveSkeletonFile=saveSkeletonFile,exports.searchSn=searchSn,exports.startDebug=startDebug;var _path=_interopRequireDefault(require("@jayfate/path")),_fs=_interopRequireDefault(require("fs")),_qrImage=_interopRequireDefault(require("qr-image")),_recordClient=require("@hap-toolkit/shared-utils/lib/record-client"),_sharedUtils=require("@hap-toolkit/shared-utils"),_config=_interopRequireDefault(require("@hap-toolkit/shared-utils/config")),_utils=require("../utils"),_service=require("./service");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}async function index(e,t){const r=_path.default.resolve(__dirname,"../client/index.html");try{_fs.default.existsSync(r)?(e.set("Content-Type","text/html;charset=utf8"),e.body=_fs.default.createReadStream(r)):(await t(),e.throw("404",`无法找到${r}文件`))}catch(t){_sharedUtils.colorconsole.error(`### App Server ### 无法获取${r}文件: ${t}`),e.body=`404 Not found ${r}`}}async function register(e,t){_sharedUtils.colorconsole.info(`### App Server ### 收到App注册信息, 格式:\n${JSON.stringify(e.request.body)}\n`),await t();const{ws:r,application:o}=e.request.body,{serverPort:s}=e.conf.defaults,a=(0,_service.getInspectorUrl)({ws:r,serverPort:s});emitWSEvent(e.io,"appRegistered",{inspectorUrl:a,application:o}),_sharedUtils.colorconsole.info(`请访问以下链接进行调试:\n\n${a}\n`)}async function adapterForBackwardComp(e,t){try{const r=e.request.body,{method:o,path:s}=e,a="ws"in r&&r.ws.indexOf("inspector")>=0,i="application"in r&&r.application.indexOf("hybrid.loader")>=0;if("post"===o.toLowerCase()&&"/"===s&&a&&i){_sharedUtils.colorconsole.warn("调试器已有重要更新,请更新调试器"),emitWSEvent(e.io,"informUpdate");const{ws:t,application:o}=r,{serverPort:s}=e.conf.defaults,a=(0,_service.getInspectorUrl)({ws:t,serverPort:s});emitWSEvent(e.io,"appRegistered",{inspectorUrl:a,application:o}),_sharedUtils.colorconsole.info(`请访问以下链接进行调试:\n\n${a}\n`)}else await t()}catch(e){_sharedUtils.colorconsole.error(`### App Server ### 出错信息: ${e.message}`),_sharedUtils.colorconsole.error("### App Server ### 当前调试器与toolkit不兼容,请更新调试器。"),await t()}}async function qrCode(e,t){const{serverPort:r}=e.conf.defaults,o=`http://${(0,_sharedUtils.getServerIPAndPort)(r)}`,s=_qrImage.default.image(o,{size:9});await t(),e.type="image/png",e.body=s}async function searchSn(e,t){e.status=200;const r=_config.default.clientRecordPath;try{if(_fs.default.existsSync(r)){const e=(0,_recordClient.getRecords)(r),t=(0,_recordClient.getProjectClients)(e);t.length>0&&(_sharedUtils.colorconsole.log("### App Loader ### 通知设备开始下发SN"),t.forEach((function(e){"127.0.0.1"===e.ip&&(0,_sharedUtils.getDeviceInfo)(e,((t,r)=>{t||r.sn||(0,_service.callDeviceWithOwnSn)(e)}))})))}else await t(),e.throw("404","无法获取设备SN")}catch(e){_sharedUtils.colorconsole.warn(`### App Server ### 没有记录设备信息,请尝试重新连接: ${e}`)}}async function startDebug(e,t){e.status=200;const r=(0,_service.getDebugInfoFromRequest)(e.request),{sn:o,linkMode:s,devicePort:a,application:i,target:n,traceId:c}=r;let l=r.ws;if(process.env.TRACE_ID=c||"NULL",(0,_utils.trackDebug)(_utils.eventAlias.h_re_std,{DEVICE_SN:o,DEVICE_PORT:a}),s===_service.LINK_MODE.ADB){const{localWsPort:r,err:s}=await e.adbDebugger.forwardForWsChannel(o,a);if(s)return console.error(`startDebug(): adb forward 端口映射失败: ${s.message}`),(0,_utils.trackDebug)(_utils.eventAlias.h_forward_err),void await t();l=l.replace(a,r)}const{serverPort:d}=e.conf.defaults,u=(0,_service.getInspectorUrl)({ws:l,serverPort:d,traceId:c});emitWSEvent(e.io,"appRegistered",{inspectorUrl:u,application:i}),_sharedUtils.colorconsole.info(`请访问以下链接进行调试:\n\n${u}\n`);const p=e.conf.options.callback;if(p&&"function"==typeof p){p({url:u,action:"openDebugWin",target:n})}(0,_utils.trackDebug)(_utils.eventAlias.h_ins_url,{inspectorUrl:u}),!1!==e.conf.options.openDebugger&&await(0,_utils.startChrome)(u,{chromePath:e.conf.options.chromePath}),await t()}async function saveSkeletonFile(e,t){e.status=200;try{const{page:r,code:o,file:s}=e.request.body,a=_path.default.join(_config.default.projectPath,"src/skeleton");_fs.default.existsSync(a)||_fs.default.mkdirSync(a);const i=_path.default.join(a,"config.json");let n;_fs.default.existsSync(i)?(n=(0,_sharedUtils.readJson)(i),n.singleMap[r]||(n.singleMap[r]=s)):n={singleMap:{[r]:s}},_fs.default.writeFileSync(i,JSON.stringify(n,null,2));const c=_path.default.join(a,"page");_fs.default.existsSync(c)||_fs.default.mkdirSync(c);const l=_path.default.join(c,s);_fs.default.writeFileSync(l,o),e.body={code:0,msg:l},await t()}catch(r){e.body={code:1,msg:r.message},await t()}}function emitWSEvent(e,t,r){e.sockets.emit(t,r||{})}var _default={index:index,register:register,adapterForBackwardComp:adapterForBackwardComp,qrCode:qrCode,searchSn:searchSn,startDebug:startDebug,saveSkeletonFile:saveSkeletonFile};exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.saveSkeletonFile=saveSkeletonFile,exports.searchSn=searchSn,exports.startDebug=startDebug;var _path=_interopRequireDefault(require("path")),_fs=_interopRequireDefault(require("fs")),_qrImage=_interopRequireDefault(require("qr-image")),_sharedUtils=require("@hap-toolkit/shared-utils"),_utils=require("../utils"),_service=require("./service");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}async function index(e,t){const r=_path.default.resolve(__dirname,"../client/index.html");try{_fs.default.existsSync(r)?(e.set("Content-Type","text/html;charset=utf8"),e.body=_fs.default.createReadStream(r)):(await t(),e.throw("404",`无法找到${r}文件`))}catch(t){_sharedUtils.colorconsole.error(`### App Server ### 无法获取${r}文件: ${t}`),e.body=`404 Not found ${r}`}}async function register(e,t){_sharedUtils.colorconsole.info(`### App Server ### 收到App注册信息, 格式:\n${JSON.stringify(e.request.body)}\n`),await t();const{ws:r,application:s}=e.request.body,{serverPort:o}=e.conf.defaults,a=(0,_service.getInspectorUrl)({ws:r,serverPort:o});emitWSEvent(e.io,"appRegistered",{inspectorUrl:a,application:s}),_sharedUtils.colorconsole.info(`请访问以下链接进行调试:\n\n${a}\n`)}async function adapterForBackwardComp(e,t){try{const r=e.request.body,{method:s,path:o}=e,a="ws"in r&&r.ws.indexOf("inspector")>=0,i="application"in r&&r.application.indexOf("hybrid.loader")>=0;if("post"===s.toLowerCase()&&"/"===o&&a&&i){_sharedUtils.colorconsole.warn("调试器已有重要更新,请更新调试器"),emitWSEvent(e.io,"informUpdate");const{ws:t,application:s}=r,{serverPort:o}=e.conf.defaults,a=(0,_service.getInspectorUrl)({ws:t,serverPort:o});emitWSEvent(e.io,"appRegistered",{inspectorUrl:a,application:s}),_sharedUtils.colorconsole.info(`请访问以下链接进行调试:\n\n${a}\n`)}else await t()}catch(e){_sharedUtils.colorconsole.error(`### App Server ### 出错信息: ${e.message}`),_sharedUtils.colorconsole.error("### App Server ### 当前调试器与toolkit不兼容,请更新调试器。"),await t()}}async function qrCode(e,t){const{serverPort:r}=e.conf.defaults,s=`http://${(0,_sharedUtils.getServerIPAndPort)(r)}`,o=_qrImage.default.image(s,{size:9});await t(),e.type="image/png",e.body=o}async function searchSn(e,t){e.status=200;const r=_sharedUtils.globalConfig.clientRecordPath;try{if(_fs.default.existsSync(r)){const e=(0,_sharedUtils.getRecords)(r),t=(0,_sharedUtils.getProjectClients)(e);t.length>0&&(_sharedUtils.colorconsole.log("### App Loader ### 通知设备开始下发SN"),t.forEach((function(e){"127.0.0.1"===e.ip&&(0,_sharedUtils.getDeviceInfo)(e,((t,r)=>{t||r.sn||(0,_service.callDeviceWithOwnSn)(e)}))})))}else await t(),e.throw("404","无法获取设备SN")}catch(e){_sharedUtils.colorconsole.warn(`### App Server ### 没有记录设备信息,请尝试重新连接: ${e}`)}}async function startDebug(e,t){e.status=200;const r=(0,_service.getDebugInfoFromRequest)(e.request),{sn:s,linkMode:o,devicePort:a,application:i,target:n,traceId:l}=r;let c=r.ws;if(process.env.TRACE_ID=l||"NULL",(0,_utils.trackDebug)(_utils.eventAlias.h_re_std,{DEVICE_SN:s,DEVICE_PORT:a}),o===_service.LINK_MODE.ADB){const{localWsPort:r,err:o}=await e.adbDebugger.forwardForWsChannel(s,a);if(o)return console.error(`startDebug(): adb forward 端口映射失败: ${o.message}`),(0,_utils.trackDebug)(_utils.eventAlias.h_forward_err),void await t();c=c.replace(a,r)}const{serverPort:d}=e.conf.defaults,u=(0,_service.getInspectorUrl)({ws:c,serverPort:d,traceId:l});emitWSEvent(e.io,"appRegistered",{inspectorUrl:u,application:i}),_sharedUtils.colorconsole.info(`请访问以下链接进行调试:\n\n${u}\n`);const p=e.conf.options.callback;if(p&&"function"==typeof p){p({url:u,action:"openDebugWin",target:n})}(0,_utils.trackDebug)(_utils.eventAlias.h_ins_url,{inspectorUrl:u}),!1!==e.conf.options.openDebugger&&await(0,_utils.startChrome)(u,{chromePath:e.conf.options.chromePath}),await t()}async function saveSkeletonFile(e,t){e.status=200;try{const{page:r,code:s,file:o}=e.request.body,a=_path.default.join(_sharedUtils.globalConfig.projectPath,"src/skeleton");_fs.default.existsSync(a)||_fs.default.mkdirSync(a);const i=_path.default.join(a,"config.json");let n;_fs.default.existsSync(i)?(n=(0,_sharedUtils.readJson)(i),n.singleMap[r]||(n.singleMap[r]=o)):n={singleMap:{[r]:o}},_fs.default.writeFileSync(i,JSON.stringify(n,null,2));const l=_path.default.join(a,"page");_fs.default.existsSync(l)||_fs.default.mkdirSync(l);const c=_path.default.join(l,o);_fs.default.writeFileSync(c,s),e.body={code:0,msg:c},await t()}catch(r){e.body={code:1,msg:r.message},await t()}}function emitWSEvent(e,t,r){e.sockets.emit(t,r||{})}var _default={index:index,register:register,adapterForBackwardComp:adapterForBackwardComp,qrCode:qrCode,searchSn:searchSn,startDebug:startDebug,saveSkeletonFile:saveSkeletonFile};exports.default=_default;
2
2
  //# sourceMappingURL=routes.js.map
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@hap-toolkit/debugger",
3
- "version": "1.9.12",
3
+ "version": "1.9.13-beta",
4
4
  "description": "@hap-toolkit/debugger",
5
5
  "engines": {
6
- "node": ">=8.0.0"
6
+ "node": ">=14.0.0"
7
7
  },
8
8
  "publishConfig": {
9
9
  "access": "public"
@@ -13,6 +13,11 @@
13
13
  "debugger",
14
14
  "quickapp"
15
15
  ],
16
+ "main": "lib/index.js",
17
+ "exports": {
18
+ "import": "./src/index.js",
19
+ "require": "./lib/index.js"
20
+ },
16
21
  "directories": {
17
22
  "lib": "lib",
18
23
  "test": "__tests__"
@@ -24,7 +29,7 @@
24
29
  ],
25
30
  "dependencies": {
26
31
  "@hap-toolkit/chrome-devtools-frontend": "^1.1.2",
27
- "@hap-toolkit/shared-utils": "1.9.12",
32
+ "@hap-toolkit/shared-utils": "1.9.13-beta",
28
33
  "@jayfate/path": "^0.0.13",
29
34
  "@sentry/node": "^5.26.0",
30
35
  "adb-commander": "^0.1.9",
@@ -45,5 +50,5 @@
45
50
  "mini-css-extract-plugin": "^1.3.0",
46
51
  "mkdirp": "^0.5.5"
47
52
  },
48
- "gitHead": "db1ba8ad12ce32c83a543af0459a208e1eb97e28"
53
+ "gitHead": "a9b0d35e6a243920076ad27d9ec37d5036208667"
49
54
  }
@@ -1,73 +0,0 @@
1
- /*
2
- * ATTENTION: An "eval-source-map" devtool has been used.
3
- * This devtool is neither made for production nor for readable output files.
4
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
- * or disable the default devtool with "devtool: false".
7
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
- */
9
- /******/ (() => { // webpackBootstrap
10
- /******/ "use strict";
11
- /******/ var __webpack_modules__ = ({
12
-
13
- /***/ 157:
14
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
15
-
16
- eval("\n\n/*\n * Copyright (c) 2021-present, the hapjs-platform Project Contributors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n__webpack_require__(278);\nconst $ = (selector, elem) => {\n return typeof elem === 'undefined' ? document.querySelector(selector) : elem.querySelector(selector);\n};\nfunction init() {\n const qrImgId = '#j-qr-icon';\n const $qrCodeImg = $(qrImgId);\n const timeStamp = Date.now() % 1e5;\n $qrCodeImg.src = `/qrcode?ws_id=${timeStamp}`;\n bindEvents();\n}\nfunction bindEvents() {\n const socket = io(location.origin); // eslint-disable-line no-undef\n\n socket.on('appRegistered', data => {\n console.info(`on receiving appRegistered message: ${JSON.stringify(data)}`);\n updateTableElement(data);\n });\n socket.on('informUpdate', () => {\n console.info('on receiving informUpdate');\n appendUpdateInfo();\n });\n}\n\n/**\n * 更新页面调试信息\n * @param data{ inspectorUrl, application }\n */\nfunction updateTableElement(data) {\n const wrapper = '.inspector-link-panel';\n const tplId = '#j-tpl-appinfo';\n const $panelWrapper = $(wrapper);\n const $tplAppInfoElem = $(tplId);\n const $tbodyElem = $('tbody', $panelWrapper);\n let tplTextContent = $tplAppInfoElem.textContent;\n $panelWrapper.classList.add('hide');\n const dataToFill = {\n data_app_name: data.application,\n data_href_value: data.inspectorUrl,\n data_href_name: '进入调试页面'\n };\n Object.keys(dataToFill).forEach(key => {\n tplTextContent = tplTextContent.replace(`{{${key}}}`, dataToFill[key]);\n });\n $tbodyElem.innerHTML = tplTextContent;\n $panelWrapper.classList.remove('hide');\n}\nfunction appendUpdateInfo() {\n const tplId = '#j-tpl-updatetip';\n const wrapper = '.inform-tip-wrapper';\n const $tplUpdateTipElem = $(tplId);\n const $panelWrapper = $(wrapper);\n $panelWrapper.innerHTML = $tplUpdateTipElem.textContent;\n}\ninit();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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V0FBVztBQUN6RDtBQUVBMUIsSUFBSSxFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGhhcC10b29sa2l0L2RlYnVnZ2VyLy4vc3JjL2NsaWVudC9pbmRleC5qcz8zYjVlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtcHJlc2VudCwgdGhlIGhhcGpzLXBsYXRmb3JtIFByb2plY3QgQ29udHJpYnV0b3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbnJlcXVpcmUoJy4vaW5kZXguY3NzJylcbmNvbnN0ICQgPSAoc2VsZWN0b3IsIGVsZW0pID0+IHtcbiAgcmV0dXJuIHR5cGVvZiBlbGVtID09PSAndW5kZWZpbmVkJ1xuICAgID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcilcbiAgICA6IGVsZW0ucXVlcnlTZWxlY3RvcihzZWxlY3Rvcilcbn1cblxuZnVuY3Rpb24gaW5pdCgpIHtcbiAgY29uc3QgcXJJbWdJZCA9ICcjai1xci1pY29uJ1xuICBjb25zdCAkcXJDb2RlSW1nID0gJChxckltZ0lkKVxuICBjb25zdCB0aW1lU3RhbXAgPSBEYXRlLm5vdygpICUgMWU1XG4gICRxckNvZGVJbWcuc3JjID0gYC9xcmNvZGU/d3NfaWQ9JHt0aW1lU3RhbXB9YFxuICBiaW5kRXZlbnRzKClcbn1cblxuZnVuY3Rpb24gYmluZEV2ZW50cygpIHtcbiAgY29uc3Qgc29ja2V0ID0gaW8obG9jYXRpb24ub3JpZ2luKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cbiAgc29ja2V0Lm9uKCdhcHBSZWdpc3RlcmVkJywgKGRhdGEpID0+IHtcbiAgICBjb25zb2xlLmluZm8oYG9uIHJlY2VpdmluZyBhcHBSZWdpc3RlcmVkIG1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YClcbiAgICB1cGRhdGVUYWJsZUVsZW1lbnQoZGF0YSlcbiAgfSlcbiAgc29ja2V0Lm9uKCdpbmZvcm1VcGRhdGUnLCAoKSA9PiB7XG4gICAgY29uc29sZS5pbmZvKCdvbiByZWNlaXZpbmcgaW5mb3JtVXBkYXRlJylcbiAgICBhcHBlbmRVcGRhdGVJbmZvKClcbiAgfSlcbn1cblxuLyoqXG4gKiDmm7TmlrDpobXpnaLosIPor5Xkv6Hmga9cbiAqIEBwYXJhbSBkYXRheyBpbnNwZWN0b3JVcmwsIGFwcGxpY2F0aW9uIH1cbiAqL1xuZnVuY3Rpb24gdXBkYXRlVGFibGVFbGVtZW50KGRhdGEpIHtcbiAgY29uc3Qgd3JhcHBlciA9ICcuaW5zcGVjdG9yLWxpbmstcGFuZWwnXG4gIGNvbnN0IHRwbElkID0gJyNqLXRwbC1hcHBpbmZvJ1xuICBjb25zdCAkcGFuZWxXcmFwcGVyID0gJCh3cmFwcGVyKVxuICBjb25zdCAkdHBsQXBwSW5mb0VsZW0gPSAkKHRwbElkKVxuICBjb25zdCAkdGJvZHlFbGVtID0gJCgndGJvZHknLCAkcGFuZWxXcmFwcGVyKVxuICBsZXQgdHBsVGV4dENvbnRlbnQgPSAkdHBsQXBwSW5mb0VsZW0udGV4dENvbnRlbnRcblxuICAkcGFuZWxXcmFwcGVyLmNsYXNzTGlzdC5hZGQoJ2hpZGUnKVxuICBjb25zdCBkYXRhVG9GaWxsID0ge1xuICAgIGRhdGFfYXBwX25hbWU6IGRhdGEuYXBwbGljYXRpb24sXG4gICAgZGF0YV9ocmVmX3ZhbHVlOiBkYXRhLmluc3BlY3RvclVybCxcbiAgICBkYXRhX2hyZWZfbmFtZTogJ+i/m+WFpeiwg+ivlemhtemdoidcbiAgfVxuICBPYmplY3Qua2V5cyhkYXRhVG9GaWxsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICB0cGxUZXh0Q29udGVudCA9IHRwbFRleHRDb250ZW50LnJlcGxhY2UoYHt7JHtrZXl9fX1gLCBkYXRhVG9GaWxsW2tleV0pXG4gIH0pXG5cbiAgJHRib2R5RWxlbS5pbm5lckhUTUwgPSB0cGxUZXh0Q29udGVudFxuICAkcGFuZWxXcmFwcGVyLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGUnKVxufVxuXG5mdW5jdGlvbiBhcHBlbmRVcGRhdGVJbmZvKCkge1xuICBjb25zdCB0cGxJZCA9ICcjai10cGwtdXBkYXRldGlwJ1xuICBjb25zdCB3cmFwcGVyID0gJy5pbmZvcm0tdGlwLXdyYXBwZXInXG4gIGNvbnN0ICR0cGxVcGRhdGVUaXBFbGVtID0gJCh0cGxJZClcbiAgY29uc3QgJHBhbmVsV3JhcHBlciA9ICQod3JhcHBlcilcbiAgJHBhbmVsV3JhcHBlci5pbm5lckhUTUwgPSAkdHBsVXBkYXRlVGlwRWxlbS50ZXh0Q29udGVudFxufVxuXG5pbml0KClcbiJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiJCIsInNlbGVjdG9yIiwiZWxlbSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImluaXQiLCJxckltZ0lkIiwiJHFyQ29kZUltZyIsInRpbWVTdGFtcCIsIkRhdGUiLCJub3ciLCJzcmMiLCJiaW5kRXZlbnRzIiwic29ja2V0IiwiaW8iLCJsb2NhdGlvbiIsIm9yaWdpbiIsIm9uIiwiZGF0YSIsImNvbnNvbGUiLCJpbmZvIiwiSlNPTiIsInN0cmluZ2lmeSIsInVwZGF0ZVRhYmxlRWxlbWVudCIsImFwcGVuZFVwZGF0ZUluZm8iLCJ3cmFwcGVyIiwidHBsSWQiLCIkcGFuZWxXcmFwcGVyIiwiJHRwbEFwcEluZm9FbGVtIiwiJHRib2R5RWxlbSIsInRwbFRleHRDb250ZW50IiwidGV4dENvbnRlbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJkYXRhVG9GaWxsIiwiZGF0YV9hcHBfbmFtZSIsImFwcGxpY2F0aW9uIiwiZGF0YV9ocmVmX3ZhbHVlIiwiaW5zcGVjdG9yVXJsIiwiZGF0YV9ocmVmX25hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInJlcGxhY2UiLCJpbm5lckhUTUwiLCJyZW1vdmUiLCIkdHBsVXBkYXRlVGlwRWxlbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///157\n");
17
-
18
- /***/ }),
19
-
20
- /***/ 278:
21
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22
-
23
- eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjc4LmpzIiwibWFwcGluZ3MiOiI7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BoYXAtdG9vbGtpdC9kZWJ1Z2dlci8uL3NyYy9jbGllbnQvaW5kZXguY3NzP2E5Y2MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///278\n");
24
-
25
- /***/ })
26
-
27
- /******/ });
28
- /************************************************************************/
29
- /******/ // The module cache
30
- /******/ var __webpack_module_cache__ = {};
31
- /******/
32
- /******/ // The require function
33
- /******/ function __webpack_require__(moduleId) {
34
- /******/ // Check if module is in cache
35
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
36
- /******/ if (cachedModule !== undefined) {
37
- /******/ return cachedModule.exports;
38
- /******/ }
39
- /******/ // Create a new module (and put it into the cache)
40
- /******/ var module = __webpack_module_cache__[moduleId] = {
41
- /******/ // no module.id needed
42
- /******/ // no module.loaded needed
43
- /******/ exports: {}
44
- /******/ };
45
- /******/
46
- /******/ // Execute the module function
47
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
48
- /******/
49
- /******/ // Return the exports of the module
50
- /******/ return module.exports;
51
- /******/ }
52
- /******/
53
- /************************************************************************/
54
- /******/ /* webpack/runtime/make namespace object */
55
- /******/ (() => {
56
- /******/ // define __esModule on exports
57
- /******/ __webpack_require__.r = (exports) => {
58
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
59
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
60
- /******/ }
61
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
62
- /******/ };
63
- /******/ })();
64
- /******/
65
- /************************************************************************/
66
- /******/
67
- /******/ // startup
68
- /******/ // Load entry module and return exports
69
- /******/ // This entry module can't be inlined because the eval-source-map devtool is used.
70
- /******/ var __webpack_exports__ = __webpack_require__(157);
71
- /******/
72
- /******/ })()
73
- ;