decord/source/modules/links/native/handleURL.tsx

327 lines
11 KiB
TypeScript
Raw Normal View History

2026-07-25 08:10:48 +00:00
// Module ID: 3823
2026-07-27 11:26:19 +00:00
// Function ID: 31760
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-27 11:26:19 +00:00
// Dependencies: [5, 27, 3824, 653, 3, 3825, 3827, 3828, 3829, 3830, 3831, 1212, 4097, 477, 4099, 1445, 4112, 12921, 2]
2026-07-20 16:05:17 +00:00
// Exports: default
2026-07-25 08:10:48 +00:00
// Module 3823 (_createForOfIteratorHelperLoose)
import module_3825 from "module_3825";
2026-07-23 10:11:24 +00:00
import { Linking } from "get ActivityIndicator";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import { WebBrowserType } from "ME";
import importDefaultResult from "ME";
const require = arg1;
function _createForOfIteratorHelperLoose(iterable) {
let closure_0 = iterable;
iterable = "undefined" !== typeof Symbol;
if (iterable) {
2026-07-20 16:05:17 +00:00
const _Symbol = Symbol;
2026-07-23 10:11:24 +00:00
iterable = iterable[Symbol.iterator];
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if (!iterable) {
iterable = iterable[Symbol.iterator];
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if (iterable) {
const iter = iterable.call(iterable);
2026-07-20 16:05:17 +00:00
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
2026-07-23 10:11:24 +00:00
let tmp = iterable;
if (!Array.isArray(iterable)) {
2026-07-20 16:05:17 +00:00
let tmp2;
2026-07-23 10:11:24 +00:00
if (iterable) {
if ("string" === typeof iterable) {
tmp2 = _arrayLikeToArray(iterable, undefined);
2026-07-20 16:05:17 +00:00
} else {
const toString = {}.toString;
2026-07-23 10:11:24 +00:00
const substr = toString.call(iterable).slice(8, -1);
2026-07-20 16:05:17 +00:00
let name = substr;
if (tmp3) {
2026-07-23 10:11:24 +00:00
name = iterable.constructor.name;
2026-07-20 16:05:17 +00:00
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
2026-07-23 10:11:24 +00:00
let arr = _arrayLikeToArray(iterable, undefined);
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
2026-07-20 16:05:17 +00:00
}
}
tmp2 = arr;
}
const _Array2 = Array;
2026-07-23 10:11:24 +00:00
arr = Array.from(iterable);
const callResult = toString.call(iterable);
tmp3 = "Object" === substr && iterable.constructor;
2026-07-20 16:05:17 +00:00
}
}
tmp = tmp2;
if (!tmp2) {
const _TypeError = TypeError;
const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
throw typeError;
}
}
if (tmp) {
2026-07-23 10:11:24 +00:00
closure_0 = tmp;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
let c1 = 0;
2026-07-20 16:05:17 +00:00
return () => {
2026-07-23 10:11:24 +00:00
if (closure_1 >= length.length) {
2026-07-20 16:05:17 +00:00
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
2026-07-23 10:11:24 +00:00
obj.value = length[+closure_1];
2026-07-20 16:05:17 +00:00
}
return obj;
};
}
}
function _arrayLikeToArray(arg0, arg1) {
let length;
if (tmp) {
length = arg0.length;
}
const ArrayResult = Array(length);
for (let num = 0; num < length; num = num + 1) {
ArrayResult[num] = arg0[num];
}
return ArrayResult;
}
function sanitizeURLPart(str) {
let replaced = str;
if (null != str) {
replaced = str.replace(/[^\x00-\x7F]+/g, (arg0) => encodeURIComponent(arg0));
}
return replaced;
}
async function _handleURL(arg0, arg1, arg2) {
2026-07-23 10:11:24 +00:00
let iter = (function*(arg0, arg1) {
2026-07-20 16:05:17 +00:00
let obj = arg2;
let tmp = arg0;
2026-07-23 10:11:24 +00:00
let closure_0 = arg0;
let closure_1 = arg1;
2026-07-20 16:05:17 +00:00
if (obj === undefined) {
obj = {};
}
let flag = obj.allowExternal;
if (flag === undefined) {
flag = true;
}
let flag2 = obj.forceExternalBrowser;
if (flag2 === undefined) {
flag2 = false;
}
function openInBrowser() {
2026-07-23 10:11:24 +00:00
if (null != obj.sanitizeUrl(closure_0)) {
let SAFARI = outer3_6.SAFARI;
if (closure_0.startsWith("https:")) {
const browserManagerSelectedBrowser = outer3_0(outer3_2[12]).getBrowserManagerSelectedBrowser();
2026-07-20 16:05:17 +00:00
let tmp11 = browserManagerSelectedBrowser;
2026-07-23 10:11:24 +00:00
if (null != closure_1) {
tmp11 = closure_1;
2026-07-20 16:05:17 +00:00
}
let tmp12 = flag2;
if (flag2) {
2026-07-23 10:11:24 +00:00
tmp12 = tmp11 === outer3_6.IN_APP;
2026-07-20 16:05:17 +00:00
}
SAFARI = tmp11;
if (tmp12) {
2026-07-23 10:11:24 +00:00
if (browserManagerSelectedBrowser !== outer3_6.IN_APP) {
2026-07-20 16:05:17 +00:00
SAFARI = browserManagerSelectedBrowser;
} else {
2026-07-23 10:11:24 +00:00
outer3_0(outer3_2[13]).isIOS() ? outer3_6.SAFARI : outer3_6.CHROME;
const obj4 = outer3_0(outer3_2[13]);
2026-07-20 16:05:17 +00:00
}
}
2026-07-23 10:11:24 +00:00
const obj3 = outer3_0(outer3_2[12]);
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if (outer3_6.IN_APP === SAFARI) {
const result = outer3_0(outer3_2[12]).browserManagerOpenUrl(closure_0, outer3_6.IN_APP);
2026-07-20 16:05:17 +00:00
result.catch(() => {
2026-07-23 10:11:24 +00:00
const intl = outer4_0(outer4_2[11]).intl;
outer4_0(outer4_2[10]).presentFailedToast("" + intl.string(outer4_0(outer4_2[11]).t.HryVrx) + " " + outer1_0);
2026-07-20 16:05:17 +00:00
});
2026-07-23 10:11:24 +00:00
const obj7 = outer3_0(outer3_2[12]);
let isIOSResult = outer3_0(outer3_2[13]).isIOS();
2026-07-20 16:05:17 +00:00
if (isIOSResult) {
2026-07-23 10:11:24 +00:00
isIOSResult = outer3_5.isOpen();
2026-07-20 16:05:17 +00:00
}
if (isIOSResult) {
2026-07-23 10:11:24 +00:00
outer3_1(outer3_2[14]).hideAllActionSheets();
const obj9 = outer3_1(outer3_2[14]);
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
const obj8 = outer3_0(outer3_2[13]);
} else if (outer3_6.CHROME === SAFARI) {
const result1 = outer3_0(outer3_2[12]).browserManagerOpenUrl(closure_0, outer3_6.CHROME);
2026-07-20 16:05:17 +00:00
result1.catch(() => {
2026-07-23 10:11:24 +00:00
const intl = outer4_0(outer4_2[11]).intl;
outer4_0(outer4_2[10]).presentFailedToast("" + intl.string(outer4_0(outer4_2[11]).t.HryVrx) + " " + outer1_0);
2026-07-20 16:05:17 +00:00
});
2026-07-23 10:11:24 +00:00
const obj6 = outer3_0(outer3_2[12]);
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
const SAFARI2 = outer3_6.SAFARI;
const result2 = outer3_0(outer3_2[12]).browserManagerOpenUrl(closure_0, outer3_6.SAFARI);
const obj5 = outer3_0(outer3_2[12]);
2026-07-20 16:05:17 +00:00
}
} else {
2026-07-23 10:11:24 +00:00
let intl = outer3_0(outer3_2[11]).intl;
outer3_0(outer3_2[10]).presentFailedToast(intl.string(outer3_0(outer3_2[11]).t.XiqzAp));
const obj2 = outer3_0(outer3_2[10]);
2026-07-20 16:05:17 +00:00
}
}
yield undefined;
if (flag2) {
openInBrowser();
} else {
if (!obj2.test(tmp)) {
const text = `https://${tmp}`;
tmp = text;
2026-07-23 10:11:24 +00:00
closure_0 = text;
2026-07-20 16:05:17 +00:00
}
if (obj3.test(tmp)) {
2026-07-23 10:11:24 +00:00
const parsed = outer2_1(outer2_2[15]).parse(tmp);
parsed.pathname = outer2_10(parsed.pathname);
parsed.search = outer2_10(parsed.search);
parsed.hash = outer2_10(parsed.hash);
let obj4 = outer2_1(outer2_2[15]);
const formatResult = outer2_1(outer2_2[15]).format(parsed);
2026-07-20 16:05:17 +00:00
tmp = formatResult;
2026-07-23 10:11:24 +00:00
closure_0 = formatResult;
let obj5 = outer2_1(outer2_2[15]);
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
obj = { payload: outer2_1(outer2_2[16])(tmp).payload, safe: true };
if (!outer2_1(outer2_2[17])(obj)) {
2026-07-20 16:05:17 +00:00
if (flag) {
2026-07-23 10:11:24 +00:00
if (!yield (function tryHandleUniversalLink(arg0) {
let closure_0 = arg0;
return new Promise((closure_0) => {
const result = outer4_1(outer4_2[5]).tryOpenUrlAsUniversalLink(closure_0);
const obj = outer4_1(outer4_2[5]);
2026-07-20 16:05:17 +00:00
result.then(() => {
2026-07-23 10:11:24 +00:00
outer5_7.info("Universal link opened successfully.");
callback(true);
2026-07-20 16:05:17 +00:00
}).catch(() => {
2026-07-23 10:11:24 +00:00
outer5_7.info("URL is not a handled universal link.");
callback(false);
2026-07-20 16:05:17 +00:00
});
});
2026-07-23 10:11:24 +00:00
})(tmp)) {
if (!yield (function tryHandleCustomScheme(arg0) {
2026-07-20 16:05:17 +00:00
let iter2;
let protocol;
let regex;
2026-07-23 10:11:24 +00:00
let closure_0 = arg0;
const tmp = outer3_8(outer3_0(outer3_2[6]).LINKING_SCHEMAS_VALUES);
2026-07-20 16:05:17 +00:00
let iter = tmp();
let tmp2 = arg0;
let arr = arg0;
if (!iter.done) {
do {
({ regex, protocol } = iter.value);
let match = regex.exec(tmp2);
let tmp4 = tmp2;
let tmp5;
if (null != match) {
tmp5 = match[1];
}
if (null != tmp5) {
let sum = protocol + tmp5;
closure_0 = sum;
tmp4 = sum;
}
iter2 = tmp();
tmp2 = tmp4;
iter = iter2;
arr = tmp4;
} while (!iter2.done);
}
let first = null;
if (-1 !== arr.indexOf("://")) {
first = arr.split("://")[0];
}
if ("http" !== first) {
if ("https" !== first) {
2026-07-23 10:11:24 +00:00
outer3_7.info("tryHandleCustomScheme", arr);
let promise = new Promise((closure_0) => {
const obj = outer4_1(outer4_2[5]);
const tryOpenSchemeResult = outer4_1(outer4_2[5]).tryOpenScheme(closure_0);
outer4_1(outer4_2[5]).tryOpenScheme(closure_0).then(() => {
outer5_7.info("Custom scheme opened successfully.");
callback(true);
2026-07-20 16:05:17 +00:00
}).catch(() => {
2026-07-23 10:11:24 +00:00
outer5_7.info("Custom scheme failed to open.");
callback(false);
2026-07-20 16:05:17 +00:00
});
});
}
return promise;
}
promise = new Promise((arg0) => {
2026-07-23 10:11:24 +00:00
outer4_7.info("URL is not a custom scheme.");
2026-07-20 16:05:17 +00:00
arg0(false);
});
2026-07-23 10:11:24 +00:00
})(tmp)) {
if (!yield (function tryHandleWhitelistedURL(arg0) {
2026-07-20 16:05:17 +00:00
let _loopResult;
2026-07-23 10:11:24 +00:00
let closure_0 = arg0;
2026-07-20 16:05:17 +00:00
function _loop(protocol) {
2026-07-23 10:11:24 +00:00
let closure_0 = protocol;
2026-07-20 16:05:17 +00:00
let num = 0;
2026-07-23 10:11:24 +00:00
if (null !== regex.exec(closure_0)) {
let obj = {};
const promise = new Promise((closure_0) => {
const canOpenURLResult = outer5_4.canOpenURL(closure_0);
outer5_4.canOpenURL(closure_0).then(() => { ... }).catch(() => { ... });
2026-07-20 16:05:17 +00:00
});
obj.v = promise;
num = obj;
}
return num;
}
2026-07-23 10:11:24 +00:00
const tmp = outer3_8(outer3_0(outer3_2[8]).LINKING_WHITELIST_VALUES);
2026-07-20 16:05:17 +00:00
const iter = tmp();
let iter2 = iter;
if (!iter.done) {
while (true) {
let value = iter2.value;
2026-07-23 10:11:24 +00:00
let regex = value.regex;
2026-07-20 16:05:17 +00:00
_loopResult = _loop(value.protocol);
if (0 !== _loopResult) {
if (_loopResult) {
break;
}
}
let iter3 = tmp();
iter2 = iter3;
}
return _loopResult.v;
}
return new Promise((arg0) => {
2026-07-23 10:11:24 +00:00
outer4_7.info("URL is not whitelisted.");
2026-07-20 16:05:17 +00:00
arg0(false);
});
2026-07-23 10:11:24 +00:00
})(tmp)) {
2026-07-20 16:05:17 +00:00
openInBrowser();
}
}
}
}
}
2026-07-23 10:11:24 +00:00
obj2 = /^[a-zA-Z0-9+-.]+:/;
obj3 = /^https?:/i;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
})();
iter.next();
return iter;
2026-07-20 16:05:17 +00:00
}
importDefaultResult = new importDefaultResult("handleURL");
2026-07-23 10:11:24 +00:00
let result = require("_isNativeReflectConstruct").fileFinishedImporting("modules/links/native/handleURL.tsx");
2026-07-20 16:05:17 +00:00
export default function handleURL(arg0, arg1) {
return _handleURL(...arguments);
};