Remove deprecated scripts for adding head-matter to wt_config.xml, including Python and Bash implementations, to streamline configuration management.
This commit is contained in:
194
client/node_modules/unhead/dist/shared/unhead.BpRRHAhY.mjs
generated
vendored
Normal file
194
client/node_modules/unhead/dist/shared/unhead.BpRRHAhY.mjs
generated
vendored
Normal file
@@ -0,0 +1,194 @@
|
||||
import { U as UniqueTags, T as TagsWithInnerContent, M as MetaTagsArrayable, a as TagConfigKeys, D as DupeableTags } from './unhead.yem5I2v_.mjs';
|
||||
|
||||
const allowedMetaProperties = ["name", "property", "http-equiv"];
|
||||
const StandardSingleMetaTags = /* @__PURE__ */ new Set([
|
||||
"viewport",
|
||||
"description",
|
||||
"keywords",
|
||||
"robots"
|
||||
]);
|
||||
function isMetaArrayDupeKey(v) {
|
||||
const parts = v.split(":");
|
||||
if (!parts.length)
|
||||
return false;
|
||||
return MetaTagsArrayable.has(parts[1]);
|
||||
}
|
||||
function dedupeKey(tag) {
|
||||
const { props, tag: name } = tag;
|
||||
if (UniqueTags.has(name))
|
||||
return name;
|
||||
if (name === "link" && props.rel === "canonical")
|
||||
return "canonical";
|
||||
if (props.charset)
|
||||
return "charset";
|
||||
if (tag.tag === "meta") {
|
||||
for (const n of allowedMetaProperties) {
|
||||
if (props[n] !== void 0) {
|
||||
const propValue = props[n];
|
||||
const isStructured = propValue.includes(":");
|
||||
const isStandardSingle = StandardSingleMetaTags.has(propValue);
|
||||
const shouldAlwaysDedupe = isStructured || isStandardSingle;
|
||||
const keyPart = !shouldAlwaysDedupe && tag.key ? `:key:${tag.key}` : "";
|
||||
return `${name}:${propValue}${keyPart}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tag.key) {
|
||||
return `${name}:key:${tag.key}`;
|
||||
}
|
||||
if (props.id) {
|
||||
return `${name}:id:${props.id}`;
|
||||
}
|
||||
if (TagsWithInnerContent.has(name)) {
|
||||
const v = tag.textContent || tag.innerHTML;
|
||||
if (v) {
|
||||
return `${name}:content:${v}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
function hashTag(tag) {
|
||||
const dedupe = tag._h || tag._d;
|
||||
if (dedupe)
|
||||
return dedupe;
|
||||
const inner = tag.textContent || tag.innerHTML;
|
||||
if (inner)
|
||||
return inner;
|
||||
return `${tag.tag}:${Object.entries(tag.props).map(([k, v]) => `${k}:${String(v)}`).join(",")}`;
|
||||
}
|
||||
|
||||
function walkResolver(val, resolve, key) {
|
||||
const type = typeof val;
|
||||
if (type === "function") {
|
||||
if (!key || key !== "titleTemplate" && !(key[0] === "o" && key[1] === "n")) {
|
||||
val = val();
|
||||
}
|
||||
}
|
||||
let v;
|
||||
if (resolve) {
|
||||
v = resolve(key, val);
|
||||
}
|
||||
if (Array.isArray(v)) {
|
||||
return v.map((r) => walkResolver(r, resolve));
|
||||
}
|
||||
if (v?.constructor === Object) {
|
||||
const next = {};
|
||||
for (const key2 of Object.keys(v)) {
|
||||
next[key2] = walkResolver(v[key2], resolve, key2);
|
||||
}
|
||||
return next;
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
function normalizeStyleClassProps(key, value) {
|
||||
const store = key === "style" ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new Set();
|
||||
function processValue(rawValue) {
|
||||
const value2 = rawValue.trim();
|
||||
if (!value2)
|
||||
return;
|
||||
if (key === "style") {
|
||||
const [k, ...v] = value2.split(":").map((s) => s.trim());
|
||||
if (k && v.length)
|
||||
store.set(k, v.join(":"));
|
||||
} else {
|
||||
value2.split(" ").filter(Boolean).forEach((c) => store.add(c));
|
||||
}
|
||||
}
|
||||
if (typeof value === "string") {
|
||||
key === "style" ? value.split(";").forEach(processValue) : processValue(value);
|
||||
} else if (Array.isArray(value)) {
|
||||
value.forEach((item) => processValue(item));
|
||||
} else if (value && typeof value === "object") {
|
||||
Object.entries(value).forEach(([k, v]) => {
|
||||
if (v && v !== "false") {
|
||||
key === "style" ? store.set(k.trim(), v) : processValue(k);
|
||||
}
|
||||
});
|
||||
}
|
||||
return store;
|
||||
}
|
||||
function normalizeProps(tag, input) {
|
||||
tag.props = tag.props || {};
|
||||
if (!input) {
|
||||
return tag;
|
||||
}
|
||||
if (tag.tag === "templateParams") {
|
||||
tag.props = input;
|
||||
return tag;
|
||||
}
|
||||
Object.entries(input).forEach(([key, value]) => {
|
||||
if (value === null) {
|
||||
tag.props[key] = null;
|
||||
return;
|
||||
}
|
||||
if (key === "class" || key === "style") {
|
||||
tag.props[key] = normalizeStyleClassProps(key, value);
|
||||
return;
|
||||
}
|
||||
if (TagConfigKeys.has(key)) {
|
||||
if (["textContent", "innerHTML"].includes(key) && typeof value === "object") {
|
||||
let type = input.type;
|
||||
if (!input.type) {
|
||||
type = "application/json";
|
||||
}
|
||||
if (!type?.endsWith("json") && type !== "speculationrules") {
|
||||
return;
|
||||
}
|
||||
input.type = type;
|
||||
tag.props.type = type;
|
||||
tag[key] = JSON.stringify(value);
|
||||
} else {
|
||||
tag[key] = value;
|
||||
}
|
||||
return;
|
||||
}
|
||||
const strValue = String(value);
|
||||
const isDataKey = key.startsWith("data-");
|
||||
if (strValue === "true" || strValue === "") {
|
||||
tag.props[key] = isDataKey ? strValue : true;
|
||||
} else if (!value && isDataKey && strValue === "false") {
|
||||
tag.props[key] = "false";
|
||||
} else if (value !== void 0) {
|
||||
tag.props[key] = value;
|
||||
}
|
||||
});
|
||||
return tag;
|
||||
}
|
||||
function normalizeTag(tagName, _input) {
|
||||
const input = typeof _input === "object" && typeof _input !== "function" ? _input : { [tagName === "script" || tagName === "noscript" || tagName === "style" ? "innerHTML" : "textContent"]: _input };
|
||||
const tag = normalizeProps({ tag: tagName, props: {} }, input);
|
||||
if (tag.key && DupeableTags.has(tag.tag)) {
|
||||
tag.props["data-hid"] = tag._h = tag.key;
|
||||
}
|
||||
if (tag.tag === "script" && typeof tag.innerHTML === "object") {
|
||||
tag.innerHTML = JSON.stringify(tag.innerHTML);
|
||||
tag.props.type = tag.props.type || "application/json";
|
||||
}
|
||||
return Array.isArray(tag.props.content) ? tag.props.content.map((v) => ({ ...tag, props: { ...tag.props, content: v } })) : tag;
|
||||
}
|
||||
function normalizeEntryToTags(input, propResolvers) {
|
||||
if (!input) {
|
||||
return [];
|
||||
}
|
||||
if (typeof input === "function") {
|
||||
input = input();
|
||||
}
|
||||
const resolvers = (key, val) => {
|
||||
for (let i = 0; i < propResolvers.length; i++) {
|
||||
val = propResolvers[i](key, val);
|
||||
}
|
||||
return val;
|
||||
};
|
||||
input = resolvers(void 0, input);
|
||||
const tags = [];
|
||||
input = walkResolver(input, resolvers);
|
||||
Object.entries(input || {}).forEach(([key, value]) => {
|
||||
if (value === void 0)
|
||||
return;
|
||||
for (const v of Array.isArray(value) ? value : [value])
|
||||
tags.push(normalizeTag(key, v));
|
||||
});
|
||||
return tags.flat();
|
||||
}
|
||||
|
||||
export { normalizeProps as a, dedupeKey as d, hashTag as h, isMetaArrayDupeKey as i, normalizeEntryToTags as n, walkResolver as w };
|
||||
Reference in New Issue
Block a user