hunter-open-sdk 2.0.0-beta.6 → 2.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/lib/abilities/activate/index.js +52 -0
  2. package/lib/abilities/activate/worker.js +40 -0
  3. package/lib/abilities/erase/index.js +52 -0
  4. package/lib/abilities/erase/worker.js +40 -0
  5. package/lib/abilities/getGeneralReport/index.js +56 -0
  6. package/lib/abilities/getGeneralReport/worker.js +28 -0
  7. package/lib/abilities/getSaaSReport/index.js +56 -0
  8. package/lib/abilities/getSaaSReport/worker.js +20 -0
  9. package/lib/abilities/skip/index.js +52 -0
  10. package/lib/abilities/skip/worker.js +40 -0
  11. package/lib/events/driver/command.js +8 -9
  12. package/lib/events/driver/service.js +23 -34
  13. package/lib/events/driver/winDriver.js +119 -186
  14. package/lib/getAndroidSn/index.js +133 -197
  15. package/lib/helper/deviceHelper.js +19 -37
  16. package/lib/index.js +14 -6
  17. package/lib/registerEvent/index.js +143 -242
  18. package/lib/resources/dll/{libinspectionkit_x64_0.1.0.dll → libinspectionkit_x64_0.1.1.dll} +0 -0
  19. package/lib/resources/mac/{libinspectionkit_arm64_0.1.0.dylib → libinspectionkit_amd64_0.1.1.dylib} +0 -0
  20. package/lib/resources/mac/libinspectionkit_arm64_0.1.1.dylib +0 -0
  21. package/lib/resources/version.online +1 -1
  22. package/lib/utils/utils.command.js +8 -9
  23. package/lib/utils/utils.global.js +74 -40
  24. package/lib/utils/utils.initDll.js +11 -10
  25. package/lib/utils/utils.js +20 -12
  26. package/lib/utils/utils.path.js +4 -3
  27. package/lib/utils/utils.process.js +24 -0
  28. package/lib/utils/utils.sn.js +31 -47
  29. package/package.json +6 -4
  30. package/lib/getGeneralReport/index.js +0 -76
  31. package/lib/getGeneralReport/worker.js +0 -20
  32. package/lib/getSaaSReport/index.js +0 -76
  33. package/lib/getSaaSReport/worker.js +0 -20
  34. package/lib/resources/mac/libinspectionkit_amd64_0.1.0.dylib +0 -0
@@ -1,228 +1,164 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.UnregisterAndroidSn = exports.GetAndroidSn = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
7
  var _usb = require("usb");
11
8
  var _utils = require("../utils/utils");
12
9
  var _utils2 = require("../utils/utils.sn");
13
- var childProcess = require('child_process');
14
- var exec = childProcess.exec;
15
- var hadRegisterUsb = false; // 是否已经注册过usb事件
16
- var isPause = false; // 是否暂停获取sn
10
+ const childProcess = require('child_process');
11
+ const exec = childProcess.exec;
12
+ let hadRegisterUsb = false; // 是否已经注册过usb事件
13
+ let isPause = false; // 是否暂停获取sn
17
14
 
18
15
  // mac获取sn
19
- var getMacSn = /*#__PURE__*/function () {
20
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(device, callBack) {
21
- var _deviceInfo$productNa, _deviceInfo$manufactu;
22
- var attachDeviceId, customWebUSB, deviceList, currentDevice, deviceInfo, productName, manufacturerName, supportedBrands, isSupportedBrand;
23
- return _regenerator.default.wrap(function _callee$(_context) {
24
- while (1) switch (_context.prev = _context.next) {
25
- case 0:
26
- // 拿到当前连接的设备deviceAddress 作为标识去usb列表筛选
27
- attachDeviceId = device.deviceAddress;
28
- customWebUSB = new _usb.WebUSB({
29
- allowAllDevices: true
30
- });
31
- _context.next = 4;
32
- return customWebUSB.getDevices();
33
- case 4:
34
- deviceList = _context.sent;
35
- if (attachDeviceId) {
36
- _context.next = 7;
37
- break;
38
- }
39
- return _context.abrupt("return");
40
- case 7:
41
- // 删选出当前的设备信息 为获取到serialNumber
42
- currentDevice = deviceList.filter(function (item) {
43
- return item.device.deviceAddress == attachDeviceId;
44
- });
45
- if (currentDevice.length) {
46
- _context.next = 11;
47
- break;
48
- }
49
- callBack({
50
- code: -1,
51
- data: {},
52
- message: '获取SN失败'
53
- });
54
- return _context.abrupt("return");
55
- case 11:
56
- // 检查设备是否为支持的三星、华为、荣耀手机品牌
57
- deviceInfo = currentDevice[0];
58
- productName = ((_deviceInfo$productNa = deviceInfo.productName) === null || _deviceInfo$productNa === void 0 ? void 0 : _deviceInfo$productNa.toLowerCase()) || '';
59
- manufacturerName = ((_deviceInfo$manufactu = deviceInfo.manufacturerName) === null || _deviceInfo$manufactu === void 0 ? void 0 : _deviceInfo$manufactu.toLowerCase()) || ''; // 支持的三星、华为、荣耀品牌关键词
60
- supportedBrands = ['samsung', 'galaxy', 'huawei', 'honor', 'honor magic'];
61
- isSupportedBrand = supportedBrands.some(function (brand) {
62
- return productName.includes(brand) || manufacturerName.includes(brand);
63
- });
64
- if (isSupportedBrand) {
65
- _context.next = 19;
66
- break;
67
- }
68
- callBack({
69
- code: -1,
70
- data: {},
71
- message: '暂不支持该品牌手机查询SN'
72
- });
73
- return _context.abrupt("return");
74
- case 19:
75
- callBack({
76
- code: 0,
77
- data: {
78
- SN: currentDevice[0].serialNumber
79
- },
80
- message: '获取SN成功'
81
- });
82
- case 20:
83
- case "end":
84
- return _context.stop();
85
- }
86
- }, _callee);
87
- }));
88
- return function getMacSn(_x, _x2) {
89
- return _ref.apply(this, arguments);
90
- };
91
- }();
16
+ const getMacSn = async (device, callBack) => {
17
+ // 拿到当前连接的设备deviceAddress 作为标识去usb列表筛选
18
+ const attachDeviceId = device.deviceAddress;
19
+ const customWebUSB = new _usb.WebUSB({
20
+ allowAllDevices: true
21
+ });
22
+ const deviceList = await customWebUSB.getDevices();
23
+
24
+ // 如果设备没有attachDeviceId 则直接返回
25
+ if (!attachDeviceId) return;
26
+
27
+ // 删选出当前的设备信息 为获取到serialNumber
28
+ const currentDevice = deviceList.filter(item => item.device.deviceAddress == attachDeviceId);
29
+ if (!currentDevice.length) {
30
+ callBack({
31
+ code: -1,
32
+ data: {},
33
+ message: '获取SN失败'
34
+ });
35
+ return;
36
+ }
37
+
38
+ // 检查设备是否为支持的三星、华为、荣耀手机品牌
39
+ const deviceInfo = currentDevice[0];
40
+ const productName = deviceInfo.productName?.toLowerCase() || '';
41
+ const manufacturerName = deviceInfo.manufacturerName?.toLowerCase() || '';
42
+
43
+ // 支持的三星、华为、荣耀品牌关键词
44
+ const supportedBrands = ['samsung', 'galaxy', 'huawei', 'honor', 'honor magic'];
45
+ const isSupportedBrand = supportedBrands.some(brand => productName.includes(brand) || manufacturerName.includes(brand));
46
+ if (!isSupportedBrand) {
47
+ callBack({
48
+ code: -1,
49
+ data: {},
50
+ message: '暂不支持该品牌手机查询SN'
51
+ });
52
+ return;
53
+ }
54
+ callBack({
55
+ code: 0,
56
+ data: {
57
+ SN: currentDevice[0].serialNumber
58
+ },
59
+ message: '获取SN成功'
60
+ });
61
+ };
92
62
 
93
63
  // win获取sn
94
- var getWinSn = /*#__PURE__*/function () {
95
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(device, callBack) {
96
- var cmdStr;
97
- return _regenerator.default.wrap(function _callee2$(_context2) {
98
- while (1) switch (_context2.prev = _context2.next) {
99
- case 0:
100
- // windows 需要运行命令获取sn
101
- cmdStr = "wmic path Win32_PnPEntity where \"DeviceID like 'USB%'\" get Name, PNPDeviceID /value";
102
- exec(cmdStr, function (err, stdout, stderr) {
103
- if (err) {
104
- // 运行失败 则直接返回获取失败
105
- callBack({
106
- code: -1,
107
- data: {},
108
- message: "windows\u8FD0\u884C\u7A0B\u5E8F\u83B7\u53D6SN\u5931\u8D25err: ".concat(err)
109
- });
110
- return;
111
- }
112
- if (stderr) {
113
- // 运行失败 则直接返回获取失败
114
- callBack({
115
- code: -1,
116
- data: {},
117
- message: "windows\u8FD0\u884C\u7A0B\u5E8F\u83B7\u53D6SN\u5931\u8D25stderr: ".concat(stderr)
118
- });
119
- return;
120
- }
64
+ const getWinSn = async (device, callBack) => {
65
+ // windows 需要运行命令获取sn
66
+ const cmdStr = `wmic path Win32_PnPEntity where "DeviceID like \'USB%\'" get Name, PNPDeviceID /value`;
67
+ exec(cmdStr, function (err, stdout, stderr) {
68
+ if (err) {
69
+ // 运行失败 则直接返回获取失败
70
+ callBack({
71
+ code: -1,
72
+ data: {},
73
+ message: `windows运行程序获取SN失败err: ${err}`
74
+ });
75
+ return;
76
+ }
77
+ if (stderr) {
78
+ // 运行失败 则直接返回获取失败
79
+ callBack({
80
+ code: -1,
81
+ data: {},
82
+ message: `windows运行程序获取SN失败stderr: ${stderr}`
83
+ });
84
+ return;
85
+ }
121
86
 
122
- // 处理WMIC输出并提取手机序列号
123
- var phoneDevices = (0, _utils2.parseWmicOutput)(stdout);
124
- if (phoneDevices.length === 0) {
125
- callBack({
126
- code: -1,
127
- data: {},
128
- message: "\u6682\u4E0D\u652F\u6301\u8BE5\u54C1\u724C\u624B\u673A\u67E5\u8BE2SN"
129
- });
130
- } else {
131
- console.log('检测到的手机设备:');
132
- var sn = phoneDevices[0].serial;
133
- callBack({
134
- code: 0,
135
- data: {
136
- SN: sn
137
- },
138
- message: "\u83B7\u53D6SN\u6210\u529F"
139
- });
140
- // phoneDevices.forEach(device => {
141
- // console.log(`设备名称: ${device.name}`);
142
- // console.log(`序列号: ${device.serial}`);
143
- // console.log(`PNPDeviceID: ${device.pnpDeviceId}`);
144
- // console.log('---');
145
- // });
146
- }
147
- });
148
- case 2:
149
- case "end":
150
- return _context2.stop();
151
- }
152
- }, _callee2);
153
- }));
154
- return function getWinSn(_x3, _x4) {
155
- return _ref2.apply(this, arguments);
156
- };
157
- }();
87
+ // 处理WMIC输出并提取手机序列号
88
+ const phoneDevices = (0, _utils2.parseWmicOutput)(stdout);
89
+ if (phoneDevices.length === 0) {
90
+ callBack({
91
+ code: -1,
92
+ data: {},
93
+ message: `暂不支持该品牌手机查询SN`
94
+ });
95
+ } else {
96
+ console.log('检测到的手机设备:');
97
+ const sn = phoneDevices[0].serial;
98
+ callBack({
99
+ code: 0,
100
+ data: {
101
+ SN: sn
102
+ },
103
+ message: `获取SN成功`
104
+ });
105
+ // phoneDevices.forEach(device => {
106
+ // console.log(`设备名称: ${device.name}`);
107
+ // console.log(`序列号: ${device.serial}`);
108
+ // console.log(`PNPDeviceID: ${device.pnpDeviceId}`);
109
+ // console.log('---');
110
+ // });
111
+ }
112
+ });
113
+ };
158
114
 
159
115
  /**
160
116
  * 获取Android SN
161
117
  * @param {Object} params - 参数
162
118
  * @param {Function} callBack - 回调函数
163
119
  */
164
- var GetAndroidSn = exports.GetAndroidSn = function GetAndroidSn(params, callBack) {
120
+ const GetAndroidSn = (params, callBack) => {
165
121
  if (hadRegisterUsb) {
166
122
  isPause = false;
167
123
  return;
168
124
  }
169
125
  hadRegisterUsb = true;
170
- _usb.usb.on('attach', /*#__PURE__*/function () {
171
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(device) {
172
- var idVendor;
173
- return _regenerator.default.wrap(function _callee3$(_context3) {
174
- while (1) switch (_context3.prev = _context3.next) {
175
- case 0:
176
- if (!isPause) {
177
- _context3.next = 2;
178
- break;
179
- }
180
- return _context3.abrupt("return");
181
- case 2:
182
- idVendor = device.deviceDescriptor.idVendor;
183
- if (!(idVendor == 1452)) {
184
- _context3.next = 5;
185
- break;
186
- }
187
- return _context3.abrupt("return");
188
- case 5:
189
- callBack({
190
- data: {
191
- eventName: 'type_usb_android_device_result',
192
- eventCode: 0
193
- }
194
- });
195
- if (!(0, _utils.isMac)()) {
196
- _context3.next = 9;
197
- break;
198
- }
199
- // mac获取sn
200
- getMacSn(device, callBack);
201
- return _context3.abrupt("return");
202
- case 9:
203
- if (!(0, _utils.isWin)()) {
204
- _context3.next = 12;
205
- break;
206
- }
207
- // win获取sn
208
- getWinSn(device, callBack);
209
- return _context3.abrupt("return");
210
- case 12:
211
- case "end":
212
- return _context3.stop();
213
- }
214
- }, _callee3);
215
- }));
216
- return function (_x5) {
217
- return _ref3.apply(this, arguments);
218
- };
219
- }());
220
- _usb.usb.on('detach', function () {
126
+ _usb.usb.on('attach', async device => {
127
+ if (isPause) {
128
+ return;
129
+ }
130
+ const {
131
+ idVendor
132
+ } = device.deviceDescriptor;
133
+ if (idVendor == 1452) {
134
+ // 表示该机器为苹果产品,则不进行获取sn
135
+ return;
136
+ }
137
+ callBack({
138
+ data: {
139
+ eventName: 'type_usb_android_device_result',
140
+ eventCode: 0
141
+ }
142
+ });
143
+ if ((0, _utils.isMac)()) {
144
+ // mac获取sn
145
+ getMacSn(device, callBack);
146
+ return;
147
+ }
148
+ if ((0, _utils.isWin)()) {
149
+ // win获取sn
150
+ getWinSn(device, callBack);
151
+ return;
152
+ }
153
+ });
154
+ _usb.usb.on('detach', () => {
221
155
  if (isPause) {
222
156
  return;
223
157
  }
224
158
  });
225
159
  };
226
- var UnregisterAndroidSn = exports.UnregisterAndroidSn = function UnregisterAndroidSn() {
160
+ exports.GetAndroidSn = GetAndroidSn;
161
+ const UnregisterAndroidSn = () => {
227
162
  isPause = true;
228
- };
163
+ };
164
+ exports.UnregisterAndroidSn = UnregisterAndroidSn;
@@ -1,45 +1,27 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.deviceHelper = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var DeviceHelper = /*#__PURE__*/function () {
11
- function DeviceHelper() {
12
- (0, _classCallCheck2.default)(this, DeviceHelper);
7
+ class DeviceHelper {
8
+ constructor() {
13
9
  this.udidList = [];
14
10
  }
15
- (0, _createClass2.default)(DeviceHelper, [{
16
- key: "addUdid",
17
- value: function addUdid(udid) {
18
- this.udidList.push(udid);
19
- }
20
- }, {
21
- key: "getUdidList",
22
- value: function getUdidList() {
23
- return this.udidList;
24
- }
25
- }, {
26
- key: "removeUdid",
27
- value: function removeUdid(udid) {
28
- this.udidList = this.udidList.filter(function (item) {
29
- return item !== udid;
30
- });
31
- }
32
- }, {
33
- key: "hasUdid",
34
- value: function hasUdid(udid) {
35
- return this.udidList.includes(udid);
36
- }
37
- }, {
38
- key: "clearUdidList",
39
- value: function clearUdidList() {
40
- this.udidList = [];
41
- }
42
- }]);
43
- return DeviceHelper;
44
- }();
45
- var deviceHelper = exports.deviceHelper = new DeviceHelper();
11
+ addUdid(udid) {
12
+ this.udidList.push(udid);
13
+ }
14
+ getUdidList() {
15
+ return this.udidList;
16
+ }
17
+ removeUdid(udid) {
18
+ this.udidList = this.udidList.filter(item => item !== udid);
19
+ }
20
+ hasUdid(udid) {
21
+ return this.udidList.includes(udid);
22
+ }
23
+ clearUdidList() {
24
+ this.udidList = [];
25
+ }
26
+ }
27
+ const deviceHelper = exports.deviceHelper = new DeviceHelper();
package/lib/index.js CHANGED
@@ -5,10 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _registerEvent = require("./registerEvent");
8
- var _getGeneralReport = require("./getGeneralReport");
9
- var _getSaaSReport = require("./getSaaSReport");
10
8
  var _getAndroidSn = require("./getAndroidSn");
11
- var Sentry = require("@sentry/browser");
9
+ var _utils = require("./utils/utils.global");
10
+ var _getSaaSReport = require("./abilities/getSaaSReport");
11
+ var _getGeneralReport = require("./abilities/getGeneralReport");
12
+ var _erase = require("./abilities/erase");
13
+ var _activate = require("./abilities/activate");
14
+ var _skip = require("./abilities/skip");
15
+ const Sentry = require("@sentry/browser");
12
16
  Sentry.init({
13
17
  dsn: "https://8a5296c59083430fbac0756f56ddbf5d@sentry.zhuanzhuan.com/2300",
14
18
  tracesSampleRate: 1.0
@@ -18,8 +22,12 @@ console.log('Sentry initialized');
18
22
  var _default = exports.default = {
19
23
  registerEvent: _registerEvent.RegisterEvent,
20
24
  unregisterEvent: _registerEvent.UnregisterEvent,
21
- getGeneralReport: _getGeneralReport.GetGeneralReport,
22
- getSaaSReport: _getSaaSReport.GetSaaSReport,
23
25
  getAndroidSn: _getAndroidSn.GetAndroidSn,
24
- unregisterAndroidSn: _getAndroidSn.UnregisterAndroidSn
26
+ unregisterAndroidSn: _getAndroidSn.UnregisterAndroidSn,
27
+ getUdidList: _utils.getUdidListCallKit,
28
+ getSaaSReport: _getSaaSReport.getSaaSReport,
29
+ getGeneralReport: _getGeneralReport.getGeneralReport,
30
+ erase: _erase.erase,
31
+ activate: _activate.activate,
32
+ skip: _skip.skip
25
33
  };