vinext 0.0.28 → 0.0.30

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 (173) hide show
  1. package/dist/build/report.d.ts +117 -0
  2. package/dist/build/report.d.ts.map +1 -0
  3. package/dist/build/report.js +303 -0
  4. package/dist/build/report.js.map +1 -0
  5. package/dist/check.d.ts.map +1 -1
  6. package/dist/check.js +11 -7
  7. package/dist/check.js.map +1 -1
  8. package/dist/cli.js +106 -9
  9. package/dist/cli.js.map +1 -1
  10. package/dist/cloudflare/kv-cache-handler.d.ts.map +1 -1
  11. package/dist/cloudflare/kv-cache-handler.js +58 -42
  12. package/dist/cloudflare/kv-cache-handler.js.map +1 -1
  13. package/dist/cloudflare/tpr.d.ts +10 -0
  14. package/dist/cloudflare/tpr.d.ts.map +1 -1
  15. package/dist/cloudflare/tpr.js +36 -41
  16. package/dist/cloudflare/tpr.js.map +1 -1
  17. package/dist/config/next-config.d.ts.map +1 -1
  18. package/dist/config/next-config.js +16 -0
  19. package/dist/config/next-config.js.map +1 -1
  20. package/dist/entries/app-rsc-entry.d.ts +1 -1
  21. package/dist/entries/app-rsc-entry.d.ts.map +1 -1
  22. package/dist/entries/app-rsc-entry.js +225 -186
  23. package/dist/entries/app-rsc-entry.js.map +1 -1
  24. package/dist/entries/pages-server-entry.d.ts.map +1 -1
  25. package/dist/entries/pages-server-entry.js +192 -91
  26. package/dist/entries/pages-server-entry.js.map +1 -1
  27. package/dist/index.d.ts +17 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +121 -40
  30. package/dist/index.js.map +1 -1
  31. package/dist/routing/app-router.d.ts +2 -0
  32. package/dist/routing/app-router.d.ts.map +1 -1
  33. package/dist/routing/app-router.js +131 -104
  34. package/dist/routing/app-router.js.map +1 -1
  35. package/dist/routing/pages-router.d.ts.map +1 -1
  36. package/dist/routing/pages-router.js +17 -57
  37. package/dist/routing/pages-router.js.map +1 -1
  38. package/dist/routing/route-trie.d.ts +57 -0
  39. package/dist/routing/route-trie.d.ts.map +1 -0
  40. package/dist/routing/route-trie.js +160 -0
  41. package/dist/routing/route-trie.js.map +1 -0
  42. package/dist/routing/route-validation.d.ts.map +1 -1
  43. package/dist/routing/route-validation.js +13 -1
  44. package/dist/routing/route-validation.js.map +1 -1
  45. package/dist/routing/utils.d.ts +19 -0
  46. package/dist/routing/utils.d.ts.map +1 -1
  47. package/dist/routing/utils.js +47 -0
  48. package/dist/routing/utils.js.map +1 -1
  49. package/dist/server/api-handler.d.ts.map +1 -1
  50. package/dist/server/api-handler.js +28 -13
  51. package/dist/server/api-handler.js.map +1 -1
  52. package/dist/server/app-router-entry.js +1 -1
  53. package/dist/server/app-router-entry.js.map +1 -1
  54. package/dist/server/dev-server.d.ts +2 -1
  55. package/dist/server/dev-server.d.ts.map +1 -1
  56. package/dist/server/dev-server.js +167 -115
  57. package/dist/server/dev-server.js.map +1 -1
  58. package/dist/server/image-optimization.d.ts.map +1 -1
  59. package/dist/server/image-optimization.js +24 -12
  60. package/dist/server/image-optimization.js.map +1 -1
  61. package/dist/server/instrumentation.d.ts.map +1 -1
  62. package/dist/server/instrumentation.js +17 -8
  63. package/dist/server/instrumentation.js.map +1 -1
  64. package/dist/server/isr-cache.d.ts.map +1 -1
  65. package/dist/server/isr-cache.js +8 -3
  66. package/dist/server/isr-cache.js.map +1 -1
  67. package/dist/server/metadata-routes.d.ts.map +1 -1
  68. package/dist/server/metadata-routes.js +56 -18
  69. package/dist/server/metadata-routes.js.map +1 -1
  70. package/dist/server/middleware-codegen.d.ts +10 -0
  71. package/dist/server/middleware-codegen.d.ts.map +1 -1
  72. package/dist/server/middleware-codegen.js +76 -4
  73. package/dist/server/middleware-codegen.js.map +1 -1
  74. package/dist/server/middleware.d.ts.map +1 -1
  75. package/dist/server/middleware.js +52 -7
  76. package/dist/server/middleware.js.map +1 -1
  77. package/dist/server/pages-i18n.d.ts +50 -0
  78. package/dist/server/pages-i18n.d.ts.map +1 -0
  79. package/dist/server/pages-i18n.js +152 -0
  80. package/dist/server/pages-i18n.js.map +1 -0
  81. package/dist/server/prod-server.d.ts +8 -2
  82. package/dist/server/prod-server.d.ts.map +1 -1
  83. package/dist/server/prod-server.js +60 -20
  84. package/dist/server/prod-server.js.map +1 -1
  85. package/dist/shims/cache-runtime.d.ts +3 -0
  86. package/dist/shims/cache-runtime.d.ts.map +1 -1
  87. package/dist/shims/cache-runtime.js +22 -5
  88. package/dist/shims/cache-runtime.js.map +1 -1
  89. package/dist/shims/cache.d.ts +3 -0
  90. package/dist/shims/cache.d.ts.map +1 -1
  91. package/dist/shims/cache.js +21 -12
  92. package/dist/shims/cache.js.map +1 -1
  93. package/dist/shims/constants.d.ts.map +1 -1
  94. package/dist/shims/constants.js +0 -1
  95. package/dist/shims/constants.js.map +1 -1
  96. package/dist/shims/fetch-cache.d.ts +14 -0
  97. package/dist/shims/fetch-cache.d.ts.map +1 -1
  98. package/dist/shims/fetch-cache.js +102 -37
  99. package/dist/shims/fetch-cache.js.map +1 -1
  100. package/dist/shims/head-state.d.ts +4 -0
  101. package/dist/shims/head-state.d.ts.map +1 -1
  102. package/dist/shims/head-state.js +14 -11
  103. package/dist/shims/head-state.js.map +1 -1
  104. package/dist/shims/head.d.ts +4 -2
  105. package/dist/shims/head.d.ts.map +1 -1
  106. package/dist/shims/head.js +162 -52
  107. package/dist/shims/head.js.map +1 -1
  108. package/dist/shims/headers.d.ts +8 -1
  109. package/dist/shims/headers.d.ts.map +1 -1
  110. package/dist/shims/headers.js +23 -34
  111. package/dist/shims/headers.js.map +1 -1
  112. package/dist/shims/i18n-context.d.ts +27 -0
  113. package/dist/shims/i18n-context.d.ts.map +1 -0
  114. package/dist/shims/i18n-context.js +57 -0
  115. package/dist/shims/i18n-context.js.map +1 -0
  116. package/dist/shims/i18n-state.d.ts +20 -0
  117. package/dist/shims/i18n-state.d.ts.map +1 -0
  118. package/dist/shims/i18n-state.js +53 -0
  119. package/dist/shims/i18n-state.js.map +1 -0
  120. package/dist/shims/image.d.ts +2 -0
  121. package/dist/shims/image.d.ts.map +1 -1
  122. package/dist/shims/image.js +14 -6
  123. package/dist/shims/image.js.map +1 -1
  124. package/dist/shims/internal/utils.d.ts +1 -0
  125. package/dist/shims/internal/utils.d.ts.map +1 -1
  126. package/dist/shims/internal/utils.js.map +1 -1
  127. package/dist/shims/link.d.ts.map +1 -1
  128. package/dist/shims/link.js +38 -54
  129. package/dist/shims/link.js.map +1 -1
  130. package/dist/shims/metadata.d.ts +78 -22
  131. package/dist/shims/metadata.d.ts.map +1 -1
  132. package/dist/shims/metadata.js +96 -28
  133. package/dist/shims/metadata.js.map +1 -1
  134. package/dist/shims/navigation-state.d.ts +14 -0
  135. package/dist/shims/navigation-state.d.ts.map +1 -1
  136. package/dist/shims/navigation-state.js +33 -15
  137. package/dist/shims/navigation-state.js.map +1 -1
  138. package/dist/shims/navigation.d.ts +2 -0
  139. package/dist/shims/navigation.d.ts.map +1 -1
  140. package/dist/shims/navigation.js +80 -51
  141. package/dist/shims/navigation.js.map +1 -1
  142. package/dist/shims/request-context.d.ts.map +1 -1
  143. package/dist/shims/request-context.js +9 -0
  144. package/dist/shims/request-context.js.map +1 -1
  145. package/dist/shims/request-state-types.d.ts +11 -0
  146. package/dist/shims/request-state-types.d.ts.map +1 -0
  147. package/dist/shims/request-state-types.js +2 -0
  148. package/dist/shims/request-state-types.js.map +1 -0
  149. package/dist/shims/router-state.d.ts +11 -0
  150. package/dist/shims/router-state.d.ts.map +1 -1
  151. package/dist/shims/router-state.js +10 -8
  152. package/dist/shims/router-state.js.map +1 -1
  153. package/dist/shims/router.d.ts +4 -0
  154. package/dist/shims/router.d.ts.map +1 -1
  155. package/dist/shims/router.js +130 -40
  156. package/dist/shims/router.js.map +1 -1
  157. package/dist/shims/server.d.ts +8 -1
  158. package/dist/shims/server.d.ts.map +1 -1
  159. package/dist/shims/server.js +52 -6
  160. package/dist/shims/server.js.map +1 -1
  161. package/dist/shims/unified-request-context.d.ts +66 -0
  162. package/dist/shims/unified-request-context.d.ts.map +1 -0
  163. package/dist/shims/unified-request-context.js +116 -0
  164. package/dist/shims/unified-request-context.js.map +1 -0
  165. package/dist/shims/url-utils.d.ts +20 -6
  166. package/dist/shims/url-utils.d.ts.map +1 -1
  167. package/dist/shims/url-utils.js +79 -0
  168. package/dist/shims/url-utils.js.map +1 -1
  169. package/dist/utils/domain-locale.d.ts +18 -0
  170. package/dist/utils/domain-locale.d.ts.map +1 -0
  171. package/dist/utils/domain-locale.js +64 -0
  172. package/dist/utils/domain-locale.js.map +1 -0
  173. package/package.json +2 -2
@@ -69,26 +69,26 @@ export interface Metadata {
69
69
  openGraph?: {
70
70
  title?: string;
71
71
  description?: string;
72
- url?: string;
72
+ url?: string | URL;
73
73
  siteName?: string;
74
- images?: string | {
75
- url: string;
74
+ images?: string | URL | {
75
+ url: string | URL;
76
76
  width?: number;
77
77
  height?: number;
78
78
  alt?: string;
79
- } | Array<string | {
80
- url: string;
79
+ } | Array<string | URL | {
80
+ url: string | URL;
81
81
  width?: number;
82
82
  height?: number;
83
83
  alt?: string;
84
84
  }>;
85
85
  videos?: Array<{
86
- url: string;
86
+ url: string | URL;
87
87
  width?: number;
88
88
  height?: number;
89
89
  }>;
90
90
  audio?: Array<{
91
- url: string;
91
+ url: string | URL;
92
92
  }>;
93
93
  locale?: string;
94
94
  type?: string;
@@ -102,46 +102,48 @@ export interface Metadata {
102
102
  siteId?: string;
103
103
  title?: string;
104
104
  description?: string;
105
- images?: string | {
106
- url: string;
105
+ images?: string | URL | {
106
+ url: string | URL;
107
107
  alt?: string;
108
108
  width?: number;
109
109
  height?: number;
110
- } | Array<string | {
111
- url: string;
110
+ } | Array<string | URL | {
111
+ url: string | URL;
112
112
  alt?: string;
113
113
  width?: number;
114
114
  height?: number;
115
115
  }>;
116
116
  creator?: string;
117
117
  creatorId?: string;
118
+ players?: TwitterPlayerDescriptor | TwitterPlayerDescriptor[];
119
+ app?: TwitterAppDescriptor;
118
120
  };
119
121
  icons?: {
120
- icon?: string | Array<{
121
- url: string;
122
+ icon?: string | URL | Array<{
123
+ url: string | URL;
122
124
  sizes?: string;
123
125
  type?: string;
124
126
  media?: string;
125
127
  }>;
126
- shortcut?: string | string[];
127
- apple?: string | Array<{
128
- url: string;
128
+ shortcut?: string | URL | Array<string | URL>;
129
+ apple?: string | URL | Array<{
130
+ url: string | URL;
129
131
  sizes?: string;
130
132
  type?: string;
131
133
  }>;
132
134
  other?: Array<{
133
135
  rel: string;
134
- url: string;
136
+ url: string | URL;
135
137
  sizes?: string;
136
138
  type?: string;
137
139
  }>;
138
140
  };
139
- manifest?: string;
141
+ manifest?: string | URL;
140
142
  alternates?: {
141
- canonical?: string;
142
- languages?: Record<string, string>;
143
- media?: Record<string, string>;
144
- types?: Record<string, string>;
143
+ canonical?: string | URL;
144
+ languages?: Record<string, string | URL>;
145
+ media?: Record<string, string | URL>;
146
+ types?: Record<string, string | URL>;
145
147
  };
146
148
  verification?: {
147
149
  google?: string;
@@ -165,9 +167,62 @@ export interface Metadata {
165
167
  telephone?: boolean;
166
168
  };
167
169
  category?: string;
170
+ itunes?: {
171
+ appId: string;
172
+ appArgument?: string;
173
+ };
174
+ appLinks?: {
175
+ ios?: AppLinksApple | AppLinksApple[];
176
+ iphone?: AppLinksApple | AppLinksApple[];
177
+ ipad?: AppLinksApple | AppLinksApple[];
178
+ android?: AppLinksAndroid | AppLinksAndroid[];
179
+ windows_phone?: AppLinksWindows | AppLinksWindows[];
180
+ windows?: AppLinksWindows | AppLinksWindows[];
181
+ windows_universal?: AppLinksWindows | AppLinksWindows[];
182
+ web?: AppLinksWeb | AppLinksWeb[];
183
+ };
168
184
  other?: Record<string, string | string[]>;
169
185
  [key: string]: unknown;
170
186
  }
187
+ interface AppLinksApple {
188
+ url: string | URL;
189
+ app_store_id?: string | number;
190
+ app_name?: string;
191
+ }
192
+ interface AppLinksAndroid {
193
+ package: string;
194
+ url?: string | URL;
195
+ class?: string;
196
+ app_name?: string;
197
+ }
198
+ interface AppLinksWindows {
199
+ url: string | URL;
200
+ app_id?: string;
201
+ app_name?: string;
202
+ }
203
+ interface AppLinksWeb {
204
+ url: string | URL;
205
+ should_fallback?: boolean;
206
+ }
207
+ interface TwitterPlayerDescriptor {
208
+ playerUrl: string | URL;
209
+ streamUrl: string | URL;
210
+ width: number;
211
+ height: number;
212
+ }
213
+ interface TwitterAppDescriptor {
214
+ id: {
215
+ iphone?: string | number;
216
+ ipad?: string | number;
217
+ googleplay?: string;
218
+ };
219
+ url?: {
220
+ iphone?: string | URL;
221
+ ipad?: string | URL;
222
+ googleplay?: string | URL;
223
+ };
224
+ name?: string;
225
+ }
171
226
  /**
172
227
  * Merge metadata from multiple sources (layouts + page).
173
228
  *
@@ -198,4 +253,5 @@ export declare function resolveModuleMetadata(mod: Record<string, unknown>, para
198
253
  export declare function MetadataHead({ metadata }: {
199
254
  metadata: Metadata;
200
255
  }): import("react/jsx-runtime").JSX.Element;
256
+ export {};
201
257
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/shims/metadata.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/shims/metadata.tsx"],"names":[],"mappings":"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"}
@@ -178,15 +178,17 @@ export function MetadataHead({ metadata }) {
178
178
  function resolveUrl(url) {
179
179
  if (!url)
180
180
  return undefined;
181
+ // Coerce URL objects to strings (Next.js metadata allows string | URL)
182
+ const s = typeof url === "string" ? url : url instanceof URL ? url.toString() : String(url);
181
183
  if (!base)
182
- return url;
183
- if (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("//"))
184
- return url;
184
+ return s;
185
+ if (s.startsWith("http://") || s.startsWith("https://") || s.startsWith("//"))
186
+ return s;
185
187
  try {
186
- return new URL(url, base).toString();
188
+ return new URL(s, base).toString();
187
189
  }
188
190
  catch {
189
- return url;
191
+ return s;
190
192
  }
191
193
  }
192
194
  // Title
@@ -305,7 +307,7 @@ export function MetadataHead({ metadata }) {
305
307
  if (og.description)
306
308
  elements.push(_jsx("meta", { property: "og:description", content: og.description }, key++));
307
309
  if (og.url)
308
- elements.push(_jsx("meta", { property: "og:url", content: resolveUrl(og.url) ?? og.url }, key++));
310
+ elements.push(_jsx("meta", { property: "og:url", content: resolveUrl(og.url) }, key++));
309
311
  if (og.siteName)
310
312
  elements.push(_jsx("meta", { property: "og:site_name", content: og.siteName }, key++));
311
313
  if (og.type)
@@ -322,15 +324,15 @@ export function MetadataHead({ metadata }) {
322
324
  }
323
325
  }
324
326
  if (og.images) {
325
- const imgList = typeof og.images === "string"
327
+ const imgList = typeof og.images === "string" || og.images instanceof URL
326
328
  ? [{ url: og.images }]
327
329
  : Array.isArray(og.images)
328
330
  ? og.images
329
331
  : [og.images];
330
332
  for (const img of imgList) {
331
- const imgUrl = typeof img === "string" ? img : img.url;
332
- elements.push(_jsx("meta", { property: "og:image", content: resolveUrl(imgUrl) ?? imgUrl }, key++));
333
- if (typeof img !== "string") {
333
+ const imgUrl = typeof img === "string" || img instanceof URL ? img : img.url;
334
+ elements.push(_jsx("meta", { property: "og:image", content: resolveUrl(imgUrl) }, key++));
335
+ if (typeof img !== "string" && !(img instanceof URL)) {
334
336
  if (img.width)
335
337
  elements.push(_jsx("meta", { property: "og:image:width", content: String(img.width) }, key++));
336
338
  if (img.height)
@@ -342,7 +344,7 @@ export function MetadataHead({ metadata }) {
342
344
  }
343
345
  if (og.videos) {
344
346
  for (const video of og.videos) {
345
- elements.push(_jsx("meta", { property: "og:video", content: resolveUrl(video.url) ?? video.url }, key++));
347
+ elements.push(_jsx("meta", { property: "og:video", content: resolveUrl(video.url) }, key++));
346
348
  if (video.width)
347
349
  elements.push(_jsx("meta", { property: "og:video:width", content: String(video.width) }, key++));
348
350
  if (video.height)
@@ -351,7 +353,7 @@ export function MetadataHead({ metadata }) {
351
353
  }
352
354
  if (og.audio) {
353
355
  for (const audio of og.audio) {
354
- elements.push(_jsx("meta", { property: "og:audio", content: resolveUrl(audio.url) ?? audio.url }, key++));
356
+ elements.push(_jsx("meta", { property: "og:audio", content: resolveUrl(audio.url) }, key++));
355
357
  }
356
358
  }
357
359
  }
@@ -373,19 +375,47 @@ export function MetadataHead({ metadata }) {
373
375
  if (tw.creatorId)
374
376
  elements.push(_jsx("meta", { name: "twitter:creator:id", content: tw.creatorId }, key++));
375
377
  if (tw.images) {
376
- const imgList = typeof tw.images === "string"
378
+ const imgList = typeof tw.images === "string" || tw.images instanceof URL
377
379
  ? [tw.images]
378
380
  : Array.isArray(tw.images)
379
381
  ? tw.images
380
382
  : [tw.images];
381
383
  for (const img of imgList) {
382
- const imgUrl = typeof img === "string" ? img : img.url;
383
- elements.push(_jsx("meta", { name: "twitter:image", content: resolveUrl(imgUrl) ?? imgUrl }, key++));
384
- if (typeof img !== "string" && img.alt) {
384
+ const imgUrl = typeof img === "string" || img instanceof URL ? img : img.url;
385
+ elements.push(_jsx("meta", { name: "twitter:image", content: resolveUrl(imgUrl) }, key++));
386
+ if (typeof img !== "string" && !(img instanceof URL) && img.alt) {
385
387
  elements.push(_jsx("meta", { name: "twitter:image:alt", content: img.alt }, key++));
386
388
  }
387
389
  }
388
390
  }
391
+ // Twitter player cards
392
+ if (tw.players) {
393
+ const players = Array.isArray(tw.players) ? tw.players : [tw.players];
394
+ for (const player of players) {
395
+ const playerUrl = player.playerUrl.toString();
396
+ const streamUrl = player.streamUrl.toString();
397
+ elements.push(_jsx("meta", { name: "twitter:player", content: resolveUrl(playerUrl) }, key++));
398
+ elements.push(_jsx("meta", { name: "twitter:player:stream", content: resolveUrl(streamUrl) }, key++));
399
+ elements.push(_jsx("meta", { name: "twitter:player:width", content: String(player.width) }, key++));
400
+ elements.push(_jsx("meta", { name: "twitter:player:height", content: String(player.height) }, key++));
401
+ }
402
+ }
403
+ // Twitter app cards
404
+ if (tw.app) {
405
+ const { app } = tw;
406
+ for (const platform of ["iphone", "ipad", "googleplay"]) {
407
+ if (app.name) {
408
+ elements.push(_jsx("meta", { name: `twitter:app:name:${platform}`, content: app.name }, key++));
409
+ }
410
+ if (app.id[platform] !== undefined) {
411
+ elements.push(_jsx("meta", { name: `twitter:app:id:${platform}`, content: String(app.id[platform]) }, key++));
412
+ }
413
+ if (app.url?.[platform] !== undefined) {
414
+ const appUrl = app.url[platform].toString();
415
+ elements.push(_jsx("meta", { name: `twitter:app:url:${platform}`, content: resolveUrl(appUrl) }, key++));
416
+ }
417
+ }
418
+ }
389
419
  }
390
420
  // Icons
391
421
  if (metadata.icons) {
@@ -394,53 +424,53 @@ export function MetadataHead({ metadata }) {
394
424
  if (shortcut) {
395
425
  const shortcuts = Array.isArray(shortcut) ? shortcut : [shortcut];
396
426
  for (const s of shortcuts) {
397
- elements.push(_jsx("link", { rel: "shortcut icon", href: resolveUrl(s) ?? s }, key++));
427
+ elements.push(_jsx("link", { rel: "shortcut icon", href: resolveUrl(s) }, key++));
398
428
  }
399
429
  }
400
430
  // Icon
401
431
  if (icon) {
402
- const icons = typeof icon === "string" ? [{ url: icon }] : icon;
432
+ const icons = typeof icon === "string" || icon instanceof URL ? [{ url: icon }] : icon;
403
433
  for (const i of icons) {
404
- elements.push(_jsx("link", { rel: "icon", href: resolveUrl(i.url) ?? i.url, ...(i.sizes ? { sizes: i.sizes } : {}), ...(i.type ? { type: i.type } : {}), ...(i.media ? { media: i.media } : {}) }, key++));
434
+ elements.push(_jsx("link", { rel: "icon", href: resolveUrl(i.url), ...(i.sizes ? { sizes: i.sizes } : {}), ...(i.type ? { type: i.type } : {}), ...(i.media ? { media: i.media } : {}) }, key++));
405
435
  }
406
436
  }
407
437
  // Apple touch icon
408
438
  if (apple) {
409
- const apples = typeof apple === "string" ? [{ url: apple }] : apple;
439
+ const apples = typeof apple === "string" || apple instanceof URL ? [{ url: apple }] : apple;
410
440
  for (const a of apples) {
411
- elements.push(_jsx("link", { rel: "apple-touch-icon", href: resolveUrl(a.url) ?? a.url, ...(a.sizes ? { sizes: a.sizes } : {}), ...(a.type ? { type: a.type } : {}) }, key++));
441
+ elements.push(_jsx("link", { rel: "apple-touch-icon", href: resolveUrl(a.url), ...(a.sizes ? { sizes: a.sizes } : {}), ...(a.type ? { type: a.type } : {}) }, key++));
412
442
  }
413
443
  }
414
444
  // Other custom icon relations
415
445
  if (other) {
416
446
  for (const o of other) {
417
- elements.push(_jsx("link", { rel: o.rel, href: resolveUrl(o.url) ?? o.url, ...(o.sizes ? { sizes: o.sizes } : {}) }, key++));
447
+ elements.push(_jsx("link", { rel: o.rel, href: resolveUrl(o.url), ...(o.sizes ? { sizes: o.sizes } : {}) }, key++));
418
448
  }
419
449
  }
420
450
  }
421
451
  // Manifest
422
452
  if (metadata.manifest) {
423
- elements.push(_jsx("link", { rel: "manifest", href: resolveUrl(metadata.manifest) ?? metadata.manifest }, key++));
453
+ elements.push(_jsx("link", { rel: "manifest", href: resolveUrl(metadata.manifest) }, key++));
424
454
  }
425
455
  // Alternates
426
456
  if (metadata.alternates) {
427
457
  const alt = metadata.alternates;
428
458
  if (alt.canonical) {
429
- elements.push(_jsx("link", { rel: "canonical", href: resolveUrl(alt.canonical) ?? alt.canonical }, key++));
459
+ elements.push(_jsx("link", { rel: "canonical", href: resolveUrl(alt.canonical) }, key++));
430
460
  }
431
461
  if (alt.languages) {
432
462
  for (const [lang, href] of Object.entries(alt.languages)) {
433
- elements.push(_jsx("link", { rel: "alternate", hrefLang: lang, href: resolveUrl(href) ?? href }, key++));
463
+ elements.push(_jsx("link", { rel: "alternate", hrefLang: lang, href: resolveUrl(href) }, key++));
434
464
  }
435
465
  }
436
466
  if (alt.media) {
437
467
  for (const [media, href] of Object.entries(alt.media)) {
438
- elements.push(_jsx("link", { rel: "alternate", media: media, href: resolveUrl(href) ?? href }, key++));
468
+ elements.push(_jsx("link", { rel: "alternate", media: media, href: resolveUrl(href) }, key++));
439
469
  }
440
470
  }
441
471
  if (alt.types) {
442
472
  for (const [type, href] of Object.entries(alt.types)) {
443
- elements.push(_jsx("link", { rel: "alternate", type: type, href: resolveUrl(href) ?? href }, key++));
473
+ elements.push(_jsx("link", { rel: "alternate", type: type, href: resolveUrl(href) }, key++));
444
474
  }
445
475
  }
446
476
  }
@@ -477,7 +507,45 @@ export function MetadataHead({ metadata }) {
477
507
  if (awa.startupImage) {
478
508
  const imgs = typeof awa.startupImage === "string" ? [{ url: awa.startupImage }] : awa.startupImage;
479
509
  for (const img of imgs) {
480
- elements.push(_jsx("link", { rel: "apple-touch-startup-image", href: resolveUrl(img.url) ?? img.url, ...(img.media ? { media: img.media } : {}) }, key++));
510
+ elements.push(_jsx("link", { rel: "apple-touch-startup-image", href: resolveUrl(img.url), ...(img.media ? { media: img.media } : {}) }, key++));
511
+ }
512
+ }
513
+ }
514
+ // iTunes
515
+ if (metadata.itunes) {
516
+ const { appId, appArgument } = metadata.itunes;
517
+ let content = `app-id=${appId}`;
518
+ if (appArgument) {
519
+ content += `, app-argument=${appArgument}`;
520
+ }
521
+ elements.push(_jsx("meta", { name: "apple-itunes-app", content: content }, key++));
522
+ }
523
+ // App Links
524
+ if (metadata.appLinks) {
525
+ const al = metadata.appLinks;
526
+ const platforms = [
527
+ "ios",
528
+ "iphone",
529
+ "ipad",
530
+ "android",
531
+ "windows_phone",
532
+ "windows",
533
+ "windows_universal",
534
+ "web",
535
+ ];
536
+ for (const platform of platforms) {
537
+ const entries = al[platform];
538
+ if (!entries)
539
+ continue;
540
+ const list = Array.isArray(entries) ? entries : [entries];
541
+ for (const entry of list) {
542
+ for (const [k, v] of Object.entries(entry)) {
543
+ if (v === undefined || v === null)
544
+ continue;
545
+ const str = String(v);
546
+ const content = k === "url" ? resolveUrl(str) : str;
547
+ elements.push(_jsx("meta", { property: `al:${platform}:${k}`, content: content }, key++));
548
+ }
481
549
  }
482
550
  }
483
551
  }