{"ast":null,"code":"var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nimport { uploadChunk, uploadComplete, initUploadParts } from '../api';\nimport { QiniuError, QiniuErrorName, QiniuRequestError } from '../errors';\nimport * as utils from '../utils';\nimport Base from './base';\n/** 是否为正整数 */\nfunction isPositiveInteger(n) {\n var re = /^[1-9]\\d*$/;\n return re.test(String(n));\n}\nvar Resume = /** @class */function (_super) {\n __extends(Resume, _super);\n function Resume() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @returns {Promise>}\n * @description 实现了 Base 的 run 接口,处理具体的分片上传事务,并抛出过程中的异常。\n */\n Resume.prototype.run = function () {\n return __awaiter(this, void 0, void 0, function () {\n var pool, mkFileResponse, localKey, uploadChunks, error_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.logger.info('start run Resume.');\n if (!this.config.chunkSize || !isPositiveInteger(this.config.chunkSize)) {\n throw new QiniuError(QiniuErrorName.InvalidChunkSize, 'chunkSize must be a positive integer');\n }\n if (this.config.chunkSize > 1024) {\n throw new QiniuError(QiniuErrorName.InvalidChunkSize, 'chunkSize maximum value is 1024');\n }\n return [4 /*yield*/, this.initBeforeUploadChunks()];\n case 1:\n _a.sent();\n pool = new utils.Pool(function (chunkInfo) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.aborted) {\n pool.abort();\n throw new Error('pool is aborted');\n }\n return [4 /*yield*/, this.uploadChunk(chunkInfo)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n }, this.config.concurrentRequestLimit);\n mkFileResponse = null;\n localKey = this.getLocalKey();\n uploadChunks = this.chunks.map(function (chunk, index) {\n return pool.enqueue({\n chunk: chunk,\n index: index\n });\n });\n _a.label = 2;\n case 2:\n _a.trys.push([2, 5,, 6]);\n return [4 /*yield*/, Promise.all(uploadChunks)];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.mkFileReq()];\n case 4:\n mkFileResponse = _a.sent();\n return [3 /*break*/, 6];\n case 5:\n error_1 = _a.sent();\n // uploadId 无效,上传参数有误(多由于本地存储信息的 uploadId 失效)\n if (error_1 instanceof QiniuRequestError && (error_1.code === 612 || error_1.code === 400)) {\n utils.removeLocalFileInfo(localKey, this.logger);\n }\n throw error_1;\n case 6:\n // 上传成功,清理本地缓存数据\n utils.removeLocalFileInfo(localKey, this.logger);\n return [2 /*return*/, mkFileResponse];\n }\n });\n });\n };\n Resume.prototype.uploadChunk = function (chunkInfo) {\n return __awaiter(this, void 0, void 0, function () {\n var index, chunk, cachedInfo, shouldCheckMD5, reuseSaved, md5, onProgress, requestOptions, response;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n index = chunkInfo.index, chunk = chunkInfo.chunk;\n cachedInfo = this.cachedUploadedList[index];\n this.logger.info(\"upload part \" + index + \", cache:\", cachedInfo);\n shouldCheckMD5 = this.config.checkByMD5;\n reuseSaved = function () {\n _this.usedCacheList[index] = true;\n _this.updateChunkProgress(chunk.size, index);\n _this.uploadedList[index] = cachedInfo;\n _this.updateLocalCache();\n };\n // FIXME: 至少判断一下 size\n if (cachedInfo && !shouldCheckMD5) {\n reuseSaved();\n return [2 /*return*/];\n }\n return [4 /*yield*/, utils.computeMd5(chunk)];\n case 1:\n md5 = _a.sent();\n this.logger.info('computed part md5.', md5);\n if (cachedInfo && md5 === cachedInfo.md5) {\n reuseSaved();\n return [2 /*return*/];\n }\n // 没有使用缓存设置标记为 false\n this.usedCacheList[index] = false;\n onProgress = function (data) {\n _this.updateChunkProgress(data.loaded, index);\n };\n requestOptions = {\n body: chunk,\n md5: this.config.checkByServer ? md5 : undefined,\n onProgress: onProgress,\n onCreate: function (xhr) {\n return _this.addXhr(xhr);\n }\n };\n this.logger.info(\"part \" + index + \" start uploading.\");\n return [4 /*yield*/, uploadChunk(this.token, this.key, chunkInfo.index + 1, this.getUploadInfo(), requestOptions)];\n case 2:\n response = _a.sent();\n this.logger.info(\"part \" + index + \" upload completed.\");\n // 在某些浏览器环境下,xhr 的 progress 事件无法被触发,progress 为 null,这里在每次分片上传完成后都手动更新下 progress\n onProgress({\n loaded: chunk.size,\n total: chunk.size\n });\n this.uploadedList[index] = {\n etag: response.data.etag,\n md5: response.data.md5,\n size: chunk.size\n };\n this.updateLocalCache();\n return [2 /*return*/];\n }\n });\n });\n };\n Resume.prototype.mkFileReq = function () {\n return __awaiter(this, void 0, void 0, function () {\n var data, result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n data = __assign(__assign(__assign({\n parts: this.uploadedList.map(function (value, index) {\n return {\n etag: value.etag,\n // 接口要求 index 需要从 1 开始,所以需要整体 + 1\n partNumber: index + 1\n };\n }),\n fname: this.putExtra.fname\n }, this.putExtra.mimeType && {\n mimeType: this.putExtra.mimeType\n }), this.putExtra.customVars && {\n customVars: this.putExtra.customVars\n }), this.putExtra.metadata && {\n metadata: this.putExtra.metadata\n });\n this.logger.info('parts upload completed, make file.', data);\n return [4 /*yield*/, uploadComplete(this.token, this.key, this.getUploadInfo(), {\n onCreate: function (xhr) {\n return _this.addXhr(xhr);\n },\n body: JSON.stringify(data)\n })];\n case 1:\n result = _a.sent();\n this.logger.info('finish Resume Progress.');\n this.updateMkFileProgress(1);\n return [2 /*return*/, result];\n }\n });\n });\n };\n Resume.prototype.initBeforeUploadChunks = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cachedInfo, res, infoMessage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.uploadedList = [];\n this.usedCacheList = [];\n cachedInfo = utils.getLocalFileInfo(this.getLocalKey(), this.logger);\n if (!!cachedInfo) return [3 /*break*/, 2];\n this.logger.info('init upload parts from api.');\n return [4 /*yield*/, initUploadParts(this.token, this.bucketName, this.key, this.uploadHost.getUrl())];\n case 1:\n res = _a.sent();\n this.logger.info(\"initd upload parts of id: \" + res.data.uploadId + \".\");\n this.uploadId = res.data.uploadId;\n this.cachedUploadedList = [];\n return [3 /*break*/, 3];\n case 2:\n infoMessage = ['resume upload parts from local cache,', \"total \" + cachedInfo.data.length + \" part,\", \"id is \" + cachedInfo.id + \".\"];\n this.logger.info(infoMessage.join(' '));\n this.cachedUploadedList = cachedInfo.data;\n this.uploadId = cachedInfo.id;\n _a.label = 3;\n case 3:\n this.chunks = utils.getChunks(this.file, this.config.chunkSize);\n this.loaded = {\n mkFileProgress: 0,\n chunks: this.chunks.map(function (_) {\n return 0;\n })\n };\n this.notifyResumeProgress();\n return [2 /*return*/];\n }\n });\n });\n };\n Resume.prototype.getUploadInfo = function () {\n return {\n id: this.uploadId,\n url: this.uploadHost.getUrl()\n };\n };\n Resume.prototype.getLocalKey = function () {\n return utils.createLocalKey(this.file.name, this.key, this.file.size);\n };\n Resume.prototype.updateLocalCache = function () {\n utils.setLocalFileInfo(this.getLocalKey(), {\n id: this.uploadId,\n data: this.uploadedList\n }, this.logger);\n };\n Resume.prototype.updateChunkProgress = function (loaded, index) {\n this.loaded.chunks[index] = loaded;\n this.notifyResumeProgress();\n };\n Resume.prototype.updateMkFileProgress = function (progress) {\n this.loaded.mkFileProgress = progress;\n this.notifyResumeProgress();\n };\n Resume.prototype.notifyResumeProgress = function () {\n var _this = this;\n this.progress = {\n total: this.getProgressInfoItem(utils.sum(this.loaded.chunks) + this.loaded.mkFileProgress,\n // FIXME: 不准确的 fileSize\n this.file.size + 1 // 防止在 complete 未调用的时候进度显示 100%\n ),\n chunks: this.chunks.map(function (chunk, index) {\n var fromCache = _this.usedCacheList[index];\n return _this.getProgressInfoItem(_this.loaded.chunks[index], chunk.size, fromCache);\n }),\n uploadInfo: {\n id: this.uploadId,\n url: this.uploadHost.getUrl()\n }\n };\n this.onData(this.progress);\n };\n return Resume;\n}(Base);\nexport default Resume;","map":{"version":3,"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","uploadChunk","uploadComplete","initUploadParts","QiniuError","QiniuErrorName","QiniuRequestError","utils","Base","isPositiveInteger","re","test","String","Resume","_super","run","pool","mkFileResponse","localKey","uploadChunks","error_1","_this","_a","logger","info","config","chunkSize","InvalidChunkSize","initBeforeUploadChunks","Pool","chunkInfo","aborted","abort","Error","concurrentRequestLimit","getLocalKey","chunks","map","chunk","index","enqueue","all","mkFileReq","code","removeLocalFileInfo","cachedInfo","shouldCheckMD5","reuseSaved","md5","onProgress","requestOptions","response","cachedUploadedList","checkByMD5","usedCacheList","updateChunkProgress","size","uploadedList","updateLocalCache","computeMd5","data","loaded","checkByServer","undefined","onCreate","xhr","addXhr","token","key","getUploadInfo","total","etag","parts","partNumber","fname","putExtra","mimeType","customVars","metadata","JSON","stringify","updateMkFileProgress","res","infoMessage","getLocalFileInfo","bucketName","uploadHost","getUrl","uploadId","id","join","getChunks","file","mkFileProgress","notifyResumeProgress","url","createLocalKey","name","setLocalFileInfo","progress","getProgressInfoItem","sum","fromCache","uploadInfo","onData"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/qiniu-js/esm/upload/resume.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { uploadChunk, uploadComplete, initUploadParts } from '../api';\nimport { QiniuError, QiniuErrorName, QiniuRequestError } from '../errors';\nimport * as utils from '../utils';\nimport Base from './base';\n/** 是否为正整数 */\nfunction isPositiveInteger(n) {\n var re = /^[1-9]\\d*$/;\n return re.test(String(n));\n}\nvar Resume = /** @class */ (function (_super) {\n __extends(Resume, _super);\n function Resume() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @returns {Promise>}\n * @description 实现了 Base 的 run 接口,处理具体的分片上传事务,并抛出过程中的异常。\n */\n Resume.prototype.run = function () {\n return __awaiter(this, void 0, void 0, function () {\n var pool, mkFileResponse, localKey, uploadChunks, error_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.logger.info('start run Resume.');\n if (!this.config.chunkSize || !isPositiveInteger(this.config.chunkSize)) {\n throw new QiniuError(QiniuErrorName.InvalidChunkSize, 'chunkSize must be a positive integer');\n }\n if (this.config.chunkSize > 1024) {\n throw new QiniuError(QiniuErrorName.InvalidChunkSize, 'chunkSize maximum value is 1024');\n }\n return [4 /*yield*/, this.initBeforeUploadChunks()];\n case 1:\n _a.sent();\n pool = new utils.Pool(function (chunkInfo) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.aborted) {\n pool.abort();\n throw new Error('pool is aborted');\n }\n return [4 /*yield*/, this.uploadChunk(chunkInfo)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); }, this.config.concurrentRequestLimit);\n mkFileResponse = null;\n localKey = this.getLocalKey();\n uploadChunks = this.chunks.map(function (chunk, index) { return pool.enqueue({ chunk: chunk, index: index }); });\n _a.label = 2;\n case 2:\n _a.trys.push([2, 5, , 6]);\n return [4 /*yield*/, Promise.all(uploadChunks)];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.mkFileReq()];\n case 4:\n mkFileResponse = _a.sent();\n return [3 /*break*/, 6];\n case 5:\n error_1 = _a.sent();\n // uploadId 无效,上传参数有误(多由于本地存储信息的 uploadId 失效)\n if (error_1 instanceof QiniuRequestError && (error_1.code === 612 || error_1.code === 400)) {\n utils.removeLocalFileInfo(localKey, this.logger);\n }\n throw error_1;\n case 6:\n // 上传成功,清理本地缓存数据\n utils.removeLocalFileInfo(localKey, this.logger);\n return [2 /*return*/, mkFileResponse];\n }\n });\n });\n };\n Resume.prototype.uploadChunk = function (chunkInfo) {\n return __awaiter(this, void 0, void 0, function () {\n var index, chunk, cachedInfo, shouldCheckMD5, reuseSaved, md5, onProgress, requestOptions, response;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n index = chunkInfo.index, chunk = chunkInfo.chunk;\n cachedInfo = this.cachedUploadedList[index];\n this.logger.info(\"upload part \" + index + \", cache:\", cachedInfo);\n shouldCheckMD5 = this.config.checkByMD5;\n reuseSaved = function () {\n _this.usedCacheList[index] = true;\n _this.updateChunkProgress(chunk.size, index);\n _this.uploadedList[index] = cachedInfo;\n _this.updateLocalCache();\n };\n // FIXME: 至少判断一下 size\n if (cachedInfo && !shouldCheckMD5) {\n reuseSaved();\n return [2 /*return*/];\n }\n return [4 /*yield*/, utils.computeMd5(chunk)];\n case 1:\n md5 = _a.sent();\n this.logger.info('computed part md5.', md5);\n if (cachedInfo && md5 === cachedInfo.md5) {\n reuseSaved();\n return [2 /*return*/];\n }\n // 没有使用缓存设置标记为 false\n this.usedCacheList[index] = false;\n onProgress = function (data) {\n _this.updateChunkProgress(data.loaded, index);\n };\n requestOptions = {\n body: chunk,\n md5: this.config.checkByServer ? md5 : undefined,\n onProgress: onProgress,\n onCreate: function (xhr) { return _this.addXhr(xhr); }\n };\n this.logger.info(\"part \" + index + \" start uploading.\");\n return [4 /*yield*/, uploadChunk(this.token, this.key, chunkInfo.index + 1, this.getUploadInfo(), requestOptions)];\n case 2:\n response = _a.sent();\n this.logger.info(\"part \" + index + \" upload completed.\");\n // 在某些浏览器环境下,xhr 的 progress 事件无法被触发,progress 为 null,这里在每次分片上传完成后都手动更新下 progress\n onProgress({\n loaded: chunk.size,\n total: chunk.size\n });\n this.uploadedList[index] = {\n etag: response.data.etag,\n md5: response.data.md5,\n size: chunk.size\n };\n this.updateLocalCache();\n return [2 /*return*/];\n }\n });\n });\n };\n Resume.prototype.mkFileReq = function () {\n return __awaiter(this, void 0, void 0, function () {\n var data, result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n data = __assign(__assign(__assign({ parts: this.uploadedList.map(function (value, index) { return ({\n etag: value.etag,\n // 接口要求 index 需要从 1 开始,所以需要整体 + 1\n partNumber: index + 1\n }); }), fname: this.putExtra.fname }, this.putExtra.mimeType && { mimeType: this.putExtra.mimeType }), this.putExtra.customVars && { customVars: this.putExtra.customVars }), this.putExtra.metadata && { metadata: this.putExtra.metadata });\n this.logger.info('parts upload completed, make file.', data);\n return [4 /*yield*/, uploadComplete(this.token, this.key, this.getUploadInfo(), {\n onCreate: function (xhr) { return _this.addXhr(xhr); },\n body: JSON.stringify(data)\n })];\n case 1:\n result = _a.sent();\n this.logger.info('finish Resume Progress.');\n this.updateMkFileProgress(1);\n return [2 /*return*/, result];\n }\n });\n });\n };\n Resume.prototype.initBeforeUploadChunks = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cachedInfo, res, infoMessage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.uploadedList = [];\n this.usedCacheList = [];\n cachedInfo = utils.getLocalFileInfo(this.getLocalKey(), this.logger);\n if (!!cachedInfo) return [3 /*break*/, 2];\n this.logger.info('init upload parts from api.');\n return [4 /*yield*/, initUploadParts(this.token, this.bucketName, this.key, this.uploadHost.getUrl())];\n case 1:\n res = _a.sent();\n this.logger.info(\"initd upload parts of id: \" + res.data.uploadId + \".\");\n this.uploadId = res.data.uploadId;\n this.cachedUploadedList = [];\n return [3 /*break*/, 3];\n case 2:\n infoMessage = [\n 'resume upload parts from local cache,',\n \"total \" + cachedInfo.data.length + \" part,\",\n \"id is \" + cachedInfo.id + \".\"\n ];\n this.logger.info(infoMessage.join(' '));\n this.cachedUploadedList = cachedInfo.data;\n this.uploadId = cachedInfo.id;\n _a.label = 3;\n case 3:\n this.chunks = utils.getChunks(this.file, this.config.chunkSize);\n this.loaded = {\n mkFileProgress: 0,\n chunks: this.chunks.map(function (_) { return 0; })\n };\n this.notifyResumeProgress();\n return [2 /*return*/];\n }\n });\n });\n };\n Resume.prototype.getUploadInfo = function () {\n return {\n id: this.uploadId,\n url: this.uploadHost.getUrl()\n };\n };\n Resume.prototype.getLocalKey = function () {\n return utils.createLocalKey(this.file.name, this.key, this.file.size);\n };\n Resume.prototype.updateLocalCache = function () {\n utils.setLocalFileInfo(this.getLocalKey(), {\n id: this.uploadId,\n data: this.uploadedList\n }, this.logger);\n };\n Resume.prototype.updateChunkProgress = function (loaded, index) {\n this.loaded.chunks[index] = loaded;\n this.notifyResumeProgress();\n };\n Resume.prototype.updateMkFileProgress = function (progress) {\n this.loaded.mkFileProgress = progress;\n this.notifyResumeProgress();\n };\n Resume.prototype.notifyResumeProgress = function () {\n var _this = this;\n this.progress = {\n total: this.getProgressInfoItem(utils.sum(this.loaded.chunks) + this.loaded.mkFileProgress, \n // FIXME: 不准确的 fileSize\n this.file.size + 1 // 防止在 complete 未调用的时候进度显示 100%\n ),\n chunks: this.chunks.map(function (chunk, index) {\n var fromCache = _this.usedCacheList[index];\n return _this.getProgressInfoItem(_this.loaded.chunks[index], chunk.size, fromCache);\n }),\n uploadInfo: {\n id: this.uploadId,\n url: this.uploadHost.getUrl()\n }\n };\n this.onData(this.progress);\n };\n return Resume;\n}(Base));\nexport default Resume;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}