decord/source/13252_canonicalizeKVs.js
2026-07-24 07:16:23 +00:00

241 lines
8 KiB
JavaScript

// Module ID: 13252
// Function ID: 101906
// Name: canonicalizeKVs
// Dependencies: [1257, 13253, 13251, 13254, 13255]
// Module 13252 (canonicalizeKVs)
const require = arg1;
const dependencyMap = arg6;
function canonicalizeKVs(fields) {
const obj = {};
const items = [];
for (let num = 0; num < fields.length; num = num + 1) {
let tmp = fields[num];
if (!(tmp[0] in obj)) {
obj[tmp[0]] = 1;
if (tmp[1]) {
if ("true" !== tmp[1]) {
let str2 = tmp[0];
let items1 = [str2.toLowerCase(), ];
let str3 = tmp[1];
items1[1] = str3.toLowerCase();
let arr = items.push(items1);
}
}
let str = tmp[0];
let items2 = [str.toLowerCase()];
arr = items.push(items2);
}
}
return items.sort(compareKV);
}
function compareKV(arg0, arg1) {
let num = -1;
if (arg0[0] >= arg1[0]) {
let num2 = 0;
if (arg0[0] > arg1[0]) {
num2 = 1;
}
num = num2;
}
return num;
}
function compareExtension(type, type2) {
let num = -1;
if (type.type >= type2.type) {
let num2 = 0;
if (type.type > type2.type) {
num2 = 1;
}
num = num2;
}
return num;
}
function mergeVariants(variants, variants2) {
const __spreadArrayResult = require(1257) /* createExporter */.__spreadArray([], variants, true);
for (let num = 0; num < variants2.length; num = num + 1) {
let tmp = variants2[num];
if (variants.indexOf(tmp) < 0) {
let arr = __spreadArrayResult.push(tmp);
}
}
return __spreadArrayResult;
}
function canonicalizeUnicodeLanguageId(lang) {
let tmp = lang;
if (lang.variants.length) {
let variants = lang.variants;
let num = 0;
tmp = lang;
if (0 < variants.length) {
let obj = { lang: lang.lang };
const items = [variants[num]];
obj.variants = items;
const str = require(13253).languageAlias[require(undefined, 13251) /* emitUnicodeLanguageId */.emitUnicodeLanguageId(undefined, obj)];
while (!str) {
num = num + 1;
tmp = lang;
}
obj = {};
const result = require(13254) /* isUnicodeLanguageSubtag */.parseUnicodeLanguageId(str.split(require(13254) /* isUnicodeLanguageSubtag */.SEPARATOR));
obj.lang = result.lang;
obj.script = lang.script || result.script;
obj.region = lang.region || result.region;
obj.variants = mergeVariants(lang.variants, result.variants);
tmp = obj;
}
}
let tmp8 = tmp;
if (tmp.script) {
tmp8 = tmp;
if (tmp.region) {
obj = {};
({ lang: obj3.lang, script: obj3.script, region: obj3.region } = tmp);
obj.variants = [];
const str2 = require(13253).languageAlias[require(undefined, 13251) /* emitUnicodeLanguageId */.emitUnicodeLanguageId(undefined, obj)];
tmp8 = tmp;
if (str2) {
const obj1 = {};
const result1 = require(13254) /* isUnicodeLanguageSubtag */.parseUnicodeLanguageId(str2.split(require(13254) /* isUnicodeLanguageSubtag */.SEPARATOR));
({ lang: obj4.lang, script: obj4.script, region: obj4.region } = result1);
obj1.variants = tmp.variants;
tmp8 = obj1;
}
}
}
let tmp14 = tmp8;
if (tmp8.region) {
const obj2 = {};
({ lang: obj5.lang, region: obj5.region } = tmp8);
obj2.variants = [];
const str3 = require(13253).languageAlias[require(undefined, 13251) /* emitUnicodeLanguageId */.emitUnicodeLanguageId(undefined, obj2)];
tmp14 = tmp8;
if (str3) {
const obj3 = {};
const result2 = require(13254) /* isUnicodeLanguageSubtag */.parseUnicodeLanguageId(str3.split(require(13254) /* isUnicodeLanguageSubtag */.SEPARATOR));
obj3.lang = result2.lang;
obj3.script = tmp8.script || result2.script;
obj3.region = result2.region;
obj3.variants = tmp8.variants;
tmp14 = obj3;
}
}
const obj4 = { lang: tmp14.lang, variants: [] };
const str4 = require(13253).languageAlias[require(undefined, 13251) /* emitUnicodeLanguageId */.emitUnicodeLanguageId(undefined, obj4)];
let tmp20 = tmp14;
if (str4) {
const obj5 = {};
const result3 = require(13254) /* isUnicodeLanguageSubtag */.parseUnicodeLanguageId(str4.split(require(13254) /* isUnicodeLanguageSubtag */.SEPARATOR));
obj5.lang = result3.lang;
obj5.script = tmp14.script || result3.script;
obj5.region = tmp14.region || result3.region;
obj5.variants = tmp14.variants;
tmp20 = obj5;
}
if (tmp20.region) {
const formatted = tmp20.region.toUpperCase();
const str6 = require(13253).territoryAlias[formatted];
let tmp27;
if (str6) {
const parts = str6.split(" ");
const first = parts[0];
const obj6 = {};
({ lang: obj9.lang, script: obj9.script } = tmp20);
obj6.variants = [];
const str8 = require(13255) /* __exportStarResult2 */.likelySubtags[require(undefined, 13251) /* emitUnicodeLanguageId */.emitUnicodeLanguageId(undefined, obj6)];
tmp27 = first;
if (str8) {
const region = require(13254) /* isUnicodeLanguageSubtag */.parseUnicodeLanguageId(str8.split(require(13254) /* isUnicodeLanguageSubtag */.SEPARATOR)).region;
let tmp33 = region;
if (region) {
tmp33 = parts.indexOf(region) > -1;
}
tmp27 = first;
if (tmp33) {
tmp27 = region;
}
}
}
if (tmp27) {
tmp20.region = tmp27;
}
tmp20.region = tmp20.region.toUpperCase();
const str5 = tmp20.region;
const str9 = tmp20.region;
}
if (tmp20.script) {
const script = tmp20.script;
const formatted1 = tmp20.script[0].toUpperCase();
tmp20.script = formatted1 + script.slice(1).toLowerCase();
if (require(13253).scriptAlias[tmp20.script]) {
tmp20.script = require(13253).scriptAlias[tmp20.script];
}
const str10 = tmp20.script[0];
const str11 = script.slice(1);
}
if (tmp20.variants.length) {
for (let num17 = 0; num17 < tmp20.variants.length; num17 = num17 + 1) {
let str12 = tmp20.variants[num17];
let formatted2 = str12.toLowerCase();
let tmp40 = require;
let tmp41 = dependencyMap;
if (require(13253).variantAlias[formatted2]) {
let tmp42 = require;
let tmp43 = dependencyMap;
let tmp44 = require(13253).variantAlias[formatted2];
if (require(13254) /* isUnicodeLanguageSubtag */.isUnicodeVariantSubtag(tmp44)) {
tmp20.variants[num17] = tmp44;
let tmp49 = tmp44;
} else {
let tmp45 = require;
let tmp46 = dependencyMap;
let tmp47 = tmp44;
if (require(13254) /* isUnicodeLanguageSubtag */.isUnicodeLanguageSubtag(tmp44)) {
tmp20.lang = tmp44;
let tmp48 = tmp44;
}
}
}
}
variants = tmp20.variants;
const sorted = variants.sort();
}
return tmp20;
}
arg5.canonicalizeUnicodeLanguageId = canonicalizeUnicodeLanguageId;
arg5.CanonicalizeUnicodeLocaleId = function CanonicalizeUnicodeLocaleId(lang) {
lang.lang = canonicalizeUnicodeLanguageId(lang.lang);
if (lang.extensions) {
let extensions = lang.extensions;
for (let num = 0; num < extensions.length; num = num + 1) {
let iter = extensions[num];
let type = iter.type;
if ("u" === type) {
let tmp4 = canonicalizeKVs;
iter.keywords = canonicalizeKVs(iter.keywords);
if (iter.attributes) {
let attributes = iter.attributes;
let _Object = Object;
let keys = Object.keys(attributes.reduce((arg0, str) => {
arg0[str.toLowerCase()] = 1;
return arg0;
}, {}));
iter.attributes = keys.sort();
}
} else if ("t" === type) {
if (iter.lang) {
let tmp2 = canonicalizeUnicodeLanguageId;
iter.lang = canonicalizeUnicodeLanguageId(iter.lang);
}
let tmp3 = canonicalizeKVs;
iter.fields = canonicalizeKVs(iter.fields);
} else {
let str3 = iter.value;
iter.value = str3.toLowerCase();
}
}
extensions = lang.extensions;
const sorted = extensions.sort(compareExtension);
}
return lang;
};