443 lines
16 KiB
TypeScript
443 lines
16 KiB
TypeScript
// Module ID: 4569
|
|
// Function ID: 40066
|
|
// Name: _createForOfIteratorHelperLoose
|
|
// Dependencies: [57, 1362, 4570, 4564, 1327, 4115, 1443, 4571, 3830, 22, 2]
|
|
|
|
// Module 4569 (_createForOfIteratorHelperLoose)
|
|
import _slicedToArray from "_slicedToArray";
|
|
import importDefaultResult from "priv";
|
|
|
|
const require = arg1;
|
|
function _createForOfIteratorHelperLoose(iterable) {
|
|
let closure_0 = iterable;
|
|
iterable = "undefined" !== typeof Symbol;
|
|
if (iterable) {
|
|
const _Symbol = Symbol;
|
|
iterable = iterable[Symbol.iterator];
|
|
}
|
|
if (!iterable) {
|
|
iterable = iterable[Symbol.iterator];
|
|
}
|
|
if (iterable) {
|
|
const iter = iterable.call(iterable);
|
|
const next = iter.next;
|
|
return next.bind(iter);
|
|
} else {
|
|
const _Array = Array;
|
|
let tmp = iterable;
|
|
if (!Array.isArray(iterable)) {
|
|
let tmp2;
|
|
if (iterable) {
|
|
if ("string" === typeof iterable) {
|
|
tmp2 = _arrayLikeToArray(iterable, undefined);
|
|
} else {
|
|
const toString = {}.toString;
|
|
const substr = toString.call(iterable).slice(8, -1);
|
|
let name = substr;
|
|
if (tmp3) {
|
|
name = iterable.constructor.name;
|
|
}
|
|
if ("Map" !== name) {
|
|
if ("Set" !== name) {
|
|
if ("Arguments" === name) {
|
|
let arr = _arrayLikeToArray(iterable, undefined);
|
|
} else {
|
|
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
|
|
}
|
|
}
|
|
tmp2 = arr;
|
|
}
|
|
const _Array2 = Array;
|
|
arr = Array.from(iterable);
|
|
const callResult = toString.call(iterable);
|
|
tmp3 = "Object" === substr && iterable.constructor;
|
|
}
|
|
}
|
|
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) {
|
|
closure_0 = tmp;
|
|
}
|
|
let c1 = 0;
|
|
return () => {
|
|
if (closure_1 >= length.length) {
|
|
let obj = { done: true };
|
|
} else {
|
|
obj = { done: false };
|
|
closure_1 = tmp3 + 1;
|
|
obj.value = length[+closure_1];
|
|
}
|
|
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 sanitizeWithCache(outer1_0) {
|
|
const value = importDefaultResult.get(outer1_0);
|
|
if (null != value) {
|
|
return value;
|
|
} else {
|
|
let obj = require(4570) /* makeMatcher */;
|
|
const sanitizeWhitespaceResult = obj.sanitizeWhitespace(outer1_0);
|
|
obj = { whitespaceSanitized: sanitizeWhitespaceResult, fullySanitized: require(4570) /* makeMatcher */.sanitizeUnicodeConfusables(sanitizeWhitespaceResult) };
|
|
const result = importDefaultResult.set(outer1_0, obj);
|
|
return obj;
|
|
}
|
|
}
|
|
function validateContentTypes(content, items, items2) {
|
|
items = items2;
|
|
if (items2 === undefined) {
|
|
items = [];
|
|
}
|
|
let tmp = content;
|
|
if (!Array.isArray(content)) {
|
|
const items1 = [content];
|
|
tmp = items1;
|
|
}
|
|
const tmp2 = _createForOfIteratorHelperLoose(tmp);
|
|
let iter = tmp2();
|
|
if (!iter.done) {
|
|
const value = iter.value;
|
|
while (undefined !== value) {
|
|
if (!items.includes(value.type)) {
|
|
break;
|
|
} else {
|
|
let tmp3 = require;
|
|
let tmp4 = dependencyMap;
|
|
if (value.type === require(4564) /* AST_KEY */.AST_KEY.INLINE_CODE) {
|
|
items2 = [];
|
|
let tmp5 = items2;
|
|
let tmp6 = items;
|
|
let num = 0;
|
|
let tmp7 = items2;
|
|
let tmp8 = items;
|
|
let arraySpreadResult = HermesBuiltin.arraySpread(items, HermesBuiltin.arraySpread(items, 0));
|
|
let tmp10 = validateContentTypes;
|
|
if (null == validateContentTypes(value.validationChildContent, items2)) {
|
|
return null;
|
|
}
|
|
}
|
|
let _Array = Array;
|
|
if (Array.isArray(value.content)) {
|
|
let tmp11 = validateContentTypes;
|
|
if (null == validateContentTypes(value.content, items)) {
|
|
return null;
|
|
}
|
|
}
|
|
let iter2 = tmp2();
|
|
iter = iter2;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
return tmp;
|
|
}
|
|
function getRawText(content) {
|
|
const tmp = _createForOfIteratorHelperLoose(content);
|
|
const iter = tmp();
|
|
let iter2 = iter;
|
|
let str = "";
|
|
let str2 = "";
|
|
if (!iter.done) {
|
|
while (true) {
|
|
let value = iter2.value;
|
|
let type = value.type;
|
|
let tmp2 = require;
|
|
let tmp3 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.TEXT !== type) {
|
|
let tmp13 = require;
|
|
let tmp14 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.INLINE_CODE !== type) {
|
|
let tmp15 = require;
|
|
let tmp16 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.CUSTOM_EMOJI === type) {
|
|
let text = `${value.name}`;
|
|
} else {
|
|
let tmp17 = require;
|
|
let tmp18 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.EMOJI === type) {
|
|
text = `${value.surrogate}`;
|
|
} else {
|
|
let tmp19 = require;
|
|
let tmp20 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.LINE_BREAK === type) {
|
|
text = `
|
|
`;
|
|
} else {
|
|
let tmp21 = require;
|
|
let tmp22 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.STRONG !== type) {
|
|
let tmp23 = require;
|
|
let tmp24 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.ITALICS !== type) {
|
|
let tmp25 = require;
|
|
let tmp26 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.UNDERLINE !== type) {
|
|
let tmp27 = require;
|
|
let tmp28 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.STRIKETHROUGH !== type) {
|
|
let tmp29 = require;
|
|
let tmp30 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.SPOILER !== type) {
|
|
let tmp31 = require;
|
|
let tmp32 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.TIMESTAMP === type) {
|
|
text = `<timestamp>`;
|
|
} else {
|
|
let tmp33 = require;
|
|
let tmp34 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.BLOCK_QUOTE !== type) {
|
|
let tmp35 = require;
|
|
let tmp36 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.LIST !== type) {
|
|
let tmp4 = require;
|
|
let tmp5 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.HEADING !== type) {
|
|
let tmp6 = require;
|
|
let tmp7 = dependencyMap;
|
|
if (require(4564) /* AST_KEY */.AST_KEY.SUBTEXT !== type) {
|
|
let tmp8 = require;
|
|
let tmp9 = dependencyMap;
|
|
let obj = require(1327) /* isDiscordFrontendDevelopment */;
|
|
let assertNeverResult = obj.assertNever(value.type);
|
|
text = str;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
let _HermesInternal = HermesInternal;
|
|
text = str + "<" + value.type + "Content>";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
let tmp12 = getRawText;
|
|
text = str + getRawText(value.content);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
let iter3 = tmp();
|
|
str = text;
|
|
iter2 = iter3;
|
|
str2 = text;
|
|
if (iter3.done) {
|
|
break;
|
|
}
|
|
}
|
|
text = str + value.content;
|
|
}
|
|
}
|
|
return str2;
|
|
}
|
|
function isSuspiciousUrl(outer1_0) {
|
|
if (obj.isSuspiciousCodedLink(outer1_0)) {
|
|
return true;
|
|
} else if (sanitizeWithCache(outer1_0).whitespaceSanitized !== outer1_0) {
|
|
return true;
|
|
} else {
|
|
const toURLSafeResult = importDefault(1443).toURLSafe(outer1_0);
|
|
if (null == toURLSafeResult) {
|
|
return true;
|
|
} else {
|
|
if ("http:" !== toURLSafeResult.protocol) {
|
|
if ("https:" !== toURLSafeResult.protocol) {
|
|
return false;
|
|
}
|
|
}
|
|
const parts = outer1_0.split("/");
|
|
let tmp2 = parts.length < 3;
|
|
if (!tmp2) {
|
|
let tmp3 = "" !== parts[1];
|
|
if (!tmp3) {
|
|
tmp3 = importDefault(1443).safeDecodeURIComponent(parts[2]) !== parts[2];
|
|
const obj2 = importDefault(1443);
|
|
}
|
|
tmp2 = tmp3;
|
|
}
|
|
return tmp2;
|
|
}
|
|
const obj3 = importDefault(1443);
|
|
}
|
|
obj = require(4115) /* _createForOfIteratorHelperLoose */;
|
|
}
|
|
function punycodeLink(outer1_0) {
|
|
if (isSuspiciousUrl(outer1_0)) {
|
|
const _Error3 = Error;
|
|
const _JSON = JSON;
|
|
const error = new Error("Rejected due to suspicious characters in URL: " + JSON.stringify(outer1_0));
|
|
throw error;
|
|
} else {
|
|
const _URL = URL;
|
|
const uRL = new URL(outer1_0);
|
|
const protocol = uRL.protocol;
|
|
let str2 = "";
|
|
if (null != protocol) {
|
|
str2 = protocol;
|
|
}
|
|
if (items.includes(str2.toLowerCase())) {
|
|
if ("http:" === tmp9) {
|
|
const _Error2 = Error;
|
|
const error1 = new Error("no hostname");
|
|
throw error1;
|
|
}
|
|
let obj = importDefault(4571);
|
|
tmp6.hostname = obj.toASCII(tmp6.hostname.toLowerCase());
|
|
tmp6.username = "";
|
|
tmp6.password = "";
|
|
obj = { target: require(4570) /* makeMatcher */.safelyMakeUrlHumanReadable(tmp6) };
|
|
const obj2 = require(4570) /* makeMatcher */;
|
|
const str7 = tmp6.hostname;
|
|
obj.displayTarget = require(4570) /* makeMatcher */.safelyMakeUrlHumanReadable(tmp6);
|
|
return obj;
|
|
} else {
|
|
const _Error = Error;
|
|
const error2 = new Error("Provided protocol is not allowed: " + tmp9);
|
|
throw error2;
|
|
}
|
|
}
|
|
}
|
|
let obj = { max: 50 };
|
|
importDefaultResult = new importDefaultResult(obj);
|
|
let items = ["http:", "https:", "discord:", "tel:", "sms:", "mailto:"];
|
|
let items1 = [require("AST_KEY").AST_KEY.TEXT, require("AST_KEY").AST_KEY.UNDERLINE, require("AST_KEY").AST_KEY.STRONG, require("AST_KEY").AST_KEY.ITALICS, require("AST_KEY").AST_KEY.STRIKETHROUGH, require("AST_KEY").AST_KEY.INLINE_CODE, require("AST_KEY").AST_KEY.SPOILER, require("AST_KEY").AST_KEY.LINE_BREAK, require("AST_KEY").AST_KEY.TIMESTAMP];
|
|
let items2 = [...items1, require("AST_KEY").AST_KEY.EMOJI, require("AST_KEY").AST_KEY.CUSTOM_EMOJI];
|
|
const items3 = [require("AST_KEY").AST_KEY.LIST, require("AST_KEY").AST_KEY.HEADING, require("AST_KEY").AST_KEY.BLOCK_QUOTE, require("AST_KEY").AST_KEY.SUBTEXT];
|
|
const items4 = [require("AST_KEY").AST_KEY.TEXT];
|
|
const items5 = [require("AST_KEY").AST_KEY.UNDERLINE, require("AST_KEY").AST_KEY.STRONG, require("AST_KEY").AST_KEY.ITALICS, require("AST_KEY").AST_KEY.STRIKETHROUGH, require("AST_KEY").AST_KEY.INLINE_CODE, require("AST_KEY").AST_KEY.SPOILER, require("AST_KEY").AST_KEY.LINE_BREAK, require("AST_KEY").AST_KEY.TIMESTAMP, require("AST_KEY").AST_KEY.EMOJI, require("AST_KEY").AST_KEY.CUSTOM_EMOJI, require("AST_KEY").AST_KEY.LIST, require("AST_KEY").AST_KEY.HEADING, require("AST_KEY").AST_KEY.BLOCK_QUOTE, require("AST_KEY").AST_KEY.SUBTEXT];
|
|
obj = {};
|
|
let merged = Object.assign(require("t").defaultRules.link);
|
|
obj["match"] = function match(arr, allowLinks) {
|
|
if (allowLinks.allowLinks) {
|
|
if (-1 === arr.indexOf("](")) {
|
|
return null;
|
|
} else {
|
|
let num4 = 0;
|
|
let num5 = 0;
|
|
let num3 = 0;
|
|
if (0 < arr.length) {
|
|
while (true) {
|
|
let tmp2 = arr[num3];
|
|
let tmp3 = num4;
|
|
let num2 = 0;
|
|
if (")" !== tmp2) {
|
|
if ("[" === tmp2) {
|
|
let sum = num4 + 1;
|
|
if (sum > 10) {
|
|
break;
|
|
}
|
|
} else if ("]" === tmp2) {
|
|
sum = num4;
|
|
if (num4 > 0) {
|
|
sum = num4 - 1;
|
|
}
|
|
} else {
|
|
sum = num4;
|
|
tmp3 = num4;
|
|
num2 = num5;
|
|
}
|
|
num2 = num5 + 1;
|
|
tmp3 = sum;
|
|
if (num2 > 200) {
|
|
let tmp8 = null;
|
|
return null;
|
|
}
|
|
}
|
|
num3 = num3 + 1;
|
|
num4 = tmp3;
|
|
num5 = num2;
|
|
}
|
|
return null;
|
|
}
|
|
return importDefault(3830).defaultRules.link.match(arr, allowLinks, arg2);
|
|
}
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
obj["parse"] = function parse(arg0, rules, allowEmojiLinks) {
|
|
function renderIndividualParts() {
|
|
return { type: callback(outer1_2[3]).AST_KEY.TEXT, content: callback };
|
|
}
|
|
const tmp = callback(arg0, 4);
|
|
const _require = tmp[0];
|
|
if (isSuspiciousUrl(tmp[2])) {
|
|
return renderIndividualParts();
|
|
} else {
|
|
const tmp7 = sanitizeWithCache(tmp2);
|
|
let str = "";
|
|
if (null != tmp4) {
|
|
str = tmp4;
|
|
}
|
|
const tmp5Result = sanitizeWithCache(str);
|
|
const tmp5 = sanitizeWithCache;
|
|
const tmp6 = sanitizeWithCache(tmp3);
|
|
const trimmed = str3.trim();
|
|
if (0 !== str2.trim().length) {
|
|
if (0 !== trimmed.length) {
|
|
const tmp38 = punycodeLink(importDefault(3830).unescapeUrl(tmp3));
|
|
let tmp12 = importDefault(4115)(tmp2).length > 0;
|
|
if (!tmp12) {
|
|
tmp12 = importDefault(4115)(tmp4).length > 0;
|
|
}
|
|
if (null != tmp38) {
|
|
if (!tmp12) {
|
|
let obj = {};
|
|
const merged = Object.assign(allowEmojiLinks);
|
|
obj["allowEscape"] = false;
|
|
obj["parseInlineCodeChildContent"] = true;
|
|
const tmp16 = allowEmojiLinks.allowEmojiLinks ? items2 : items1;
|
|
const items = [];
|
|
HermesBuiltin.arraySpread(items3, HermesBuiltin.arraySpread(tmp16, 0));
|
|
items1 = [];
|
|
HermesBuiltin.arraySpread(items5, HermesBuiltin.arraySpread(items4, 0));
|
|
items2 = [_require(4564).AST_KEY.EMOJI];
|
|
const tmp31 = validateContentTypes(rules(str3, obj), items, items2);
|
|
if (null != tmp31) {
|
|
if (null != validateContentTypes(rules(tmp5Result.fullySanitized, obj), items1)) {
|
|
if (0 === str6.trim().length) {
|
|
return renderIndividualParts();
|
|
} else {
|
|
const obj2 = importDefault(22);
|
|
const pickResult = importDefault(22).pick(rules.rules, tmp16);
|
|
obj = {};
|
|
obj.content = importDefault(3830).parserFor(pickResult)(tmp7.whitespaceSanitized, obj);
|
|
obj.target = tmp38.target;
|
|
obj.title = tmp5Result.whitespaceSanitized;
|
|
return obj;
|
|
}
|
|
str6 = getRawText(tmp31);
|
|
}
|
|
}
|
|
return renderIndividualParts();
|
|
}
|
|
}
|
|
return renderIndividualParts();
|
|
}
|
|
}
|
|
return renderIndividualParts();
|
|
}
|
|
};
|
|
let result = require("makeMatcher").fileFinishedImporting("modules/markup/MarkupLinkRule.tsx");
|
|
|
|
export default obj;
|
|
export const ALLOWED_PROTOCOLS = items;
|
|
export { isSuspiciousUrl };
|
|
export { punycodeLink };
|