393 lines
10 KiB
JavaScript
393 lines
10 KiB
JavaScript
// Module ID: 937
|
|
// Function ID: 10148
|
|
// Name: truncateTextByBytes
|
|
// Dependencies: []
|
|
|
|
// Module 937 (truncateTextByBytes)
|
|
function truncateTextByBytes(content, diff) {
|
|
if (utf8Bytes(content) <= diff) {
|
|
return content;
|
|
} else {
|
|
let length = content.length;
|
|
let str = "";
|
|
let num4 = 0;
|
|
let str2 = "";
|
|
if (0 <= length) {
|
|
do {
|
|
let _Math = Math;
|
|
let rounded = Math.floor((num4 + length) / 2);
|
|
let substr = content.slice(0, rounded);
|
|
let tmp4 = utf8Bytes;
|
|
if (utf8Bytes(substr) <= diff) {
|
|
num4 = rounded + 1;
|
|
diff = length;
|
|
str = substr;
|
|
} else {
|
|
diff = rounded - 1;
|
|
}
|
|
length = diff;
|
|
str2 = str;
|
|
} while (num4 <= diff);
|
|
}
|
|
return str2;
|
|
}
|
|
}
|
|
function getPartText(text) {
|
|
let tmp = text;
|
|
if ("string" !== typeof text) {
|
|
let str2 = "";
|
|
if ("text" in text) {
|
|
str2 = text.text;
|
|
}
|
|
tmp = str2;
|
|
}
|
|
return tmp;
|
|
}
|
|
function withPartText(arg0, text) {
|
|
let merged = text;
|
|
if ("string" !== typeof arg0) {
|
|
const _Object = Object;
|
|
const obj = { text };
|
|
merged = Object.assign({}, arg0, obj);
|
|
}
|
|
return merged;
|
|
}
|
|
function isContentMedia(source) {
|
|
let tmp = !source;
|
|
if (!tmp) {
|
|
tmp = "object" !== typeof source;
|
|
}
|
|
let tmp2 = !tmp;
|
|
if (!tmp) {
|
|
let tmp3 = "type" in source;
|
|
if (tmp3) {
|
|
tmp3 = "string" === typeof source.type;
|
|
}
|
|
if (tmp3) {
|
|
tmp3 = "source" in source;
|
|
}
|
|
if (tmp3) {
|
|
tmp3 = isContentMedia(source.source);
|
|
}
|
|
if (!tmp3) {
|
|
tmp3 = hasInlineData(source);
|
|
}
|
|
if (!tmp3) {
|
|
let tmp6 = "media_type" in source;
|
|
if (tmp6) {
|
|
tmp6 = "string" === typeof source.media_type;
|
|
}
|
|
if (tmp6) {
|
|
tmp6 = "data" in source;
|
|
}
|
|
tmp3 = tmp6;
|
|
}
|
|
if (!tmp3) {
|
|
let startsWithResult = "image_url" in source;
|
|
if (startsWithResult) {
|
|
startsWithResult = "string" === typeof source.image_url;
|
|
}
|
|
if (startsWithResult) {
|
|
const image_url = source.image_url;
|
|
startsWithResult = image_url.startsWith("data:");
|
|
}
|
|
tmp3 = startsWithResult;
|
|
}
|
|
if (!tmp3) {
|
|
let tmp8 = "type" in source;
|
|
if (tmp8) {
|
|
let tmp9 = "blob" === source.type;
|
|
if (!tmp9) {
|
|
tmp9 = "base64" === source.type;
|
|
}
|
|
tmp8 = tmp9;
|
|
}
|
|
tmp3 = tmp8;
|
|
}
|
|
if (!tmp3) {
|
|
tmp3 = "b64_json" in source;
|
|
}
|
|
if (!tmp3) {
|
|
let tmp10 = "type" in source;
|
|
if (tmp10) {
|
|
tmp10 = "result" in source;
|
|
}
|
|
if (tmp10) {
|
|
tmp10 = "image_generation" === source.type;
|
|
}
|
|
tmp3 = tmp10;
|
|
}
|
|
if (!tmp3) {
|
|
let startsWithResult1 = "uri" in source;
|
|
if (startsWithResult1) {
|
|
startsWithResult1 = "string" === typeof source.uri;
|
|
}
|
|
if (startsWithResult1) {
|
|
const uri = source.uri;
|
|
startsWithResult1 = uri.startsWith("data:");
|
|
}
|
|
tmp3 = startsWithResult1;
|
|
}
|
|
tmp2 = tmp3;
|
|
}
|
|
return tmp2;
|
|
}
|
|
function hasInlineData(inlineData) {
|
|
let tmp = "inlineData" in inlineData && inlineData.inlineData;
|
|
if (tmp) {
|
|
tmp = "object" === typeof inlineData.inlineData;
|
|
}
|
|
if (tmp) {
|
|
tmp = "data" in inlineData.inlineData;
|
|
}
|
|
if (tmp) {
|
|
tmp = "string" === typeof inlineData.inlineData.data;
|
|
}
|
|
return tmp;
|
|
}
|
|
function isPartsMessage(parts) {
|
|
let isArray = null !== parts;
|
|
if (isArray) {
|
|
isArray = "object" === typeof parts;
|
|
}
|
|
if (isArray) {
|
|
isArray = "parts" in parts;
|
|
}
|
|
if (isArray) {
|
|
const _Array = Array;
|
|
isArray = Array.isArray(parts.parts);
|
|
}
|
|
if (isArray) {
|
|
isArray = parts.parts.length > 0;
|
|
}
|
|
return isArray;
|
|
}
|
|
function truncateSingleMessage(content, arg1) {
|
|
if (content) {
|
|
if ("object" === typeof content) {
|
|
let tmp3 = null !== content && tmp;
|
|
if (tmp3) {
|
|
tmp3 = "content" in content;
|
|
}
|
|
if (tmp3) {
|
|
tmp3 = "string" === typeof content.content;
|
|
}
|
|
if (!tmp3) {
|
|
if (isPartsMessage(content)) {
|
|
let items = (function truncatePartsMessage(parts, arg1) {
|
|
parts = parts.parts;
|
|
let obj = { parts: parts.map((arg0) => outer2_6(arg0, "")) };
|
|
const diff = arg1 - outer1_1(Object.assign({}, parts, obj));
|
|
let diff1 = diff;
|
|
if (diff <= 0) {
|
|
return [];
|
|
} else {
|
|
const items = [];
|
|
for (const item10024 of parts) {
|
|
let tmp21 = item10024;
|
|
let tmp22 = outer1_5;
|
|
let tmp23 = outer1_5(item10024);
|
|
let tmp25 = outer1_0;
|
|
let tmp24 = tmp23;
|
|
let tmp26 = outer1_0(tmp23);
|
|
let tmp28 = diff1;
|
|
if (tmp26 <= diff1) {
|
|
let tmp14 = items;
|
|
let tmp15 = item10024;
|
|
let arr = items.push(tmp21);
|
|
let tmp17 = diff1;
|
|
let tmp18 = tmp26;
|
|
diff1 = diff1 - tmp27;
|
|
continue;
|
|
} else {
|
|
let tmp3 = items;
|
|
if (0 === items.length) {
|
|
let tmp4 = outer1_4;
|
|
let tmp5 = tmp23;
|
|
let tmp6 = diff1;
|
|
let tmp7 = outer1_4(tmp24, diff1);
|
|
if (tmp7) {
|
|
let tmp9 = items;
|
|
let tmp10 = outer1_6;
|
|
let tmp11 = item10024;
|
|
let tmp12 = tmp7;
|
|
arr = items.push(outer1_6(tmp21, tmp8));
|
|
}
|
|
obj3.return();
|
|
break;
|
|
} else {
|
|
obj3.return();
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
let tmp19 = items;
|
|
if (items.length <= 0) {
|
|
let items1 = [];
|
|
} else {
|
|
let _Object = Object;
|
|
obj = { parts: items };
|
|
items1 = [Object.assign({}, arg0, obj)];
|
|
}
|
|
return items1;
|
|
}
|
|
}
|
|
})(content, 20000);
|
|
} else {
|
|
items = [];
|
|
}
|
|
}
|
|
let _Object = Object;
|
|
let obj = { content: "" };
|
|
let diff = 20000 - jsonBytes(Object.assign({}, content, obj));
|
|
if (diff <= 0) {
|
|
let items1 = [];
|
|
} else {
|
|
const _Object2 = Object;
|
|
obj = { content: truncateTextByBytes(content.content, diff) };
|
|
items1 = [Object.assign({}, content, obj)];
|
|
}
|
|
}
|
|
}
|
|
return [];
|
|
}
|
|
function stripInlineMediaFromSingleMessage(source) {
|
|
const merged = Object.assign({}, source);
|
|
if (isContentMedia(merged.source)) {
|
|
tmp2.source = stripInlineMediaFromSingleMessage(tmp2.source);
|
|
}
|
|
if (hasInlineData(source)) {
|
|
const _Object = Object;
|
|
const obj = { data: c2 };
|
|
tmp2.inlineData = Object.assign({}, source.inlineData, obj);
|
|
}
|
|
const iter = dependencyMap[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
let tmp9 = merged;
|
|
if ("string" === typeof tmp2[nextResult]) {
|
|
let tmp10 = merged;
|
|
let tmp11 = nextResult;
|
|
let tmp12 = c2;
|
|
tmp2[tmp8] = c2;
|
|
}
|
|
continue;
|
|
}
|
|
return merged;
|
|
}
|
|
function stripInlineMediaFromMessages(arr) {
|
|
return arr.map((arg0) => {
|
|
let tmp2 = arg0;
|
|
if (arg0) {
|
|
tmp2 = "object" === typeof tmp;
|
|
}
|
|
if (!tmp2) {
|
|
return tmp;
|
|
} else {
|
|
let isArray = null !== tmp;
|
|
if (isArray) {
|
|
isArray = "object" === typeof tmp;
|
|
}
|
|
if (isArray) {
|
|
isArray = "content" in tmp;
|
|
}
|
|
if (isArray) {
|
|
const _Array = Array;
|
|
isArray = Array.isArray(tmp.content);
|
|
}
|
|
if (isArray) {
|
|
const _Object2 = Object;
|
|
let obj = { content: outer1_12(tmp.content) };
|
|
let merged = Object.assign({}, tmp, obj);
|
|
} else {
|
|
let tmp6 = "content" in tmp;
|
|
if (tmp6) {
|
|
tmp6 = outer1_7(tmp.content);
|
|
}
|
|
if (tmp6) {
|
|
const _Object = Object;
|
|
obj = { content: outer1_11(tmp.content) };
|
|
merged = Object.assign({}, tmp, obj);
|
|
}
|
|
}
|
|
let merged1 = merged;
|
|
if (outer1_9(tmp)) {
|
|
let tmp16 = tmp;
|
|
if (null != merged) {
|
|
tmp16 = merged;
|
|
}
|
|
obj = { parts: outer1_12(tmp.parts) };
|
|
merged1 = Object.assign({}, tmp16, obj);
|
|
}
|
|
if (outer1_7(merged1)) {
|
|
let tmp20 = outer1_11(merged1);
|
|
} else {
|
|
tmp20 = merged1;
|
|
if (outer1_7(tmp)) {
|
|
tmp20 = outer1_11(tmp);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
Object.defineProperty(arg5, Symbol.toStringTag, { value: "Module" });
|
|
function utf8Bytes(substr) {
|
|
const textEncoder = new TextEncoder();
|
|
return textEncoder.encode(substr).length;
|
|
}
|
|
function jsonBytes(arr) {
|
|
return utf8Bytes(JSON.stringify(arr));
|
|
}
|
|
let c2 = "[Filtered]";
|
|
let closure_3 = ["image_url", "data", "content", "b64_json", "result", "uri"];
|
|
arg5.DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT = 20000;
|
|
arg5.truncateGenAiMessages = function truncateGenAiMessages(arr) {
|
|
let tmp = arr;
|
|
if (Array.isArray(arr)) {
|
|
tmp = arr;
|
|
if (0 !== arr.length) {
|
|
arr = stripInlineMediaFromMessages(arr);
|
|
tmp = arr;
|
|
if (jsonBytes(arr) > 20000) {
|
|
let length = arr.length;
|
|
let diff = arr.length - 1;
|
|
let tmp3 = length;
|
|
let num2 = 0;
|
|
if (diff >= 0) {
|
|
while (true) {
|
|
let tmp2 = tmp13[diff];
|
|
if (!tmp2) {
|
|
let sum = num2;
|
|
if (tmp2) {
|
|
sum = num2 + tmp2;
|
|
}
|
|
let diff1 = diff - 1;
|
|
num2 = sum;
|
|
length = diff;
|
|
tmp3 = diff;
|
|
diff = diff1;
|
|
if (diff1 < 0) {
|
|
break;
|
|
}
|
|
} else {
|
|
tmp3 = length;
|
|
if (num2 + tmp2 > 20000) {
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
if (tmp3 === arr.length) {
|
|
let substr = truncateSingleMessage(arr[arr.length - 1], 20000);
|
|
} else {
|
|
substr = arr.slice(tmp3);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return tmp;
|
|
};
|
|
arg5.truncateGenAiStringInput = function truncateGenAiStringInput(arr) {
|
|
return truncateTextByBytes(arr, 20000);
|
|
};
|