unhead 1.1.22 → 1.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +52 -46
- package/dist/index.d.ts +4 -6
- package/dist/index.mjs +53 -48
- package/package.json +6 -6
package/dist/index.cjs
CHANGED
|
@@ -99,31 +99,18 @@ const DeprecatedTagAttrPlugin = () => {
|
|
|
99
99
|
});
|
|
100
100
|
};
|
|
101
101
|
|
|
102
|
-
const
|
|
103
|
-
|
|
102
|
+
const DupeableTags = ["link", "style", "script", "noscript"];
|
|
104
103
|
const ProvideTagHashPlugin = () => {
|
|
105
104
|
return shared.defineHeadPlugin({
|
|
106
105
|
hooks: {
|
|
107
|
-
"tag:normalise": (
|
|
108
|
-
const { tag, entry, resolvedOptions } = ctx;
|
|
106
|
+
"tag:normalise": ({ tag, resolvedOptions }) => {
|
|
109
107
|
if (resolvedOptions.experimentalHashHydration === true) {
|
|
110
108
|
tag._h = shared.hashTag(tag);
|
|
111
109
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return;
|
|
115
|
-
if (IsBrowser || getActiveHead()?.resolvedOptions?.document)
|
|
116
|
-
return;
|
|
117
|
-
if (entry._m === "server" || isDynamic) {
|
|
118
|
-
tag._h = tag._h || shared.hashTag(tag);
|
|
110
|
+
if (tag.key && DupeableTags.includes(tag.tag)) {
|
|
111
|
+
tag._h = shared.hashCode(tag.key);
|
|
119
112
|
tag.props[`data-h-${tag._h}`] = "";
|
|
120
113
|
}
|
|
121
|
-
},
|
|
122
|
-
"tags:resolve": (ctx) => {
|
|
123
|
-
ctx.tags = ctx.tags.map((t) => {
|
|
124
|
-
delete t.props._dynamic;
|
|
125
|
-
return t;
|
|
126
|
-
});
|
|
127
114
|
}
|
|
128
115
|
}
|
|
129
116
|
});
|
|
@@ -203,13 +190,11 @@ const EventHandlersPlugin = () => {
|
|
|
203
190
|
};
|
|
204
191
|
|
|
205
192
|
const UsesMergeStrategy = ["templateParams", "htmlAttrs", "bodyAttrs"];
|
|
206
|
-
const DedupesTagsPlugin = (
|
|
207
|
-
options = options || {};
|
|
208
|
-
const dedupeKeys = options.dedupeKeys || ["hid", "vmid", "key"];
|
|
193
|
+
const DedupesTagsPlugin = () => {
|
|
209
194
|
return shared.defineHeadPlugin({
|
|
210
195
|
hooks: {
|
|
211
196
|
"tag:normalise": function({ tag }) {
|
|
212
|
-
|
|
197
|
+
["hid", "vmid", "key"].forEach((key) => {
|
|
213
198
|
if (tag.props[key]) {
|
|
214
199
|
tag.key = tag.props[key];
|
|
215
200
|
delete tag.props[key];
|
|
@@ -271,25 +256,37 @@ const DedupesTagsPlugin = (options) => {
|
|
|
271
256
|
};
|
|
272
257
|
|
|
273
258
|
function processTemplateParams(s, config) {
|
|
274
|
-
|
|
259
|
+
function sub(token) {
|
|
260
|
+
if (["s", "pageTitle"].includes(token))
|
|
261
|
+
return config.pageTitle;
|
|
275
262
|
let val;
|
|
276
|
-
if (token
|
|
277
|
-
val = config
|
|
278
|
-
else
|
|
279
|
-
val = token.split(".").reduce((acc, key) => acc[key] || "", config);
|
|
280
|
-
else
|
|
263
|
+
if (token.includes(".")) {
|
|
264
|
+
val = token.split(".").reduce((acc, key) => acc ? acc[key] || void 0 : void 0, config);
|
|
265
|
+
} else {
|
|
281
266
|
val = config[token];
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
267
|
+
}
|
|
268
|
+
return typeof val !== "undefined" ? val || "" : false;
|
|
269
|
+
}
|
|
270
|
+
let decoded = s;
|
|
271
|
+
try {
|
|
272
|
+
decoded = decodeURI(s);
|
|
273
|
+
} catch {
|
|
274
|
+
}
|
|
275
|
+
const tokens = (decoded.match(/%(\w+\.+\w+)|%(\w+)/g) || []).sort().reverse();
|
|
276
|
+
tokens.forEach((token) => {
|
|
277
|
+
const re = sub(token.slice(1));
|
|
278
|
+
if (typeof re === "string") {
|
|
279
|
+
s = s.replaceAll(new RegExp(`\\${token}(\\W|$)`, "g"), `${re}$1`).trim();
|
|
280
|
+
}
|
|
281
|
+
});
|
|
285
282
|
if (config.separator) {
|
|
286
|
-
if (
|
|
287
|
-
|
|
288
|
-
if (
|
|
289
|
-
|
|
290
|
-
|
|
283
|
+
if (s.endsWith(config.separator))
|
|
284
|
+
s = s.slice(0, -config.separator.length).trim();
|
|
285
|
+
if (s.startsWith(config.separator))
|
|
286
|
+
s = s.slice(config.separator.length).trim();
|
|
287
|
+
s = s.replace(new RegExp(`\\${config.separator}\\s*\\${config.separator}`, "g"), config.separator);
|
|
291
288
|
}
|
|
292
|
-
return
|
|
289
|
+
return s;
|
|
293
290
|
}
|
|
294
291
|
function TemplateParamsPlugin() {
|
|
295
292
|
return shared.defineHeadPlugin({
|
|
@@ -298,13 +295,15 @@ function TemplateParamsPlugin() {
|
|
|
298
295
|
const { tags } = ctx;
|
|
299
296
|
const title = tags.find((tag) => tag.tag === "title")?.textContent;
|
|
300
297
|
const idx = tags.findIndex((tag) => tag.tag === "templateParams");
|
|
301
|
-
const params = idx !== -1 ? tags[idx].
|
|
298
|
+
const params = idx !== -1 ? tags[idx].props : {};
|
|
302
299
|
params.pageTitle = params.pageTitle || title || "";
|
|
303
300
|
for (const tag of tags) {
|
|
304
301
|
if (["titleTemplate", "title"].includes(tag.tag) && typeof tag.textContent === "string") {
|
|
305
302
|
tag.textContent = processTemplateParams(tag.textContent, params);
|
|
306
303
|
} else if (tag.tag === "meta" && typeof tag.props.content === "string") {
|
|
307
304
|
tag.props.content = processTemplateParams(tag.props.content, params);
|
|
305
|
+
} else if (tag.tag === "link" && typeof tag.props.href === "string") {
|
|
306
|
+
tag.props.href = processTemplateParams(tag.props.href, params);
|
|
308
307
|
} else if (tag.tag === "script" && ["application/json", "application/ld+json"].includes(tag.props.type) && typeof tag.innerHTML === "string") {
|
|
309
308
|
try {
|
|
310
309
|
tag.innerHTML = JSON.stringify(JSON.parse(tag.innerHTML), (key, val) => {
|
|
@@ -322,6 +321,8 @@ function TemplateParamsPlugin() {
|
|
|
322
321
|
});
|
|
323
322
|
}
|
|
324
323
|
|
|
324
|
+
const IsBrowser = typeof window !== "undefined";
|
|
325
|
+
|
|
325
326
|
exports.activeHead = void 0;
|
|
326
327
|
const setActiveHead = (head) => exports.activeHead = head;
|
|
327
328
|
const getActiveHead = () => exports.activeHead;
|
|
@@ -649,19 +650,21 @@ function resolvePackedMetaObjectValue(value, key) {
|
|
|
649
650
|
|
|
650
651
|
async function normaliseTag(tagName, input) {
|
|
651
652
|
const tag = { tag: tagName, props: {} };
|
|
652
|
-
if (
|
|
653
|
+
if (tagName === "templateParams") {
|
|
654
|
+
tag.props = input;
|
|
655
|
+
return tag;
|
|
656
|
+
}
|
|
657
|
+
if (["title", "titleTemplate"].includes(tagName)) {
|
|
653
658
|
tag.textContent = input instanceof Promise ? await input : input;
|
|
654
659
|
return tag;
|
|
655
660
|
}
|
|
656
661
|
if (typeof input === "string") {
|
|
657
662
|
if (!["script", "noscript", "style"].includes(tagName))
|
|
658
663
|
return false;
|
|
659
|
-
if (tagName === "script" && (/^(https?:)?\/\//.test(input) || input.startsWith("/")))
|
|
664
|
+
if (tagName === "script" && (/^(https?:)?\/\//.test(input) || input.startsWith("/")))
|
|
660
665
|
tag.props.src = input;
|
|
661
|
-
|
|
666
|
+
else
|
|
662
667
|
tag.innerHTML = input;
|
|
663
|
-
tag.key = shared.hashCode(input);
|
|
664
|
-
}
|
|
665
668
|
return tag;
|
|
666
669
|
}
|
|
667
670
|
tag.props = await normaliseProps(tagName, { ...input });
|
|
@@ -930,10 +933,12 @@ function createHeadCore(options = {}) {
|
|
|
930
933
|
for (const entry of resolveCtx.entries) {
|
|
931
934
|
const transformer = entry._t || ((i) => i);
|
|
932
935
|
entry.resolvedInput = transformer(entry.resolvedInput || entry.input);
|
|
933
|
-
|
|
934
|
-
const
|
|
935
|
-
|
|
936
|
-
|
|
936
|
+
if (entry.resolvedInput) {
|
|
937
|
+
for (const tag of await normaliseEntryTags(entry)) {
|
|
938
|
+
const tagCtx = { tag, entry, resolvedOptions: head.resolvedOptions };
|
|
939
|
+
await hooks.callHook("tag:normalise", tagCtx);
|
|
940
|
+
resolveCtx.tags.push(tagCtx.tag);
|
|
941
|
+
}
|
|
937
942
|
}
|
|
938
943
|
}
|
|
939
944
|
await hooks.callHook("tags:resolve", resolveCtx);
|
|
@@ -1013,6 +1018,7 @@ exports.normaliseEntryTags = normaliseEntryTags;
|
|
|
1013
1018
|
exports.normaliseProps = normaliseProps;
|
|
1014
1019
|
exports.normaliseTag = normaliseTag;
|
|
1015
1020
|
exports.packMeta = packMeta;
|
|
1021
|
+
exports.processTemplateParams = processTemplateParams;
|
|
1016
1022
|
exports.resolveMetaKeyType = resolveMetaKeyType;
|
|
1017
1023
|
exports.resolveMetaKeyValue = resolveMetaKeyValue;
|
|
1018
1024
|
exports.resolvePackedMetaObjectValue = resolvePackedMetaObjectValue;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _unhead_schema from '@unhead/schema';
|
|
2
|
-
import { HeadTag, Head, HeadEntryOptions, ActiveHeadEntry, HeadSafe, MetaFlatInput, Title, TitleTemplate, Base, Meta, Link, Script, Style, Noscript, HtmlAttributes, BodyAttributes, Unhead, HeadPlugin, CreateHeadOptions, HeadEntry, MaybeArray } from '@unhead/schema';
|
|
2
|
+
import { HeadTag, TemplateParams, Head, HeadEntryOptions, ActiveHeadEntry, HeadSafe, MetaFlatInput, Title, TitleTemplate, Base, Meta, Link, Script, Style, Noscript, HtmlAttributes, BodyAttributes, Unhead, HeadPlugin, CreateHeadOptions, HeadEntry, MaybeArray } from '@unhead/schema';
|
|
3
3
|
import { Arrayable } from '@unhead/shared';
|
|
4
4
|
|
|
5
5
|
declare const TAG_WEIGHTS: {
|
|
@@ -30,11 +30,9 @@ declare const ProvideTagHashPlugin: () => _unhead_schema.HeadPlugin;
|
|
|
30
30
|
*/
|
|
31
31
|
declare const EventHandlersPlugin: () => _unhead_schema.HeadPlugin;
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
dedupeKeys?: string[];
|
|
35
|
-
}
|
|
36
|
-
declare const DedupesTagsPlugin: (options?: DedupesTagsPluginOptions) => _unhead_schema.HeadPlugin;
|
|
33
|
+
declare const DedupesTagsPlugin: () => _unhead_schema.HeadPlugin;
|
|
37
34
|
|
|
35
|
+
declare function processTemplateParams(s: string, config: TemplateParams): string;
|
|
38
36
|
declare function TemplateParamsPlugin(): _unhead_schema.HeadPlugin;
|
|
39
37
|
|
|
40
38
|
declare function useHead<T extends Head>(input: T, options?: HeadEntryOptions): ActiveHeadEntry<T> | void;
|
|
@@ -187,4 +185,4 @@ declare function normaliseEntryTags<T extends {} = Head>(e: HeadEntry<T>): Promi
|
|
|
187
185
|
|
|
188
186
|
declare function whitelistSafeInput(input: Record<string, MaybeArray<Record<string, string>>>): HeadSafe;
|
|
189
187
|
|
|
190
|
-
export { CorePlugins, DOMPlugins, DedupesTagsPlugin,
|
|
188
|
+
export { CorePlugins, DOMPlugins, DedupesTagsPlugin, DeprecatedTagAttrPlugin, EventHandlersPlugin, ProvideTagHashPlugin, SortModifiers, SortTagsPlugin, TAG_WEIGHTS, TagEntityBits, TemplateParamsPlugin, TitleTemplatePlugin, UseSeoMetaInput, activeHead, composableNames, createHead, createHeadCore, createServerHead, getActiveHead, normaliseClassProp, normaliseEntryTags, normaliseProps, normaliseTag, packMeta, processTemplateParams, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, setActiveHead, tagWeight, unheadComposablesImports, unpackMeta, useBodyAttrs, useHead, useHeadSafe, useHtmlAttrs, useSeoMeta, useServerBodyAttrs, useServerHead, useServerHeadSafe, useServerHtmlAttrs, useServerSeoMeta, useServerTagBase, useServerTagLink, useServerTagMeta, useServerTagMetaFlat, useServerTagNoscript, useServerTagScript, useServerTagStyle, useServerTagTitle, useServerTitleTemplate, useTagBase, useTagLink, useTagMeta, useTagMetaFlat, useTagNoscript, useTagScript, useTagStyle, useTagTitle, useTitleTemplate, whitelistSafeInput };
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHooks } from 'hookable';
|
|
2
2
|
import { PatchDomOnEntryUpdatesPlugin, maybeGetSSRHash } from '@unhead/dom';
|
|
3
|
-
import { defineHeadPlugin, resolveTitleTemplate, hashTag,
|
|
3
|
+
import { defineHeadPlugin, resolveTitleTemplate, hashTag, hashCode, tagDedupeKey, asArray as asArray$1, TagConfigKeys, TagsWithInnerContent, ValidHeadTags } from '@unhead/shared';
|
|
4
4
|
|
|
5
5
|
const TAG_WEIGHTS = {
|
|
6
6
|
// aliases
|
|
@@ -97,31 +97,18 @@ const DeprecatedTagAttrPlugin = () => {
|
|
|
97
97
|
});
|
|
98
98
|
};
|
|
99
99
|
|
|
100
|
-
const
|
|
101
|
-
|
|
100
|
+
const DupeableTags = ["link", "style", "script", "noscript"];
|
|
102
101
|
const ProvideTagHashPlugin = () => {
|
|
103
102
|
return defineHeadPlugin({
|
|
104
103
|
hooks: {
|
|
105
|
-
"tag:normalise": (
|
|
106
|
-
const { tag, entry, resolvedOptions } = ctx;
|
|
104
|
+
"tag:normalise": ({ tag, resolvedOptions }) => {
|
|
107
105
|
if (resolvedOptions.experimentalHashHydration === true) {
|
|
108
106
|
tag._h = hashTag(tag);
|
|
109
107
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
return;
|
|
113
|
-
if (IsBrowser || getActiveHead()?.resolvedOptions?.document)
|
|
114
|
-
return;
|
|
115
|
-
if (entry._m === "server" || isDynamic) {
|
|
116
|
-
tag._h = tag._h || hashTag(tag);
|
|
108
|
+
if (tag.key && DupeableTags.includes(tag.tag)) {
|
|
109
|
+
tag._h = hashCode(tag.key);
|
|
117
110
|
tag.props[`data-h-${tag._h}`] = "";
|
|
118
111
|
}
|
|
119
|
-
},
|
|
120
|
-
"tags:resolve": (ctx) => {
|
|
121
|
-
ctx.tags = ctx.tags.map((t) => {
|
|
122
|
-
delete t.props._dynamic;
|
|
123
|
-
return t;
|
|
124
|
-
});
|
|
125
112
|
}
|
|
126
113
|
}
|
|
127
114
|
});
|
|
@@ -201,13 +188,11 @@ const EventHandlersPlugin = () => {
|
|
|
201
188
|
};
|
|
202
189
|
|
|
203
190
|
const UsesMergeStrategy = ["templateParams", "htmlAttrs", "bodyAttrs"];
|
|
204
|
-
const DedupesTagsPlugin = (
|
|
205
|
-
options = options || {};
|
|
206
|
-
const dedupeKeys = options.dedupeKeys || ["hid", "vmid", "key"];
|
|
191
|
+
const DedupesTagsPlugin = () => {
|
|
207
192
|
return defineHeadPlugin({
|
|
208
193
|
hooks: {
|
|
209
194
|
"tag:normalise": function({ tag }) {
|
|
210
|
-
|
|
195
|
+
["hid", "vmid", "key"].forEach((key) => {
|
|
211
196
|
if (tag.props[key]) {
|
|
212
197
|
tag.key = tag.props[key];
|
|
213
198
|
delete tag.props[key];
|
|
@@ -269,25 +254,37 @@ const DedupesTagsPlugin = (options) => {
|
|
|
269
254
|
};
|
|
270
255
|
|
|
271
256
|
function processTemplateParams(s, config) {
|
|
272
|
-
|
|
257
|
+
function sub(token) {
|
|
258
|
+
if (["s", "pageTitle"].includes(token))
|
|
259
|
+
return config.pageTitle;
|
|
273
260
|
let val;
|
|
274
|
-
if (token
|
|
275
|
-
val = config
|
|
276
|
-
else
|
|
277
|
-
val = token.split(".").reduce((acc, key) => acc[key] || "", config);
|
|
278
|
-
else
|
|
261
|
+
if (token.includes(".")) {
|
|
262
|
+
val = token.split(".").reduce((acc, key) => acc ? acc[key] || void 0 : void 0, config);
|
|
263
|
+
} else {
|
|
279
264
|
val = config[token];
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
265
|
+
}
|
|
266
|
+
return typeof val !== "undefined" ? val || "" : false;
|
|
267
|
+
}
|
|
268
|
+
let decoded = s;
|
|
269
|
+
try {
|
|
270
|
+
decoded = decodeURI(s);
|
|
271
|
+
} catch {
|
|
272
|
+
}
|
|
273
|
+
const tokens = (decoded.match(/%(\w+\.+\w+)|%(\w+)/g) || []).sort().reverse();
|
|
274
|
+
tokens.forEach((token) => {
|
|
275
|
+
const re = sub(token.slice(1));
|
|
276
|
+
if (typeof re === "string") {
|
|
277
|
+
s = s.replaceAll(new RegExp(`\\${token}(\\W|$)`, "g"), `${re}$1`).trim();
|
|
278
|
+
}
|
|
279
|
+
});
|
|
283
280
|
if (config.separator) {
|
|
284
|
-
if (
|
|
285
|
-
|
|
286
|
-
if (
|
|
287
|
-
|
|
288
|
-
|
|
281
|
+
if (s.endsWith(config.separator))
|
|
282
|
+
s = s.slice(0, -config.separator.length).trim();
|
|
283
|
+
if (s.startsWith(config.separator))
|
|
284
|
+
s = s.slice(config.separator.length).trim();
|
|
285
|
+
s = s.replace(new RegExp(`\\${config.separator}\\s*\\${config.separator}`, "g"), config.separator);
|
|
289
286
|
}
|
|
290
|
-
return
|
|
287
|
+
return s;
|
|
291
288
|
}
|
|
292
289
|
function TemplateParamsPlugin() {
|
|
293
290
|
return defineHeadPlugin({
|
|
@@ -296,13 +293,15 @@ function TemplateParamsPlugin() {
|
|
|
296
293
|
const { tags } = ctx;
|
|
297
294
|
const title = tags.find((tag) => tag.tag === "title")?.textContent;
|
|
298
295
|
const idx = tags.findIndex((tag) => tag.tag === "templateParams");
|
|
299
|
-
const params = idx !== -1 ? tags[idx].
|
|
296
|
+
const params = idx !== -1 ? tags[idx].props : {};
|
|
300
297
|
params.pageTitle = params.pageTitle || title || "";
|
|
301
298
|
for (const tag of tags) {
|
|
302
299
|
if (["titleTemplate", "title"].includes(tag.tag) && typeof tag.textContent === "string") {
|
|
303
300
|
tag.textContent = processTemplateParams(tag.textContent, params);
|
|
304
301
|
} else if (tag.tag === "meta" && typeof tag.props.content === "string") {
|
|
305
302
|
tag.props.content = processTemplateParams(tag.props.content, params);
|
|
303
|
+
} else if (tag.tag === "link" && typeof tag.props.href === "string") {
|
|
304
|
+
tag.props.href = processTemplateParams(tag.props.href, params);
|
|
306
305
|
} else if (tag.tag === "script" && ["application/json", "application/ld+json"].includes(tag.props.type) && typeof tag.innerHTML === "string") {
|
|
307
306
|
try {
|
|
308
307
|
tag.innerHTML = JSON.stringify(JSON.parse(tag.innerHTML), (key, val) => {
|
|
@@ -320,6 +319,8 @@ function TemplateParamsPlugin() {
|
|
|
320
319
|
});
|
|
321
320
|
}
|
|
322
321
|
|
|
322
|
+
const IsBrowser = typeof window !== "undefined";
|
|
323
|
+
|
|
323
324
|
let activeHead;
|
|
324
325
|
const setActiveHead = (head) => activeHead = head;
|
|
325
326
|
const getActiveHead = () => activeHead;
|
|
@@ -647,19 +648,21 @@ function resolvePackedMetaObjectValue(value, key) {
|
|
|
647
648
|
|
|
648
649
|
async function normaliseTag(tagName, input) {
|
|
649
650
|
const tag = { tag: tagName, props: {} };
|
|
650
|
-
if (
|
|
651
|
+
if (tagName === "templateParams") {
|
|
652
|
+
tag.props = input;
|
|
653
|
+
return tag;
|
|
654
|
+
}
|
|
655
|
+
if (["title", "titleTemplate"].includes(tagName)) {
|
|
651
656
|
tag.textContent = input instanceof Promise ? await input : input;
|
|
652
657
|
return tag;
|
|
653
658
|
}
|
|
654
659
|
if (typeof input === "string") {
|
|
655
660
|
if (!["script", "noscript", "style"].includes(tagName))
|
|
656
661
|
return false;
|
|
657
|
-
if (tagName === "script" && (/^(https?:)?\/\//.test(input) || input.startsWith("/")))
|
|
662
|
+
if (tagName === "script" && (/^(https?:)?\/\//.test(input) || input.startsWith("/")))
|
|
658
663
|
tag.props.src = input;
|
|
659
|
-
|
|
664
|
+
else
|
|
660
665
|
tag.innerHTML = input;
|
|
661
|
-
tag.key = hashCode(input);
|
|
662
|
-
}
|
|
663
666
|
return tag;
|
|
664
667
|
}
|
|
665
668
|
tag.props = await normaliseProps(tagName, { ...input });
|
|
@@ -928,10 +931,12 @@ function createHeadCore(options = {}) {
|
|
|
928
931
|
for (const entry of resolveCtx.entries) {
|
|
929
932
|
const transformer = entry._t || ((i) => i);
|
|
930
933
|
entry.resolvedInput = transformer(entry.resolvedInput || entry.input);
|
|
931
|
-
|
|
932
|
-
const
|
|
933
|
-
|
|
934
|
-
|
|
934
|
+
if (entry.resolvedInput) {
|
|
935
|
+
for (const tag of await normaliseEntryTags(entry)) {
|
|
936
|
+
const tagCtx = { tag, entry, resolvedOptions: head.resolvedOptions };
|
|
937
|
+
await hooks.callHook("tag:normalise", tagCtx);
|
|
938
|
+
resolveCtx.tags.push(tagCtx.tag);
|
|
939
|
+
}
|
|
935
940
|
}
|
|
936
941
|
}
|
|
937
942
|
await hooks.callHook("tags:resolve", resolveCtx);
|
|
@@ -989,4 +994,4 @@ const unheadComposablesImports = [
|
|
|
989
994
|
}
|
|
990
995
|
];
|
|
991
996
|
|
|
992
|
-
export { CorePlugins, DOMPlugins, DedupesTagsPlugin, DeprecatedTagAttrPlugin, EventHandlersPlugin, ProvideTagHashPlugin, SortModifiers, SortTagsPlugin, TAG_WEIGHTS, TagEntityBits, TemplateParamsPlugin, TitleTemplatePlugin, activeHead, composableNames, createHead, createHeadCore, createServerHead, getActiveHead, normaliseClassProp, normaliseEntryTags, normaliseProps, normaliseTag, packMeta, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, setActiveHead, tagWeight, unheadComposablesImports, unpackMeta, useBodyAttrs, useHead, useHeadSafe, useHtmlAttrs, useSeoMeta, useServerBodyAttrs, useServerHead, useServerHeadSafe, useServerHtmlAttrs, useServerSeoMeta, useServerTagBase, useServerTagLink, useServerTagMeta, useServerTagMetaFlat, useServerTagNoscript, useServerTagScript, useServerTagStyle, useServerTagTitle, useServerTitleTemplate, useTagBase, useTagLink, useTagMeta, useTagMetaFlat, useTagNoscript, useTagScript, useTagStyle, useTagTitle, useTitleTemplate, whitelistSafeInput };
|
|
997
|
+
export { CorePlugins, DOMPlugins, DedupesTagsPlugin, DeprecatedTagAttrPlugin, EventHandlersPlugin, ProvideTagHashPlugin, SortModifiers, SortTagsPlugin, TAG_WEIGHTS, TagEntityBits, TemplateParamsPlugin, TitleTemplatePlugin, activeHead, composableNames, createHead, createHeadCore, createServerHead, getActiveHead, normaliseClassProp, normaliseEntryTags, normaliseProps, normaliseTag, packMeta, processTemplateParams, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, setActiveHead, tagWeight, unheadComposablesImports, unpackMeta, useBodyAttrs, useHead, useHeadSafe, useHtmlAttrs, useSeoMeta, useServerBodyAttrs, useServerHead, useServerHeadSafe, useServerHtmlAttrs, useServerSeoMeta, useServerTagBase, useServerTagLink, useServerTagMeta, useServerTagMetaFlat, useServerTagNoscript, useServerTagScript, useServerTagStyle, useServerTagTitle, useServerTitleTemplate, useTagBase, useTagLink, useTagMeta, useTagMetaFlat, useTagNoscript, useTagScript, useTagStyle, useTagTitle, useTitleTemplate, whitelistSafeInput };
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unhead",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.1.
|
|
5
|
-
"packageManager": "pnpm@7.
|
|
4
|
+
"version": "1.1.25",
|
|
5
|
+
"packageManager": "pnpm@7.30.0",
|
|
6
6
|
"author": "Harlan Wilton <harlan@harlanzw.com>",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"funding": "https://github.com/sponsors/harlan-zw",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"dist"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"hookable": "^5.
|
|
34
|
-
"@unhead/dom": "1.1.
|
|
35
|
-
"@unhead/schema": "1.1.
|
|
36
|
-
"@unhead/shared": "1.1.
|
|
33
|
+
"hookable": "^5.5.1",
|
|
34
|
+
"@unhead/dom": "1.1.25",
|
|
35
|
+
"@unhead/schema": "1.1.25",
|
|
36
|
+
"@unhead/shared": "1.1.25"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"packrup": "^0.1.0"
|