Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4821.js (118.4 MB)
2143 lines
82 KiB
TypeScript
2143 lines
82 KiB
TypeScript
// Module ID: 5208
|
|
// Function ID: 5209
|
|
// Name: CloudUpload
|
|
// Dependencies: [109, 5, 32, 4635, 1183, 4685, 1074, 3, 1270, 5209, 5217, 1090, 559, 5250, 12, 1461, 5219, 5252, 5253, 5238, 5254, 5255, 5259, 5260, 1230, 5218, 5210, 5261, 5262, 1896, 5347, 1240, 2]
|
|
|
|
// Module 5208 (CloudUpload)
|
|
import LoggerDefault from "Logger" /* 3 */;
|
|
import BackoffDefault from "Backoff" /* 559 */;
|
|
import DurationsDefault from "Durations" /* 1090 */;
|
|
import AnalyticsUtilsDefault from "AnalyticsUtils" /* 1240 */;
|
|
import HTTPUtils from "HTTPUtils" /* 1270 */;
|
|
import Upload2 from "Upload" /* 5209 */;
|
|
import InlineUploaderDefault from "InlineUploader" /* 5250 */;
|
|
import _objectWithoutProperties from "_objectWithoutProperties" /* 109 */;
|
|
import asyncGeneratorStep from "asyncGeneratorStep" /* 5 */;
|
|
import _slicedToArray from "module_32" /* 32 */;
|
|
import DevSettingsStore from "DevSettingsStore" /* 4635 */;
|
|
import UnsyncedUserSettingsStore from "UnsyncedUserSettingsStore" /* 1183 */;
|
|
import NetworkStore from "NetworkStore" /* 4685 */;
|
|
|
|
const Upload = Upload2;
|
|
|
|
require = fn;
|
|
let closure_3 = ["Content-Range"];
|
|
const Constants = fn(1074);
|
|
({ AbortCodes: c10, AnalyticEvents: closure_11 } = Constants);
|
|
const logger = new LoggerDefault("CloudUpload.tsx");
|
|
const set = new Set([429]);
|
|
let ResumableUploadError;
|
|
class ResumableUploadError extends Error {
|
|
constructor(arg0) {
|
|
obj = fn;
|
|
num = undefined;
|
|
if (fn === undefined) {
|
|
obj = {};
|
|
}
|
|
({ cause, response } = obj);
|
|
error = cause;
|
|
tmp = ResumableUploadError;
|
|
if (cause == null) {
|
|
tmp3 = globalThis;
|
|
str = undefined;
|
|
if (response != null) {
|
|
str = response.text;
|
|
}
|
|
if (str == null) {
|
|
str = "Unknown error";
|
|
}
|
|
_HermesInternal = HermesInternal;
|
|
str2 = "";
|
|
tmp4 = new.target;
|
|
tmp5 = new.target;
|
|
error = new Error("" + str);
|
|
}
|
|
errorKind = ResumableUploadError.getErrorKind(error, response);
|
|
if ("server_error" !== errorKind) {
|
|
str3 = "client_error";
|
|
if ("client_error" !== errorKind) {
|
|
tmp7 = globalThis;
|
|
_HermesInternal2 = HermesInternal;
|
|
str4 = ":";
|
|
str5 = "";
|
|
combined = "" + global + ":" + errorKind;
|
|
}
|
|
tmp10 = new.target;
|
|
tmp11 = ResumableUploadError;
|
|
obj1 = { cause: null };
|
|
obj1.cause = cause;
|
|
tmp12 = new.target;
|
|
tmp13 = new.target;
|
|
tmp14 = combined;
|
|
tmp15 = obj1;
|
|
response1 = new response(combined, obj1, errorKind, ":status_", tmp9, str, num, concat);
|
|
tmp17 = response1;
|
|
str6 = "ResumableUploadError";
|
|
response1.name = "ResumableUploadError";
|
|
response1.phase = global;
|
|
response1.kind = errorKind;
|
|
response1.messageShort = combined;
|
|
return response1;
|
|
}
|
|
num = undefined;
|
|
if (response != null) {
|
|
num = response.status;
|
|
}
|
|
if (num == null) {
|
|
num = 0;
|
|
}
|
|
response = HermesInternal;
|
|
concat = HermesInternal.concat;
|
|
tmp9 = num;
|
|
combined = concat(global, ":", errorKind, ":status_", num);
|
|
return;
|
|
}
|
|
}
|
|
ResumableUploadError["getErrorKind"] = function getErrorKind(error, response) {
|
|
let num;
|
|
if (response != null) {
|
|
num = response.status;
|
|
}
|
|
if (num == null) {
|
|
num = 0;
|
|
}
|
|
const hasItem = set.has(num);
|
|
const formatted = error.message.toLowerCase();
|
|
let hasItem1 = formatted.includes("network");
|
|
if (!hasItem1) {
|
|
const formatted1 = error.message.toLowerCase();
|
|
hasItem1 = formatted1.includes("terminated");
|
|
}
|
|
if (!hasItem1) {
|
|
const formatted2 = error.message.toLowerCase();
|
|
hasItem1 = formatted2.includes("offline");
|
|
}
|
|
if (!hasItem1) {
|
|
const formatted3 = error.message.toLowerCase();
|
|
hasItem1 = formatted3.includes("changed");
|
|
}
|
|
if (num < 500) {
|
|
let str9 = "client_error";
|
|
if (!hasItem) {
|
|
let str10 = "unknown";
|
|
if (hasItem1) {
|
|
str10 = "network_error";
|
|
}
|
|
str9 = str10;
|
|
}
|
|
let str8 = str9;
|
|
} else {
|
|
str8 = "server_error";
|
|
}
|
|
return str8;
|
|
};
|
|
ResumableUploadError["rejectionHandler"] = function rejectionHandler(status_check) {
|
|
closure_0 = status_check;
|
|
return (response) => {
|
|
if (response instanceof HTTPUtils.HTTPResponseError) {
|
|
const obj2 = { response };
|
|
throw new ResumableUploadError(closure_0, obj2);
|
|
} else {
|
|
const _Error = Error;
|
|
const obj = { cause: null };
|
|
if (response instanceof Error) {
|
|
obj.cause = response;
|
|
throw new tmp2(tmp3, obj);
|
|
} else {
|
|
const _Error2 = Error;
|
|
const _String = String;
|
|
const error = new Error(String(response));
|
|
obj.cause = error;
|
|
throw new tmp2(tmp3, obj);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
ResumableUploadError.prototype["canRetry"] = function canRetry() {
|
|
const self = this;
|
|
let tmp = "server_error" === this.kind;
|
|
if (!tmp) {
|
|
tmp = "network_error" === self.kind;
|
|
}
|
|
if (!tmp) {
|
|
tmp = "client_error" === self.kind;
|
|
}
|
|
return tmp;
|
|
};
|
|
const CloudUploadStatus = { NOT_STARTED: "NOT_STARTED", STARTED: "STARTED", UPLOADING: "UPLOADING", ERROR: "ERROR", COMPLETED: "COMPLETED", CANCELED: "CANCELED", REMOVED_FROM_MSG_DRAFT: "REMOVED_FROM_MSG_DRAFT" };
|
|
let closure_16 = function UploadAnalytics() {
|
|
const merged = Object.assign({ timing: null, uploadResumptionCount: 0, uploadResumptionPosition: 0 });
|
|
merged[0] = {};
|
|
return merged;
|
|
}.prototype;
|
|
let CloudUpload;
|
|
class CloudUpload extends tmp5 {
|
|
constructor(arg0, arg1, arg2, arg3) {
|
|
obj = new CloudUpload(global, tmp4, tmp3, new.target, global, new.target, tmp2, CloudUpload, tmp);
|
|
closure_0 = obj;
|
|
obj.status = closure_15.NOT_STARTED;
|
|
obj.loaded = 0;
|
|
obj.reactNativeFilePrepped = false;
|
|
if (typeof closure_16 === "function") {
|
|
tmp6 = fn;
|
|
merged = Object.assign({ timing: null, uploadResumptionCount: 0, uploadResumptionPosition: 0 });
|
|
merged[0] = {};
|
|
obj.uploadAnalytics = merged;
|
|
obj.uploadAttempts = 0;
|
|
obj._aborted = false;
|
|
tmp8 = null;
|
|
obj._originalMd5 = null;
|
|
obj.createResumeAwareProgressFn = function createResumeAwareProgressFn(arg0) {
|
|
closure_0 = arg0;
|
|
return (loaded) => {
|
|
const sum = loaded.loaded + closure_0;
|
|
obj.emit("progress", sum, loaded.total + closure_0, sum - obj.loaded);
|
|
obj.loaded = sum;
|
|
};
|
|
};
|
|
obj.channelId = fn;
|
|
file = global.file;
|
|
num = undefined;
|
|
if (file != null) {
|
|
num = file.size;
|
|
}
|
|
if (num == null) {
|
|
num = 0;
|
|
}
|
|
obj.preCompressionSize = num;
|
|
file2 = global.file;
|
|
num2 = undefined;
|
|
if (file2 != null) {
|
|
num2 = file2.size;
|
|
}
|
|
if (num2 == null) {
|
|
num2 = 0;
|
|
}
|
|
tmp9 = importDefault;
|
|
tmp10 = importAll;
|
|
obj.currentSize = num2;
|
|
obj.reactNativeFileIndex = importDefault;
|
|
if (null != importAll) {
|
|
obj.allowOptimization = importAll;
|
|
}
|
|
tmp11 = closure_0;
|
|
tmp12 = closure_2;
|
|
tmp13 = global.platform === closure_0(closure_2[9]).UploadPlatform.WEB && null != global.compressionMetadata;
|
|
if (tmp13) {
|
|
obj.mimeType = global.compressionMetadata.originalContentType;
|
|
obj.preCompressionSize = global.compressionMetadata.preCompressionSize;
|
|
}
|
|
tmp14 = global.platform === tmp11(tmp12[9]).UploadPlatform.WEB && null != global.originalMd5;
|
|
if (tmp14) {
|
|
obj._originalMd5 = global.originalMd5;
|
|
}
|
|
result = obj.applyItemConversionAnalytics();
|
|
tmp16 = globalThis;
|
|
_AbortController = AbortController;
|
|
tmp17 = new.target;
|
|
tmp18 = new.target;
|
|
abortController = new AbortController();
|
|
tmp20 = abortController;
|
|
obj._abortController = abortController;
|
|
if (null == obj.origin) {
|
|
tmp21 = new.target;
|
|
tmp22 = new.target;
|
|
defaultHttpClient = new tmp11(tmp12[10]).DefaultHttpClient();
|
|
tmp24 = defaultHttpClient;
|
|
obj._uploadHttpClient = defaultHttpClient;
|
|
obj._libdiscoreEnabled = false;
|
|
return obj;
|
|
} else {
|
|
if (typeof obj.origin === "string") {
|
|
origin = obj.origin;
|
|
} else {
|
|
origin = tmp11(tmp12[9]).UploadOrigin[obj.origin];
|
|
}
|
|
obj.uploadAnalytics.origin = origin;
|
|
}
|
|
} else {
|
|
str = "Trying to call a non-function";
|
|
throw new TypeError("Trying to call a non-function");
|
|
}
|
|
return;
|
|
}
|
|
resetState() {
|
|
self = this;
|
|
this.status = closure_15.NOT_STARTED;
|
|
this.uploadedFilename = undefined;
|
|
this.responseUrl = undefined;
|
|
this.responseUrlSetAt = undefined;
|
|
this.error = undefined;
|
|
this.startTime = undefined;
|
|
if (typeof closure_16 === "function") {
|
|
merged = Object.assign({ timing: null, uploadResumptionCount: 0, uploadResumptionPosition: 0 });
|
|
merged[0] = {};
|
|
self.uploadAnalytics = merged;
|
|
result = self.applyItemConversionAnalytics();
|
|
num = 0;
|
|
self.uploadAttempts = 0;
|
|
flag = false;
|
|
self._aborted = false;
|
|
tmp3 = globalThis;
|
|
_AbortController = AbortController;
|
|
tmp4 = new.target;
|
|
tmp5 = new.target;
|
|
abortController = new AbortController();
|
|
tmp7 = abortController;
|
|
self._abortController = abortController;
|
|
tmp8 = closure_20;
|
|
return super.resetState();
|
|
} else {
|
|
str = "Trying to call a non-function";
|
|
throw new TypeError("Trying to call a non-function");
|
|
}
|
|
}
|
|
}
|
|
const prototype = CloudUpload.prototype;
|
|
CloudUpload["fromJson"] = function fromJson(item) {
|
|
let tmp = new CloudUpload(item.item, item.channelId, item.reactNativeFileIndex);
|
|
closure_0 = tmp;
|
|
const entries = Object.entries(item);
|
|
item = entries.forEach((item) => {
|
|
const tmp = _slicedToArray(item, 2);
|
|
const first = tmp[0];
|
|
if (!first.startsWith("_")) {
|
|
closure_0[first] = tmp[1];
|
|
}
|
|
});
|
|
if (tmp.status !== obj.COMPLETED) {
|
|
tmp.status = obj.NOT_STARTED;
|
|
}
|
|
return tmp;
|
|
};
|
|
prototype["parseRangeHeader"] = function parseRangeHeader(str) {
|
|
const match = str.match(/^bytes=(\d+)-(\d+)(?:\/\d+)?$/);
|
|
let tmp2 = null;
|
|
if (null != match) {
|
|
const _parseInt = parseInt;
|
|
const items = [parseInt(match[1], 10), ];
|
|
const _parseInt2 = parseInt;
|
|
items[1] = parseInt(match[2], 10);
|
|
tmp2 = items;
|
|
}
|
|
return tmp2;
|
|
};
|
|
prototype["retryOpts"] = function retryOpts() {
|
|
if (this.item.platform === Upload2.UploadPlatform.REACT_NATIVE) {
|
|
const obj2 = { timeout: DurationsDefault.Millis.HOUR, backoff: null, retries: 12 };
|
|
const result = 0.5 * DurationsDefault.Millis.SECOND;
|
|
const tmp82 = new BackoffDefault(result, 30 * DurationsDefault.Millis.MINUTE);
|
|
obj2.backoff = tmp82;
|
|
let obj = obj2;
|
|
} else {
|
|
obj = { timeout: DurationsDefault.Millis.HOUR, retries: 12, backoff: null };
|
|
const tmp5 = new BackoffDefault();
|
|
obj.backoff = tmp5;
|
|
}
|
|
return obj;
|
|
};
|
|
prototype["createAttachmentUrlRetryOpts"] = function createAttachmentUrlRetryOpts() {
|
|
const self = this;
|
|
if (this.item.platform === Upload2.UploadPlatform.REACT_NATIVE) {
|
|
const obj = { timeout: null, backoff: null, retries: 8 };
|
|
const obj2 = { response: 30 * DurationsDefault.Millis.SECOND, deadline: 30 * DurationsDefault.Millis.MINUTE };
|
|
obj.timeout = obj2;
|
|
const result = 0.5 * DurationsDefault.Millis.SECOND;
|
|
const tmp42 = new BackoffDefault(result, 60 * DurationsDefault.Millis.SECOND);
|
|
obj.backoff = tmp42;
|
|
let retryOptsResult = obj;
|
|
} else {
|
|
retryOptsResult = self.retryOpts();
|
|
}
|
|
return retryOptsResult;
|
|
};
|
|
prototype["buildOriginalMd5Headers"] = function buildOriginalMd5Headers() {
|
|
return InlineUploaderDefault.buildHeadersForMd5(this._originalMd5);
|
|
};
|
|
prototype["supportsResume"] = function supportsResume() {
|
|
let _libdiscoreEnabled = this._libdiscoreEnabled;
|
|
if (!_libdiscoreEnabled) {
|
|
_libdiscoreEnabled = this.item.platform !== Upload2.UploadPlatform.REACT_NATIVE;
|
|
}
|
|
return _libdiscoreEnabled;
|
|
};
|
|
prototype["uploadFileToCloud"] = function uploadFileToCloud() {
|
|
const self = this;
|
|
return (async () => {
|
|
if (null == self.responseUrl) {
|
|
const _Error = Error;
|
|
const error = new Error("_uploadFileToCloud - responseUrl is not set");
|
|
throw error;
|
|
}
|
|
const _HermesInternal3 = HermesInternal;
|
|
const combined = "Uploading " + obj8.id;
|
|
if (obj8.item.platform === v3(dependencyMap[9]).UploadPlatform.REACT_NATIVE) {
|
|
const _HermesInternal2 = HermesInternal;
|
|
let combined1 = "filename=" + obj8.item.filename + ", uri=" + obj8.item.uri;
|
|
} else {
|
|
const _HermesInternal = HermesInternal;
|
|
combined1 = "filename=" + obj8.item.file.name;
|
|
}
|
|
logger.log(combined, combined1);
|
|
if (obj8.item.platform === v3(dependencyMap[9]).UploadPlatform.REACT_NATIVE) {
|
|
const obj4 = { type: obj8.item.mimeType, uri: obj8.item.uri, name: obj8.item.filename };
|
|
let str6 = "application/octet-stream";
|
|
if (null != obj4.type) {
|
|
str6 = "application/octet-stream";
|
|
if ("application/json" !== obj4.type) {
|
|
str6 = obj4.type;
|
|
}
|
|
}
|
|
let str4 = str6;
|
|
let file = obj4;
|
|
} else {
|
|
file = obj8.item.file;
|
|
str4 = "application/octet-stream";
|
|
}
|
|
if (tmp25Result.canUploadNatively(obj8.item)) {
|
|
const libdiscoreHttpClient = new tmp25(tmp26[10]).LibdiscoreHttpClient();
|
|
obj8._uploadHttpClient = libdiscoreHttpClient;
|
|
obj8._libdiscoreEnabled = true;
|
|
logger.log("Using libdiscore client for file upload");
|
|
}
|
|
await obj8.uploadFileWithResumption(obj8.responseUrl, file, str4);
|
|
return arg1;
|
|
})();
|
|
};
|
|
prototype["getResumePosition"] = function getResumePosition(responseUrl) {
|
|
closure_0 = responseUrl;
|
|
const self = this;
|
|
return (async () => {
|
|
const obj4 = { url, headers: { "Content-Range": "bytes */*" }, rejectWithError: true, retries: 0, timeout: { deadline: 30 * v1(1090).Millis.SECOND }, signal: self._abortController.signal };
|
|
const _uploadHttpClient = self._uploadHttpClient;
|
|
_uploadHttpClient.doUpload(obj4);
|
|
await _uploadHttpClient.doUpload(obj4).then((status) => {
|
|
if (200 !== status.status) {
|
|
if (201 !== status.status) {
|
|
let currentSize = closure_2_14.rejectionHandler("status_check")(status);
|
|
}
|
|
return currentSize;
|
|
}
|
|
currentSize = v1.currentSize;
|
|
}).catch((error) => {
|
|
if (error instanceof c0(1270).HTTPResponseError) {
|
|
if (308 === error.status) {
|
|
let str = error.headers.range;
|
|
if (str == null) {
|
|
str = "";
|
|
}
|
|
const parseRangeHeaderResult = v1.parseRangeHeader(str);
|
|
let num2 = 0;
|
|
if (null != parseRangeHeaderResult) {
|
|
num2 = parseRangeHeaderResult[1] + 1;
|
|
}
|
|
return num2;
|
|
}
|
|
}
|
|
return closure_2_14.rejectionHandler("status_check")(error);
|
|
});
|
|
return arg1;
|
|
})();
|
|
};
|
|
prototype["startOrResumeUpload"] = function startOrResumeUpload(arg0, arg1) {
|
|
closure_0 = arg0;
|
|
const self = this;
|
|
return (async (arg0, value) => {
|
|
if (v3 === 2) {
|
|
v3 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp5 === 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 {
|
|
v3 = 2;
|
|
if (0 === c3) {
|
|
if (arg0 === 1) {
|
|
v3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
v3 = 3;
|
|
const obj3 = { value, done: true };
|
|
return obj3;
|
|
} else {
|
|
let obj7;
|
|
closure_129_0 = undefined;
|
|
let _catch = self;
|
|
let obj5 = globalThis;
|
|
const _HermesInternal = HermesInternal;
|
|
logger.log("Attempting to upload attachment with resumeFrom: " + num + " and attempts: " + self.uploadAttempts);
|
|
if (num > 0) {
|
|
const uploadAnalytics = _catch.uploadAnalytics;
|
|
uploadAnalytics.uploadResumptionCount = uploadAnalytics.uploadResumptionCount + 1;
|
|
const headers = config.headers;
|
|
config = headers;
|
|
if (headers == null) {
|
|
config = {};
|
|
}
|
|
const obj4 = {};
|
|
const merged = Object.assign(config);
|
|
obj4["Content-Range"] = "bytes " + tmp37 + "-" + _catch.currentSize - 1 + "/" + _catch.currentSize;
|
|
config.headers = obj4;
|
|
let tmp18 = tmp19;
|
|
} else {
|
|
tmp18 = config;
|
|
if (null != config.headers) {
|
|
const headers2 = tmp16.headers;
|
|
const prop = headers2["Content-Range"];
|
|
tmp16.headers = v3(headers2, c3);
|
|
tmp18 = tmp16;
|
|
}
|
|
}
|
|
obj5 = tmp2(tmp3[14]);
|
|
tmp18.onRequestProgress = obj5.throttle(_catch.createResumeAwareProgressFn(num), 50);
|
|
const _uploadHttpClient = _catch._uploadHttpClient;
|
|
const obj6 = { fileByteRange: null };
|
|
obj7 = { start: num };
|
|
obj6.fileByteRange = obj7;
|
|
_catch = _uploadHttpClient.doUpload(tmp18, obj6).catch;
|
|
_catch(ResumableUploadError.rejectionHandler("upload"));
|
|
c3 = 1;
|
|
v3 = 1;
|
|
const doUploadResult = _uploadHttpClient.doUpload(tmp18, obj6);
|
|
}
|
|
} else if (arg0 === 1) {
|
|
v3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
v3 = 3;
|
|
const obj8 = { value, done: true };
|
|
return obj8;
|
|
} else {
|
|
closure_129_0 = value;
|
|
if (200 !== closure_129_0.status) {
|
|
if (201 !== closure_129_0.status) {
|
|
const obj9 = { response: closure_129_0 };
|
|
throw new ResumableUploadError("upload", obj9);
|
|
}
|
|
}
|
|
v3 = 3;
|
|
const obj = { value: closure_129_0, done: true };
|
|
return obj;
|
|
}
|
|
} catch (tmp29) {
|
|
v3 = tmp;
|
|
throw tmp29;
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
prototype["uploadFileWithResumption"] = function uploadFileWithResumption(responseUrl, file, arg2) {
|
|
closure_0 = responseUrl;
|
|
closure_1 = file;
|
|
closure_2 = arg2;
|
|
const self = this;
|
|
return (async (arg0, url) => {
|
|
if (c9 === 2) {
|
|
c9 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp7 === 3) {
|
|
if (arg0 === 1) {
|
|
throw url;
|
|
} else if (arg0 === 2) {
|
|
let obj2 = { value: url, done: true };
|
|
return obj2;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
c9 = 2;
|
|
if (0 === c8) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw url;
|
|
} else if (arg0 === 2) {
|
|
c9 = 3;
|
|
let obj3 = { value: url, done: true };
|
|
return obj3;
|
|
} else {
|
|
closure_4 = tmp5;
|
|
closure_132_0 = undefined;
|
|
closure_132_1 = undefined;
|
|
closure_132_2 = undefined;
|
|
closure_132_3 = undefined;
|
|
closure_132_4 = undefined;
|
|
closure_132_5 = undefined;
|
|
const retryOptsResult = self.retryOpts();
|
|
({ backoff: closure_132_1, retries } = retryOptsResult);
|
|
closure_132_2 = retries;
|
|
const request = { url, body, headers: null, signal: null, onRequestProgress: null, retries: 0, rejectWithError: true, timeout: null };
|
|
let obj4 = { "Content-Type": next };
|
|
request.headers = obj4;
|
|
request.signal = self._abortController.signal;
|
|
request.onRequestProgress = iter4(next[14]).throttle(self.createResumeAwareProgressFn(0), 50);
|
|
request.timeout = retryOptsResult.timeout;
|
|
closure_132_3 = request;
|
|
closure_132_4 = 0;
|
|
closure_132_5 = async function _loop(arg0, value) {
|
|
if (c6 === 2) {
|
|
c6 = 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) {
|
|
const obj2 = { value, done: true };
|
|
return obj2;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
c6 = 2;
|
|
if (0 === c5) {
|
|
if (arg0 === 1) {
|
|
c6 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c6 = 3;
|
|
const obj3 = { value, done: true };
|
|
return obj3;
|
|
} else {
|
|
closure_2 = tmp3;
|
|
closure_1 = tmp5;
|
|
responseUrl = undefined;
|
|
closure_129_1 = undefined;
|
|
closure_129_2 = undefined;
|
|
c3.uploadAttempts = c3.uploadAttempts + 1;
|
|
c3.uploadAnalytics.numUploadAttempts = c3.uploadAttempts;
|
|
c3 = 1;
|
|
responseUrl = c3.responseUrl;
|
|
c5 = 2;
|
|
c6 = 1;
|
|
const obj4 = { value: c3.ensureFreshResponseUrl(), done: false };
|
|
return obj4;
|
|
}
|
|
} else if (1 === tmp8) {
|
|
c3 = 0;
|
|
closure_129_3 = closure_4;
|
|
if (closure_129_3 instanceof closure_2_14) {
|
|
if (closure_129_3.canRetry()) {
|
|
const _HermesInternal2 = HermesInternal;
|
|
logger.warn("Error uploading " + c3.id + ": " + closure_129_3.message + ", attempting resumption");
|
|
c3.uploadAnalytics.uploadResumptionReason = closure_129_3.messageShort;
|
|
c5 = 5;
|
|
c6 = 1;
|
|
const obj5 = { value: body(next[15]).awaitOnline(), done: false };
|
|
return obj5;
|
|
}
|
|
}
|
|
const _HermesInternal = HermesInternal;
|
|
logger.warn("Unrecoverable error uploading " + c3.id + ": " + closure_129_3.message);
|
|
throw closure_129_3;
|
|
} else {
|
|
if (2 === tmp8) {
|
|
if (arg0 === 1) {
|
|
c6 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 0;
|
|
c6 = 3;
|
|
const obj6 = { value, done: true };
|
|
return obj6;
|
|
} else {
|
|
closure_130_3.url = c3.responseUrl;
|
|
if (responseUrl !== c3.responseUrl) {
|
|
closure_130_4 = 0;
|
|
c3.loaded = 0;
|
|
} else if (c3.uploadAttempts > 1) {
|
|
c5 = 4;
|
|
c6 = 1;
|
|
const obj7 = {
|
|
value: c3.trackTime("resumptionCheckTimeMs", tmp3(async () => {
|
|
await resumePosition.getResumePosition(resumePosition.responseUrl);
|
|
return arg1;
|
|
})),
|
|
done: false
|
|
};
|
|
return obj7;
|
|
}
|
|
value = {};
|
|
c3.startOrResumeUpload(closure_130_3, closure_130_4);
|
|
c5 = 3;
|
|
c6 = 1;
|
|
}
|
|
} else if (3 === tmp8) {
|
|
if (arg0 === 1) {
|
|
c6 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 0;
|
|
c6 = 3;
|
|
const obj8 = { value, done: true };
|
|
return obj8;
|
|
} else {
|
|
value.v = value;
|
|
c3 = 0;
|
|
c6 = 3;
|
|
const obj10 = { value, done: true };
|
|
return obj10;
|
|
}
|
|
} else if (4 === tmp8) {
|
|
if (arg0 === 1) {
|
|
c6 = 3;
|
|
throw value;
|
|
} else if (arg0 !== 2) {
|
|
closure_129_1 = value;
|
|
c3.uploadAnalytics.uploadResumptionPosition = closure_129_1;
|
|
let num7 = 0;
|
|
if (c3.supportsResume()) {
|
|
num7 = closure_129_1;
|
|
}
|
|
closure_130_4 = num7;
|
|
c3.loaded = closure_130_4;
|
|
}
|
|
} else if (5 === tmp8) {
|
|
if (arg0 === 1) {
|
|
c6 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c6 = 3;
|
|
const obj11 = { value, done: true };
|
|
return obj11;
|
|
} else {
|
|
closure_129_2 = closure_130_1.fail();
|
|
const _HermesInternal3 = HermesInternal;
|
|
logger.log("Waiting " + closure_129_2 + "ms before attachment upload attempt " + c3.uploadAttempts + 1);
|
|
const promise = new Promise((arg0) => setTimeout(arg0, closure_1_2));
|
|
c5 = 6;
|
|
c6 = 1;
|
|
const obj12 = { value: promise, done: false };
|
|
return obj12;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c6 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c6 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
} else {
|
|
c6 = 3;
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
c3 = 0;
|
|
c6 = 3;
|
|
const obj13 = { value, done: true };
|
|
return obj13;
|
|
}
|
|
} catch (tmp59) {
|
|
closure_4 = tmp59;
|
|
if (tmp4 === c3) {
|
|
c6 = tmp2;
|
|
throw tmp59;
|
|
} else {
|
|
c5 = tmp;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
if (self.uploadAttempts <= retries) {
|
|
if (!self._aborted) {
|
|
const iter3 = closure_132_5()[tmp59.iterator]();
|
|
HermesBuiltin.ensureObject("iterator is not an object");
|
|
next = iter3.next;
|
|
url = undefined;
|
|
const tmp29 = closure_132_5();
|
|
}
|
|
}
|
|
const _Error = Error;
|
|
let _HermesInternal = HermesInternal;
|
|
const error = new Error("Upload failed after " + closure_133_3.uploadAttempts + " attempts");
|
|
throw error;
|
|
}
|
|
} else {
|
|
if (1 === tmp8) {
|
|
c6 = 1;
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw url;
|
|
} else if (arg0 === 2) {
|
|
c6 = 0;
|
|
const method = HermesBuiltin.getMethod("return");
|
|
if (method === undefined) {
|
|
c9 = 3;
|
|
let obj5 = { value: url, done: true };
|
|
return obj5;
|
|
} else {
|
|
const iter2 = method(url);
|
|
HermesBuiltin.ensureObject("iterator.return() did not return an object");
|
|
if (iter2.done) {
|
|
c9 = 3;
|
|
let obj = { value: iter2.value, done: true };
|
|
return obj;
|
|
} else {
|
|
c8 = 1;
|
|
c9 = 1;
|
|
return iter2;
|
|
}
|
|
}
|
|
} else {
|
|
c6 = 0;
|
|
const tmp20 = url;
|
|
}
|
|
} else {
|
|
c6 = 0;
|
|
const method1 = HermesBuiltin.getMethod("throw");
|
|
if (method1 === undefined) {
|
|
const method2 = HermesBuiltin.getMethod("return");
|
|
if (method2 !== undefined) {
|
|
HermesBuiltin.ensureObject("iterator.return() did not return an object");
|
|
}
|
|
throw new TypeError("yield* delegate must have a .throw() method");
|
|
} else {
|
|
const iter = method1(tmp10);
|
|
HermesBuiltin.ensureObject("iterator.throw() did not return an object");
|
|
if (iter.done) {
|
|
iter4 = iter;
|
|
} else {
|
|
c8 = 1;
|
|
c9 = 1;
|
|
return iter;
|
|
}
|
|
}
|
|
tmp10 = closure_7;
|
|
}
|
|
value = iter4.value;
|
|
closure_132_0 = value;
|
|
if (value) {
|
|
c9 = 3;
|
|
let obj6 = { value: closure_132_0.v, done: true };
|
|
return obj6;
|
|
}
|
|
}
|
|
iter4 = next(tmp20);
|
|
HermesBuiltin.ensureObject("iterator.next() did not return an object");
|
|
if (!iter4.done) {
|
|
c8 = 1;
|
|
c9 = 1;
|
|
return iter4;
|
|
}
|
|
} catch (tmp51) {
|
|
closure_7 = tmp51;
|
|
if (tmp4 === c6) {
|
|
c9 = tmp2;
|
|
throw tmp51;
|
|
} else {
|
|
c8 = tmp;
|
|
}
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
prototype["getSize"] = function getSize() {
|
|
const self = this;
|
|
return (async () => {
|
|
const getFileSize = value(c2[16]).getFileSize;
|
|
if (getFileSize != null) {
|
|
const fileSize = getFileSize(self.item.uri);
|
|
}
|
|
value = await fileSize;
|
|
if (arg1 == null) {
|
|
value = 0;
|
|
}
|
|
return value;
|
|
})();
|
|
};
|
|
prototype["trackTime"] = function trackTime(compressTimeMs, arg1) {
|
|
closure_0 = compressTimeMs;
|
|
closure_1 = arg1;
|
|
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 (tmp7 === 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 = tmp5;
|
|
closure_128_0 = undefined;
|
|
const _performance4 = performance;
|
|
closure_128_0 = performance.now();
|
|
c3 = 1;
|
|
c4 = 2;
|
|
c5 = 1;
|
|
const obj4 = { value: tmp3(), done: false };
|
|
return obj4;
|
|
}
|
|
} else if (1 === tmp8) {
|
|
c3 = 0;
|
|
const _performance3 = performance;
|
|
closure_129_2.uploadAnalytics.timing[closure_129_0] = performance.now() - closure_128_0;
|
|
throw closure_2;
|
|
} else if (arg0 === 1) {
|
|
c5 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 0;
|
|
const _performance2 = performance;
|
|
closure_129_2.uploadAnalytics.timing[closure_129_0] = performance.now() - closure_128_0;
|
|
c5 = 3;
|
|
const obj5 = { value, done: true };
|
|
return obj5;
|
|
} else {
|
|
c3 = 0;
|
|
const _performance = performance;
|
|
closure_129_2.uploadAnalytics.timing[closure_129_0] = performance.now() - closure_128_0;
|
|
c5 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
}
|
|
} catch (tmp27) {
|
|
closure_2 = tmp27;
|
|
if (tmp4 === c3) {
|
|
c5 = tmp2;
|
|
throw tmp27;
|
|
} else {
|
|
c4 = tmp;
|
|
}
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
prototype["upload"] = function upload() {
|
|
const self = this;
|
|
return (async (arg0, value) => {
|
|
if (c9 === 2) {
|
|
c9 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp8 === 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 {
|
|
c9 = 2;
|
|
if (0 === c8) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c9 = 3;
|
|
const obj3 = { value, done: true };
|
|
return obj3;
|
|
} else {
|
|
closure_4 = tmp9;
|
|
closure_132_0 = undefined;
|
|
let config;
|
|
let file;
|
|
closure_132_3 = undefined;
|
|
closure_132_4 = undefined;
|
|
closure_132_5 = undefined;
|
|
let uploadTarget;
|
|
let kestrelConfig;
|
|
let effectiveKestrelLimit;
|
|
closure_132_9 = undefined;
|
|
closure_132_10 = undefined;
|
|
if (self.status !== constants2.COMPLETED) {
|
|
self.setStatus(constants2.STARTED);
|
|
const _performance = performance;
|
|
self.startTime = performance.now();
|
|
self.trackUploadStart();
|
|
if (false === self.reactNativeFilePrepped) {
|
|
c8 = 1;
|
|
c9 = 1;
|
|
const obj5 = { value: self.reactNativeCompressAndExtractData(), done: false };
|
|
return obj5;
|
|
}
|
|
}
|
|
c9 = 3;
|
|
c6 = 0;
|
|
c9 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
}
|
|
} else {
|
|
if (1 === tmp9) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c9 = 3;
|
|
const obj8 = { value, done: true };
|
|
return obj8;
|
|
}
|
|
} else {
|
|
if (2 === tmp9) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c9 = 3;
|
|
const obj9 = { value, done: true };
|
|
return obj9;
|
|
} else {
|
|
closure_132_3 = value;
|
|
if (null != closure_132_3) {
|
|
closure_132_0 = true;
|
|
if (null != closure_132_3.convertedFile) {
|
|
let tmp130 = null == closure_133_0._originalMd5;
|
|
if (tmp130) {
|
|
tmp130 = null != file;
|
|
}
|
|
if (tmp130) {
|
|
closure_3 = closure_133_0;
|
|
const obj14 = status(5238);
|
|
c8 = 3;
|
|
c9 = 1;
|
|
const obj10 = { value: status(5238).fromBlob(file).catch(() => null), done: false };
|
|
return obj10;
|
|
}
|
|
}
|
|
const result = closure_133_0.applyConversionAnalytics(closure_132_3.analytics);
|
|
}
|
|
}
|
|
} else {
|
|
if (3 === tmp9) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c9 = 3;
|
|
const obj11 = { value, done: true };
|
|
return obj11;
|
|
} else {
|
|
closure_3._originalMd5 = value;
|
|
}
|
|
} else if (4 === tmp9) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 !== 2) {
|
|
closure_132_4 = value;
|
|
if (null != closure_132_4) {
|
|
if (null != closure_132_4.convertedFile) {
|
|
closure_133_0.item.file = closure_132_4.convertedFile;
|
|
closure_133_0.currentSize = closure_132_4.convertedFile.size;
|
|
}
|
|
if (null != closure_132_4.convertedMimeType) {
|
|
closure_133_0.uploadAnalytics.convertedMimeType = closure_132_4.convertedMimeType;
|
|
}
|
|
if (null != closure_132_4.hashTimeMs) {
|
|
closure_133_0.uploadAnalytics.timing.hashTimeMs = closure_132_4.hashTimeMs;
|
|
}
|
|
if (null != closure_132_4.conversionFailureReason) {
|
|
closure_133_0.uploadAnalytics.conversionFailureReason = closure_132_4.conversionFailureReason;
|
|
}
|
|
closure_133_0.uploadAnalytics.timing.compressTimeMs = closure_132_4.compressTimeMs;
|
|
}
|
|
const uploadPayload = v0(5254).default.getUploadPayload(closure_133_0);
|
|
c8 = 5;
|
|
c9 = 1;
|
|
const _default = v0(5254).default;
|
|
}
|
|
} else if (5 === tmp9) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c9 = 3;
|
|
const obj12 = { value, done: true };
|
|
return obj12;
|
|
} else {
|
|
closure_132_5 = value;
|
|
uploadTarget = v0(5255).getUploadTarget(closure_133_0.item.target);
|
|
if (null != closure_132_5.filename) {
|
|
if ("" !== closure_132_5.filename) {
|
|
const currentSize2 = closure_133_0.currentSize;
|
|
if (0 !== closure_133_0.currentSize) {
|
|
kestrelConfig = v0(5260).getKestrelConfig({ location: "CloudUpload.upload.postCompressionCheck" });
|
|
const obj6 = v0(5260);
|
|
effectiveKestrelLimit = v0(5260).getEffectiveKestrelLimit(kestrelConfig, uploadTarget.getMaxFileSize(closure_133_0.channelId));
|
|
const currentSize = closure_133_0.currentSize;
|
|
v0 = currentSize;
|
|
if (currentSize == null) {
|
|
v0 = 0;
|
|
}
|
|
if (v0 > effectiveKestrelLimit) {
|
|
closure_133_0.handleError(constants.ENTITY_TOO_LARGE);
|
|
} else {
|
|
if (tmp213.get("upload_fail_50")) {
|
|
const _Math = Math;
|
|
if (Math.random() < 0.5) {
|
|
const _setTimeout = setTimeout;
|
|
const timerId = setTimeout(() => {
|
|
v0.handleError(500);
|
|
}, 1000);
|
|
}
|
|
}
|
|
c6 = 1;
|
|
const _HermesInternal3 = HermesInternal;
|
|
logger.log("Requesting upload url for " + closure_133_0.id);
|
|
c8 = 8;
|
|
c9 = 1;
|
|
const obj15 = {
|
|
value: closure_133_0.trackTime("getUploadUrlTimeMs", tmp3(async () => {
|
|
createAttachmentURL = createAttachmentURL.getCreateAttachmentURL(c0.channelId);
|
|
const HTTP = v0(dependencyMap[8]).HTTP;
|
|
const request = { url: createAttachmentURL, body: null, headers: c0.buildOriginalMd5Headers() };
|
|
const obj4 = { files: null };
|
|
const items = [closure_2_5];
|
|
obj4.files = items;
|
|
request.body = obj4;
|
|
const merged = Object.assign(c0.createAttachmentUrlRetryOpts());
|
|
request.rejectWithError = false;
|
|
await HTTP.post(request);
|
|
return arg1;
|
|
})),
|
|
done: false
|
|
};
|
|
return obj15;
|
|
}
|
|
const obj7 = v0(5260);
|
|
} else {
|
|
closure_133_0.handleError(constants.ENTITY_EMPTY);
|
|
}
|
|
}
|
|
}
|
|
const _JSON2 = JSON;
|
|
logger.error("File does not have a filename.", JSON.stringify(closure_132_5));
|
|
closure_133_0.handleError(constants.INVALID_FILE_ASSET);
|
|
c9 = 3;
|
|
const obj16 = { value: undefined, done: true };
|
|
return obj16;
|
|
}
|
|
} else if (6 === tmp9) {
|
|
c6 = 0;
|
|
closure_132_11 = tmp213;
|
|
let code;
|
|
if (closure_132_11 != null) {
|
|
const body = closure_132_11.body;
|
|
if (body != null) {
|
|
code = body.code;
|
|
}
|
|
}
|
|
status = code;
|
|
if (code == null) {
|
|
status = closure_132_11.status;
|
|
}
|
|
closure_132_10 = status;
|
|
if (closure_132_10 !== constants.ENTITY_TOO_LARGE) {
|
|
dependencyMap = closure_132_10;
|
|
if (closure_132_10 == null) {
|
|
const _JSON = JSON;
|
|
dependencyMap = JSON.stringify(closure_132_11.body);
|
|
}
|
|
const _HermesInternal2 = HermesInternal;
|
|
logger.error("Requesting upload url failed with code " + dependencyMap + " for " + closure_133_0.id);
|
|
status(1230).captureException(closure_132_11);
|
|
let obj4 = status(1230);
|
|
}
|
|
closure_133_0.handleError(closure_132_10);
|
|
c9 = 3;
|
|
const obj17 = { value: undefined, done: true };
|
|
return obj17;
|
|
} else if (7 === tmp9) {
|
|
c6 = 0;
|
|
closure_132_12 = tmp213;
|
|
if (closure_133_0.isCancelled()) {
|
|
closure_133_0.handleComplete(closure_132_12);
|
|
} else {
|
|
const _HermesInternal = HermesInternal;
|
|
logger.info("Error: status " + closure_132_12.status + " for " + closure_133_0.id);
|
|
closure_133_0.handleError(closure_132_12);
|
|
}
|
|
} else if (8 === tmp9) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c6 = 0;
|
|
c9 = 3;
|
|
const obj19 = { value, done: true };
|
|
return obj19;
|
|
} else {
|
|
closure_132_9 = value;
|
|
closure_133_0.setResponseUrl(closure_132_9.body.attachments[0].upload_url);
|
|
closure_133_0.setUploadedFilename(closure_132_9.body.attachments[0].upload_filename);
|
|
c6 = 2;
|
|
c8 = 9;
|
|
c9 = 1;
|
|
const obj20 = {
|
|
value: closure_133_0.trackTime("uploadTimeMs", tmp3(async () => {
|
|
await c0.uploadFileToCloud();
|
|
return arg1;
|
|
})),
|
|
done: false
|
|
};
|
|
return obj20;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 !== 2) {
|
|
closure_133_0.trackUploadFinished(constants2.COMPLETED);
|
|
closure_133_0.handleComplete(closure_133_0.id);
|
|
c6 = 0;
|
|
}
|
|
c9 = 3;
|
|
const obj21 = { value, done: true };
|
|
return obj21;
|
|
}
|
|
closure_133_0.item.file = closure_132_3.convertedFile;
|
|
closure_133_0.currentSize = closure_132_3.convertedFile.size;
|
|
closure_133_0.setFilename(closure_132_3.convertedFile.name);
|
|
let tmp141 = null == file;
|
|
if (!tmp141) {
|
|
let tmp144 = null != closure_133_0.mimeType;
|
|
if (tmp144) {
|
|
tmp144 = "" !== closure_133_0.mimeType;
|
|
}
|
|
tmp141 = tmp144;
|
|
}
|
|
if (!tmp141) {
|
|
closure_133_0.mimeType = v0(5252).heicMimeType(file);
|
|
const obj13 = v0(5252);
|
|
}
|
|
}
|
|
if (closure_133_0.isCancelled()) {
|
|
obj18.handleComplete(closure_133_0.id);
|
|
} else if (obj18.allowOptimization) {
|
|
if (closure_133_0.item.platform === v0(5209).UploadPlatform.WEB) {
|
|
if (!closure_132_0) {
|
|
if (true !== closure_133_0.item.imageConversionEvaluated) {
|
|
c8 = 4;
|
|
c9 = 1;
|
|
const obj22 = { value: CloudUpload.tryConvertToWebP(closure_133_0.item.file, () => v0._aborted, closure_133_0.id), done: false };
|
|
return obj22;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (closure_133_0.isCancelled()) {
|
|
closure_133_0.handleComplete(closure_133_0.id);
|
|
} else {
|
|
closure_132_0 = false;
|
|
if (closure_133_0.allowOptimization) {
|
|
if (closure_133_0.item.platform === v0(5209).UploadPlatform.WEB) {
|
|
if (true !== closure_133_0.item.imageConversionEvaluated) {
|
|
if (null != closure_133_0.item.file) {
|
|
if (obj25.isHeicFile(closure_133_0.item.file)) {
|
|
const HeicUploadConversionExperiment = v0(5253).HeicUploadConversionExperiment;
|
|
config = HeicUploadConversionExperiment.getConfig({ location: "CloudUpload.tryConvertHeicToJpeg" });
|
|
if (config.enabled) {
|
|
file = closure_133_0.item.file;
|
|
c8 = 2;
|
|
c9 = 1;
|
|
const obj23 = { value: CloudUpload.tryConvertHeicToJpeg(closure_133_0.item.file, () => v0._aborted, closure_133_0.id, config.quality, config.maxFileSizeBytes), done: false };
|
|
return obj23;
|
|
}
|
|
}
|
|
obj25 = v0(5252);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} catch (tmp213) {
|
|
if (tmp4 === c6) {
|
|
c9 = tmp2;
|
|
throw tmp213;
|
|
} else if (tmp === tmp215) {
|
|
c8 = tmp6;
|
|
} else {
|
|
c8 = tmp5;
|
|
}
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
prototype["reactNativeCompressAndExtractData"] = function reactNativeCompressAndExtractData() {
|
|
const self = this;
|
|
return (async (arg0, value) => {
|
|
if (c4 === 2) {
|
|
c4 = 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 {
|
|
c4 = 2;
|
|
if (0 === c3) {
|
|
if (arg0 === 1) {
|
|
c4 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c4 = 3;
|
|
const obj4 = { value, done: true };
|
|
return obj4;
|
|
} else {
|
|
dependencyMap = 0;
|
|
closure_1 = tmp2;
|
|
closure_129_0 = undefined;
|
|
let uri;
|
|
let name;
|
|
closure_129_3 = undefined;
|
|
closure_129_4 = undefined;
|
|
closure_129_5 = undefined;
|
|
closure_129_6 = undefined;
|
|
if (obj17.getUploadTarget(self.item.target).shouldReactNativeCompressUploads) {
|
|
if (true === tmp194.reactNativeFilePrepped) {
|
|
self.uploadAnalytics.fileAlreadyPrepped = true;
|
|
const _HermesInternal6 = HermesInternal;
|
|
logger.log("reactNativeCompressAndExtractData() file already prepped - " + self.id);
|
|
c4 = 3;
|
|
const obj5 = { value: self, done: true };
|
|
return obj5;
|
|
} else {
|
|
const _HermesInternal5 = HermesInternal;
|
|
logger.log("Starting compression/conversion for " + self.id);
|
|
c3 = 1;
|
|
c4 = 1;
|
|
const obj6 = {
|
|
value: self.trackTime("compressTimeMs", asyncGeneratorStep(async () => {
|
|
reactNativeFileIndex = reactNativeFileIndex.reactNativeFileIndex;
|
|
if (reactNativeFileIndex == null) {
|
|
reactNativeFileIndex = 0;
|
|
}
|
|
await size(dependencyMap[25]).getAttachmentFile(reactNativeFileIndex, reactNativeFileIndex);
|
|
return arg1;
|
|
})),
|
|
done: false
|
|
};
|
|
return obj6;
|
|
}
|
|
} else {
|
|
tmp194.uploadAnalytics.compressAndExtractDisabled = true;
|
|
logger.log("reactNativeCompressAndExtractData() disabled by upload target");
|
|
c4 = 3;
|
|
const obj7 = { value: self, done: true };
|
|
return obj7;
|
|
}
|
|
obj17 = size(5255);
|
|
}
|
|
} else {
|
|
if (1 === tmp5) {
|
|
if (arg0 === 1) {
|
|
c4 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c4 = 3;
|
|
const obj8 = { value, done: true };
|
|
return obj8;
|
|
} else {
|
|
closure_129_0 = value;
|
|
if (null != closure_129_0) {
|
|
if (null != closure_129_0.file) {
|
|
uri = closure_129_0.uri;
|
|
name = closure_129_0.file.name;
|
|
if (obj14.isResolvedUpload(closure_129_0.file)) {
|
|
closure_130_0.uploadAnalytics.imageCompressionQuality = closure_129_0.file.imageCompressionQuality;
|
|
closure_130_0.uploadAnalytics.videoCompressionQuality = closure_129_0.file.videoCompressionQuality;
|
|
closure_130_0.uploadAnalytics.imageEncoderType = closure_129_0.file.imageEncoderType;
|
|
if (closure_129_0.file.isImage) {
|
|
closure_130_0.uploadAnalytics.sourceMediaWidth = closure_129_0.file.sourceWidth;
|
|
closure_130_0.uploadAnalytics.sourceMediaHeight = closure_129_0.file.sourceHeight;
|
|
closure_130_0.uploadAnalytics.uploadedImageWidth = closure_129_0.file.uploadedImageWidth;
|
|
closure_130_0.uploadAnalytics.uploadedImageHeight = closure_129_0.file.uploadedImageHeight;
|
|
}
|
|
if (undefined !== closure_129_0.file.videoMetadata) {
|
|
closure_130_0.uploadAnalytics.sourceMediaWidth = closure_129_0.file.videoMetadata.width;
|
|
closure_130_0.uploadAnalytics.sourceMediaHeight = closure_129_0.file.videoMetadata.height;
|
|
closure_130_0.uploadAnalytics.sourceMediaFormat = closure_129_0.file.videoMetadata.format;
|
|
closure_130_0.uploadAnalytics.sourceVideoBitrate = closure_129_0.file.videoMetadata.bitRate;
|
|
closure_130_0.uploadAnalytics.sourceVideoFramerate = closure_129_0.file.videoMetadata.frameRate;
|
|
closure_130_0.uploadAnalytics.videoDurationMs = closure_129_0.file.videoMetadata.durationMs;
|
|
closure_130_0.uploadAnalytics.sourceVideoProfile = closure_129_0.file.videoMetadata.sourceProfile;
|
|
closure_130_0.uploadAnalytics.sourceVideoLevel = closure_129_0.file.videoMetadata.sourceLevel;
|
|
}
|
|
if (undefined !== closure_129_0.file.encodingConfig) {
|
|
closure_130_0.uploadAnalytics.targetVideoWidth = closure_129_0.file.encodingConfig.targetWidth;
|
|
closure_130_0.uploadAnalytics.targetVideoHeight = closure_129_0.file.encodingConfig.targetHeight;
|
|
closure_130_0.uploadAnalytics.targetVideoBitrate = closure_129_0.file.encodingConfig.targetBitrate;
|
|
closure_130_0.uploadAnalytics.targetVideoCodec = "avc1";
|
|
closure_130_0.uploadAnalytics.targetVideoFramerate = closure_129_0.file.encodingConfig.frameRate;
|
|
closure_130_0.uploadAnalytics.targetVideoIsHdr = closure_129_0.file.encodingConfig.createHDR;
|
|
closure_130_0.uploadAnalytics.progressUpdateGranularity = closure_129_0.file.encodingConfig.progressUpdateGranularity;
|
|
}
|
|
closure_130_0.uploadAnalytics.psnr = closure_129_0.file.psnr;
|
|
closure_130_0.uploadAnalytics.ssim = closure_129_0.file.ssim;
|
|
closure_130_0.uploadAnalytics.origin = closure_129_0.file.origin;
|
|
closure_130_0.uploadAnalytics.psnrMeasurementLatencyMs = closure_129_0.file.psnrMeasurementLatencyMs;
|
|
closure_130_0.uploadAnalytics.ssimMeasurementLatencyMs = closure_129_0.file.ssimMeasurementLatencyMs;
|
|
}
|
|
closure_130_0.filename = name;
|
|
if (null != name) {
|
|
if (null != uri) {
|
|
if (null != closure_129_0.file.type) {
|
|
const parts = name.split(".");
|
|
const str17 = parts.pop();
|
|
let formatted;
|
|
if (str17 != null) {
|
|
formatted = str17.toLowerCase();
|
|
}
|
|
closure_129_3 = formatted;
|
|
let str3 = "image/jpeg";
|
|
if ("jpg" !== closure_129_3) {
|
|
str3 = "image/jpeg";
|
|
if ("jpeg" !== closure_129_3) {
|
|
str3 = closure_129_0.file.type;
|
|
}
|
|
}
|
|
closure_129_4 = str3;
|
|
closure_130_0.uploadAnalytics.convertedMimeType = closure_129_4;
|
|
const fileSize = closure_129_0.fileSize;
|
|
size = fileSize;
|
|
if (fileSize == null) {
|
|
c3 = 2;
|
|
c4 = 1;
|
|
const obj9 = { value: size(5210).getFileData(uri), done: false };
|
|
return obj9;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
const obj10 = { filename: name, uri, type: closure_129_0.file.type };
|
|
const _HermesInternal2 = HermesInternal;
|
|
logger.error("Insufficient file data: " + obj10 + " for " + closure_130_0.id);
|
|
const _Error2 = Error;
|
|
const obj11 = { filename: name, uri, type: closure_129_0.file.type };
|
|
const _HermesInternal3 = HermesInternal;
|
|
const error = new Error("Insufficient file data: " + obj11);
|
|
throw error;
|
|
}
|
|
}
|
|
const _HermesInternal4 = HermesInternal;
|
|
logger.error("Failed to get compressed file for " + closure_130_0.id);
|
|
c4 = 3;
|
|
const obj12 = { value: closure_130_0, done: true };
|
|
return obj12;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c4 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c4 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
} else {
|
|
size = value.size;
|
|
}
|
|
closure_129_5 = size;
|
|
closure_130_0.postCompressionSize = closure_129_5;
|
|
closure_130_0.currentSize = closure_129_5;
|
|
if (null == closure_129_5) {
|
|
const _HermesInternal = HermesInternal;
|
|
logger.error("Size missing from file data for " + closure_130_0.id);
|
|
const _Error = Error;
|
|
const error1 = new Error("Size missing from file data");
|
|
throw error1;
|
|
} else {
|
|
const _HermesInternal7 = HermesInternal;
|
|
logger.log("Completed compression and conversion. Output size=" + closure_129_5 + " bytes; filename=" + name + "; uri=" + uri + "; originalMimeType=" + closure_130_0.mimeType + "; mimeType=" + closure_129_4 + " for " + closure_130_0.id);
|
|
const obj13 = { uri, filename: name, mimeType: closure_129_4 };
|
|
closure_129_6 = obj13;
|
|
const obj15 = {};
|
|
const merged = Object.assign(closure_130_0.item);
|
|
const merged1 = Object.assign(closure_129_6);
|
|
closure_130_0.item = obj15;
|
|
closure_130_0.reactNativeFilePrepped = true;
|
|
c4 = 3;
|
|
const obj16 = { value: closure_130_0, done: true };
|
|
return obj16;
|
|
}
|
|
}
|
|
} catch (tmp113) {
|
|
c4 = tmp;
|
|
throw tmp113;
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
CloudUpload["tryConvertToWebP"] = function tryConvertToWebP(file, arg1, id) {
|
|
closure_0 = file;
|
|
closure_1 = arg1;
|
|
closure_2 = id;
|
|
return (async (arg0, value) => {
|
|
if (c9 === 2) {
|
|
c9 = 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) {
|
|
const obj2 = { value, done: true };
|
|
return obj2;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
c9 = 2;
|
|
if (0 === c8) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c9 = 3;
|
|
const obj3 = { value, done: true };
|
|
return obj3;
|
|
} else {
|
|
closure_5 = tmp3;
|
|
closure_4 = tmp5;
|
|
closure_132_0 = undefined;
|
|
closure_132_1 = undefined;
|
|
closure_132_2 = undefined;
|
|
closure_132_3 = undefined;
|
|
closure_132_4 = undefined;
|
|
closure_132_5 = undefined;
|
|
closure_132_6 = undefined;
|
|
const imageAttachmentMezzanineV2Config = unknown_error(hashTimeMs[27]).getImageAttachmentMezzanineV2Config({ location: "CloudUpload.maybeConvertToWebP" });
|
|
if (imageAttachmentMezzanineV2Config.enabled) {
|
|
if (null == size) {
|
|
const _HermesInternal6 = HermesInternal;
|
|
logger.warn("webp conversion skipped for " + closure_2 + ": no file");
|
|
c9 = 3;
|
|
return { value: null, done: true };
|
|
} else {
|
|
if (null != imageAttachmentMezzanineV2Config.maxFileSizeBytes) {
|
|
if (size.size > imageAttachmentMezzanineV2Config.maxFileSizeBytes) {
|
|
const _HermesInternal5 = HermesInternal;
|
|
logger.warn("webp conversion skipped for " + closure_2 + ": too big");
|
|
c9 = 3;
|
|
return { value: null, done: true };
|
|
}
|
|
}
|
|
if (compressTimeMs()) {
|
|
c9 = 3;
|
|
return { value: null, done: true };
|
|
} else {
|
|
const _performance2 = performance;
|
|
closure_132_2 = performance.now();
|
|
closure_132_3 = { compressTimeMs: 0 };
|
|
c7 = 1;
|
|
c8 = 2;
|
|
c9 = 1;
|
|
const obj4 = { value: tmp97(tmp98[29])(tmp98[28], tmp98.paths), done: false };
|
|
return obj4;
|
|
}
|
|
}
|
|
} else {
|
|
const _HermesInternal4 = HermesInternal;
|
|
logger.warn("webp conversion skipped for " + closure_2 + ": not enabled");
|
|
c9 = 3;
|
|
return { value: null, done: true };
|
|
}
|
|
const obj9 = unknown_error(hashTimeMs[27]);
|
|
tmp97 = unknown_error;
|
|
}
|
|
} else {
|
|
if (1 === tmp8) {
|
|
c7 = 0;
|
|
closure_132_7 = closure_6;
|
|
const _HermesInternal3 = HermesInternal;
|
|
logger.warn("webp conversion failed for " + closure_133_2 + ":", closure_132_7);
|
|
let UNKNOWN_ERROR;
|
|
if (closure_132_1 != null) {
|
|
UNKNOWN_ERROR = closure_132_1.UNKNOWN_ERROR;
|
|
}
|
|
unknown_error = UNKNOWN_ERROR;
|
|
if (UNKNOWN_ERROR == null) {
|
|
unknown_error = "unknown_error";
|
|
}
|
|
closure_132_3.conversionFailureReason = unknown_error;
|
|
} else if (2 === tmp8) {
|
|
if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c7 = 0;
|
|
c9 = 3;
|
|
const obj5 = { value, done: true };
|
|
return obj5;
|
|
} else {
|
|
closure_132_4 = value;
|
|
closure_132_1 = closure_132_4.ConversionFailureReason;
|
|
c8 = 3;
|
|
c9 = 1;
|
|
const obj6 = { value: closure_132_4.maybeConvertToWebP(closure_133_0), done: false };
|
|
return obj6;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c9 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c7 = 0;
|
|
c9 = 3;
|
|
const obj7 = { value, done: true };
|
|
return obj7;
|
|
} else {
|
|
closure_132_0 = value;
|
|
if (closure_133_1()) {
|
|
c7 = 0;
|
|
c9 = 3;
|
|
return { value: null, done: true };
|
|
} else {
|
|
if (closure_132_0.success) {
|
|
if (null != closure_132_0.convertedBlob) {
|
|
const compressionRatio = closure_132_0.compressionRatio;
|
|
({ sizeBefore, sizeAfter } = closure_132_0);
|
|
const _HermesInternal2 = HermesInternal;
|
|
logger.log("webp conversion worked for " + closure_133_2 + ": " + sizeBefore + " -> " + sizeAfter + " bytes (" + compressionRatio.toFixed(2) + "x)");
|
|
const _File = File;
|
|
const items = [closure_132_0.convertedBlob];
|
|
const obj = { type: "image/webp", lastModified: closure_133_0.lastModified };
|
|
file = new File(items, closure_133_0.name, obj);
|
|
closure_132_3.convertedFile = file;
|
|
closure_132_3.convertedMimeType = "image/webp";
|
|
hashTimeMs = closure_132_0.hashTimeMs;
|
|
if (hashTimeMs == null) {
|
|
hashTimeMs = undefined;
|
|
}
|
|
closure_132_3.hashTimeMs = hashTimeMs;
|
|
}
|
|
c7 = 0;
|
|
}
|
|
const reason = closure_132_0.reason;
|
|
UNKNOWN_ERROR = reason;
|
|
if (reason == null) {
|
|
UNKNOWN_ERROR = closure_132_1.UNKNOWN_ERROR;
|
|
}
|
|
closure_132_5 = UNKNOWN_ERROR;
|
|
const _HermesInternal = HermesInternal;
|
|
logger.log("webp conversion skipped for " + closure_133_2 + ": " + closure_132_5);
|
|
closure_132_3.conversionFailureReason = closure_132_5;
|
|
}
|
|
}
|
|
const _Math = Math;
|
|
const _performance = performance;
|
|
closure_132_6 = Math.round(performance.now() - closure_132_2);
|
|
compressTimeMs = undefined;
|
|
if (closure_132_0 != null) {
|
|
compressTimeMs = closure_132_0.compressTimeMs;
|
|
}
|
|
if (compressTimeMs == null) {
|
|
compressTimeMs = closure_132_6;
|
|
}
|
|
closure_132_3.compressTimeMs = compressTimeMs;
|
|
c9 = 3;
|
|
const obj8 = { value: closure_132_3, done: true };
|
|
return obj8;
|
|
}
|
|
} catch (tmp85) {
|
|
closure_6 = tmp85;
|
|
if (tmp4 === c7) {
|
|
c9 = tmp2;
|
|
throw tmp85;
|
|
} else {
|
|
c8 = tmp;
|
|
}
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
CloudUpload["tryConvertHeicToJpeg"] = function tryConvertHeicToJpeg(file, arg1, id, quality, maxFileSizeBytes) {
|
|
closure_0 = file;
|
|
closure_1 = arg1;
|
|
closure_2 = id;
|
|
closure_3 = quality;
|
|
closure_4 = maxFileSizeBytes;
|
|
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;
|
|
let convertFileToJpeg;
|
|
closure_128_1 = undefined;
|
|
if (null != closure_0) {
|
|
if (!tmp3()) {
|
|
c3 = 1;
|
|
c4 = 2;
|
|
c5 = 1;
|
|
const obj4 = { value: closure_0(tmp30[29])(tmp30[30], tmp30.paths), done: false };
|
|
return obj4;
|
|
}
|
|
}
|
|
c5 = 3;
|
|
return { value: null, done: true };
|
|
}
|
|
} else if (1 === tmp7) {
|
|
c3 = 0;
|
|
closure_128_2 = tmp30;
|
|
const _HermesInternal = HermesInternal;
|
|
logger.warn("heic conversion threw for " + closure_129_2 + ":", closure_128_2);
|
|
const obj5 = { convertedFile: null, analytics: { convertedMimeType: null, conversionFailureReason: "unknown_error", compressTimeMs: 0 } };
|
|
c5 = 3;
|
|
const obj6 = { value: obj5, done: true };
|
|
return obj6;
|
|
} else if (2 === tmp7) {
|
|
if (arg0 === 1) {
|
|
c5 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 0;
|
|
c5 = 3;
|
|
const obj7 = { value, done: true };
|
|
return obj7;
|
|
} else {
|
|
convertFileToJpeg = value.convertFileToJpeg;
|
|
c4 = 3;
|
|
c5 = 1;
|
|
const obj8 = { value: convertFileToJpeg(closure_129_0, "heic", closure_129_3, closure_129_4), done: false };
|
|
return obj8;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c5 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 0;
|
|
c5 = 3;
|
|
const obj9 = { value, done: true };
|
|
return obj9;
|
|
} else {
|
|
closure_128_1 = value;
|
|
let tmp11 = null;
|
|
if (!closure_129_1()) {
|
|
tmp11 = closure_128_1;
|
|
}
|
|
c3 = 0;
|
|
c5 = 3;
|
|
const obj = { value: tmp11, done: true };
|
|
return obj;
|
|
}
|
|
} catch (tmp30) {
|
|
if (tmp4 === c3) {
|
|
c5 = tmp2;
|
|
throw tmp30;
|
|
} else {
|
|
c4 = tmp;
|
|
}
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
prototype["handleError"] = function handleError(error) {
|
|
const self = this;
|
|
this.setStatus(obj.ERROR);
|
|
this.error = error;
|
|
this.trackUploadFinished(obj.ERROR);
|
|
try {
|
|
self.emit("error", error);
|
|
self.removeAllListeners();
|
|
} catch (err) {
|
|
}
|
|
};
|
|
prototype["handleComplete"] = function handleComplete(arg0) {
|
|
this.setStatus(obj.COMPLETED);
|
|
logger.log("Upload complete for " + this.id);
|
|
this.emit("complete", arg0);
|
|
this.removeAllListeners();
|
|
};
|
|
prototype["_cancel"] = function _cancel(COMPLETED, arg1) {
|
|
const self = this;
|
|
logger.log(arg1);
|
|
this._aborted = true;
|
|
const _abortController = this._abortController;
|
|
_abortController.abort();
|
|
this.trackUploadFinished(COMPLETED);
|
|
if (this.status === obj.COMPLETED) {
|
|
self.delete();
|
|
}
|
|
self.setStatus(COMPLETED);
|
|
self.emit("complete");
|
|
self.removeAllListeners();
|
|
};
|
|
prototype["cancel"] = function cancel() {
|
|
this._cancel(obj.CANCELED, "Cancelled called for " + this.id);
|
|
};
|
|
prototype["removeFromMsgDraft"] = function removeFromMsgDraft() {
|
|
this._cancel(obj.REMOVED_FROM_MSG_DRAFT, "Removed from draft for " + this.id);
|
|
};
|
|
prototype["isCancelled"] = function isCancelled() {
|
|
return this.status === obj.CANCELED || this.status === tmp.REMOVED_FROM_MSG_DRAFT;
|
|
};
|
|
prototype["applyConversionAnalytics"] = function applyConversionAnalytics(analytics) {
|
|
const self = this;
|
|
({ convertedMimeType, conversionFailureReason, imageCompressionQuality, imageEncoderType } = analytics);
|
|
if (null != convertedMimeType) {
|
|
self.uploadAnalytics.convertedMimeType = convertedMimeType;
|
|
}
|
|
if (null != conversionFailureReason) {
|
|
self.uploadAnalytics.conversionFailureReason = conversionFailureReason;
|
|
}
|
|
self.uploadAnalytics.timing.compressTimeMs = analytics.compressTimeMs;
|
|
if (null != imageCompressionQuality) {
|
|
self.uploadAnalytics.imageCompressionQuality = imageCompressionQuality;
|
|
}
|
|
if (null != imageEncoderType) {
|
|
self.uploadAnalytics.imageEncoderType = imageEncoderType;
|
|
}
|
|
};
|
|
prototype["applyItemConversionAnalytics"] = function applyItemConversionAnalytics() {
|
|
const self = this;
|
|
const item = this.item;
|
|
let tmp = item.platform === Upload2.UploadPlatform.WEB;
|
|
if (tmp) {
|
|
tmp = null != item.imageConversionAnalytics;
|
|
}
|
|
if (tmp) {
|
|
const result = self.applyConversionAnalytics(item.imageConversionAnalytics);
|
|
}
|
|
};
|
|
prototype["delete"] = function delete() {
|
|
const self = this;
|
|
return (async (arg0, value) => {
|
|
if (v3 === 2) {
|
|
v3 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp5 === 3) {
|
|
if (arg0 === 1) {
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
const obj3 = { value, done: true };
|
|
return obj3;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
v3 = 2;
|
|
if (0 === c1) {
|
|
if (arg0 === 1) {
|
|
v3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
v3 = 3;
|
|
const obj4 = { value, done: true };
|
|
return obj4;
|
|
} else if (null != self.uploadedFilename) {
|
|
const uploadTarget = v3(5255).getUploadTarget(tmp17.item.target);
|
|
dependencyMap = 1;
|
|
const deleteUploadURL = uploadTarget.getDeleteUploadURL(tmp17.uploadedFilename);
|
|
const HTTP = v3(1270).HTTP;
|
|
c1 = 2;
|
|
v3 = 1;
|
|
const obj5 = { value: HTTP.del(deleteUploadURL), done: false };
|
|
return obj5;
|
|
}
|
|
} else {
|
|
if (1 === tmp6) {
|
|
dependencyMap = 0;
|
|
} else if (arg0 === 1) {
|
|
v3 = 3;
|
|
throw value;
|
|
} else if (arg0 !== 2) {
|
|
dependencyMap = 0;
|
|
}
|
|
dependencyMap = 0;
|
|
v3 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
}
|
|
v3 = 3;
|
|
} catch (tmp10) {
|
|
if (tmp3 === dependencyMap) {
|
|
v3 = tmp2;
|
|
throw tmp10;
|
|
} else {
|
|
c1 = tmp;
|
|
}
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
prototype["setResponseUrl"] = function setResponseUrl(upload_url) {
|
|
this.responseUrl = upload_url;
|
|
this.responseUrlSetAt = Date.now();
|
|
};
|
|
CloudUpload["isResponseUrlStale"] = function isResponseUrlStale(responseUrlSetAt) {
|
|
if (null == responseUrlSetAt) {
|
|
return true;
|
|
} else {
|
|
const _Date = Date;
|
|
const result = 12 * DurationsDefault.Millis.HOUR;
|
|
return Date.now() - responseUrlSetAt > result;
|
|
}
|
|
};
|
|
prototype["ensureFreshResponseUrl"] = function ensureFreshResponseUrl() {
|
|
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_1 = tmp3;
|
|
_self = tmp7;
|
|
closure_128_0 = undefined;
|
|
closure_128_1 = undefined;
|
|
let createAttachmentURL;
|
|
if (responseUrlStale.isResponseUrlStale(self.responseUrlSetAt)) {
|
|
c4 = 1;
|
|
c5 = 1;
|
|
const obj4 = { value: _self(tmp40[20]).default.getUploadPayload(self), done: false };
|
|
return obj4;
|
|
} else {
|
|
c5 = 3;
|
|
}
|
|
}
|
|
} else if (1 === tmp7) {
|
|
if (arg0 === 1) {
|
|
c5 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c5 = 3;
|
|
const obj5 = { value, done: true };
|
|
return obj5;
|
|
} else {
|
|
closure_128_1 = value;
|
|
const uploadTarget = _self(tmp40[21]).getUploadTarget(closure_129_0.item.target);
|
|
createAttachmentURL = uploadTarget.getCreateAttachmentURL(closure_129_0.channelId);
|
|
c3 = 1;
|
|
const HTTP = _self(tmp40[8]).HTTP;
|
|
const request = { url: createAttachmentURL, body: null, headers: null };
|
|
const obj6 = { files: null };
|
|
const items = [closure_128_1];
|
|
obj6.files = items;
|
|
request.body = obj6;
|
|
request.headers = closure_129_0.buildOriginalMd5Headers();
|
|
const merged = Object.assign(closure_129_0.createAttachmentUrlRetryOpts());
|
|
request.rejectWithError = true;
|
|
c4 = 3;
|
|
c5 = 1;
|
|
const obj7 = { value: HTTP.post(request), done: false };
|
|
return obj7;
|
|
}
|
|
} else if (2 === tmp7) {
|
|
c3 = 0;
|
|
closure_128_3 = tmp40;
|
|
if (closure_128_3 instanceof _self(tmp40[8]).HTTPResponseError) {
|
|
const obj8 = { response: closure_128_3 };
|
|
throw new ResumableUploadError("upload", obj8);
|
|
} else {
|
|
throw closure_128_3;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c5 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 0;
|
|
c5 = 3;
|
|
const obj10 = { value, done: true };
|
|
return obj10;
|
|
} else {
|
|
closure_128_0 = value;
|
|
c3 = 0;
|
|
const body = closure_128_0.body;
|
|
let first;
|
|
if (body != null) {
|
|
const attachments = body.attachments;
|
|
if (attachments != null) {
|
|
first = attachments[0];
|
|
}
|
|
}
|
|
if (null != first) {
|
|
closure_129_0.setResponseUrl(closure_128_0.body.attachments[0].upload_url);
|
|
closure_129_0.setUploadedFilename(closure_128_0.body.attachments[0].upload_filename);
|
|
}
|
|
}
|
|
const obj = { response: closure_128_0 };
|
|
throw new ResumableUploadError("upload", obj);
|
|
} catch (tmp40) {
|
|
if (tmp4 === c3) {
|
|
c5 = tmp2;
|
|
throw tmp40;
|
|
} else {
|
|
c4 = tmp;
|
|
}
|
|
}
|
|
}
|
|
})();
|
|
};
|
|
prototype["setStatus"] = function setStatus(status) {
|
|
this.status = status;
|
|
};
|
|
prototype["setFilename"] = function setFilename(name) {
|
|
this.filename = name;
|
|
};
|
|
prototype["setUploadedFilename"] = function setUploadedFilename(upload_filename) {
|
|
this.uploadedFilename = upload_filename;
|
|
};
|
|
prototype["trackUploadStart"] = function trackUploadStart() {
|
|
const obj3 = { file_size: this.currentSize, mime_type: null, video_upload_quality: null, data_saving_mode: null, low_quality_image_mode: null, channel_id: null, connection_type: null, effective_connection_speed: null, service_provider: null };
|
|
let str = this.mimeType;
|
|
if (str == null) {
|
|
str = "unknown";
|
|
}
|
|
obj3.mime_type = str;
|
|
({ videoUploadQuality: obj2.video_upload_quality, dataSavingMode: obj2.data_saving_mode, dataSavingMode: obj2.low_quality_image_mode } = UnsyncedUserSettingsStore);
|
|
obj3.channel_id = this.channelId;
|
|
obj3.connection_type = NetworkStore.getType();
|
|
obj3.effective_connection_speed = NetworkStore.getEffectiveConnectionSpeed();
|
|
obj3.service_provider = NetworkStore.getServiceProvider();
|
|
AnalyticsUtilsDefault.track(constants.ATTACHMENT_UPLOAD_STARTED, obj3);
|
|
};
|
|
prototype["trackUploadFinished"] = function trackUploadFinished(COMPLETED) {
|
|
const self = this;
|
|
let num = -1;
|
|
if (null != this.startTime) {
|
|
const _performance = performance;
|
|
num = performance.now() - self.startTime;
|
|
}
|
|
const obj3 = { duration_ms: num, file_size: self.currentSize, pre_compression_file_size: self.preCompressionSize, final_state: COMPLETED, mime_type: null, num_upload_attempts: null, error_code: null, video_upload_quality: null, data_saving_mode: null, low_quality_image_mode: null, compress_time_ms: null, get_upload_url_time_ms: null, upload_time_ms: null, converted_mime_type: null, image_compression_quality: null, video_compression_quality: null, image_encoder_type: null, was_converted: null, was_compressed: null, source_media_width: null, source_media_height: null, source_media_format: null, uploaded_image_width: null, uploaded_image_height: null, source_video_bitrate: null, video_duration_ms: null, source_video_profile_name: null, source_video_profile_level: null, target_video_width: null, target_video_height: null, target_video_bitrate: null, target_video_codec: null, target_video_framerate: null, target_video_is_hdr: null, hevc_is_supported: null, progress_update_granularity: null, source_video_framerate: null, channel_id: null, hash_time_ms: null, psnr: null, ssim: null, origin: null, psnr_measurement_latency_ms: null, ssim_measurement_latency_ms: null, upload_resumption_count: null, upload_resumption_reason: null, upload_resumption_position: null, upload_resumption_check_time_ms: null, conversion_failure_reason: null, upload_http_client: null, connection_type: null, effective_connection_speed: null, service_provider: null };
|
|
let str = self.mimeType;
|
|
if (str == null) {
|
|
str = "unknown";
|
|
}
|
|
obj3.mime_type = str;
|
|
let num2 = self.uploadAnalytics.numUploadAttempts;
|
|
if (num2 == null) {
|
|
num2 = 1;
|
|
}
|
|
obj3.num_upload_attempts = num2;
|
|
obj3.error_code = self.error;
|
|
({ videoUploadQuality: obj2.video_upload_quality, dataSavingMode: obj2.data_saving_mode, dataSavingMode: obj2.low_quality_image_mode } = UnsyncedUserSettingsStore);
|
|
obj3.compress_time_ms = self.uploadAnalytics.timing.compressTimeMs;
|
|
obj3.get_upload_url_time_ms = self.uploadAnalytics.timing.getUploadUrlTimeMs;
|
|
obj3.upload_time_ms = self.uploadAnalytics.timing.uploadTimeMs;
|
|
let str2 = self.uploadAnalytics.convertedMimeType;
|
|
if (str2 == null) {
|
|
str2 = "unknown";
|
|
}
|
|
obj3.converted_mime_type = str2;
|
|
let num3 = self.uploadAnalytics.imageCompressionQuality;
|
|
if (num3 == null) {
|
|
num3 = 0;
|
|
}
|
|
obj3.image_compression_quality = num3;
|
|
let str3 = self.uploadAnalytics.videoCompressionQuality;
|
|
if (str3 == null) {
|
|
str3 = "unknown";
|
|
}
|
|
obj3.video_compression_quality = str3;
|
|
let str4 = self.uploadAnalytics.imageEncoderType;
|
|
if (str4 == null) {
|
|
str4 = "unknown";
|
|
}
|
|
obj3.image_encoder_type = str4;
|
|
obj3.was_converted = null != self.uploadAnalytics.convertedMimeType && self.mimeType !== self.uploadAnalytics.convertedMimeType;
|
|
obj3.was_compressed = self.currentSize < self.preCompressionSize;
|
|
obj3.source_media_width = self.uploadAnalytics.sourceMediaWidth;
|
|
obj3.source_media_height = self.uploadAnalytics.sourceMediaHeight;
|
|
obj3.source_media_format = self.uploadAnalytics.sourceMediaFormat;
|
|
obj3.uploaded_image_width = self.uploadAnalytics.uploadedImageWidth;
|
|
obj3.uploaded_image_height = self.uploadAnalytics.uploadedImageHeight;
|
|
obj3.source_video_bitrate = self.uploadAnalytics.sourceVideoBitrate;
|
|
obj3.video_duration_ms = self.uploadAnalytics.videoDurationMs;
|
|
obj3.source_video_profile_name = self.uploadAnalytics.sourceVideoProfile;
|
|
obj3.source_video_profile_level = self.uploadAnalytics.sourceVideoLevel;
|
|
obj3.target_video_width = self.uploadAnalytics.targetVideoWidth;
|
|
obj3.target_video_height = self.uploadAnalytics.targetVideoHeight;
|
|
obj3.target_video_bitrate = self.uploadAnalytics.targetVideoBitrate;
|
|
obj3.target_video_codec = self.uploadAnalytics.targetVideoCodec;
|
|
obj3.target_video_framerate = self.uploadAnalytics.targetVideoFramerate;
|
|
obj3.target_video_is_hdr = self.uploadAnalytics.targetVideoIsHdr;
|
|
obj3.hevc_is_supported = self.uploadAnalytics.hevcIsSupported;
|
|
obj3.progress_update_granularity = self.uploadAnalytics.progressUpdateGranularity;
|
|
obj3.source_video_framerate = self.uploadAnalytics.sourceVideoFramerate;
|
|
obj3.channel_id = self.channelId;
|
|
obj3.hash_time_ms = self.uploadAnalytics.timing.hashTimeMs;
|
|
obj3.psnr = self.uploadAnalytics.psnr;
|
|
obj3.ssim = self.uploadAnalytics.ssim;
|
|
obj3.origin = self.uploadAnalytics.origin;
|
|
obj3.psnr_measurement_latency_ms = self.uploadAnalytics.psnrMeasurementLatencyMs;
|
|
obj3.ssim_measurement_latency_ms = self.uploadAnalytics.ssimMeasurementLatencyMs;
|
|
obj3.upload_resumption_count = self.uploadAnalytics.uploadResumptionCount;
|
|
obj3.upload_resumption_reason = self.uploadAnalytics.uploadResumptionReason;
|
|
obj3.upload_resumption_position = self.uploadAnalytics.uploadResumptionPosition;
|
|
obj3.upload_resumption_check_time_ms = self.uploadAnalytics.timing.resumptionCheckTimeMs;
|
|
obj3.conversion_failure_reason = self.uploadAnalytics.conversionFailureReason;
|
|
let str5 = "httputils";
|
|
if (self._libdiscoreEnabled) {
|
|
str5 = "libdiscore";
|
|
}
|
|
obj3.upload_http_client = str5;
|
|
obj3.connection_type = NetworkStore.getType();
|
|
obj3.effective_connection_speed = NetworkStore.getEffectiveConnectionSpeed();
|
|
obj3.service_provider = NetworkStore.getServiceProvider();
|
|
AnalyticsUtilsDefault.track(constants.ATTACHMENT_UPLOAD_FINISHED, obj3);
|
|
};
|
|
let size = fn(2);
|
|
let result = size.fileFinishedImporting("lib/uploader/CloudUpload.tsx");
|
|
|
|
export { ResumableUploadError };
|
|
export { CloudUploadStatus };
|
|
export { CloudUpload };
|