import { d as defineHeadPlugin } from './unhead.CApf5sj3.mjs'; import { s as sortTags } from './unhead.DZbvapt-.mjs'; import { p as processTemplateParams } from './unhead.kVuXtrDW.mjs'; const formatKey = (k) => !k.includes(":key") ? k.split(":").join(":key:") : k; const AliasSortingPlugin = defineHeadPlugin({ key: "aliasSorting", hooks: { "tags:resolve": (ctx) => { let m = false; for (const t of ctx.tags) { const p = t.tagPriority; if (!p) continue; const s = String(p); if (s.startsWith("before:")) { const k = formatKey(s.slice(7)); const l = ctx.tagMap.get(k); if (l) { if (typeof l.tagPriority === "number") t.tagPriority = l.tagPriority; t._p = l._p - 1; m = true; } } else if (s.startsWith("after:")) { const k = formatKey(s.slice(6)); const l = ctx.tagMap.get(k); if (l) { if (typeof l.tagPriority === "number") t.tagPriority = l.tagPriority; t._p = l._p + 1; m = true; } } } if (m) ctx.tags = ctx.tags.sort(sortTags); } } }); const DeprecationsPlugin = /* @__PURE__ */ defineHeadPlugin({ key: "deprecations", hooks: { "entries:normalize": ({ tags }) => { for (const tag of tags) { if (tag.props.children) { tag.innerHTML = tag.props.children; delete tag.props.children; } if (tag.props.hid) { tag.key = tag.props.hid; delete tag.props.hid; } if (tag.props.vmid) { tag.key = tag.props.vmid; delete tag.props.vmid; } if (tag.props.body) { tag.tagPosition = "bodyClose"; delete tag.props.body; } } } } }); async function walkPromises(v) { const type = typeof v; if (type === "function") { return v; } if (v instanceof Promise) { return await v; } if (Array.isArray(v)) { return await Promise.all(v.map((r) => walkPromises(r))); } if (v?.constructor === Object) { const next = {}; for (const key of Object.keys(v)) { next[key] = await walkPromises(v[key]); } return next; } return v; } const PromisesPlugin = /* @__PURE__ */ defineHeadPlugin({ key: "promises", hooks: { "entries:resolve": async (ctx) => { const promises = []; for (const k in ctx.entries) { if (!ctx.entries[k]._promisesProcessed) { promises.push( walkPromises(ctx.entries[k].input).then((val) => { ctx.entries[k].input = val; ctx.entries[k]._promisesProcessed = true; }) ); } } await Promise.all(promises); } } }); const SupportedAttrs = { meta: "content", link: "href", htmlAttrs: "lang" }; const contentAttrs = ["innerHTML", "textContent"]; const TemplateParamsPlugin = /* @__PURE__ */ defineHeadPlugin((head) => { return { key: "template-params", hooks: { "tags:resolve": ({ tagMap, tags }) => { const params = tagMap.get("templateParams")?.props || {}; const sep = params.separator || "|"; delete params.separator; params.pageTitle = processTemplateParams( // find templateParams params.pageTitle || head._title || "", params, sep ); for (const tag of tags) { if (tag.processTemplateParams === false) { continue; } const v = SupportedAttrs[tag.tag]; if (v && typeof tag.props[v] === "string") { tag.props[v] = processTemplateParams(tag.props[v], params, sep); } else if (tag.processTemplateParams || tag.tag === "titleTemplate" || tag.tag === "title") { for (const p of contentAttrs) { if (typeof tag[p] === "string") tag[p] = processTemplateParams(tag[p], params, sep, tag.tag === "script" && tag.props.type.endsWith("json")); } } } head._templateParams = params; head._separator = sep; }, "tags:afterResolve": ({ tagMap }) => { const title = tagMap.get("title"); if (title?.textContent && title.processTemplateParams !== false) { title.textContent = processTemplateParams(title.textContent, head._templateParams, head._separator); } } } }; }); export { AliasSortingPlugin as A, DeprecationsPlugin as D, PromisesPlugin as P, TemplateParamsPlugin as T };