// Module ID: 7953 // Function ID: 7954 // Name: CloudUploader // Dependencies: [5, 17, 1074, 4631, 3, 7954, 7869, 1115, 5265, 5223, 5260, 7955, 1364, 7956, 5212, 5213, 12, 2] // Module 7953 (CloudUploader) import LoggerDefault from "Logger" /* 3 */; import _modDef12 from "module_12" /* 12 */; import Upload from "Upload" /* 5213 */; import asyncGeneratorStep from "asyncGeneratorStep" /* 5 */; import UploaderBase from "UploaderBase" /* 7954 */; require = fn; get_ActivityIndicator = fn(17); ({ NativeEventEmitter, NativeModules } = get_ActivityIndicator); const Constants = fn(1074); ({ AbortCodes: closure_4, NOOP: hasOwnProperty } = Constants); const MessageConstants = fn(4631); ({ DEFAULT_MOBILE_PRE_COMPRESSION_MAX_ATTACHMENT_SIZE: metroRequire, FileUploadErrorTypes: closure_7 } = MessageConstants); let closure_8 = new LoggerDefault("CloudUploader(Native).tsx"); const nativeEventEmitter = new NativeEventEmitter(NativeModules.MediaManager); class CloudUploader extends tmp7 { constructor() { applyArgumentsResult = HermesBuiltin.applyArguments(new.target, new.target); map = new Map(); applyArgumentsResult.mediaEventSubscriptions = map; map1 = new Map(); applyArgumentsResult.uploadItems = map1; applyArgumentsResult.preCompressionFileSizes = []; return applyArgumentsResult; } } const prototype = CloudUploader.prototype; prototype["uploadFiles"] = function uploadFiles(arg0) { closure_1 = arg0; function _superprop_getUpload() { return super.upload; } const self = this; return self(function*(arg0, value) { if (constants === 2) { constants = 3; throw new TypeError("Generator functions may not be called on executing generators"); } else if (tmp7 === 3) { if (arg0 === 1) { throw value; } else if (arg0 === 2) { let obj2 = { value, done: true }; return obj2; } else { return { value: "HermesInternal", done: null }; } } else { try { constants = 2; if (0 === c6) { if (arg0 === 1) { constants = 3; throw value; } else if (arg0 === 2) { constants = 3; let obj3 = { value, done: true }; return obj3; } else { dependencyMap = tmp8; closure_130_0 = undefined; closure_130_1 = undefined; closure_130_2 = undefined; closure_130_3 = undefined; closure_130_4 = undefined; closure_130_5 = undefined; closure_130_6 = undefined; let uploadTarget; closure_130_0 = files(7869).backgroundTaskIdentifierInvalid; self.once("start", tmp4(function*(arg0, value) { if (c2 === 2) { c2 = 3; throw new TypeError("Generator functions may not be called on executing generators"); } else if (tmp4 === 3) { if (arg0 === 1) { throw value; } else if (arg0 === 2) { const obj2 = { value, done: true }; return obj2; } else { return { value: "HermesInternal", done: null }; } } else { try { c2 = 2; if (0 === length) { if (arg0 === 1) { c2 = 3; throw value; } else if (arg0 === 2) { c2 = 3; const obj3 = { value, done: true }; return obj3; } else { const obj4 = { title: null, content: null }; const intl = closure_2_0(1115).intl; obj4.title = intl.string(closure_2_0(1115).t["B/HSDd"]); const intl2 = closure_2_0(1115).intl; const obj5 = { count: length.length }; obj4.content = intl2.formatToPlainString(closure_2_0(1115).t.D0noUt, obj5); c2 = 1; const obj7 = { value: files(7869).startBackgroundTask(obj4), done: false }; return obj7; } } else if (arg0 === 1) { c2 = 3; throw value; } else if (arg0 === 2) { c2 = 3; const obj8 = { value, done: true }; return obj8; } else { closure_128_0 = value; if (tmp2._aborted) { files(7869).endBackgroundTask(closure_128_0); const obj = files(7869); } c2 = 3; return { value: "HermesInternal", done: null }; } } catch (tmp13) { c2 = tmp; throw tmp13; } } })); function onCompleteTask() { closure_1(_superprop_getUpload[6]).endBackgroundTask(closure_1_0); closure_0.removeListener("complete", files); closure_0.removeListener("error", files); } closure_130_1 = onCompleteTask; self.once("error", onCompleteTask); self.once("complete", onCompleteTask); const promise = new Promise((arg0, arg1) => { closure_0 = arg0; closure_1 = arg1; closure_0.once("error", (file, code, responseBody, reason) => { closure_1({ file, code, responseBody, reason }); }); closure_0.once("complete", () => { if (!closure_2_0._errored) { closure_0(tmp.files); } }); }); closure_130_2 = promise; c5 = 1; let arr = files; self.files = files; let tmp65 = _superprop_getUpload(); const call = tmp65.call; let getKestrelConfig = self; if (typeof call === "unknown") { tmp65(arr); } else { call(getKestrelConfig, arr); } self._file.attachmentsCount = arr.length; self._handleStart(undefined); tmp65 = _self(5265); getKestrelConfig = tmp65.getKestrelConfig; closure_130_3 = getKestrelConfig({ location: "CloudUploader.native.uploadFiles" }); closure_130_4 = 0; files = self.files; arr = files; _self = files[Symbol.iterator](); } } else if (1 === tmp8) { c5 = 0; closure_130_8 = tmp83; const _HermesInternal = HermesInternal; logger.log("" + closure_131_0.id + " failed in CloudUploader uploadFiles " + closure_130_8); closure_131_0._handleException(closure_130_8); constants = 3; let obj4 = { value: closure_130_2, done: true }; return obj4; } else if (2 === tmp8) { c5 = 1; _self.return(); throw tmp83; } else if (arg0 === 1) { constants = 3; throw value; } else if (arg0 === 2) { c5 = 1; _self.return(); c5 = 0; constants = 3; let obj5 = { value, done: true }; return obj5; } else { closure_130_6 = value; const prop = closure_131_0.preCompressionFileSizes; prop.push(closure_130_6); closure_130_5.preCompressionSize = closure_130_6; closure_130_4 = closure_130_4 + closure_130_6; closure_131_0._file.totalPreCompressionSize = closure_130_4; closure_131_0._file.currentSize = closure_130_4; uploadTarget = _self(5260).getUploadTarget(closure_130_5.item.target); const _Math = Math; if (closure_130_6 > Math.max(uploadTarget.getMaxFileSize(closure_130_5.channelId), c6)) { const obj6 = { code: tmp83.ENTITY_TOO_LARGE, reason: null }; let obj7 = { type: constants.PRECOMPRESSION_INDIVIDUAL_FILE_TOO_LARGE }; obj6.reason = obj7; closure_131_0._handleError(obj6); c5 = 1; _self.return(); c5 = 0; constants = 3; let obj8 = { value: closure_130_2, done: true }; return obj8; } else { if (closure_130_3.enabled) { if (closure_130_6 > obj.getEffectiveKestrelLimit(closure_130_3, uploadTarget.getMaxFileSize(closure_130_5.channelId))) { const obj9 = { code: tmp83.ENTITY_TOO_LARGE, reason: null }; const obj10 = { type: constants.PRECOMPRESSION_INDIVIDUAL_FILE_TOO_LARGE }; obj9.reason = obj10; closure_131_0._handleError(obj9); c5 = 1; _self.return(); c5 = 0; constants = 3; const obj11 = { value: closure_130_2, done: true }; return obj11; } obj = _self(5265); } if (closure_130_4 > uploadTarget.getMaxTotalAttachmentSize()) { const obj12 = { code: tmp83.ENTITY_TOO_LARGE, reason: null }; const obj14 = { type: constants.PRECOMPRESSION_SUM_TOO_LARGE }; obj12.reason = obj14; closure_131_0._handleError(obj12); c5 = 1; _self.return(); c5 = 0; constants = 3; const obj16 = { value: closure_130_2, done: true }; return obj16; } else { c5 = 1; if (_self === undefined) { const _HermesInternal2 = HermesInternal; logger.log("" + closure_131_0.id + " queued"); files(7955).enqueue(() => { closure_1_0.startUpload(); return closure_1_0; }); c5 = 0; constants = 3; const obj17 = { value: closure_130_2, done: true }; return obj17; } else { c5 = 2; closure_130_5 = tmp69; c6 = 3; constants = 1; const obj18 = { value: _self(5223).getFileSize(closure_130_5.item.uri), done: false }; return obj18; } } } const obj19 = _self(5260); } } catch (tmp83) { if (tmp5 === c5) { constants = tmp3; throw tmp83; } else if (tmp2 === tmp85) { c6 = tmp2; } else { c6 = tmp; } } } })(); }; prototype["startUpload"] = function startUpload() { const self = this; return (async (arg0, value) => { if (c5 === 2) { c5 = 3; throw new TypeError("Generator functions may not be called on executing generators"); } else if (tmp6 === 3) { if (arg0 === 1) { throw value; } else if (arg0 === 2) { const obj2 = { value, done: true }; return obj2; } else { return { value: "HermesInternal", done: null }; } } else { try { c5 = 2; if (0 === c4) { if (arg0 === 1) { c5 = 3; throw value; } else if (arg0 === 2) { c5 = 3; const obj3 = { value, done: true }; return obj3; } else { closure_0 = tmp7; if (self._aborted) { obj10._handleAborted(); } else { obj10._handleStart(c5); c3 = 1; if (obj6.isAndroid()) { const result = self.observeCompressionProgress(self.files); } c4 = 3; c5 = 1; const obj4 = { value: self.compressAndCheckFileSize(), done: false }; return obj4; } } } else { if (1 === tmp7) { c3 = 0; closure_128_0 = tmp59; closure_129_0._handleException(closure_128_0); } else if (2 === tmp7) { if (arg0 === 1) { c5 = 3; throw value; } else if (arg0 === 2) { c3 = 0; c5 = 3; const obj5 = { value, done: true }; return obj5; } else if (0 !== closure_129_0.files.length) { const files = closure_129_0.files; if (files.every((status) => status.status === closure_1_0(closure_1_2[14]).CloudUploadStatus.COMPLETED)) { const items = closure_129_0._file.items; if (items != null) { const item = items.forEach((item) => { item.item.progress = 100; }); } const obj7 = {}; const merged = Object.assign(closure_129_0._file); obj7.progress = 100; closure_129_0._file = obj7; closure_129_0.emit("progress", closure_129_0._file); const _HermesInternal = HermesInternal; logger.log("All uploads complete for " + closure_129_0.id); closure_129_0._handleComplete(); c3 = 0; } else { const _Error = Error; const error = new Error("Not all attachments were uploaded successfully"); throw error; } } } else if (arg0 === 1) { c5 = 3; throw value; } else if (arg0 === 2) { c3 = 0; c5 = 3; const obj8 = { value, done: true }; return obj8; } else if (value) { const result1 = closure_129_0.setUploadingTextForUI(); const _recomputeProgress = closure_129_0._recomputeProgress; c4 = 2; c5 = 1; const obj = { value: tmp3(tmp59[13])(closure_129_0.files, true, _recomputeProgress.bind(closure_129_0)), done: false }; return obj; } else { c3 = 0; c5 = 3; return { value: "HermesInternal", done: null }; } const _HermesInternal2 = HermesInternal; logger.log("All uploads cancelled for " + closure_129_0.id); closure_129_0._handleComplete(); c3 = 0; c5 = 3; const obj9 = { value: undefined, done: true }; return obj9; } c5 = 3; } catch (tmp59) { if (tmp4 === c3) { c5 = tmp2; throw tmp59; } else { c4 = tmp; } } } })(); }; prototype["observeCompressionProgress"] = function observeCompressionProgress(files) { const self = this; let item = files.forEach((item) => { item = item.item; if (item.platform === Upload.UploadPlatform.REACT_NATIVE) { item.compressionProgress = 0; const uploadItems = self.uploadItems; const result = uploadItems.set(item.uri, item); } }); let mediaEventSubscriptions = this.mediaEventSubscriptions; let result = mediaEventSubscriptions.set(this._file.id, nativeEventEmitter.addListener("compression-progress", (uri) => { uri = uri.uri; const uploadItems = self.uploadItems; if (uploadItems.has(uri)) { const uploadItems2 = obj.uploadItems; uploadItems2.get(uri).compressionProgress = uri.progress; const uploadItems3 = obj.uploadItems; const items = []; HermesBuiltin.arraySpread(uploadItems3.values(), 0); const meanByResult = _modDef12.meanBy(items, "compressionProgress"); if (meanByResult >= 100) { const mediaEventSubscriptions = obj.mediaEventSubscriptions; value = mediaEventSubscriptions.get(obj._file.id); if (value != null) { value.remove(); } const mediaEventSubscriptions2 = obj.mediaEventSubscriptions; mediaEventSubscriptions2.delete(obj._file.id); const uploadItems4 = obj.uploadItems; uploadItems4.clear(); const items1 = obj._file.items; if (items1 != null) { const item = items1.forEach((item) => { item.item.compressionProgress = 100; }); } const obj3 = {}; const merged = Object.assign(obj._file); obj3.compressionProgress = 100; obj._file = obj3; } else { const obj4 = {}; const merged1 = Object.assign(obj._file); obj4.compressionProgress = meanByResult; obj._file = obj4; } obj.emit("compression-progress", obj._file); } })); }; const size = fn(2); let result = size.fileFinishedImporting("lib/uploader/native/CloudUploader.tsx"); export default CloudUploader;