unhead 3.0.1 → 3.0.3

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.
Files changed (47) hide show
  1. package/dist/client.d.mts +5 -5
  2. package/dist/client.d.ts +5 -5
  3. package/dist/client.mjs +6 -63
  4. package/dist/index.d.mts +6 -7
  5. package/dist/index.d.ts +6 -7
  6. package/dist/index.mjs +2 -1
  7. package/dist/legacy.d.mts +26 -0
  8. package/dist/legacy.d.ts +26 -0
  9. package/dist/legacy.mjs +63 -0
  10. package/dist/parser.d.mts +1 -1
  11. package/dist/parser.d.ts +1 -1
  12. package/dist/plugins.d.mts +2 -2
  13. package/dist/plugins.d.ts +2 -2
  14. package/dist/plugins.mjs +5 -129
  15. package/dist/scripts.d.mts +4 -4
  16. package/dist/scripts.d.ts +4 -4
  17. package/dist/server.d.mts +4 -4
  18. package/dist/server.d.ts +4 -4
  19. package/dist/shared/{unhead.D_bywjUE.mjs → unhead.A4ndrqqe.mjs} +2 -5
  20. package/dist/shared/{unhead.dhQT0IKI.d.mts → unhead.BAm7OHQx.d.mts} +1 -1
  21. package/dist/shared/unhead.BHSg79VK.d.ts +6 -0
  22. package/dist/shared/{unhead.JGBJYEOZ.d.ts → unhead.BPps6U7z.d.ts} +1 -1
  23. package/dist/shared/{unhead.UFdAtJOd.d.ts → unhead.BTcZ161H.d.ts} +1 -1
  24. package/dist/shared/unhead.BdWlwKav.d.mts +6 -0
  25. package/dist/shared/{unhead.BRPfhzdc.d.ts → unhead.BkiQF63F.d.ts} +2 -2
  26. package/dist/shared/unhead.CH30252c.mjs +129 -0
  27. package/dist/shared/{unhead.BxsOjg-Q.d.mts → unhead.CSqfLsrn.d.mts} +2 -2
  28. package/dist/shared/unhead.CUXLLRtV.mjs +5 -0
  29. package/dist/shared/{unhead.BEof8Qjb.d.ts → unhead.CZmLNN-R.d.ts} +1 -1
  30. package/dist/shared/{unhead.5pUZeb0i.d.mts → unhead.DBv5uRwR.d.mts} +56 -27
  31. package/dist/shared/{unhead.5pUZeb0i.d.ts → unhead.DBv5uRwR.d.ts} +56 -27
  32. package/dist/shared/{unhead.CyKsApKH.d.mts → unhead.DFLvtb3Z.d.mts} +1 -1
  33. package/dist/shared/{unhead.D_sLwV5L.d.ts → unhead.DMQDfSsC.d.ts} +2 -2
  34. package/dist/shared/{unhead.BAv4ddL5.d.mts → unhead.DR0woClT.d.mts} +1 -1
  35. package/dist/shared/{unhead.vQPF0cJs.d.ts → unhead.DeVAJflP.d.ts} +1 -1
  36. package/dist/shared/unhead.YnmwhfIN.mjs +64 -0
  37. package/dist/shared/{unhead.DvMT2vYs.d.mts → unhead.myNKutCo.d.mts} +2 -2
  38. package/dist/shared/{unhead.CUEmFl2d.d.mts → unhead.vAjfKrQR.d.mts} +1 -1
  39. package/dist/stream/client.d.mts +3 -3
  40. package/dist/stream/client.d.ts +3 -3
  41. package/dist/stream/server.d.mts +3 -3
  42. package/dist/stream/server.d.ts +3 -3
  43. package/dist/types.d.mts +6 -6
  44. package/dist/types.d.ts +6 -6
  45. package/dist/utils.d.mts +2 -2
  46. package/dist/utils.d.ts +2 -2
  47. package/package.json +8 -1
@@ -0,0 +1,129 @@
1
+ import { d as defineHeadPlugin } from './unhead.CUXLLRtV.mjs';
2
+ import { p as processTemplateParams } from './unhead.BGFxPGPQ.mjs';
3
+
4
+ const sortTags = (a, b) => a._w === b._w ? a._p - b._p : a._w - b._w;
5
+ const formatKey = (k) => !k.includes(":key") ? k.split(":").join(":key:") : k;
6
+ const AliasSortingPlugin = defineHeadPlugin({
7
+ key: "aliasSorting",
8
+ hooks: {
9
+ "tags:resolve": (ctx) => {
10
+ let m = false;
11
+ for (const t of ctx.tags) {
12
+ const p = t.tagPriority;
13
+ if (!p)
14
+ continue;
15
+ const s = String(p);
16
+ if (s.startsWith("before:")) {
17
+ const k = formatKey(s.slice(7));
18
+ const l = ctx.tagMap.get(k);
19
+ if (l) {
20
+ if (typeof l.tagPriority === "number")
21
+ t.tagPriority = l.tagPriority;
22
+ t._p = l._p - 1;
23
+ m = true;
24
+ }
25
+ } else if (s.startsWith("after:")) {
26
+ const k = formatKey(s.slice(6));
27
+ const l = ctx.tagMap.get(k);
28
+ if (l) {
29
+ if (typeof l.tagPriority === "number")
30
+ t.tagPriority = l.tagPriority;
31
+ t._p = l._p + 1;
32
+ m = true;
33
+ }
34
+ }
35
+ }
36
+ if (m)
37
+ ctx.tags = ctx.tags.sort(sortTags);
38
+ }
39
+ }
40
+ });
41
+
42
+ async function walkPromises(v) {
43
+ const type = typeof v;
44
+ if (type === "function") {
45
+ return v;
46
+ }
47
+ if (v instanceof Promise) {
48
+ return await v;
49
+ }
50
+ if (Array.isArray(v)) {
51
+ return await Promise.all(v.map((r) => walkPromises(r)));
52
+ }
53
+ if (v?.constructor === Object) {
54
+ const next = {};
55
+ for (const key of Object.keys(v)) {
56
+ next[key] = await walkPromises(v[key]);
57
+ }
58
+ return next;
59
+ }
60
+ return v;
61
+ }
62
+ const PromisesPlugin = /* @__PURE__ */ defineHeadPlugin({
63
+ key: "promises",
64
+ hooks: {
65
+ "entries:resolve": async (ctx) => {
66
+ const promises = [];
67
+ for (const k in ctx.entries) {
68
+ if (!ctx.entries[k]._promisesProcessed) {
69
+ promises.push(
70
+ walkPromises(ctx.entries[k].input).then((val) => {
71
+ ctx.entries[k].input = val;
72
+ ctx.entries[k]._promisesProcessed = true;
73
+ })
74
+ );
75
+ }
76
+ }
77
+ await Promise.all(promises);
78
+ }
79
+ }
80
+ });
81
+
82
+ const SupportedAttrs = {
83
+ meta: "content",
84
+ link: "href",
85
+ htmlAttrs: "lang"
86
+ };
87
+ const contentAttrs = ["innerHTML", "textContent"];
88
+ const TemplateParamsPlugin = /* @__PURE__ */ defineHeadPlugin((head) => {
89
+ return {
90
+ key: "template-params",
91
+ hooks: {
92
+ "tags:resolve": ({ tagMap, tags }) => {
93
+ const params = tagMap.get("templateParams")?.props || {};
94
+ const sep = params.separator || "|";
95
+ delete params.separator;
96
+ params.pageTitle = processTemplateParams(
97
+ // find templateParams
98
+ params.pageTitle || head._title || "",
99
+ params,
100
+ sep
101
+ );
102
+ for (const tag of tags) {
103
+ if (tag.processTemplateParams === false) {
104
+ continue;
105
+ }
106
+ const v = SupportedAttrs[tag.tag];
107
+ if (v && typeof tag.props[v] === "string") {
108
+ tag.props[v] = processTemplateParams(tag.props[v], params, sep);
109
+ } else if (tag.processTemplateParams || tag.tag === "titleTemplate" || tag.tag === "title") {
110
+ for (const p of contentAttrs) {
111
+ if (typeof tag[p] === "string")
112
+ tag[p] = processTemplateParams(tag[p], params, sep, tag.tag === "script" && tag.props.type.endsWith("json"));
113
+ }
114
+ }
115
+ }
116
+ head._templateParams = params;
117
+ head._separator = sep;
118
+ },
119
+ "tags:afterResolve": ({ tagMap }) => {
120
+ const title = tagMap.get("title");
121
+ if (title?.textContent && title.processTemplateParams !== false) {
122
+ title.textContent = processTemplateParams(title.textContent, head._templateParams, head._separator);
123
+ }
124
+ }
125
+ }
126
+ };
127
+ });
128
+
129
+ export { AliasSortingPlugin as A, PromisesPlugin as P, TemplateParamsPlugin as T };
@@ -1,6 +1,6 @@
1
1
  import { HookableCore } from 'hookable';
2
- import { U as Unhead, C as ClientHeadHooks, c as CreateClientHeadOptions } from './unhead.CyKsApKH.mjs';
3
- import { as as ResolvableHead } from './unhead.5pUZeb0i.mjs';
2
+ import { U as Unhead, C as ClientHeadHooks, c as CreateClientHeadOptions } from './unhead.DFLvtb3Z.mjs';
3
+ import { at as ResolvableHead } from './unhead.DBv5uRwR.mjs';
4
4
 
5
5
  interface ClientUnhead<T = ResolvableHead> extends Unhead<T, boolean> {
6
6
  hooks: HookableCore<ClientHeadHooks>;
@@ -0,0 +1,5 @@
1
+ function defineHeadPlugin(plugin) {
2
+ return plugin;
3
+ }
4
+
5
+ export { defineHeadPlugin as d };
@@ -1,5 +1,5 @@
1
1
  import { HookableCore } from 'hookable';
2
- import { q as GenericScript, aJ as ScriptHttpEvents, D as DataKeys, Z as MaybeEventFnHandlers, w as HttpEventAttributes, aG as SchemaAugmentations, s as HeadTag, as as ResolvableHead, aS as TagPosition, aT as TagPriority, an as ProcessesTemplateParams, aF as ResolvesDuplicates, aV as TemplateParams } from './unhead.5pUZeb0i.js';
2
+ import { r as GenericScript, aK as ScriptHttpEvents, D as DataKeys, _ as MaybeEventFnHandlers, x as HttpEventAttributes, aH as SchemaAugmentations, t as HeadTag, at as ResolvableHead, aT as TagPosition, aU as TagPriority, ao as ProcessesTemplateParams, aG as ResolvesDuplicates, aW as TemplateParams } from './unhead.DBv5uRwR.js';
3
3
 
4
4
  type UseScriptStatus = 'awaitingLoad' | 'loading' | 'loaded' | 'error' | 'removed';
5
5
  type UseScriptContext<T extends Record<symbol | string, any>> = ScriptInstance<T>;
@@ -16,6 +16,14 @@ type _ResolvablePropertiesRaw<T> = {
16
16
  };
17
17
  type ResolvableProperties<T> = Prettify<_ResolvablePropertiesRaw<T>>;
18
18
  type ResolvableUnion<T> = T extends string | number | boolean ? ResolvableValue<T> : T extends object ? DeepResolvableProperties<T> : ResolvableValue<T>;
19
+ /**
20
+ * Recursively marks all properties and arrays as readonly.
21
+ * Applied to `InferScript`/`InferLink` return types so that
22
+ * `defineScript`/`defineLink` accept both mutable and `as const` inputs.
23
+ */
24
+ type DeepReadonly<T> = T extends (...a: any[]) => any ? T : T extends ReadonlyArray<infer U> ? readonly DeepReadonly<U>[] : T extends object ? {
25
+ readonly [K in keyof T]: DeepReadonly<T[K]>;
26
+ } : T;
19
27
  type DeepResolvableProperties<T> = {
20
28
  [K in keyof T]?: T[K] extends string | object ? T[K] extends string ? ResolvableUnion<T[K]> : T[K] extends object ? DeepResolvableProperties<T[K]> : ResolvableUnion<T[K]> : ResolvableUnion<T[K]>;
21
29
  };
@@ -1019,7 +1027,7 @@ type MatchLinkByRel<R> = Link extends infer M ? M extends {
1019
1027
  */
1020
1028
  type InferLink<T> = T extends {
1021
1029
  rel: infer R;
1022
- } ? R extends KnownLinkRel ? MatchLinkByRel<R> : R extends string ? GenericLink & {
1030
+ } ? R extends KnownLinkRel ? DeepReadonly<MatchLinkByRel<R>> : R extends string ? DeepReadonly<GenericLink> & {
1023
1031
  rel: R;
1024
1032
  } : never : never;
1025
1033
 
@@ -1134,7 +1142,7 @@ interface MetaFlatArticle {
1134
1142
  * Writers of the article.
1135
1143
  * @example ['https://example.com/some.html', 'https://example.com/one.html']
1136
1144
  */
1137
- articleAuthor?: string[];
1145
+ articleAuthor?: readonly string[];
1138
1146
  /**
1139
1147
  * When the article is out of date after.
1140
1148
  * @example '1970-01-01T00:00:00.000Z'
@@ -1159,14 +1167,14 @@ interface MetaFlatArticle {
1159
1167
  * Tag words associated with this article.
1160
1168
  * @example ['Apple', 'Steve Jobs']
1161
1169
  */
1162
- articleTag?: string[];
1170
+ articleTag?: readonly string[];
1163
1171
  }
1164
1172
  interface MetaFlatBook {
1165
1173
  /**
1166
1174
  * Who wrote this book.
1167
1175
  * @example ['https://example.com/some.html', 'https://example.com/one.html']
1168
1176
  */
1169
- bookAuthor?: string[];
1177
+ bookAuthor?: readonly string[];
1170
1178
  /**
1171
1179
  * The ISBN.
1172
1180
  * @example '978-3-16-148410-0'
@@ -1181,7 +1189,7 @@ interface MetaFlatBook {
1181
1189
  * Tag words associated with this book.
1182
1190
  * @example ['Apple', 'Steve Jobs']
1183
1191
  */
1184
- bookTag?: string[];
1192
+ bookTag?: readonly string[];
1185
1193
  }
1186
1194
  interface MetaFlatProfile {
1187
1195
  /**
@@ -2125,12 +2133,41 @@ type NoscriptContent = {
2125
2133
  type Noscript = Pick<GlobalAttributes, 'id' | 'class' | 'style'> & NoscriptContent;
2126
2134
 
2127
2135
  interface SpeculationRules {
2128
- prefetch?: (SpeculationRuleList | SpeculationRuleDocument)[];
2129
- prerender?: (SpeculationRuleList | SpeculationRuleDocument)[];
2136
+ prefetch?: readonly SpeculationRule[];
2137
+ prerender?: readonly SpeculationRule[];
2130
2138
  }
2131
- interface SpeculationRuleBase {
2139
+ /**
2140
+ * A single speculation rule entry.
2141
+ *
2142
+ * List rules provide explicit `urls`; document rules provide a `where` selector.
2143
+ * Both shapes share the same interface so TypeScript doesn't require exact
2144
+ * literal `source` values, which avoids widening issues inside `useHead`.
2145
+ *
2146
+ * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md
2147
+ */
2148
+ interface SpeculationRule {
2149
+ /**
2150
+ * The rule source type.
2151
+ *
2152
+ * `'list'` for explicit URL lists, `'document'` for selector-based rules.
2153
+ *
2154
+ * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md
2155
+ */
2156
+ source?: 'list' | 'document' | (string & Record<never, never>);
2132
2157
  /**
2133
- * A hint about how likely the user is to navigate to the URL
2158
+ * Explicit URLs to speculate on (list rules).
2159
+ *
2160
+ * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#list-rules
2161
+ */
2162
+ urls?: readonly string[];
2163
+ /**
2164
+ * Selector conditions for document rules.
2165
+ *
2166
+ * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#document-rules
2167
+ */
2168
+ where?: SpeculationRuleWhere;
2169
+ /**
2170
+ * A hint about how likely the user is to navigate to the URL.
2134
2171
  *
2135
2172
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#scores
2136
2173
  */
@@ -2140,36 +2177,28 @@ interface SpeculationRuleBase {
2140
2177
  *
2141
2178
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#using-the-documents-base-url-for-external-speculation-rule-sets
2142
2179
  */
2143
- relative_to?: 'document';
2180
+ relative_to?: 'document' | (string & Record<never, never>);
2144
2181
  /**
2145
- * Assertions in the rule about the capabilities of the user agent while executing them.
2182
+ * Assertions about user agent capabilities required to execute the rule.
2146
2183
  *
2147
2184
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#requirements
2148
2185
  */
2149
- requires?: 'anonymous-client-ip-when-cross-origin'[];
2186
+ requires?: readonly ('anonymous-client-ip-when-cross-origin' | (string & Record<never, never>))[];
2150
2187
  /**
2151
- * Indicating where the page expects the prerendered content to be activated.
2188
+ * Where the page expects the prerendered content to be activated.
2152
2189
  *
2153
2190
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints
2154
2191
  */
2155
- target_hint?: '_blank' | '_self' | '_parent' | '_top';
2192
+ target_hint?: '_blank' | '_self' | '_parent' | '_top' | (string & Record<never, never>);
2156
2193
  /**
2157
- * The policy to use for the speculative request.
2194
+ * The referrer policy for the speculative request.
2158
2195
  *
2159
2196
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#explicit-referrer-policy
2160
2197
  */
2161
2198
  referrer_policy?: ReferrerPolicy;
2162
2199
  }
2163
- interface SpeculationRuleList extends SpeculationRuleBase {
2164
- source: 'list';
2165
- urls: string[];
2166
- }
2167
2200
  type SpeculationRuleFn = 'and' | 'or' | 'href_matches' | 'selector_matches' | 'not';
2168
- type SpeculationRuleWhere = Partial<Record<SpeculationRuleFn, Partial<(Record<SpeculationRuleFn, (Partial<Record<SpeculationRuleFn, string>>) | string>)>[]>>;
2169
- interface SpeculationRuleDocument extends SpeculationRuleBase {
2170
- source: 'document';
2171
- where: SpeculationRuleWhere;
2172
- }
2201
+ type SpeculationRuleWhere = Partial<Record<SpeculationRuleFn, readonly Partial<(Record<SpeculationRuleFn, (Partial<Record<SpeculationRuleFn, string>>) | string>)>[]>>;
2173
2202
 
2174
2203
  /**
2175
2204
  * Events that fire on script elements (load/error)
@@ -2552,9 +2581,9 @@ type MatchScriptByType<U> = Script extends infer M ? M extends {
2552
2581
  */
2553
2582
  type InferScript<T> = T extends {
2554
2583
  type: infer U;
2555
- } ? U extends string ? U extends KnownScriptType ? MatchScriptByType<U> : GenericScript & {
2584
+ } ? U extends string ? U extends KnownScriptType ? DeepReadonly<MatchScriptByType<U>> : DeepReadonly<GenericScript> & {
2556
2585
  type: U;
2557
- } : Script : Script;
2586
+ } : DeepReadonly<Script> : DeepReadonly<Script>;
2558
2587
 
2559
2588
  interface Style extends Pick<GlobalAttributes, 'nonce' | 'id'>, Blocking {
2560
2589
  /**
@@ -2873,4 +2902,4 @@ interface HeadTag extends TagPriority, TagPosition, ResolvesDuplicates, HasTempl
2873
2902
  }
2874
2903
  type HeadTagKeys = (keyof HeadTag)[];
2875
2904
 
2876
- export type { Meta as $, AlternateFeedLink as A, Booleanable as B, CanonicalLink as C, DataKeys as D, ExpectLink as E, FaviconLink as F, GenericLink as G, HasTemplateParams as H, IconLink as I, InferScript as J, InlineModuleScript as K, InlineScript as L, InnerContent as M, InnerContentVal as N, InternalTagKey as O, JsonLdScript as P, KnownLinkRel as Q, KnownScriptType as R, LicenseLink as S, Link as T, LinkBase as U, LinkHttpEvents as V, ManifestLink as W, MaskIconLink as X, MaybeArray as Y, MaybeEventFnHandlers as Z, MeLink as _, AlternateLanguageLink as a, UseHeadInput as a$, MetaBase as a0, MetaFlat as a1, MetaGeneric as a2, MetaNames as a3, MetaProperties as a4, ModuleScript as a5, ModulepreloadLink as a6, NameMeta as a7, Never as a8, NextLink as a9, ResolvableTemplateParams as aA, ResolvableTitle as aB, ResolvableTitleTemplate as aC, ResolvableUnion as aD, ResolvableValue as aE, ResolvesDuplicates as aF, SchemaAugmentations as aG, Script as aH, ScriptBase as aI, ScriptHttpEvents as aJ, SearchLink as aK, SerializableHead as aL, SpeculationRules as aM, SpeculationRulesScript as aN, StringInnerContent as aO, Stringable as aP, StylesheetLink as aQ, TagKey as aR, TagPosition as aS, TagPriority as aT, TagUserProperties as aU, TemplateParams as aV, TemplateParamsAugmentations as aW, TermsOfServiceLink as aX, UnheadBodyAttributesWithoutEvents as aY, UnheadHtmlAttributes as aZ, UnheadMeta as a_, PingbackLink as aa, PreconnectLink as ab, PrefetchLink as ac, PreloadFontLink as ad, PreloadImageLink as ae, PreloadLink as af, PreloadLinkBase as ag, PreloadOtherLink as ah, PreloadScriptLink as ai, PreloadStyleLink as aj, PrerenderLink as ak, PrevLink as al, PrivacyPolicyLink as am, ProcessesTemplateParams as an, PropertyMeta as ao, RawInput as ap, ResolvableBase as aq, ResolvableBodyAttributes as ar, ResolvableHead as as, ResolvableHtmlAttributes as at, ResolvableLink as au, ResolvableMeta as av, ResolvableNoscript as aw, ResolvableProperties as ax, ResolvableScript as ay, ResolvableStyle as az, AlternateLink as b, UseSeoMetaInput as b0, ValidTagPositions as b1, WebmentionLink as b2, AlternateMediaLink as c, AlternateStylesheetLink as d, AppleTouchIconLink as e, ApplicationJsonScript as f, Arrayable as g, AuthorLink as h, BareAlternateLink as i, BodyAttributesWithoutEvents as j, BodyEvents as k, CharsetMeta as l, CompressionDictionaryLink as m, DeepResolvableProperties as n, DnsPrefetchLink as o, ExternalScript as p, GenericScript as q, GlobalAttributes as r, HeadTag as s, HeadTagKeys as t, HelpLink as u, HttpEquivMeta as v, HttpEventAttributes as w, ImportMapConfig as x, ImportMapScript as y, InferLink as z };
2905
+ export type { MeLink as $, AlternateFeedLink as A, Booleanable as B, CanonicalLink as C, DataKeys as D, ExpectLink as E, FaviconLink as F, GenericLink as G, HasTemplateParams as H, IconLink as I, InferLink as J, InferScript as K, InlineModuleScript as L, InlineScript as M, InnerContent as N, InnerContentVal as O, InternalTagKey as P, JsonLdScript as Q, KnownLinkRel as R, KnownScriptType as S, LicenseLink as T, Link as U, LinkBase as V, LinkHttpEvents as W, ManifestLink as X, MaskIconLink as Y, MaybeArray as Z, MaybeEventFnHandlers as _, AlternateLanguageLink as a, UnheadMeta as a$, Meta as a0, MetaBase as a1, MetaFlat as a2, MetaGeneric as a3, MetaNames as a4, MetaProperties as a5, ModuleScript as a6, ModulepreloadLink as a7, NameMeta as a8, Never as a9, ResolvableStyle as aA, ResolvableTemplateParams as aB, ResolvableTitle as aC, ResolvableTitleTemplate as aD, ResolvableUnion as aE, ResolvableValue as aF, ResolvesDuplicates as aG, SchemaAugmentations as aH, Script as aI, ScriptBase as aJ, ScriptHttpEvents as aK, SearchLink as aL, SerializableHead as aM, SpeculationRules as aN, SpeculationRulesScript as aO, StringInnerContent as aP, Stringable as aQ, StylesheetLink as aR, TagKey as aS, TagPosition as aT, TagPriority as aU, TagUserProperties as aV, TemplateParams as aW, TemplateParamsAugmentations as aX, TermsOfServiceLink as aY, UnheadBodyAttributesWithoutEvents as aZ, UnheadHtmlAttributes as a_, NextLink as aa, PingbackLink as ab, PreconnectLink as ac, PrefetchLink as ad, PreloadFontLink as ae, PreloadImageLink as af, PreloadLink as ag, PreloadLinkBase as ah, PreloadOtherLink as ai, PreloadScriptLink as aj, PreloadStyleLink as ak, PrerenderLink as al, PrevLink as am, PrivacyPolicyLink as an, ProcessesTemplateParams as ao, PropertyMeta as ap, RawInput as aq, ResolvableBase as ar, ResolvableBodyAttributes as as, ResolvableHead as at, ResolvableHtmlAttributes as au, ResolvableLink as av, ResolvableMeta as aw, ResolvableNoscript as ax, ResolvableProperties as ay, ResolvableScript as az, AlternateLink as b, UseHeadInput as b0, UseSeoMetaInput as b1, ValidTagPositions as b2, WebmentionLink as b3, AlternateMediaLink as c, AlternateStylesheetLink as d, AppleTouchIconLink as e, ApplicationJsonScript as f, Arrayable as g, AuthorLink as h, BareAlternateLink as i, BodyAttributesWithoutEvents as j, BodyEvents as k, CharsetMeta as l, CompressionDictionaryLink as m, DeepReadonly as n, DeepResolvableProperties as o, DnsPrefetchLink as p, ExternalScript as q, GenericScript as r, GlobalAttributes as s, HeadTag as t, HeadTagKeys as u, HelpLink as v, HttpEquivMeta as w, HttpEventAttributes as x, ImportMapConfig as y, ImportMapScript as z };
@@ -16,6 +16,14 @@ type _ResolvablePropertiesRaw<T> = {
16
16
  };
17
17
  type ResolvableProperties<T> = Prettify<_ResolvablePropertiesRaw<T>>;
18
18
  type ResolvableUnion<T> = T extends string | number | boolean ? ResolvableValue<T> : T extends object ? DeepResolvableProperties<T> : ResolvableValue<T>;
19
+ /**
20
+ * Recursively marks all properties and arrays as readonly.
21
+ * Applied to `InferScript`/`InferLink` return types so that
22
+ * `defineScript`/`defineLink` accept both mutable and `as const` inputs.
23
+ */
24
+ type DeepReadonly<T> = T extends (...a: any[]) => any ? T : T extends ReadonlyArray<infer U> ? readonly DeepReadonly<U>[] : T extends object ? {
25
+ readonly [K in keyof T]: DeepReadonly<T[K]>;
26
+ } : T;
19
27
  type DeepResolvableProperties<T> = {
20
28
  [K in keyof T]?: T[K] extends string | object ? T[K] extends string ? ResolvableUnion<T[K]> : T[K] extends object ? DeepResolvableProperties<T[K]> : ResolvableUnion<T[K]> : ResolvableUnion<T[K]>;
21
29
  };
@@ -1019,7 +1027,7 @@ type MatchLinkByRel<R> = Link extends infer M ? M extends {
1019
1027
  */
1020
1028
  type InferLink<T> = T extends {
1021
1029
  rel: infer R;
1022
- } ? R extends KnownLinkRel ? MatchLinkByRel<R> : R extends string ? GenericLink & {
1030
+ } ? R extends KnownLinkRel ? DeepReadonly<MatchLinkByRel<R>> : R extends string ? DeepReadonly<GenericLink> & {
1023
1031
  rel: R;
1024
1032
  } : never : never;
1025
1033
 
@@ -1134,7 +1142,7 @@ interface MetaFlatArticle {
1134
1142
  * Writers of the article.
1135
1143
  * @example ['https://example.com/some.html', 'https://example.com/one.html']
1136
1144
  */
1137
- articleAuthor?: string[];
1145
+ articleAuthor?: readonly string[];
1138
1146
  /**
1139
1147
  * When the article is out of date after.
1140
1148
  * @example '1970-01-01T00:00:00.000Z'
@@ -1159,14 +1167,14 @@ interface MetaFlatArticle {
1159
1167
  * Tag words associated with this article.
1160
1168
  * @example ['Apple', 'Steve Jobs']
1161
1169
  */
1162
- articleTag?: string[];
1170
+ articleTag?: readonly string[];
1163
1171
  }
1164
1172
  interface MetaFlatBook {
1165
1173
  /**
1166
1174
  * Who wrote this book.
1167
1175
  * @example ['https://example.com/some.html', 'https://example.com/one.html']
1168
1176
  */
1169
- bookAuthor?: string[];
1177
+ bookAuthor?: readonly string[];
1170
1178
  /**
1171
1179
  * The ISBN.
1172
1180
  * @example '978-3-16-148410-0'
@@ -1181,7 +1189,7 @@ interface MetaFlatBook {
1181
1189
  * Tag words associated with this book.
1182
1190
  * @example ['Apple', 'Steve Jobs']
1183
1191
  */
1184
- bookTag?: string[];
1192
+ bookTag?: readonly string[];
1185
1193
  }
1186
1194
  interface MetaFlatProfile {
1187
1195
  /**
@@ -2125,12 +2133,41 @@ type NoscriptContent = {
2125
2133
  type Noscript = Pick<GlobalAttributes, 'id' | 'class' | 'style'> & NoscriptContent;
2126
2134
 
2127
2135
  interface SpeculationRules {
2128
- prefetch?: (SpeculationRuleList | SpeculationRuleDocument)[];
2129
- prerender?: (SpeculationRuleList | SpeculationRuleDocument)[];
2136
+ prefetch?: readonly SpeculationRule[];
2137
+ prerender?: readonly SpeculationRule[];
2130
2138
  }
2131
- interface SpeculationRuleBase {
2139
+ /**
2140
+ * A single speculation rule entry.
2141
+ *
2142
+ * List rules provide explicit `urls`; document rules provide a `where` selector.
2143
+ * Both shapes share the same interface so TypeScript doesn't require exact
2144
+ * literal `source` values, which avoids widening issues inside `useHead`.
2145
+ *
2146
+ * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md
2147
+ */
2148
+ interface SpeculationRule {
2149
+ /**
2150
+ * The rule source type.
2151
+ *
2152
+ * `'list'` for explicit URL lists, `'document'` for selector-based rules.
2153
+ *
2154
+ * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md
2155
+ */
2156
+ source?: 'list' | 'document' | (string & Record<never, never>);
2132
2157
  /**
2133
- * A hint about how likely the user is to navigate to the URL
2158
+ * Explicit URLs to speculate on (list rules).
2159
+ *
2160
+ * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#list-rules
2161
+ */
2162
+ urls?: readonly string[];
2163
+ /**
2164
+ * Selector conditions for document rules.
2165
+ *
2166
+ * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#document-rules
2167
+ */
2168
+ where?: SpeculationRuleWhere;
2169
+ /**
2170
+ * A hint about how likely the user is to navigate to the URL.
2134
2171
  *
2135
2172
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#scores
2136
2173
  */
@@ -2140,36 +2177,28 @@ interface SpeculationRuleBase {
2140
2177
  *
2141
2178
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#using-the-documents-base-url-for-external-speculation-rule-sets
2142
2179
  */
2143
- relative_to?: 'document';
2180
+ relative_to?: 'document' | (string & Record<never, never>);
2144
2181
  /**
2145
- * Assertions in the rule about the capabilities of the user agent while executing them.
2182
+ * Assertions about user agent capabilities required to execute the rule.
2146
2183
  *
2147
2184
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#requirements
2148
2185
  */
2149
- requires?: 'anonymous-client-ip-when-cross-origin'[];
2186
+ requires?: readonly ('anonymous-client-ip-when-cross-origin' | (string & Record<never, never>))[];
2150
2187
  /**
2151
- * Indicating where the page expects the prerendered content to be activated.
2188
+ * Where the page expects the prerendered content to be activated.
2152
2189
  *
2153
2190
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints
2154
2191
  */
2155
- target_hint?: '_blank' | '_self' | '_parent' | '_top';
2192
+ target_hint?: '_blank' | '_self' | '_parent' | '_top' | (string & Record<never, never>);
2156
2193
  /**
2157
- * The policy to use for the speculative request.
2194
+ * The referrer policy for the speculative request.
2158
2195
  *
2159
2196
  * @see https://github.com/WICG/nav-speculation/blob/main/triggers.md#explicit-referrer-policy
2160
2197
  */
2161
2198
  referrer_policy?: ReferrerPolicy;
2162
2199
  }
2163
- interface SpeculationRuleList extends SpeculationRuleBase {
2164
- source: 'list';
2165
- urls: string[];
2166
- }
2167
2200
  type SpeculationRuleFn = 'and' | 'or' | 'href_matches' | 'selector_matches' | 'not';
2168
- type SpeculationRuleWhere = Partial<Record<SpeculationRuleFn, Partial<(Record<SpeculationRuleFn, (Partial<Record<SpeculationRuleFn, string>>) | string>)>[]>>;
2169
- interface SpeculationRuleDocument extends SpeculationRuleBase {
2170
- source: 'document';
2171
- where: SpeculationRuleWhere;
2172
- }
2201
+ type SpeculationRuleWhere = Partial<Record<SpeculationRuleFn, readonly Partial<(Record<SpeculationRuleFn, (Partial<Record<SpeculationRuleFn, string>>) | string>)>[]>>;
2173
2202
 
2174
2203
  /**
2175
2204
  * Events that fire on script elements (load/error)
@@ -2552,9 +2581,9 @@ type MatchScriptByType<U> = Script extends infer M ? M extends {
2552
2581
  */
2553
2582
  type InferScript<T> = T extends {
2554
2583
  type: infer U;
2555
- } ? U extends string ? U extends KnownScriptType ? MatchScriptByType<U> : GenericScript & {
2584
+ } ? U extends string ? U extends KnownScriptType ? DeepReadonly<MatchScriptByType<U>> : DeepReadonly<GenericScript> & {
2556
2585
  type: U;
2557
- } : Script : Script;
2586
+ } : DeepReadonly<Script> : DeepReadonly<Script>;
2558
2587
 
2559
2588
  interface Style extends Pick<GlobalAttributes, 'nonce' | 'id'>, Blocking {
2560
2589
  /**
@@ -2873,4 +2902,4 @@ interface HeadTag extends TagPriority, TagPosition, ResolvesDuplicates, HasTempl
2873
2902
  }
2874
2903
  type HeadTagKeys = (keyof HeadTag)[];
2875
2904
 
2876
- export type { Meta as $, AlternateFeedLink as A, Booleanable as B, CanonicalLink as C, DataKeys as D, ExpectLink as E, FaviconLink as F, GenericLink as G, HasTemplateParams as H, IconLink as I, InferScript as J, InlineModuleScript as K, InlineScript as L, InnerContent as M, InnerContentVal as N, InternalTagKey as O, JsonLdScript as P, KnownLinkRel as Q, KnownScriptType as R, LicenseLink as S, Link as T, LinkBase as U, LinkHttpEvents as V, ManifestLink as W, MaskIconLink as X, MaybeArray as Y, MaybeEventFnHandlers as Z, MeLink as _, AlternateLanguageLink as a, UseHeadInput as a$, MetaBase as a0, MetaFlat as a1, MetaGeneric as a2, MetaNames as a3, MetaProperties as a4, ModuleScript as a5, ModulepreloadLink as a6, NameMeta as a7, Never as a8, NextLink as a9, ResolvableTemplateParams as aA, ResolvableTitle as aB, ResolvableTitleTemplate as aC, ResolvableUnion as aD, ResolvableValue as aE, ResolvesDuplicates as aF, SchemaAugmentations as aG, Script as aH, ScriptBase as aI, ScriptHttpEvents as aJ, SearchLink as aK, SerializableHead as aL, SpeculationRules as aM, SpeculationRulesScript as aN, StringInnerContent as aO, Stringable as aP, StylesheetLink as aQ, TagKey as aR, TagPosition as aS, TagPriority as aT, TagUserProperties as aU, TemplateParams as aV, TemplateParamsAugmentations as aW, TermsOfServiceLink as aX, UnheadBodyAttributesWithoutEvents as aY, UnheadHtmlAttributes as aZ, UnheadMeta as a_, PingbackLink as aa, PreconnectLink as ab, PrefetchLink as ac, PreloadFontLink as ad, PreloadImageLink as ae, PreloadLink as af, PreloadLinkBase as ag, PreloadOtherLink as ah, PreloadScriptLink as ai, PreloadStyleLink as aj, PrerenderLink as ak, PrevLink as al, PrivacyPolicyLink as am, ProcessesTemplateParams as an, PropertyMeta as ao, RawInput as ap, ResolvableBase as aq, ResolvableBodyAttributes as ar, ResolvableHead as as, ResolvableHtmlAttributes as at, ResolvableLink as au, ResolvableMeta as av, ResolvableNoscript as aw, ResolvableProperties as ax, ResolvableScript as ay, ResolvableStyle as az, AlternateLink as b, UseSeoMetaInput as b0, ValidTagPositions as b1, WebmentionLink as b2, AlternateMediaLink as c, AlternateStylesheetLink as d, AppleTouchIconLink as e, ApplicationJsonScript as f, Arrayable as g, AuthorLink as h, BareAlternateLink as i, BodyAttributesWithoutEvents as j, BodyEvents as k, CharsetMeta as l, CompressionDictionaryLink as m, DeepResolvableProperties as n, DnsPrefetchLink as o, ExternalScript as p, GenericScript as q, GlobalAttributes as r, HeadTag as s, HeadTagKeys as t, HelpLink as u, HttpEquivMeta as v, HttpEventAttributes as w, ImportMapConfig as x, ImportMapScript as y, InferLink as z };
2905
+ export type { MeLink as $, AlternateFeedLink as A, Booleanable as B, CanonicalLink as C, DataKeys as D, ExpectLink as E, FaviconLink as F, GenericLink as G, HasTemplateParams as H, IconLink as I, InferLink as J, InferScript as K, InlineModuleScript as L, InlineScript as M, InnerContent as N, InnerContentVal as O, InternalTagKey as P, JsonLdScript as Q, KnownLinkRel as R, KnownScriptType as S, LicenseLink as T, Link as U, LinkBase as V, LinkHttpEvents as W, ManifestLink as X, MaskIconLink as Y, MaybeArray as Z, MaybeEventFnHandlers as _, AlternateLanguageLink as a, UnheadMeta as a$, Meta as a0, MetaBase as a1, MetaFlat as a2, MetaGeneric as a3, MetaNames as a4, MetaProperties as a5, ModuleScript as a6, ModulepreloadLink as a7, NameMeta as a8, Never as a9, ResolvableStyle as aA, ResolvableTemplateParams as aB, ResolvableTitle as aC, ResolvableTitleTemplate as aD, ResolvableUnion as aE, ResolvableValue as aF, ResolvesDuplicates as aG, SchemaAugmentations as aH, Script as aI, ScriptBase as aJ, ScriptHttpEvents as aK, SearchLink as aL, SerializableHead as aM, SpeculationRules as aN, SpeculationRulesScript as aO, StringInnerContent as aP, Stringable as aQ, StylesheetLink as aR, TagKey as aS, TagPosition as aT, TagPriority as aU, TagUserProperties as aV, TemplateParams as aW, TemplateParamsAugmentations as aX, TermsOfServiceLink as aY, UnheadBodyAttributesWithoutEvents as aZ, UnheadHtmlAttributes as a_, NextLink as aa, PingbackLink as ab, PreconnectLink as ac, PrefetchLink as ad, PreloadFontLink as ae, PreloadImageLink as af, PreloadLink as ag, PreloadLinkBase as ah, PreloadOtherLink as ai, PreloadScriptLink as aj, PreloadStyleLink as ak, PrerenderLink as al, PrevLink as am, PrivacyPolicyLink as an, ProcessesTemplateParams as ao, PropertyMeta as ap, RawInput as aq, ResolvableBase as ar, ResolvableBodyAttributes as as, ResolvableHead as at, ResolvableHtmlAttributes as au, ResolvableLink as av, ResolvableMeta as aw, ResolvableNoscript as ax, ResolvableProperties as ay, ResolvableScript as az, AlternateLink as b, UseHeadInput as b0, UseSeoMetaInput as b1, ValidTagPositions as b2, WebmentionLink as b3, AlternateMediaLink as c, AlternateStylesheetLink as d, AppleTouchIconLink as e, ApplicationJsonScript as f, Arrayable as g, AuthorLink as h, BareAlternateLink as i, BodyAttributesWithoutEvents as j, BodyEvents as k, CharsetMeta as l, CompressionDictionaryLink as m, DeepReadonly as n, DeepResolvableProperties as o, DnsPrefetchLink as p, ExternalScript as q, GenericScript as r, GlobalAttributes as s, HeadTag as t, HeadTagKeys as u, HelpLink as v, HttpEquivMeta as w, HttpEventAttributes as x, ImportMapConfig as y, ImportMapScript as z };
@@ -1,5 +1,5 @@
1
1
  import { HookableCore } from 'hookable';
2
- import { q as GenericScript, aJ as ScriptHttpEvents, D as DataKeys, Z as MaybeEventFnHandlers, w as HttpEventAttributes, aG as SchemaAugmentations, s as HeadTag, as as ResolvableHead, aS as TagPosition, aT as TagPriority, an as ProcessesTemplateParams, aF as ResolvesDuplicates, aV as TemplateParams } from './unhead.5pUZeb0i.mjs';
2
+ import { r as GenericScript, aK as ScriptHttpEvents, D as DataKeys, _ as MaybeEventFnHandlers, x as HttpEventAttributes, aH as SchemaAugmentations, t as HeadTag, at as ResolvableHead, aT as TagPosition, aU as TagPriority, ao as ProcessesTemplateParams, aG as ResolvesDuplicates, aW as TemplateParams } from './unhead.DBv5uRwR.mjs';
3
3
 
4
4
  type UseScriptStatus = 'awaitingLoad' | 'loading' | 'loaded' | 'error' | 'removed';
5
5
  type UseScriptContext<T extends Record<symbol | string, any>> = ScriptInstance<T>;
@@ -1,6 +1,6 @@
1
1
  import { HookableCore } from 'hookable';
2
- import { U as Unhead, C as ClientHeadHooks, c as CreateClientHeadOptions } from './unhead.BEof8Qjb.js';
3
- import { as as ResolvableHead } from './unhead.5pUZeb0i.js';
2
+ import { U as Unhead, C as ClientHeadHooks, c as CreateClientHeadOptions } from './unhead.CZmLNN-R.js';
3
+ import { at as ResolvableHead } from './unhead.DBv5uRwR.js';
4
4
 
5
5
  interface ClientUnhead<T = ResolvableHead> extends Unhead<T, boolean> {
6
6
  hooks: HookableCore<ClientHeadHooks>;
@@ -1,4 +1,4 @@
1
- import { s as HeadTag } from './unhead.5pUZeb0i.mjs';
1
+ import { t as HeadTag } from './unhead.DBv5uRwR.mjs';
2
2
 
3
3
  interface RenderDomHeadOptions {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { U as Unhead, F as UseScriptInput, G as UseScriptOptions, J as UseScriptReturn } from './unhead.BEof8Qjb.js';
1
+ import { U as Unhead, F as UseScriptInput, G as UseScriptOptions, J as UseScriptReturn } from './unhead.CZmLNN-R.js';
2
2
 
3
3
  /**
4
4
  * Load third-party scripts with SSR support and a proxied API.
@@ -0,0 +1,64 @@
1
+ import { c as createUnhead, r as registerPlugin } from './unhead.CfgPMHXt.mjs';
2
+ import { c as createHooks } from './unhead.DvIxXxuO.mjs';
3
+ import { c as createDomRenderer } from './unhead.pv34ME7O.mjs';
4
+
5
+ const P = { critical: -8, high: -1, low: 2 };
6
+ const tagWeight = (tag) => typeof tag.tagPriority === "number" ? tag.tagPriority : 100 + (P[tag.tagPriority] || 0);
7
+ function createHead(options = {}) {
8
+ options.document = options.document || (typeof window !== "undefined" ? document : void 0);
9
+ const renderer = options.render || createDomRenderer({ document: options.document });
10
+ const initialPayload = options.document?.head.querySelector('script[id="unhead:payload"]')?.innerHTML || false;
11
+ const core = createUnhead(renderer, { document: options.document, propResolvers: options.propResolvers, _tagWeight: tagWeight, init: [] });
12
+ const hooks = createHooks(options.hooks);
13
+ let dirty = false;
14
+ const head = {
15
+ ...core,
16
+ ssr: false,
17
+ hooks,
18
+ use: (p) => registerPlugin(head, p),
19
+ get dirty() {
20
+ return dirty;
21
+ },
22
+ set dirty(v) {
23
+ dirty = v;
24
+ },
25
+ render: () => renderer(head),
26
+ invalidate() {
27
+ for (const e of core.entries.values()) delete e._tags;
28
+ dirty = true;
29
+ hooks.callHook("entries:updated", head);
30
+ },
31
+ push(input, _options) {
32
+ const onRendered = _options?.onRendered;
33
+ const unhook = onRendered ? hooks.hook("dom:rendered", onRendered) : void 0;
34
+ const active = core.push(input, _options);
35
+ core.entries.get(active._i)._o = input;
36
+ dirty = true;
37
+ hooks.callHook("entries:updated", head);
38
+ return {
39
+ _i: active._i,
40
+ patch(input2) {
41
+ active.patch(input2);
42
+ dirty = true;
43
+ hooks.callHook("entries:updated", head);
44
+ },
45
+ dispose() {
46
+ unhook?.();
47
+ if (core.entries.has(active._i)) {
48
+ active.dispose();
49
+ head.invalidate();
50
+ }
51
+ }
52
+ };
53
+ }
54
+ };
55
+ hooks.hook("entries:updated", () => {
56
+ renderer(head);
57
+ });
58
+ options.plugins?.forEach((p) => registerPlugin(head, p));
59
+ initialPayload && head.push(JSON.parse(initialPayload));
60
+ options.init?.forEach((e) => e && head.push(e));
61
+ return head;
62
+ }
63
+
64
+ export { createHead as c };
@@ -1,6 +1,6 @@
1
1
  import { HookableCore } from 'hookable';
2
- import { U as Unhead, s as SSRHeadPayload, v as ServerHeadHooks, e as CreateServerHeadOptions } from './unhead.CyKsApKH.mjs';
3
- import { as as ResolvableHead } from './unhead.5pUZeb0i.mjs';
2
+ import { U as Unhead, s as SSRHeadPayload, v as ServerHeadHooks, e as CreateServerHeadOptions } from './unhead.DFLvtb3Z.mjs';
3
+ import { at as ResolvableHead } from './unhead.DBv5uRwR.mjs';
4
4
 
5
5
  interface ServerUnhead<T = ResolvableHead> extends Unhead<T, SSRHeadPayload> {
6
6
  hooks: HookableCore<ServerHeadHooks>;
@@ -1,4 +1,4 @@
1
- import { ap as RawInput, as as ResolvableHead, aE as ResolvableValue, ax as ResolvableProperties, G as GenericLink, D as DataKeys, aG as SchemaAugmentations, a2 as MetaGeneric, q as GenericScript, aZ as UnheadHtmlAttributes, aY as UnheadBodyAttributesWithoutEvents } from './unhead.5pUZeb0i.mjs';
1
+ import { aq as RawInput, at as ResolvableHead, aF as ResolvableValue, ay as ResolvableProperties, G as GenericLink, D as DataKeys, aH as SchemaAugmentations, a3 as MetaGeneric, r as GenericScript, a_ as UnheadHtmlAttributes, aZ as UnheadBodyAttributesWithoutEvents } from './unhead.DBv5uRwR.mjs';
2
2
 
3
3
  type Base = RawInput<'base'>;
4
4
  type HtmlAttributes = RawInput<'htmlAttrs'>;
@@ -1,6 +1,6 @@
1
- import { C as ClientUnhead } from '../shared/unhead.BxsOjg-Q.mjs';
2
- import { c as CreateClientHeadOptions, U as Unhead } from '../shared/unhead.CyKsApKH.mjs';
3
- import { aL as SerializableHead, as as ResolvableHead } from '../shared/unhead.5pUZeb0i.mjs';
1
+ import { C as ClientUnhead } from '../shared/unhead.CSqfLsrn.mjs';
2
+ import { c as CreateClientHeadOptions, U as Unhead } from '../shared/unhead.DFLvtb3Z.mjs';
3
+ import { aM as SerializableHead, at as ResolvableHead } from '../shared/unhead.DBv5uRwR.mjs';
4
4
  import 'hookable';
5
5
 
6
6
  interface UnheadStreamQueue {
@@ -1,6 +1,6 @@
1
- import { C as ClientUnhead } from '../shared/unhead.D_sLwV5L.js';
2
- import { c as CreateClientHeadOptions, U as Unhead } from '../shared/unhead.BEof8Qjb.js';
3
- import { aL as SerializableHead, as as ResolvableHead } from '../shared/unhead.5pUZeb0i.js';
1
+ import { C as ClientUnhead } from '../shared/unhead.DMQDfSsC.js';
2
+ import { c as CreateClientHeadOptions, U as Unhead } from '../shared/unhead.CZmLNN-R.js';
3
+ import { aM as SerializableHead, at as ResolvableHead } from '../shared/unhead.DBv5uRwR.js';
4
4
  import 'hookable';
5
5
 
6
6
  interface UnheadStreamQueue {