hunter-open-sdk 2.0.0-beta.26 → 2.0.0-beta.29

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.
@@ -10,6 +10,7 @@ var _request = _interopRequireDefault(require("request"));
10
10
  var _fs = _interopRequireDefault(require("fs"));
11
11
  var Sentry = _interopRequireWildcard(require("@sentry/browser"));
12
12
  var _utils = require("../../utils/utils.env");
13
+ var _constants = require("../../constants");
13
14
  var _utils2 = require("../../utils/utils.common");
14
15
  var _winDriver = require("../../events/driver/winDriver");
15
16
  var _utils3 = require("../../utils/utils.global");
@@ -111,7 +112,7 @@ const DevicePair = async (udid = '', params) => {
111
112
  const callBack = () => {
112
113
  saasCallBack({
113
114
  data: {
114
- eventName: 'type_trust_result',
115
+ eventName: _constants.EVENT_TYPE.TRUST_RESULT,
115
116
  udid,
116
117
  eventCode: 0
117
118
  }
@@ -146,7 +147,7 @@ const writeDllVersion = version => {
146
147
  if (err) {
147
148
  saasCallBack({
148
149
  data: {
149
- eventName: 'type_update_result',
150
+ eventName: _constants.EVENT_TYPE.UPDATE_RESULT,
150
151
  eventCode: -1 // eventCode 0 更新成功 -1 更新失败
151
152
  }
152
153
  });
@@ -157,7 +158,7 @@ const writeDllVersion = version => {
157
158
  (0, _utils4.initHunterInspectionKit)();
158
159
  saasCallBack({
159
160
  data: {
160
- eventName: 'type_update_result',
161
+ eventName: _constants.EVENT_TYPE.UPDATE_RESULT,
161
162
  eventCode: 0 // eventCode 0 更新成功 -1 更新失败
162
163
  }
163
164
  });
@@ -181,7 +182,7 @@ const updateDll = (packageUrl, targetVersion) => {
181
182
  if (err) {
182
183
  saasCallBack({
183
184
  data: {
184
- eventName: 'type_update_result',
185
+ eventName: _constants.EVENT_TYPE.UPDATE_RESULT,
185
186
  eventCode: -1 // eventCode 0 更新成功 -1 更新失败
186
187
  }
187
188
  });
@@ -223,7 +224,7 @@ const updateDllFileCheck = () => {
223
224
  isHot == 1 && updateDll(url, targetVersion);
224
225
  saasCallBack({
225
226
  data: {
226
- eventName: 'type_need_update',
227
+ eventName: _constants.EVENT_TYPE.NEED_UPDATE,
227
228
  eventCode: isHot == 1 ? 0 : -1 // eventCode 0 需要更新 -1 不需要更新
228
229
  }
229
230
  });
@@ -231,7 +232,7 @@ const updateDllFileCheck = () => {
231
232
  // 错误的时候不需要更新
232
233
  saasCallBack({
233
234
  data: {
234
- eventName: 'type_need_update',
235
+ eventName: _constants.EVENT_TYPE.NEED_UPDATE,
235
236
  eventCode: -1 // eventCode 0 需要更新 -1 不需要更新
236
237
  }
237
238
  });
@@ -256,7 +257,7 @@ const checkAndInstallDriver = () => {
256
257
  (0, _winDriver.downloadDriver)(percent => {
257
258
  saasCallBack({
258
259
  data: {
259
- eventName: 'type_need_install_driver',
260
+ eventName: _constants.EVENT_TYPE.NEED_INSTALL_DRIVER,
260
261
  eventCode: 0,
261
262
  eventContent: JSON.stringify({
262
263
  percent // 下载进度
@@ -268,7 +269,7 @@ const checkAndInstallDriver = () => {
268
269
  console.log('驱动下载并安装成功');
269
270
  saasCallBack({
270
271
  data: {
271
- eventName: 'type_install_driver_result',
272
+ eventName: _constants.EVENT_TYPE.INSTALL_DRIVER_RESULT,
272
273
  eventCode: 0 // 0 成功 -1 失败
273
274
  }
274
275
  });
@@ -279,7 +280,7 @@ const checkAndInstallDriver = () => {
279
280
  Sentry.captureException('驱动下载或安装失败:' + JSON.stringify(err));
280
281
  saasCallBack({
281
282
  data: {
282
- eventName: 'type_install_driver_result',
283
+ eventName: _constants.EVENT_TYPE.INSTALL_DRIVER_RESULT,
283
284
  eventCode: -1 // 0 成功 -1 失败
284
285
  }
285
286
  });
@@ -305,7 +306,7 @@ const registerEvent = async (params, callBack) => {
305
306
  // 插入设备通知
306
307
  saasCallBack({
307
308
  data: {
308
- eventName: 'type_usb_device_result',
309
+ eventName: _constants.EVENT_TYPE.USB_DEVICE_RESULT,
309
310
  udid,
310
311
  eventCode: 0
311
312
  }
@@ -317,17 +318,25 @@ const registerEvent = async (params, callBack) => {
317
318
  // 拔出设备
318
319
  saasCallBack({
319
320
  data: {
320
- eventName: 'type_usb_device_result',
321
+ eventName: _constants.EVENT_TYPE.USB_DISCONNECT,
321
322
  udid,
322
- eventCode: -1
323
+ eventCode: 0
323
324
  }
324
325
  });
325
326
  _deviceHelper.deviceHelper.removeUdid(udid);
326
327
  }).on('error', function (err) {
327
- console.log('usb连接错误:', err);
328
- Sentry.captureException('usb连接错误:' + JSON.stringify(err));
329
- const errMsg = `usb连接错误:${err}`;
330
- throw new Error(errMsg);
328
+ const errStr = 'usb连接错误:' + JSON.stringify(err);
329
+ console.log(errStr);
330
+ Sentry.captureException(errStr);
331
+ saasCallBack({
332
+ data: {
333
+ eventName: _constants.EVENT_TYPE.USB_ERROR,
334
+ eventCode: -1,
335
+ eventContent: JSON.stringify({
336
+ message: errStr
337
+ })
338
+ }
339
+ });
331
340
  });
332
341
  };
333
342
  exports.registerEvent = registerEvent;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAndroidReport = getAndroidReport;
7
+ var _webWorker = _interopRequireDefault(require("web-worker"));
8
+ var _url = _interopRequireDefault(require("url"));
9
+ var _utils = require("../../utils/utils.common");
10
+ var _utils2 = require("../../utils/utils.path");
11
+ var _utils3 = require("../../utils/utils.ability");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ class GetAndroidReport {
14
+ constructor() {
15
+ this.initWorker();
16
+ this.initWorkerListener();
17
+ }
18
+ worker = null;
19
+ callback = null;
20
+ exec(payload, callback) {
21
+ this.callback = typeof callback === 'function' ? callback : _utils3.defaultCallback;
22
+ this.worker && this.worker.postMessage({
23
+ payload
24
+ });
25
+ }
26
+ initWorkerListener() {
27
+ this.worker && this.worker.addEventListener('message', event => {
28
+ console.log('GetAndroidReport', event);
29
+ const {
30
+ payload
31
+ } = event.data;
32
+ this.callback(payload);
33
+ this.callback = null;
34
+ });
35
+ }
36
+ initWorker() {
37
+ if (!this.worker) {
38
+ const workerPath = new _url.default.URL('file://' + (0, _utils2.convertPathWithCurrentEnv)(__dirname, './worker.js'));
39
+ this.worker = new _webWorker.default(workerPath, {
40
+ type: 'module'
41
+ });
42
+ }
43
+ }
44
+ }
45
+ let entity = null;
46
+
47
+ /**
48
+ * 获取Android设备报告
49
+ * @param {Object} params - 请求参数
50
+ * @param {string} params.imei - 设备IMEI
51
+ * @param {string} params.brandCode - 品牌编码
52
+ * @param {Function} callback - 回调函数,接收报告结果
53
+ */
54
+ function getAndroidReport(params, callback) {
55
+ if (!entity) {
56
+ entity = new GetAndroidReport();
57
+ }
58
+ const payload = (0, _utils.parsePayload)(params);
59
+ entity.exec(payload, callback);
60
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ const {
4
+ initWorkerNodePath
5
+ } = require("../../utils/utils.worker");
6
+
7
+ // 先注册NodePath后才能正常使用node包,请勿挪动位置
8
+ initWorkerNodePath();
9
+ const {
10
+ abilityCallKit
11
+ } = require("../../utils/utils.global");
12
+
13
+ // 处理主进程消息
14
+ function onMainMessage(event) {
15
+ const {
16
+ payload
17
+ } = event.data;
18
+ const res = abilityCallKit('android_report', payload);
19
+ postMessage(res);
20
+ }
21
+ addEventListener('message', onMainMessage);
@@ -8,10 +8,10 @@ var _usb = require("usb");
8
8
  var _child_process = _interopRequireDefault(require("child_process"));
9
9
  var _utils = require("../../utils/utils.env");
10
10
  var _utils2 = require("../../utils/utils.sn");
11
+ var _constants = require("../../constants");
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13
  const exec = _child_process.default.exec;
13
14
  let hadRegisterUsb = false; // 是否已经注册过usb事件
14
- let isPause = false; // 是否暂停获取sn
15
15
 
16
16
  // mac获取sn
17
17
  const getMacSn = async (device, callBack) => {
@@ -29,36 +29,44 @@ const getMacSn = async (device, callBack) => {
29
29
  const currentDevice = deviceList.filter(item => item.device.deviceAddress == attachDeviceId);
30
30
  if (!currentDevice.length) {
31
31
  callBack({
32
- code: -1,
33
- data: {},
34
- message: '获取SN失败'
32
+ data: {
33
+ eventName: _constants.EVENT_TYPE.GET_ANDROID_SN_RESULT,
34
+ eventCode: -1,
35
+ message: '获取SN失败'
36
+ }
35
37
  });
36
- return;
38
+ return '';
37
39
  }
38
40
 
39
41
  // 检查设备是否为支持的三星、华为、荣耀手机品牌
40
42
  const deviceInfo = currentDevice[0];
41
43
  const productName = deviceInfo.productName?.toLowerCase() || '';
42
44
  const manufacturerName = deviceInfo.manufacturerName?.toLowerCase() || '';
43
-
44
- // 支持的三星、华为、荣耀品牌关键词
45
- const supportedBrands = ['samsung', 'galaxy', 'huawei', 'honor', 'honor magic'];
46
- const isSupportedBrand = supportedBrands.some(brand => productName.includes(brand) || manufacturerName.includes(brand));
45
+ const isSupportedBrand = _utils2.SUPPORT_PHONE_BRANDS.some(brand => productName.includes(brand) || manufacturerName.includes(brand));
47
46
  if (!isSupportedBrand) {
48
47
  callBack({
49
- code: -1,
50
- data: {},
51
- message: '暂不支持该品牌手机查询SN'
48
+ data: {
49
+ eventName: _constants.EVENT_TYPE.GET_ANDROID_SN_RESULT,
50
+ eventCode: -1,
51
+ message: '暂不支持该品牌手机查询SN'
52
+ }
52
53
  });
53
- return;
54
+ return '';
54
55
  }
56
+ const sn = currentDevice[0].serialNumber;
57
+ const brand = deviceInfo.manufacturerName?.replace(/\s*/g, '') || '';
55
58
  callBack({
56
- code: 0,
57
59
  data: {
58
- SN: currentDevice[0].serialNumber
59
- },
60
- message: '获取SN成功'
60
+ eventName: _constants.EVENT_TYPE.GET_ANDROID_SN_RESULT,
61
+ eventCode: 0,
62
+ eventContent: {
63
+ SN: sn,
64
+ brand
65
+ },
66
+ message: '获取SN成功'
67
+ }
61
68
  });
69
+ return sn;
62
70
  };
63
71
 
64
72
  // win获取sn
@@ -69,47 +77,60 @@ const getWinSn = async (device, callBack) => {
69
77
  if (err) {
70
78
  // 运行失败 则直接返回获取失败
71
79
  callBack({
72
- code: -1,
73
- data: {},
74
- message: `windows运行程序获取SN失败err: ${err}`
80
+ data: {
81
+ eventName: _constants.EVENT_TYPE.GET_ANDROID_SN_RESULT,
82
+ eventCode: -1,
83
+ message: `windows运行程序获取SN失败err: ${err}`
84
+ }
75
85
  });
76
- return;
86
+ return '';
77
87
  }
78
88
  if (stderr) {
79
89
  // 运行失败 则直接返回获取失败
80
90
  callBack({
81
- code: -1,
82
- data: {},
83
- message: `windows运行程序获取SN失败stderr: ${stderr}`
91
+ data: {
92
+ eventName: _constants.EVENT_TYPE.GET_ANDROID_SN_RESULT,
93
+ eventCode: -1,
94
+ message: `windows运行程序获取SN失败stderr: ${stderr}`
95
+ }
84
96
  });
85
- return;
97
+ return '';
86
98
  }
87
99
 
88
100
  // 处理WMIC输出并提取手机序列号
89
101
  const phoneDevices = (0, _utils2.parseWmicOutput)(stdout);
90
102
  if (phoneDevices.length === 0) {
91
103
  callBack({
92
- code: -1,
93
- data: {},
94
- message: `暂不支持该品牌手机查询SN`
95
- });
96
- } else {
97
- console.log('检测到的手机设备:');
98
- const sn = phoneDevices[0].serial;
99
- callBack({
100
- code: 0,
101
104
  data: {
102
- SN: sn
103
- },
104
- message: `获取SN成功`
105
+ eventName: _constants.EVENT_TYPE.GET_ANDROID_SN_RESULT,
106
+ eventCode: -1,
107
+ message: `暂不支持该品牌手机查询SN`
108
+ }
105
109
  });
106
- // phoneDevices.forEach(device => {
107
- // console.log(`设备名称: ${device.name}`);
108
- // console.log(`序列号: ${device.serial}`);
109
- // console.log(`PNPDeviceID: ${device.pnpDeviceId}`);
110
- // console.log('---');
111
- // });
110
+ return '';
112
111
  }
112
+ console.log('检测到的手机设备:');
113
+ const sn = phoneDevices[0].serial;
114
+ const brand = phoneDevices[0].name?.replace(/\s*/g, '') || '';
115
+ callBack({
116
+ data: {
117
+ eventName: _constants.EVENT_TYPE.GET_ANDROID_SN_RESULT,
118
+ eventCode: 0,
119
+ eventContent: {
120
+ SN: sn,
121
+ brand
122
+ },
123
+ message: `获取SN成功`
124
+ }
125
+ });
126
+ // phoneDevices.forEach(device => {
127
+ // console.log(`设备名称: ${device.name}`);
128
+ // console.log(`序列号: ${device.serial}`);
129
+ // console.log(`PNPDeviceID: ${device.pnpDeviceId}`);
130
+ // console.log('---');
131
+ // });
132
+
133
+ return sn;
113
134
  });
114
135
  };
115
136
 
@@ -120,14 +141,10 @@ const getWinSn = async (device, callBack) => {
120
141
  */
121
142
  const registerGetAndroidSn = (params, callBack) => {
122
143
  if (hadRegisterUsb) {
123
- isPause = false;
124
144
  return;
125
145
  }
126
146
  hadRegisterUsb = true;
127
147
  _usb.usb.on('attach', async device => {
128
- if (isPause) {
129
- return;
130
- }
131
148
  const {
132
149
  idVendor
133
150
  } = device.deviceDescriptor;
@@ -137,7 +154,7 @@ const registerGetAndroidSn = (params, callBack) => {
137
154
  }
138
155
  callBack({
139
156
  data: {
140
- eventName: 'type_usb_android_device_result',
157
+ eventName: _constants.EVENT_TYPE.USB_ANDROID_DEVICE_RESULT,
141
158
  eventCode: 0
142
159
  }
143
160
  });
@@ -153,13 +170,18 @@ const registerGetAndroidSn = (params, callBack) => {
153
170
  }
154
171
  });
155
172
  _usb.usb.on('detach', () => {
156
- if (isPause) {
157
- return;
158
- }
173
+ callBack({
174
+ data: {
175
+ eventName: _constants.EVENT_TYPE.USB_DISCONNECT,
176
+ eventCode: 0
177
+ }
178
+ });
159
179
  });
160
180
  };
161
181
  exports.registerGetAndroidSn = registerGetAndroidSn;
162
182
  const unregisterGetAndroidSn = () => {
163
- isPause = true;
183
+ hadRegisterUsb = false;
184
+ _usb.usb.removeAllListeners('attach');
185
+ _usb.usb.removeAllListeners('detach');
164
186
  };
165
187
  exports.unregisterGetAndroidSn = unregisterGetAndroidSn;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getUltimateReport = getUltimateReport;
7
+ var _webWorker = _interopRequireDefault(require("web-worker"));
8
+ var _url = _interopRequireDefault(require("url"));
9
+ var _utils = require("../../utils/utils.common");
10
+ var _utils2 = require("../../utils/utils.path");
11
+ var _utils3 = require("../../utils/utils.ability");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ class GetUltimateReport {
14
+ constructor() {
15
+ this.initWorker();
16
+ this.initWorkerListener();
17
+ }
18
+ worker = null;
19
+ callback = null;
20
+ exec(payload, callback) {
21
+ this.callback = typeof callback === 'function' ? callback : _utils3.defaultCallback;
22
+ this.worker && this.worker.postMessage({
23
+ payload
24
+ });
25
+ }
26
+ initWorkerListener() {
27
+ this.worker && this.worker.addEventListener('message', event => {
28
+ const {
29
+ payload
30
+ } = event.data;
31
+ this.callback(payload);
32
+ this.callback = null;
33
+ });
34
+ }
35
+ initWorker() {
36
+ if (!this.worker) {
37
+ const workerPath = new _url.default.URL('file://' + (0, _utils2.convertPathWithCurrentEnv)(__dirname, './worker.js'));
38
+ this.worker = new _webWorker.default(workerPath, {
39
+ type: 'module'
40
+ });
41
+ }
42
+ }
43
+ }
44
+ let entity = null;
45
+
46
+ /**
47
+ * 获取终极报告
48
+ * @param {Object} params - 请求参数
49
+ * @param {string} params.udid - 设备 UDID
50
+ * @param {string} [params.simpleReportId] - 普通报告 ID,传空串时服务端不进行删除操作
51
+ * @param {Function} callback - 回调函数,接收报告结果
52
+ */
53
+ function getUltimateReport(params, callback) {
54
+ if (!entity) {
55
+ entity = new GetUltimateReport();
56
+ }
57
+ const payload = (0, _utils.parsePayload)(params);
58
+ entity.exec(payload, callback);
59
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ const {
4
+ initWorkerNodePath
5
+ } = require("../../utils/utils.worker");
6
+
7
+ // 先注册NodePath后才能正常使用node包,请勿挪动位置
8
+ initWorkerNodePath();
9
+ const {
10
+ abilityCallKit
11
+ } = require("../../utils/utils.global");
12
+
13
+ // 处理主进程消息
14
+ function onMainMessage(event) {
15
+ const {
16
+ payload
17
+ } = event.data;
18
+ const res = abilityCallKit('ultimate_report', payload);
19
+ postMessage(res);
20
+ }
21
+ addEventListener('message', onMainMessage);
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EVENT_TYPE = void 0;
7
+ const EVENT_TYPE = exports.EVENT_TYPE = {
8
+ /** iOS 设备 USB 插拔结果:eventCode 0 已插入,-1 已拔出 */
9
+ USB_DEVICE_RESULT: 'type_usb_device_result',
10
+ /** iOS 设备信任配对结果:eventCode 0 已信任 */
11
+ TRUST_RESULT: 'type_trust_result',
12
+ /** 检测到 dll 热更新:eventCode 0 需要更新,-1 不需要更新 */
13
+ NEED_UPDATE: 'type_need_update',
14
+ /** dll 热更新下载并写入结果:eventCode 0 成功,-1 失败 */
15
+ UPDATE_RESULT: 'type_update_result',
16
+ /** 需要安装 USB 驱动(仅 Windows),eventContent.percent 为下载进度 */
17
+ NEED_INSTALL_DRIVER: 'type_need_install_driver',
18
+ /** USB 驱动安装结果(仅 Windows):eventCode 0 成功,-1 失败 */
19
+ INSTALL_DRIVER_RESULT: 'type_install_driver_result',
20
+ /** Android 设备 USB 插入结果:eventCode 0 已插入 */
21
+ USB_ANDROID_DEVICE_RESULT: 'type_usb_android_device_result',
22
+ /** 获取 Android SN 结果:eventCode 0 成功,-1 失败;成功时 eventContent: { SN, brand } */
23
+ GET_ANDROID_SN_RESULT: 'type_get_android_sn_result',
24
+ /** 设备 USB 断开(iOS / Android):eventCode 0 已拔出 */
25
+ USB_DISCONNECT: 'type_usb_disconnect',
26
+ /** USB 监听发生错误:eventCode -1,eventContent.message 为错误信息 */
27
+ USB_ERROR: 'type_usb_error'
28
+ };
package/lib/index.d.ts CHANGED
@@ -8,9 +8,12 @@ export interface CallbackResult {
8
8
  }
9
9
 
10
10
  export interface SnCallbackResult {
11
- code: number
12
- data: { SN?: string }
13
- message: string
11
+ data: {
12
+ eventName: string
13
+ eventCode: number
14
+ eventContent?: { SN: string; brand: string }
15
+ message?: string
16
+ }
14
17
  }
15
18
 
16
19
  export interface GetGeneralReportOptions {
@@ -27,7 +30,19 @@ export declare function unregisterEvent(): void
27
30
  export declare function registerGetAndroidSn(params: any, callback: SnCallback): void
28
31
  export declare function unregisterGetAndroidSn(): void
29
32
  export declare function getSaaSReport(params: any, callback?: ReportCallback): void
33
+ export interface AndroidReportParams {
34
+ imei: string
35
+ brandCode: string
36
+ }
37
+
30
38
  export declare function getGeneralReport(params: any, callback?: ReportCallback, options?: GetGeneralReportOptions): void
39
+ export interface UltimateReportParams {
40
+ udid: string
41
+ simpleReportId?: string
42
+ }
43
+
44
+ export declare function getAndroidReport(params: AndroidReportParams, callback?: ReportCallback): void
45
+ export declare function getUltimateReport(params: UltimateReportParams, callback?: ReportCallback): void
31
46
  export declare function erase(params: any, callback?: ReportCallback): void
32
47
  export declare function activate(params: any, callback?: ReportCallback): void
33
48
  export declare function skip(params: any, callback?: ReportCallback): void
@@ -42,6 +57,8 @@ declare const sdk: {
42
57
  unregisterGetAndroidSn: typeof unregisterGetAndroidSn
43
58
  getSaaSReport: typeof getSaaSReport
44
59
  getGeneralReport: typeof getGeneralReport
60
+ getAndroidReport: typeof getAndroidReport
61
+ getUltimateReport: typeof getUltimateReport
45
62
  erase: typeof erase
46
63
  activate: typeof activate
47
64
  skip: typeof skip
package/lib/index.js CHANGED
@@ -16,6 +16,12 @@ Object.defineProperty(exports, "erase", {
16
16
  return _erase.erase;
17
17
  }
18
18
  });
19
+ Object.defineProperty(exports, "getAndroidReport", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _getAndroidReport.getAndroidReport;
23
+ }
24
+ });
19
25
  Object.defineProperty(exports, "getGeneralReport", {
20
26
  enumerable: true,
21
27
  get: function () {
@@ -28,6 +34,12 @@ Object.defineProperty(exports, "getSaaSReport", {
28
34
  return _getSaaSReport.getSaaSReport;
29
35
  }
30
36
  });
37
+ Object.defineProperty(exports, "getUltimateReport", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _getUltimateReport.getUltimateReport;
41
+ }
42
+ });
31
43
  Object.defineProperty(exports, "installApp", {
32
44
  enumerable: true,
33
45
  get: function () {
@@ -80,6 +92,8 @@ var _getAndroidSn = require("./abilities/getAndroidSn");
80
92
  var _eventManager = require("./abilities/eventManager");
81
93
  var _getSaaSReport = require("./abilities/getSaaSReport");
82
94
  var _getGeneralReport = require("./abilities/getGeneralReport");
95
+ var _getAndroidReport = require("./abilities/getAndroidReport");
96
+ var _getUltimateReport = require("./abilities/getUltimateReport");
83
97
  var _erase = require("./abilities/erase");
84
98
  var _activate = require("./abilities/activate");
85
99
  var _skip = require("./abilities/skip");
@@ -102,6 +116,8 @@ var _default = exports.default = {
102
116
  unregisterGetAndroidSn: _getAndroidSn.unregisterGetAndroidSn,
103
117
  getSaaSReport: _getSaaSReport.getSaaSReport,
104
118
  getGeneralReport: _getGeneralReport.getGeneralReport,
119
+ getAndroidReport: _getAndroidReport.getAndroidReport,
120
+ getUltimateReport: _getUltimateReport.getUltimateReport,
105
121
  erase: _erase.erase,
106
122
  activate: _activate.activate,
107
123
  skip: _skip.skip,
@@ -1 +1 @@
1
- 0.5.2
1
+ 0.6.1
@@ -3,7 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.SUPPORT_PHONE_VENDORS = exports.SUPPORT_PHONE_BRANDS = void 0;
6
7
  exports.parseWmicOutput = parseWmicOutput;
8
+ // 只支持三星、荣耀、华为的手机设备关键词
9
+ const SUPPORT_PHONE_BRANDS = exports.SUPPORT_PHONE_BRANDS = ['samsung', 'galaxy', 'huawei', 'honor', 'honor magic'];
10
+
11
+ // 只支持三星、荣耀、华为的手机厂商VID
12
+ const SUPPORT_PHONE_VENDORS = exports.SUPPORT_PHONE_VENDORS = ['VID_04E8',
13
+ // Samsung
14
+ 'VID_12D1',
15
+ // Huawei
16
+ 'VID_2A45' // Honor (OnePlus VID,但荣耀也使用此VID)
17
+ ];
18
+
7
19
  /**
8
20
  * 判断设备是否为手机设备
9
21
  * @param {Object} device - 设备信息
@@ -13,22 +25,11 @@ function isPhoneDevice(device) {
13
25
  const name = device.name.toLowerCase();
14
26
  const pnpId = device.pnpDeviceId.toLowerCase();
15
27
 
16
- // 只支持三星、荣耀、华为的手机设备关键词
17
- const phoneKeywords = ['samsung', 'galaxy', 'huawei', 'honor', 'honor magic'];
18
-
19
- // 只支持三星、荣耀、华为的手机厂商VID
20
- const phoneVendors = ['VID_04E8',
21
- // Samsung
22
- 'VID_12D1',
23
- // Huawei
24
- 'VID_2A45' // Honor (OnePlus VID,但荣耀也使用此VID)
25
- ];
26
-
27
28
  // 检查名称中是否包含手机关键词
28
- const isPhoneByName = phoneKeywords.some(keyword => name.includes(keyword));
29
+ const isPhoneByName = SUPPORT_PHONE_BRANDS.some(keyword => name.includes(keyword));
29
30
 
30
31
  // 检查PNPDeviceID中是否包含手机厂商VID
31
- const isPhoneByVendor = phoneVendors.some(vendor => pnpId.includes(vendor.toLowerCase()));
32
+ const isPhoneByVendor = SUPPORT_PHONE_VENDORS.some(vendor => pnpId.includes(vendor.toLowerCase()));
32
33
  return isPhoneByName || isPhoneByVendor;
33
34
  }
34
35
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hunter-open-sdk",
3
- "version": "2.0.0-beta.26",
3
+ "version": "2.0.0-beta.29",
4
4
  "description": "采货侠SaaS版本桌面端sdk",
5
5
  "scripts": {
6
6
  "start": "zz dev",