hunter-open-sdk 0.0.14 → 0.0.16

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.
@@ -36,7 +36,17 @@ var Service = /*#__PURE__*/function () {
36
36
  mainWindow.webContents.send("checkDriver", true);
37
37
  } else {
38
38
  mainWindow.webContents.send("checkDriver", false);
39
- (0, _winDriver.downloadDriver)(mainWindow);
39
+ // 修复:传入正确的进度回调函数
40
+ (0, _winDriver.downloadDriver)(function (percent) {
41
+ console.log('下载进度:', percent + '%');
42
+ mainWindow.webContents.send("downloadProgress", percent);
43
+ }).then(function () {
44
+ console.log('驱动下载安装成功');
45
+ mainWindow.webContents.send("checkDriver", true);
46
+ }).catch(function (err) {
47
+ console.error('驱动下载安装失败:', err);
48
+ mainWindow.webContents.send("checkDriver", false);
49
+ });
40
50
  }
41
51
  });
42
52
  }
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.checkHasDriver = checkHasDriver;
8
8
  exports.downloadDriver = downloadDriver;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
12
  var _utils = require("../../utils/utils");
12
13
  var _utils2 = require("../../utils/utils.command");
@@ -109,6 +110,12 @@ var installDriver = function installDriver() {
109
110
  var AppleMobileDeviceSupport64 = path.join(CACHE_PATH, './AppleMobileDeviceSupport64.msi');
110
111
  var Bonjour64 = path.join(CACHE_PATH, './Bonjour64.msi');
111
112
  var cmdStr = "start /i /wait ".concat(AppleApplicationSupport, " /qn && start /i /wait ").concat(AppleApplicationSupport64, " /qn && start /i /wait ").concat(AppleMobileDeviceSupport64, " /qn && start /i /wait ").concat(Bonjour64, " /qn");
113
+ console.log('开始安装驱动,命令:', cmdStr);
114
+ console.log('检查安装文件是否存在:');
115
+ console.log('AppleApplicationSupport:', fs.existsSync(AppleApplicationSupport));
116
+ console.log('AppleApplicationSupport64:', fs.existsSync(AppleApplicationSupport64));
117
+ console.log('AppleMobileDeviceSupport64:', fs.existsSync(AppleMobileDeviceSupport64));
118
+ console.log('Bonjour64:', fs.existsSync(Bonjour64));
112
119
  return new Promise(function (resolve, reject) {
113
120
  sudo.exec(cmdStr, options, function (error, stdout, stderr) {
114
121
  console.log('安装 error>>', error);
@@ -121,8 +128,10 @@ var installDriver = function installDriver() {
121
128
  }
122
129
  checkProcessTimer();
123
130
  if (error) {
131
+ console.error('驱动安装失败:', error);
124
132
  reject(error); // 安装失败
125
133
  } else {
134
+ console.log('驱动安装成功');
126
135
  resolve(); // 安装成功
127
136
  }
128
137
  });
@@ -131,68 +140,119 @@ var installDriver = function installDriver() {
131
140
  // 解压文件
132
141
  var uncopressingFile = function uncopressingFile(filePath) {
133
142
  return new Promise(function (resolve) {
143
+ console.log('开始解压文件:', filePath);
134
144
  compressing.zip.uncompress(filePath, CACHE_PATH).then(function () {
145
+ console.log('文件解压成功');
135
146
  resolve(true);
136
147
  }).catch(function (err) {
148
+ console.error('文件解压失败:', err);
137
149
  resolve(false);
138
- console.log('error', err);
139
150
  });
140
151
  });
141
152
  };
142
153
 
143
154
  // Promise 版本的 downloadDriver,onProgress 作为参数,成功 resolve,失败 reject
144
155
  function downloadDriver(onProgress) {
156
+ console.log('=== downloadDriver 函数被调用 ===');
157
+ console.log('onProgress 参数:', (0, _typeof2.default)(onProgress));
145
158
  return new Promise(function (resolve, reject) {
159
+ console.log('=== 开始创建Promise ===');
146
160
  var url = 'http://ljtools.zhuanstatic.com/download/iTunesDriver/iTunesOL_Lite_64_12.10.0.7.zip';
147
161
  var dest = filePath;
162
+ console.log('开始下载驱动文件:', url);
163
+ console.log('目标路径:', dest);
164
+
165
+ // 检查目标目录是否存在
166
+ var destDir = path.dirname(dest);
167
+ console.log('目标目录:', destDir);
168
+ console.log('目录是否存在:', fs.existsSync(destDir));
148
169
  var fileStream = _fsExtra.default.createWriteStream(dest);
149
170
  var received = 0;
150
171
  var total = 0;
172
+
173
+ // 进度回调限流:每100ms最多调用一次,或者进度变化超过5%时调用
174
+ var lastProgressCall = 0;
175
+ var lastProgressPercent = 0;
176
+ var PROGRESS_THROTTLE_MS = 100; // 100ms限流
177
+ var PROGRESS_THRESHOLD = 5; // 5%阈值
178
+
179
+ var throttledProgressCallback = function throttledProgressCallback(percent) {
180
+ var now = Date.now();
181
+ var shouldCall = now - lastProgressCall >= PROGRESS_THROTTLE_MS || Math.abs(percent - lastProgressPercent) >= PROGRESS_THRESHOLD;
182
+ if (shouldCall && onProgress) {
183
+ onProgress(percent);
184
+ lastProgressCall = now;
185
+ lastProgressPercent = percent;
186
+ console.log("\u4E0B\u8F7D\u8FDB\u5EA6: ".concat(percent, "% (").concat(received, "/").concat(total, ")"));
187
+ }
188
+ };
189
+ console.log('=== 开始创建request ===');
151
190
  (0, _request.default)(url).on('response', function (response) {
191
+ console.log('下载响应状态:', response.statusCode);
152
192
  if (response.statusCode !== 200) {
153
193
  reject(new Error("\u4E0B\u8F7D\u5931\u8D25: ".concat(response.statusMessage)));
154
194
  return;
155
195
  }
156
196
  total = parseInt(response.headers['content-length'], 10);
197
+ console.log('文件总大小:', total, 'bytes');
157
198
  }).on('data', function (chunk) {
158
199
  received += chunk.length;
159
- if (onProgress && total) {
160
- onProgress(Math.round(received / total * 100));
200
+ if (total) {
201
+ var percent = Math.round(received / total * 100);
202
+ throttledProgressCallback(percent);
161
203
  }
162
204
  }).on('error', function (err) {
163
205
  console.error('驱动下载失败', err);
206
+ fileStream.end(); // 确保关闭文件流
164
207
  reject(err);
165
208
  }).pipe(fileStream).on('finish', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
166
209
  var uncopressing;
167
210
  return _regenerator.default.wrap(function _callee2$(_context2) {
168
211
  while (1) switch (_context2.prev = _context2.next) {
169
212
  case 0:
170
- _context2.prev = 0;
171
- _context2.next = 3;
213
+ console.log('=== FINISH 事件被触发 ===');
214
+ console.log('文件下载完成,开始解压...');
215
+
216
+ // 确保最后一次进度回调被调用(100%)
217
+ if (onProgress && total) {
218
+ onProgress(100);
219
+ console.log('下载完成: 100%');
220
+ }
221
+ _context2.prev = 3;
222
+ _context2.next = 6;
172
223
  return uncopressingFile(filePath);
173
- case 3:
224
+ case 6:
174
225
  uncopressing = _context2.sent;
226
+ console.log('解压结果:', uncopressing);
175
227
  if (uncopressing) {
228
+ console.log('开始安装驱动...');
176
229
  installDriver().then(function () {
230
+ console.log('驱动安装成功');
177
231
  resolve();
178
232
  }).catch(function (err) {
233
+ console.error('驱动安装失败:', err);
179
234
  reject(err);
180
235
  });
181
236
  } else {
237
+ console.error('解压失败');
182
238
  reject(new Error('解压失败'));
183
239
  }
184
- _context2.next = 10;
240
+ _context2.next = 15;
185
241
  break;
186
- case 7:
187
- _context2.prev = 7;
188
- _context2.t0 = _context2["catch"](0);
242
+ case 11:
243
+ _context2.prev = 11;
244
+ _context2.t0 = _context2["catch"](3);
245
+ console.error('解压或安装过程中出错:', _context2.t0);
189
246
  reject(_context2.t0);
190
- case 10:
247
+ case 15:
191
248
  case "end":
192
249
  return _context2.stop();
193
250
  }
194
- }, _callee2, null, [[0, 7]]);
195
- })));
251
+ }, _callee2, null, [[3, 11]]);
252
+ }))).on('error', function (err) {
253
+ console.error('文件流写入错误:', err);
254
+ reject(err);
255
+ });
196
256
  });
197
257
  }
198
258
  function checkHasDriver() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hunter-open-sdk",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "采货侠SaaS版本桌面端sdk",
5
5
  "scripts": {
6
6
  "start": "zz dev",