vinext 0.0.44 → 0.0.46
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/build/google-fonts/build-url.d.ts +10 -0
- package/dist/build/google-fonts/build-url.js +30 -0
- package/dist/build/google-fonts/build-url.js.map +1 -0
- package/dist/build/google-fonts/font-data.js +24985 -0
- package/dist/build/google-fonts/font-data.js.map +1 -0
- package/dist/build/google-fonts/font-metadata.d.ts +17 -0
- package/dist/build/google-fonts/font-metadata.js +7 -0
- package/dist/build/google-fonts/font-metadata.js.map +1 -0
- package/dist/build/google-fonts/get-axes.d.ts +7 -0
- package/dist/build/google-fonts/get-axes.js +39 -0
- package/dist/build/google-fonts/get-axes.js.map +1 -0
- package/dist/build/google-fonts/sort-variants.d.ts +5 -0
- package/dist/build/google-fonts/sort-variants.js +14 -0
- package/dist/build/google-fonts/sort-variants.js.map +1 -0
- package/dist/build/google-fonts/validate.d.ts +28 -0
- package/dist/build/google-fonts/validate.js +56 -0
- package/dist/build/google-fonts/validate.js.map +1 -0
- package/dist/build/layout-classification.d.ts +1 -1
- package/dist/build/layout-classification.js.map +1 -1
- package/dist/build/nitro-route-rules.d.ts +1 -1
- package/dist/build/nitro-route-rules.js.map +1 -1
- package/dist/build/precompress.d.ts +1 -1
- package/dist/build/precompress.js.map +1 -1
- package/dist/build/prerender.d.ts +1 -7
- package/dist/build/prerender.js +17 -6
- package/dist/build/prerender.js.map +1 -1
- package/dist/build/run-prerender.d.ts +1 -13
- package/dist/build/run-prerender.js +5 -1
- package/dist/build/run-prerender.js.map +1 -1
- package/dist/build/standalone.d.ts +1 -1
- package/dist/build/standalone.js +4 -3
- package/dist/build/standalone.js.map +1 -1
- package/dist/check.js +30 -18
- package/dist/check.js.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/cloudflare/kv-cache-handler.d.ts +5 -0
- package/dist/cloudflare/kv-cache-handler.js +56 -35
- package/dist/cloudflare/kv-cache-handler.js.map +1 -1
- package/dist/cloudflare/tpr.d.ts +1 -16
- package/dist/cloudflare/tpr.js +1 -1
- package/dist/cloudflare/tpr.js.map +1 -1
- package/dist/config/config-matchers.js +1 -0
- package/dist/config/config-matchers.js.map +1 -1
- package/dist/config/dotenv.d.ts +1 -1
- package/dist/config/dotenv.js.map +1 -1
- package/dist/config/next-config.d.ts +38 -2
- package/dist/config/next-config.js +24 -0
- package/dist/config/next-config.js.map +1 -1
- package/dist/deploy.d.ts +1 -1
- package/dist/deploy.js +18 -23
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-rsc-entry.js +387 -1718
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/app-rsc-manifest.d.ts +24 -0
- package/dist/entries/app-rsc-manifest.js +153 -0
- package/dist/entries/app-rsc-manifest.js.map +1 -0
- package/dist/entries/pages-server-entry.js +13 -103
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/index.js +59 -34
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -1
- package/dist/init.js.map +1 -1
- package/dist/plugins/async-hooks-stub.d.ts +1 -2
- package/dist/plugins/async-hooks-stub.js +2 -2
- package/dist/plugins/async-hooks-stub.js.map +1 -1
- package/dist/plugins/fonts.d.ts +1 -20
- package/dist/plugins/fonts.js +42 -21
- package/dist/plugins/fonts.js.map +1 -1
- package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
- package/dist/plugins/rsc-client-shim-excludes.js +27 -0
- package/dist/plugins/rsc-client-shim-excludes.js.map +1 -0
- package/dist/plugins/server-externals-manifest.d.ts +1 -11
- package/dist/plugins/server-externals-manifest.js +1 -1
- package/dist/plugins/server-externals-manifest.js.map +1 -1
- package/dist/routing/app-router.d.ts +14 -5
- package/dist/routing/app-router.js +82 -5
- package/dist/routing/app-router.js.map +1 -1
- package/dist/routing/file-matcher.d.ts +1 -3
- package/dist/routing/file-matcher.js +1 -1
- package/dist/routing/file-matcher.js.map +1 -1
- package/dist/routing/route-pattern.d.ts +9 -0
- package/dist/routing/route-pattern.js +90 -0
- package/dist/routing/route-pattern.js.map +1 -0
- package/dist/routing/route-trie.js +10 -11
- package/dist/routing/route-trie.js.map +1 -1
- package/dist/routing/utils.d.ts +1 -29
- package/dist/routing/utils.js +1 -1
- package/dist/routing/utils.js.map +1 -1
- package/dist/server/app-browser-entry.js +63 -5
- package/dist/server/app-browser-entry.js.map +1 -1
- package/dist/server/app-browser-state.d.ts +1 -1
- package/dist/server/app-browser-state.js.map +1 -1
- package/dist/server/app-browser-stream.d.ts +1 -1
- package/dist/server/app-browser-stream.js.map +1 -1
- package/dist/server/app-elements.d.ts +1 -2
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-elements.js.map +1 -1
- package/dist/server/app-middleware.d.ts +32 -0
- package/dist/server/app-middleware.js +147 -0
- package/dist/server/app-middleware.js.map +1 -0
- package/dist/server/app-page-boundary-render.d.ts +5 -1
- package/dist/server/app-page-boundary-render.js +52 -30
- package/dist/server/app-page-boundary-render.js.map +1 -1
- package/dist/server/app-page-boundary.d.ts +13 -1
- package/dist/server/app-page-boundary.js +37 -17
- package/dist/server/app-page-boundary.js.map +1 -1
- package/dist/server/app-page-cache.d.ts +4 -1
- package/dist/server/app-page-cache.js +38 -2
- package/dist/server/app-page-cache.js.map +1 -1
- package/dist/server/app-page-dispatch.d.ts +120 -0
- package/dist/server/app-page-dispatch.js +332 -0
- package/dist/server/app-page-dispatch.js.map +1 -0
- package/dist/server/app-page-execution.d.ts +6 -3
- package/dist/server/app-page-execution.js +22 -10
- package/dist/server/app-page-execution.js.map +1 -1
- package/dist/server/app-page-head.d.ts +55 -0
- package/dist/server/app-page-head.js +196 -0
- package/dist/server/app-page-head.js.map +1 -0
- package/dist/server/app-page-method.d.ts +16 -0
- package/dist/server/app-page-method.js +30 -0
- package/dist/server/app-page-method.js.map +1 -0
- package/dist/server/app-page-params.d.ts +7 -0
- package/dist/server/app-page-params.js +28 -0
- package/dist/server/app-page-params.js.map +1 -0
- package/dist/server/app-page-probe.d.ts +1 -1
- package/dist/server/app-page-probe.js.map +1 -1
- package/dist/server/app-page-render.d.ts +4 -3
- package/dist/server/app-page-render.js +54 -8
- package/dist/server/app-page-render.js.map +1 -1
- package/dist/server/app-page-request.d.ts +5 -5
- package/dist/server/app-page-request.js.map +1 -1
- package/dist/server/app-page-response.d.ts +1 -1
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-route-wiring.d.ts +15 -11
- package/dist/server/app-page-route-wiring.js +31 -9
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +12 -1
- package/dist/server/app-page-stream.js +10 -4
- package/dist/server/app-page-stream.js.map +1 -1
- package/dist/server/app-prerender-endpoints.d.ts +19 -0
- package/dist/server/app-prerender-endpoints.js +96 -0
- package/dist/server/app-prerender-endpoints.js.map +1 -0
- package/dist/server/app-prerender-static-params.d.ts +16 -0
- package/dist/server/app-prerender-static-params.js +14 -0
- package/dist/server/app-prerender-static-params.js.map +1 -0
- package/dist/server/app-route-handler-cache.d.ts +4 -1
- package/dist/server/app-route-handler-cache.js +6 -2
- package/dist/server/app-route-handler-cache.js.map +1 -1
- package/dist/server/app-route-handler-dispatch.d.ts +42 -0
- package/dist/server/app-route-handler-dispatch.js +147 -0
- package/dist/server/app-route-handler-dispatch.js.map +1 -0
- package/dist/server/app-route-handler-execution.d.ts +7 -3
- package/dist/server/app-route-handler-execution.js +32 -6
- package/dist/server/app-route-handler-execution.js.map +1 -1
- package/dist/server/app-route-handler-policy.d.ts +6 -2
- package/dist/server/app-route-handler-policy.js +8 -3
- package/dist/server/app-route-handler-policy.js.map +1 -1
- package/dist/server/app-route-handler-response.d.ts +2 -1
- package/dist/server/app-route-handler-response.js +44 -4
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-route-handler-runtime.d.ts +5 -2
- package/dist/server/app-route-handler-runtime.js +108 -2
- package/dist/server/app-route-handler-runtime.js.map +1 -1
- package/dist/server/app-router-entry.js.map +1 -1
- package/dist/server/app-rsc-errors.d.ts +27 -0
- package/dist/server/app-rsc-errors.js +42 -0
- package/dist/server/app-rsc-errors.js.map +1 -0
- package/dist/server/app-rsc-route-matching.d.ts +40 -0
- package/dist/server/app-rsc-route-matching.js +66 -0
- package/dist/server/app-rsc-route-matching.js.map +1 -0
- package/dist/server/app-server-action-execution.d.ts +120 -0
- package/dist/server/app-server-action-execution.js +355 -0
- package/dist/server/app-server-action-execution.js.map +1 -0
- package/dist/server/app-ssr-entry.d.ts +7 -0
- package/dist/server/app-ssr-entry.js +30 -9
- package/dist/server/app-ssr-entry.js.map +1 -1
- package/dist/server/app-ssr-stream.d.ts +5 -3
- package/dist/server/app-ssr-stream.js +29 -2
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/app-static-generation.d.ts +15 -0
- package/dist/server/app-static-generation.js +20 -0
- package/dist/server/app-static-generation.js.map +1 -0
- package/dist/server/csp.d.ts +1 -2
- package/dist/server/csp.js +1 -1
- package/dist/server/csp.js.map +1 -1
- package/dist/server/dev-module-runner.d.ts +1 -1
- package/dist/server/dev-module-runner.js.map +1 -1
- package/dist/server/dev-route-files.d.ts +7 -0
- package/dist/server/dev-route-files.js +73 -0
- package/dist/server/dev-route-files.js.map +1 -0
- package/dist/server/dev-server.js +4 -0
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/file-based-metadata.d.ts +17 -0
- package/dist/server/file-based-metadata.js +356 -0
- package/dist/server/file-based-metadata.js.map +1 -0
- package/dist/server/implicit-tags.d.ts +6 -0
- package/dist/server/implicit-tags.js +42 -0
- package/dist/server/implicit-tags.js.map +1 -0
- package/dist/server/instrumentation.js.map +1 -1
- package/dist/server/isr-cache.d.ts +20 -2
- package/dist/server/isr-cache.js +58 -7
- package/dist/server/isr-cache.js.map +1 -1
- package/dist/server/metadata-route-build-data.d.ts +25 -0
- package/dist/server/metadata-route-build-data.js +150 -0
- package/dist/server/metadata-route-build-data.js.map +1 -0
- package/dist/server/metadata-route-response.d.ts +17 -0
- package/dist/server/metadata-route-response.js +187 -0
- package/dist/server/metadata-route-response.js.map +1 -0
- package/dist/server/metadata-routes.d.ts +42 -4
- package/dist/server/metadata-routes.js +127 -11
- package/dist/server/metadata-routes.js.map +1 -1
- package/dist/server/middleware-matcher.d.ts +15 -0
- package/dist/server/middleware-matcher.js +102 -0
- package/dist/server/middleware-matcher.js.map +1 -0
- package/dist/server/middleware-request-headers.d.ts +1 -3
- package/dist/server/middleware-request-headers.js +5 -4
- package/dist/server/middleware-request-headers.js.map +1 -1
- package/dist/server/middleware-runtime.d.ts +39 -0
- package/dist/server/middleware-runtime.js +159 -0
- package/dist/server/middleware-runtime.js.map +1 -0
- package/dist/server/middleware.d.ts +5 -37
- package/dist/server/middleware.js +18 -228
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/pages-api-route.d.ts +1 -1
- package/dist/server/pages-api-route.js.map +1 -1
- package/dist/server/pages-i18n.d.ts +2 -3
- package/dist/server/pages-i18n.js +1 -1
- package/dist/server/pages-i18n.js.map +1 -1
- package/dist/server/pages-node-compat.d.ts +1 -2
- package/dist/server/pages-node-compat.js +1 -1
- package/dist/server/pages-node-compat.js.map +1 -1
- package/dist/server/pages-page-data.d.ts +6 -2
- package/dist/server/pages-page-data.js +4 -0
- package/dist/server/pages-page-data.js.map +1 -1
- package/dist/server/pages-page-response.d.ts +1 -1
- package/dist/server/pages-page-response.js +2 -1
- package/dist/server/pages-page-response.js.map +1 -1
- package/dist/server/prerender-work-unit-setup.d.ts +7 -0
- package/dist/server/prerender-work-unit-setup.js +30 -0
- package/dist/server/prerender-work-unit-setup.js.map +1 -0
- package/dist/server/prod-server.js +12 -14
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/request-pipeline.d.ts +46 -5
- package/dist/server/request-pipeline.js +84 -5
- package/dist/server/request-pipeline.js.map +1 -1
- package/dist/server/rsc-stream-hints.d.ts +5 -0
- package/dist/server/rsc-stream-hints.js +35 -0
- package/dist/server/rsc-stream-hints.js.map +1 -0
- package/dist/server/seed-cache.js.map +1 -1
- package/dist/server/server-action-not-found.d.ts +9 -0
- package/dist/server/server-action-not-found.js +40 -0
- package/dist/server/server-action-not-found.js.map +1 -0
- package/dist/server/socket-error-backstop.d.ts +17 -0
- package/dist/server/socket-error-backstop.js +129 -0
- package/dist/server/socket-error-backstop.js.map +1 -0
- package/dist/server/static-file-cache.d.ts +1 -1
- package/dist/server/static-file-cache.js.map +1 -1
- package/dist/shims/cache-runtime.js +16 -3
- package/dist/shims/cache-runtime.js.map +1 -1
- package/dist/shims/cache.d.ts +27 -2
- package/dist/shims/cache.js +135 -24
- package/dist/shims/cache.js.map +1 -1
- package/dist/shims/error-boundary.d.ts +49 -4
- package/dist/shims/error-boundary.js +76 -4
- package/dist/shims/error-boundary.js.map +1 -1
- package/dist/shims/fetch-cache.d.ts +10 -1
- package/dist/shims/fetch-cache.js +24 -4
- package/dist/shims/fetch-cache.js.map +1 -1
- package/dist/shims/font-google-base.d.ts +21 -22
- package/dist/shims/font-google-base.js +86 -29
- package/dist/shims/font-google-base.js.map +1 -1
- package/dist/shims/form.js +1 -1
- package/dist/shims/headers.d.ts +14 -2
- package/dist/shims/headers.js +127 -17
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/image.js +26 -8
- package/dist/shims/image.js.map +1 -1
- package/dist/shims/internal/make-hanging-promise.d.ts +16 -0
- package/dist/shims/internal/make-hanging-promise.js +46 -0
- package/dist/shims/internal/make-hanging-promise.js.map +1 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +26 -3
- package/dist/shims/internal/work-unit-async-storage.js +6 -3
- package/dist/shims/internal/work-unit-async-storage.js.map +1 -1
- package/dist/shims/link.js +1 -1
- package/dist/shims/metadata.d.ts +38 -26
- package/dist/shims/metadata.js +75 -45
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation.d.ts +17 -4
- package/dist/shims/navigation.js +29 -6
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/navigation.react-server.d.ts +2 -2
- package/dist/shims/navigation.react-server.js +2 -2
- package/dist/shims/navigation.react-server.js.map +1 -1
- package/dist/shims/offline.d.ts +5 -0
- package/dist/shims/offline.js +17 -0
- package/dist/shims/offline.js.map +1 -0
- package/dist/shims/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +11 -0
- package/dist/shims/root-params.js +24 -0
- package/dist/shims/root-params.js.map +1 -0
- package/dist/shims/router.js +1 -1
- package/dist/shims/server.d.ts +5 -1
- package/dist/shims/server.js +101 -10
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/thenable-params.d.ts +5 -0
- package/dist/shims/thenable-params.js +37 -0
- package/dist/shims/thenable-params.js.map +1 -0
- package/dist/shims/unified-request-context.d.ts +2 -1
- package/dist/shims/unified-request-context.js +4 -0
- package/dist/shims/unified-request-context.js.map +1 -1
- package/dist/shims/url-safety.d.ts +3 -1
- package/dist/shims/url-safety.js +5 -1
- package/dist/shims/url-safety.js.map +1 -1
- package/dist/utils/error-cause.d.ts +5 -0
- package/dist/utils/error-cause.js +97 -0
- package/dist/utils/error-cause.js.map +1 -0
- package/dist/utils/lazy-chunks.d.ts +1 -1
- package/dist/utils/lazy-chunks.js.map +1 -1
- package/package.json +6 -1
- package/dist/server/middleware-codegen.d.ts +0 -54
- package/dist/server/middleware-codegen.js +0 -414
- package/dist/server/middleware-codegen.js.map +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/shims/internal/make-hanging-promise.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* makeHangingPromise — returns a promise that never resolves during prerendering.
|
|
4
|
+
*
|
|
5
|
+
* When prerendering, `unstable_io()` must return a hanging promise to prevent
|
|
6
|
+
* React from executing past the IO boundary. The promise never resolves—it only
|
|
7
|
+
* rejects if the render signal is aborted (e.g., due to a dynamic error or
|
|
8
|
+
* cache-fill completion).
|
|
9
|
+
*
|
|
10
|
+
* Ported from Next.js: packages/next/src/server/dynamic-rendering-utils.ts
|
|
11
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/server/dynamic-rendering-utils.ts
|
|
12
|
+
*/
|
|
13
|
+
declare function makeHangingPromise<T>(signal: AbortSignal, route: string, expression: string): Promise<T>;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { makeHangingPromise };
|
|
16
|
+
//# sourceMappingURL=make-hanging-promise.d.ts.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//#region src/shims/internal/make-hanging-promise.ts
|
|
2
|
+
/**
|
|
3
|
+
* makeHangingPromise — returns a promise that never resolves during prerendering.
|
|
4
|
+
*
|
|
5
|
+
* When prerendering, `unstable_io()` must return a hanging promise to prevent
|
|
6
|
+
* React from executing past the IO boundary. The promise never resolves—it only
|
|
7
|
+
* rejects if the render signal is aborted (e.g., due to a dynamic error or
|
|
8
|
+
* cache-fill completion).
|
|
9
|
+
*
|
|
10
|
+
* Ported from Next.js: packages/next/src/server/dynamic-rendering-utils.ts
|
|
11
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/server/dynamic-rendering-utils.ts
|
|
12
|
+
*/
|
|
13
|
+
var HangingPromiseRejectionError = class extends Error {
|
|
14
|
+
constructor(route, expression) {
|
|
15
|
+
super(`Route ${route} used ${expression} during prerendering but the render was aborted. This is expected when prerendering is cut short (e.g. due to a dynamic access).`);
|
|
16
|
+
this.name = "HangingPromiseRejectionError";
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const abortListenersBySignal = /* @__PURE__ */ new WeakMap();
|
|
20
|
+
function suppressUnhandledRejection() {}
|
|
21
|
+
function makeHangingPromise(signal, route, expression) {
|
|
22
|
+
if (signal.aborted) {
|
|
23
|
+
const rejected = Promise.reject(new HangingPromiseRejectionError(route, expression));
|
|
24
|
+
rejected.catch(suppressUnhandledRejection);
|
|
25
|
+
return rejected;
|
|
26
|
+
}
|
|
27
|
+
const hangingPromise = new Promise((_, reject) => {
|
|
28
|
+
const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));
|
|
29
|
+
const currentListeners = abortListenersBySignal.get(signal);
|
|
30
|
+
if (currentListeners) currentListeners.push(boundRejection);
|
|
31
|
+
else {
|
|
32
|
+
const listeners = [boundRejection];
|
|
33
|
+
abortListenersBySignal.set(signal, listeners);
|
|
34
|
+
signal.addEventListener("abort", () => {
|
|
35
|
+
for (let i = 0; i < listeners.length; i++) listeners[i]();
|
|
36
|
+
listeners.length = 0;
|
|
37
|
+
}, { once: true });
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
hangingPromise.catch(suppressUnhandledRejection);
|
|
41
|
+
return hangingPromise;
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { makeHangingPromise };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=make-hanging-promise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-hanging-promise.js","names":[],"sources":["../../../src/shims/internal/make-hanging-promise.ts"],"sourcesContent":["/**\n * makeHangingPromise — returns a promise that never resolves during prerendering.\n *\n * When prerendering, `unstable_io()` must return a hanging promise to prevent\n * React from executing past the IO boundary. The promise never resolves—it only\n * rejects if the render signal is aborted (e.g., due to a dynamic error or\n * cache-fill completion).\n *\n * Ported from Next.js: packages/next/src/server/dynamic-rendering-utils.ts\n * https://github.com/vercel/next.js/blob/canary/packages/next/src/server/dynamic-rendering-utils.ts\n */\n\nclass HangingPromiseRejectionError extends Error {\n constructor(route: string, expression: string) {\n super(\n `Route ${route} used ${expression} during prerendering but the render was aborted. ` +\n `This is expected when prerendering is cut short (e.g. due to a dynamic access).`,\n );\n this.name = \"HangingPromiseRejectionError\";\n }\n}\n\nconst abortListenersBySignal = new WeakMap<AbortSignal, (() => void)[]>();\n\nfunction suppressUnhandledRejection(): void {\n // intentionally empty — suppresses \"unhandled rejection\" warnings\n}\n\nexport function makeHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string,\n): Promise<T> {\n if (signal.aborted) {\n const rejected = Promise.reject(new HangingPromiseRejectionError(route, expression));\n rejected.catch(suppressUnhandledRejection);\n return rejected;\n }\n const hangingPromise = new Promise<T>((_, reject) => {\n const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));\n const currentListeners = abortListenersBySignal.get(signal);\n if (currentListeners) {\n currentListeners.push(boundRejection);\n } else {\n const listeners = [boundRejection];\n abortListenersBySignal.set(signal, listeners);\n signal.addEventListener(\n \"abort\",\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n listeners.length = 0;\n },\n { once: true },\n );\n }\n });\n // Suppress unhandled rejection — the promise is expected to be used with\n // React's use() which handles rejections. If never awaited, the abort\n // rejection is a no-op cleanup.\n hangingPromise.catch(suppressUnhandledRejection);\n return hangingPromise;\n}\n"],"mappings":";;;;;;;;;;;;AAYA,IAAM,+BAAN,cAA2C,MAAM;CAC/C,YAAY,OAAe,YAAoB;AAC7C,QACE,SAAS,MAAM,QAAQ,WAAW,kIAEnC;AACD,OAAK,OAAO;;;AAIhB,MAAM,yCAAyB,IAAI,SAAsC;AAEzE,SAAS,6BAAmC;AAI5C,SAAgB,mBACd,QACA,OACA,YACY;AACZ,KAAI,OAAO,SAAS;EAClB,MAAM,WAAW,QAAQ,OAAO,IAAI,6BAA6B,OAAO,WAAW,CAAC;AACpF,WAAS,MAAM,2BAA2B;AAC1C,SAAO;;CAET,MAAM,iBAAiB,IAAI,SAAY,GAAG,WAAW;EACnD,MAAM,iBAAiB,OAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,WAAW,CAAC;EAC7F,MAAM,mBAAmB,uBAAuB,IAAI,OAAO;AAC3D,MAAI,iBACF,kBAAiB,KAAK,eAAe;OAChC;GACL,MAAM,YAAY,CAAC,eAAe;AAClC,0BAAuB,IAAI,QAAQ,UAAU;AAC7C,UAAO,iBACL,eACM;AACJ,SAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,IACpC,WAAU,IAAI;AAEhB,cAAU,SAAS;MAErB,EAAE,MAAM,MAAM,CACf;;GAEH;AAIF,gBAAe,MAAM,2BAA2B;AAChD,QAAO"}
|
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
2
|
|
|
3
3
|
//#region src/shims/internal/work-unit-async-storage.d.ts
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
type RequestStore = {
|
|
5
|
+
readonly type: "request";
|
|
6
|
+
};
|
|
7
|
+
type PrerenderStore = {
|
|
8
|
+
readonly type: "prerender" | "prerender-client" | "prerender-runtime"; /** AbortSignal that fires when the prerender is cancelled or completed. */
|
|
9
|
+
readonly renderSignal: AbortSignal; /** Optional route identifier for debugging and error messages. */
|
|
10
|
+
readonly route?: string;
|
|
11
|
+
};
|
|
12
|
+
type CacheStore = {
|
|
13
|
+
readonly type: "cache" | "private-cache" | "unstable-cache";
|
|
14
|
+
};
|
|
15
|
+
type GenerateStaticParamsStore = {
|
|
16
|
+
readonly type: "generate-static-params";
|
|
17
|
+
};
|
|
18
|
+
type PrerenderLegacyStore = {
|
|
19
|
+
readonly type: "prerender-legacy";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Discriminated union of all known work unit types.
|
|
23
|
+
* Matches Next.js's WorkUnitStore: packages/next/src/server/app-render/work-unit-async-storage.external.ts
|
|
24
|
+
*/
|
|
25
|
+
type WorkUnitStore = RequestStore | PrerenderStore | CacheStore | GenerateStaticParamsStore | PrerenderLegacyStore;
|
|
26
|
+
type WorkUnitAsyncStorage = AsyncLocalStorage<WorkUnitStore>;
|
|
27
|
+
declare const workUnitAsyncStorage: WorkUnitAsyncStorage;
|
|
28
|
+
declare const requestAsyncStorage: WorkUnitAsyncStorage;
|
|
6
29
|
//#endregion
|
|
7
|
-
export { requestAsyncStorage, workUnitAsyncStorage };
|
|
30
|
+
export { CacheStore, GenerateStaticParamsStore, PrerenderLegacyStore, PrerenderStore, RequestStore, WorkUnitAsyncStorage, WorkUnitStore, requestAsyncStorage, workUnitAsyncStorage };
|
|
8
31
|
//# sourceMappingURL=work-unit-async-storage.d.ts.map
|
|
@@ -4,9 +4,12 @@ import { AsyncLocalStorage } from "node:async_hooks";
|
|
|
4
4
|
* Shim for next/dist/server/app-render/work-unit-async-storage.external
|
|
5
5
|
* and next/dist/client/components/request-async-storage.external
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* Tracks the current rendering context type so that dynamic APIs
|
|
8
|
+
* (unstable_io, headers, cookies, etc.) can branch on whether they're
|
|
9
|
+
* inside a request, prerender, cache scope, or other context.
|
|
10
|
+
*
|
|
11
|
+
* Used by: @sentry/nextjs (runtime resolve for request context injection),
|
|
12
|
+
* unstable_io() for hanging-promise behavior during prerendering.
|
|
10
13
|
*/
|
|
11
14
|
const workUnitAsyncStorage = new AsyncLocalStorage();
|
|
12
15
|
const requestAsyncStorage = workUnitAsyncStorage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-unit-async-storage.js","names":[],"sources":["../../../src/shims/internal/work-unit-async-storage.ts"],"sourcesContent":["/**\n * Shim for next/dist/server/app-render/work-unit-async-storage.external\n * and next/dist/client/components/request-async-storage.external\n *\n * Used by: @sentry/nextjs (runtime resolve for request context injection)
|
|
1
|
+
{"version":3,"file":"work-unit-async-storage.js","names":[],"sources":["../../../src/shims/internal/work-unit-async-storage.ts"],"sourcesContent":["/**\n * Shim for next/dist/server/app-render/work-unit-async-storage.external\n * and next/dist/client/components/request-async-storage.external\n *\n * Tracks the current rendering context type so that dynamic APIs\n * (unstable_io, headers, cookies, etc.) can branch on whether they're\n * inside a request, prerender, cache scope, or other context.\n *\n * Used by: @sentry/nextjs (runtime resolve for request context injection),\n * unstable_io() for hanging-promise behavior during prerendering.\n */\nimport { AsyncLocalStorage } from \"node:async_hooks\";\n\n// ── WorkUnitStore discriminated union ───────────────────────────────────\n\nexport type RequestStore = {\n readonly type: \"request\";\n};\n\nexport type PrerenderStore = {\n readonly type: \"prerender\" | \"prerender-client\" | \"prerender-runtime\";\n /** AbortSignal that fires when the prerender is cancelled or completed. */\n readonly renderSignal: AbortSignal;\n /** Optional route identifier for debugging and error messages. */\n readonly route?: string;\n};\n\nexport type CacheStore = {\n readonly type: \"cache\" | \"private-cache\" | \"unstable-cache\";\n};\n\nexport type GenerateStaticParamsStore = {\n readonly type: \"generate-static-params\";\n};\n\nexport type PrerenderLegacyStore = {\n readonly type: \"prerender-legacy\";\n};\n\n/**\n * Discriminated union of all known work unit types.\n * Matches Next.js's WorkUnitStore: packages/next/src/server/app-render/work-unit-async-storage.external.ts\n */\nexport type WorkUnitStore =\n | RequestStore\n | PrerenderStore\n | CacheStore\n | GenerateStaticParamsStore\n | PrerenderLegacyStore;\n\nexport type WorkUnitAsyncStorage = AsyncLocalStorage<WorkUnitStore>;\n\nexport const workUnitAsyncStorage: WorkUnitAsyncStorage = new AsyncLocalStorage();\n\n// Legacy name (Next 13.x–14.x)\nexport const requestAsyncStorage = workUnitAsyncStorage;\n"],"mappings":";;;;;;;;;;;;;AAoDA,MAAa,uBAA6C,IAAI,mBAAmB;AAGjF,MAAa,sBAAsB"}
|
package/dist/shims/link.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { isDangerousScheme } from "./url-safety.js";
|
|
2
3
|
import { resolveRelativeHref, toBrowserNavigationHref, toSameOriginAppPath, withBasePath } from "./url-utils.js";
|
|
3
4
|
import { addLocalePrefix, getDomainLocaleUrl } from "../utils/domain-locale.js";
|
|
4
5
|
import { appendSearchParamsToUrl, urlQueryToSearchParams } from "../utils/query.js";
|
|
5
6
|
import { createAppPayloadCacheKey } from "../server/app-elements.js";
|
|
6
7
|
import { getCurrentInterceptionContext, getMountedSlotsHeader, getPrefetchedUrls, navigateClientSide, prefetchRscResponse, toRscUrl } from "./navigation.js";
|
|
7
|
-
import { isDangerousScheme } from "./url-safety.js";
|
|
8
8
|
import { getI18nContext } from "./i18n-context.js";
|
|
9
9
|
import React, { createContext, forwardRef, useCallback, useContext, useEffect, useRef, useState } from "react";
|
|
10
10
|
import { jsx } from "react/jsx-runtime";
|
package/dist/shims/metadata.d.ts
CHANGED
|
@@ -73,11 +73,13 @@ type Metadata = {
|
|
|
73
73
|
width?: number;
|
|
74
74
|
height?: number;
|
|
75
75
|
alt?: string;
|
|
76
|
+
type?: string;
|
|
76
77
|
} | Array<string | URL | {
|
|
77
78
|
url: string | URL;
|
|
78
79
|
width?: number;
|
|
79
80
|
height?: number;
|
|
80
81
|
alt?: string;
|
|
82
|
+
type?: string;
|
|
81
83
|
}>;
|
|
82
84
|
videos?: Array<{
|
|
83
85
|
url: string | URL;
|
|
@@ -104,37 +106,20 @@ type Metadata = {
|
|
|
104
106
|
alt?: string;
|
|
105
107
|
width?: number;
|
|
106
108
|
height?: number;
|
|
109
|
+
type?: string;
|
|
107
110
|
} | Array<string | URL | {
|
|
108
111
|
url: string | URL;
|
|
109
112
|
alt?: string;
|
|
110
113
|
width?: number;
|
|
111
114
|
height?: number;
|
|
115
|
+
type?: string;
|
|
112
116
|
}>;
|
|
113
117
|
creator?: string;
|
|
114
118
|
creatorId?: string;
|
|
115
119
|
players?: TwitterPlayerDescriptor | TwitterPlayerDescriptor[];
|
|
116
120
|
app?: TwitterAppDescriptor;
|
|
117
121
|
};
|
|
118
|
-
icons?:
|
|
119
|
-
icon?: string | URL | Array<{
|
|
120
|
-
url: string | URL;
|
|
121
|
-
sizes?: string;
|
|
122
|
-
type?: string;
|
|
123
|
-
media?: string;
|
|
124
|
-
}>;
|
|
125
|
-
shortcut?: string | URL | Array<string | URL>;
|
|
126
|
-
apple?: string | URL | Array<{
|
|
127
|
-
url: string | URL;
|
|
128
|
-
sizes?: string;
|
|
129
|
-
type?: string;
|
|
130
|
-
}>;
|
|
131
|
-
other?: Array<{
|
|
132
|
-
rel: string;
|
|
133
|
-
url: string | URL;
|
|
134
|
-
sizes?: string;
|
|
135
|
-
type?: string;
|
|
136
|
-
}>;
|
|
137
|
-
};
|
|
122
|
+
icons?: IconsMetadata;
|
|
138
123
|
manifest?: string | URL;
|
|
139
124
|
alternates?: {
|
|
140
125
|
canonical?: string | URL;
|
|
@@ -220,6 +205,36 @@ type TwitterAppDescriptor = {
|
|
|
220
205
|
};
|
|
221
206
|
name?: string;
|
|
222
207
|
};
|
|
208
|
+
type IconDescriptor = {
|
|
209
|
+
url: string | URL;
|
|
210
|
+
sizes?: string;
|
|
211
|
+
type?: string;
|
|
212
|
+
media?: string;
|
|
213
|
+
};
|
|
214
|
+
type AppleIconDescriptor = {
|
|
215
|
+
url: string | URL;
|
|
216
|
+
sizes?: string;
|
|
217
|
+
type?: string;
|
|
218
|
+
};
|
|
219
|
+
type IconInput = string | URL | IconDescriptor;
|
|
220
|
+
type AppleIconInput = string | URL | AppleIconDescriptor;
|
|
221
|
+
type IconsMap = {
|
|
222
|
+
icon?: IconInput | IconInput[];
|
|
223
|
+
shortcut?: string | URL | Array<string | URL>;
|
|
224
|
+
apple?: AppleIconInput | AppleIconInput[];
|
|
225
|
+
other?: Array<{
|
|
226
|
+
rel: string;
|
|
227
|
+
url: string | URL;
|
|
228
|
+
sizes?: string;
|
|
229
|
+
type?: string;
|
|
230
|
+
}>;
|
|
231
|
+
};
|
|
232
|
+
type IconsMetadata = IconInput | IconInput[] | IconsMap;
|
|
233
|
+
type MetadataMergeEntry = {
|
|
234
|
+
contributesTitle?: boolean;
|
|
235
|
+
isPage?: boolean;
|
|
236
|
+
metadata: Metadata;
|
|
237
|
+
};
|
|
223
238
|
/**
|
|
224
239
|
* Merge metadata from multiple sources (layouts + page).
|
|
225
240
|
*
|
|
@@ -232,6 +247,7 @@ type TwitterAppDescriptor = {
|
|
|
232
247
|
* Shallow merge: later entries override earlier ones (per Next.js docs).
|
|
233
248
|
*/
|
|
234
249
|
declare function mergeMetadata(metadataList: Metadata[]): Metadata;
|
|
250
|
+
declare function mergeMetadataEntries(entries: readonly MetadataMergeEntry[]): Metadata;
|
|
235
251
|
/**
|
|
236
252
|
* Resolve metadata from a module. Handles both static `metadata` export
|
|
237
253
|
* and async `generateMetadata()` function.
|
|
@@ -242,16 +258,12 @@ declare function mergeMetadata(metadataList: Metadata[]): Metadata;
|
|
|
242
258
|
* resolution approach. If not provided, defaults to a promise that resolves
|
|
243
259
|
* to an empty object (so `await parent` never throws).
|
|
244
260
|
*/
|
|
245
|
-
declare function resolveModuleMetadata(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string>, parent?: Promise<Metadata>): Promise<Metadata | null>;
|
|
246
|
-
/**
|
|
247
|
-
* React component that renders metadata as HTML head elements.
|
|
248
|
-
* Used by the RSC entry to inject into the <head>.
|
|
249
|
-
*/
|
|
261
|
+
declare function resolveModuleMetadata(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<Metadata>): Promise<Metadata | null>;
|
|
250
262
|
declare function MetadataHead({
|
|
251
263
|
metadata
|
|
252
264
|
}: {
|
|
253
265
|
metadata: Metadata;
|
|
254
266
|
}): _$react_jsx_runtime0.JSX.Element;
|
|
255
267
|
//#endregion
|
|
256
|
-
export { DEFAULT_VIEWPORT, Metadata, MetadataHead, Viewport, ViewportHead, mergeMetadata, mergeViewport, resolveModuleMetadata, resolveModuleViewport };
|
|
268
|
+
export { DEFAULT_VIEWPORT, Metadata, MetadataHead, MetadataMergeEntry, Viewport, ViewportHead, mergeMetadata, mergeMetadataEntries, mergeViewport, resolveModuleMetadata, resolveModuleViewport };
|
|
257
269
|
//# sourceMappingURL=metadata.d.ts.map
|
package/dist/shims/metadata.js
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
+
import { makeThenableParams } from "./thenable-params.js";
|
|
1
2
|
import "react";
|
|
2
3
|
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
3
4
|
//#region src/shims/metadata.tsx
|
|
4
5
|
/**
|
|
5
|
-
* Normalize null-prototype objects from matchPattern() into thenable objects.
|
|
6
|
-
* See entries/app-rsc-entry.ts makeThenableParams() for full explanation.
|
|
7
|
-
*/
|
|
8
|
-
function makeThenableParams(obj) {
|
|
9
|
-
const plain = { ...obj };
|
|
10
|
-
return Object.assign(Promise.resolve(plain), plain);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
6
|
* Resolve viewport config from a module. Handles both static `viewport` export
|
|
14
7
|
* and async `generateViewport()` function.
|
|
15
8
|
*/
|
|
@@ -80,17 +73,25 @@ function ViewportHead({ viewport }) {
|
|
|
80
73
|
* Shallow merge: later entries override earlier ones (per Next.js docs).
|
|
81
74
|
*/
|
|
82
75
|
function mergeMetadata(metadataList) {
|
|
83
|
-
|
|
76
|
+
return mergeMetadataEntries(metadataList.map((metadata, index) => ({
|
|
77
|
+
isPage: index === metadataList.length - 1,
|
|
78
|
+
metadata
|
|
79
|
+
})));
|
|
80
|
+
}
|
|
81
|
+
function mergeMetadataEntries(entries) {
|
|
82
|
+
if (entries.length === 0) return {};
|
|
84
83
|
const merged = {};
|
|
85
84
|
let parentTemplate;
|
|
86
|
-
for (
|
|
87
|
-
const meta =
|
|
88
|
-
|
|
85
|
+
for (const entry of entries) {
|
|
86
|
+
const meta = entry.metadata;
|
|
87
|
+
const isPage = Boolean(entry.isPage);
|
|
88
|
+
const contributesTitle = entry.contributesTitle !== false;
|
|
89
|
+
if (contributesTitle && !isPage && meta.title && typeof meta.title === "object" && meta.title.template) parentTemplate = meta.title.template;
|
|
89
90
|
for (const key of Object.keys(meta)) {
|
|
90
91
|
if (key === "title") continue;
|
|
91
92
|
merged[key] = meta[key];
|
|
92
93
|
}
|
|
93
|
-
if (meta.title !== void 0) merged.title = meta.title;
|
|
94
|
+
if (contributesTitle && meta.title !== void 0) merged.title = meta.title;
|
|
94
95
|
}
|
|
95
96
|
const finalTitle = merged.title;
|
|
96
97
|
if (finalTitle) {
|
|
@@ -117,11 +118,11 @@ function mergeMetadata(metadataList) {
|
|
|
117
118
|
async function resolveModuleMetadata(mod, params = {}, searchParams, parent = Promise.resolve({})) {
|
|
118
119
|
if (typeof mod.generateMetadata === "function") {
|
|
119
120
|
const asyncParams = makeThenableParams(params);
|
|
120
|
-
const
|
|
121
|
-
return await mod.generateMetadata({
|
|
121
|
+
const props = searchParams === void 0 ? { params: asyncParams } : {
|
|
122
122
|
params: asyncParams,
|
|
123
|
-
searchParams:
|
|
124
|
-
}
|
|
123
|
+
searchParams: makeThenableParams(searchParams)
|
|
124
|
+
};
|
|
125
|
+
return await mod.generateMetadata(props, parent);
|
|
125
126
|
}
|
|
126
127
|
if (mod.metadata && typeof mod.metadata === "object") return mod.metadata;
|
|
127
128
|
return null;
|
|
@@ -130,6 +131,23 @@ async function resolveModuleMetadata(mod, params = {}, searchParams, parent = Pr
|
|
|
130
131
|
* React component that renders metadata as HTML head elements.
|
|
131
132
|
* Used by the RSC entry to inject into the <head>.
|
|
132
133
|
*/
|
|
134
|
+
function isIconDescriptor(value) {
|
|
135
|
+
if (typeof value !== "object" || value === null || value instanceof URL || Array.isArray(value)) return false;
|
|
136
|
+
const urlValue = Reflect.get(value, "url");
|
|
137
|
+
return typeof urlValue === "string" || urlValue instanceof URL;
|
|
138
|
+
}
|
|
139
|
+
function isIconsMap(value) {
|
|
140
|
+
return typeof value === "object" && !(value instanceof URL) && !Array.isArray(value) && !isIconDescriptor(value);
|
|
141
|
+
}
|
|
142
|
+
function normalizeUrlDescriptor(value, createDescriptor) {
|
|
143
|
+
if (typeof value === "string" || value instanceof URL) return createDescriptor(value);
|
|
144
|
+
return value;
|
|
145
|
+
}
|
|
146
|
+
function normalizeUrlDescriptorEntries(value, createDescriptor) {
|
|
147
|
+
if (!value) return [];
|
|
148
|
+
if (Array.isArray(value)) return value.map((entry) => normalizeUrlDescriptor(entry, createDescriptor));
|
|
149
|
+
return [normalizeUrlDescriptor(value, createDescriptor)];
|
|
150
|
+
}
|
|
133
151
|
function MetadataHead({ metadata }) {
|
|
134
152
|
const elements = [];
|
|
135
153
|
let key = 0;
|
|
@@ -289,6 +307,10 @@ function MetadataHead({ metadata }) {
|
|
|
289
307
|
property: "og:image:height",
|
|
290
308
|
content: String(img.height)
|
|
291
309
|
}, key++));
|
|
310
|
+
if (img.type) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
311
|
+
property: "og:image:type",
|
|
312
|
+
content: img.type
|
|
313
|
+
}, key++));
|
|
292
314
|
if (img.alt) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
293
315
|
property: "og:image:alt",
|
|
294
316
|
content: img.alt
|
|
@@ -353,10 +375,24 @@ function MetadataHead({ metadata }) {
|
|
|
353
375
|
name: "twitter:image",
|
|
354
376
|
content: resolveUrl(imgUrl)
|
|
355
377
|
}, key++));
|
|
356
|
-
if (typeof img !== "string" && !(img instanceof URL)
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
378
|
+
if (typeof img !== "string" && !(img instanceof URL)) {
|
|
379
|
+
if (img.type) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
380
|
+
name: "twitter:image:type",
|
|
381
|
+
content: img.type
|
|
382
|
+
}, key++));
|
|
383
|
+
if (img.width) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
384
|
+
name: "twitter:image:width",
|
|
385
|
+
content: String(img.width)
|
|
386
|
+
}, key++));
|
|
387
|
+
if (img.height) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
388
|
+
name: "twitter:image:height",
|
|
389
|
+
content: String(img.height)
|
|
390
|
+
}, key++));
|
|
391
|
+
if (img.alt) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
392
|
+
name: "twitter:image:alt",
|
|
393
|
+
content: img.alt
|
|
394
|
+
}, key++));
|
|
395
|
+
}
|
|
360
396
|
}
|
|
361
397
|
}
|
|
362
398
|
if (tw.players) {
|
|
@@ -408,34 +444,28 @@ function MetadataHead({ metadata }) {
|
|
|
408
444
|
}
|
|
409
445
|
}
|
|
410
446
|
if (metadata.icons) {
|
|
411
|
-
const
|
|
412
|
-
if (shortcut) {
|
|
413
|
-
const shortcuts = Array.isArray(shortcut) ? shortcut : [shortcut];
|
|
447
|
+
const iconEntries = isIconsMap(metadata.icons) ? normalizeUrlDescriptorEntries(metadata.icons.icon, (url) => ({ url })) : normalizeUrlDescriptorEntries(metadata.icons, (url) => ({ url }));
|
|
448
|
+
if (isIconsMap(metadata.icons) && metadata.icons.shortcut) {
|
|
449
|
+
const shortcuts = Array.isArray(metadata.icons.shortcut) ? metadata.icons.shortcut : [metadata.icons.shortcut];
|
|
414
450
|
for (const s of shortcuts) elements.push(/* @__PURE__ */ jsx("link", {
|
|
415
451
|
rel: "shortcut icon",
|
|
416
452
|
href: resolveUrl(s)
|
|
417
453
|
}, key++));
|
|
418
454
|
}
|
|
419
|
-
if (
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
href: resolveUrl(a.url),
|
|
434
|
-
...a.sizes ? { sizes: a.sizes } : {},
|
|
435
|
-
...a.type ? { type: a.type } : {}
|
|
436
|
-
}, key++));
|
|
437
|
-
}
|
|
438
|
-
if (other) for (const o of other) elements.push(/* @__PURE__ */ jsx("link", {
|
|
455
|
+
if (iconEntries.length > 0) for (const i of iconEntries) elements.push(/* @__PURE__ */ jsx("link", {
|
|
456
|
+
rel: "icon",
|
|
457
|
+
href: resolveUrl(i.url),
|
|
458
|
+
...i.sizes ? { sizes: i.sizes } : {},
|
|
459
|
+
...i.type ? { type: i.type } : {},
|
|
460
|
+
...i.media ? { media: i.media } : {}
|
|
461
|
+
}, key++));
|
|
462
|
+
if (isIconsMap(metadata.icons) && metadata.icons.apple) for (const a of normalizeUrlDescriptorEntries(metadata.icons.apple, (url) => ({ url }))) elements.push(/* @__PURE__ */ jsx("link", {
|
|
463
|
+
rel: "apple-touch-icon",
|
|
464
|
+
href: resolveUrl(a.url),
|
|
465
|
+
...a.sizes ? { sizes: a.sizes } : {},
|
|
466
|
+
...a.type ? { type: a.type } : {}
|
|
467
|
+
}, key++));
|
|
468
|
+
if (isIconsMap(metadata.icons) && metadata.icons.other) for (const o of metadata.icons.other) elements.push(/* @__PURE__ */ jsx("link", {
|
|
439
469
|
rel: o.rel,
|
|
440
470
|
href: resolveUrl(o.url),
|
|
441
471
|
...o.sizes ? { sizes: o.sizes } : {}
|
|
@@ -557,6 +587,6 @@ function MetadataHead({ metadata }) {
|
|
|
557
587
|
return /* @__PURE__ */ jsx(Fragment$1, { children: elements });
|
|
558
588
|
}
|
|
559
589
|
//#endregion
|
|
560
|
-
export { DEFAULT_VIEWPORT, MetadataHead, ViewportHead, mergeMetadata, mergeViewport, resolveModuleMetadata, resolveModuleViewport };
|
|
590
|
+
export { DEFAULT_VIEWPORT, MetadataHead, ViewportHead, mergeMetadata, mergeMetadataEntries, mergeViewport, resolveModuleMetadata, resolveModuleViewport };
|
|
561
591
|
|
|
562
592
|
//# sourceMappingURL=metadata.js.map
|