@wular/pnext 0.1.6 → 0.1.8
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/bin/pnext +9 -2
- package/dist/server/_chunks/aliases-pycbtjt1.js +46 -0
- package/dist/server/_chunks/analyze-4d9e00g9.js +449 -0
- package/dist/server/_chunks/boot-bhemypxz.js +38 -0
- package/dist/server/_chunks/build-c991dv65.js +86 -0
- package/dist/server/_chunks/build-kh5e3x48.js +3341 -0
- package/dist/server/_chunks/build-tier-0a96kmx3.js +2456 -0
- package/dist/server/_chunks/compile-040r79gj.js +22 -0
- package/dist/server/_chunks/config-0tvz03a6.js +24 -0
- package/dist/server/_chunks/config-27rj7830.js +36 -0
- package/dist/server/_chunks/create-9rvwshsp.js +135 -0
- package/dist/server/_chunks/dev-ex9exynt.js +220 -0
- package/dist/server/_chunks/esbuild-yyktfrtt.js +15 -0
- package/dist/server/_chunks/generate-myw9hef7.js +22 -0
- package/dist/server/_chunks/index-0r5eqfc7.js +279 -0
- package/dist/server/_chunks/index-0yjv5v47.js +105 -0
- package/dist/server/_chunks/index-11xpbfej.js +17 -0
- package/dist/server/_chunks/index-141vcwk6.js +109 -0
- package/dist/server/_chunks/index-1pzm1hdy.js +4130 -0
- package/dist/server/_chunks/index-29pq0kax.js +590 -0
- package/dist/server/_chunks/index-2vz0wzdn.js +59 -0
- package/dist/server/_chunks/index-2wfv4kvx.js +182 -0
- package/dist/server/_chunks/index-38xpdxwd.js +194 -0
- package/dist/server/_chunks/index-3e075kny.js +128 -0
- package/dist/server/_chunks/index-3ycf5ckv.js +472 -0
- package/dist/server/_chunks/index-4399bvd2.js +18 -0
- package/dist/server/_chunks/index-4da76t62.js +297 -0
- package/dist/server/_chunks/index-4t92hdxd.js +172 -0
- package/dist/server/_chunks/index-4zzebszd.js +10 -0
- package/dist/server/_chunks/index-52k54ykj.js +95 -0
- package/dist/server/_chunks/index-5hr4062s.js +70 -0
- package/dist/server/_chunks/index-68m3mwbd.js +84 -0
- package/dist/server/_chunks/index-6b009mt0.js +56 -0
- package/dist/server/_chunks/index-6gex3pfa.js +15 -0
- package/dist/server/_chunks/index-6kp9r0d9.js +11 -0
- package/dist/server/_chunks/index-6q7zvrap.js +134 -0
- package/dist/server/_chunks/index-71885zaq.js +284 -0
- package/dist/server/_chunks/index-73z4esab.js +38 -0
- package/dist/server/_chunks/index-79ngvam8.js +60 -0
- package/dist/server/_chunks/index-7wc9n8be.js +25 -0
- package/dist/server/_chunks/index-8ct7rqy3.js +198 -0
- package/dist/server/_chunks/index-8kcxdfya.js +206 -0
- package/dist/server/_chunks/index-9ch50vtq.js +18 -0
- package/dist/server/_chunks/index-9f49w76j.js +213 -0
- package/dist/server/_chunks/index-9hz3s0m8.js +851 -0
- package/dist/server/_chunks/index-akkrvjn6.js +535 -0
- package/dist/server/_chunks/index-b6wtkdp4.js +24 -0
- package/dist/server/_chunks/index-b7j671dj.js +207 -0
- package/dist/server/_chunks/index-bcws5eh2.js +35 -0
- package/dist/server/_chunks/index-bzd2ef7t.js +10 -0
- package/dist/server/_chunks/index-cjgqs13g.js +65 -0
- package/dist/server/_chunks/index-ckkdpht5.js +41 -0
- package/dist/server/_chunks/index-cn86z041.js +296 -0
- package/dist/server/_chunks/index-cvr4z22m.js +92 -0
- package/dist/server/_chunks/index-cyfednwb.js +87 -0
- package/dist/server/_chunks/index-d158y67j.js +152 -0
- package/dist/server/_chunks/index-d1jsmhhk.js +955 -0
- package/dist/server/_chunks/index-dg0f05zs.js +199 -0
- package/dist/server/_chunks/index-dgr390q7.js +9438 -0
- package/dist/server/_chunks/index-drwv61cc.js +185 -0
- package/dist/server/_chunks/index-e3a6yx84.js +18 -0
- package/dist/server/_chunks/index-e88tyv35.js +45 -0
- package/dist/server/_chunks/index-en7n9f7m.js +22 -0
- package/dist/server/_chunks/index-entm8bmz.js +28 -0
- package/dist/server/_chunks/index-evhd413j.js +57 -0
- package/dist/server/_chunks/index-ezgj0tr1.js +88 -0
- package/dist/server/_chunks/index-fjv96re1.js +5295 -0
- package/dist/server/_chunks/index-fn1chkkd.js +214 -0
- package/dist/server/_chunks/index-fp8r0sqs.js +64 -0
- package/dist/server/_chunks/index-gcmj16xy.js +92 -0
- package/dist/server/_chunks/index-gkndxkxf.js +736 -0
- package/dist/server/_chunks/index-grta8ap3.js +238 -0
- package/dist/server/_chunks/index-h2a70tg4.js +7 -0
- package/dist/server/_chunks/index-h4xy648y.js +51 -0
- package/dist/server/_chunks/index-hdbwtdv2.js +352 -0
- package/dist/server/_chunks/index-he6n2bvp.js +1270 -0
- package/dist/server/_chunks/index-j0m1jxqa.js +1253 -0
- package/dist/server/_chunks/index-j2zrcp1k.js +66 -0
- package/dist/server/_chunks/index-j681c48a.js +2530 -0
- package/dist/server/_chunks/index-jbj7ehef.js +50 -0
- package/dist/server/_chunks/index-jcsjq3d1.js +20 -0
- package/dist/server/_chunks/index-jks0x0a1.js +14 -0
- package/dist/server/_chunks/index-jn9rbhrx.js +1599 -0
- package/dist/server/_chunks/index-jt8e1pje.js +12 -0
- package/dist/server/_chunks/index-kdhxpwyq.js +483 -0
- package/dist/server/_chunks/index-knp0s912.js +7 -0
- package/dist/server/_chunks/index-kqyy1d4f.js +50 -0
- package/dist/server/_chunks/index-kresp2n8.js +445 -0
- package/dist/server/_chunks/index-m63czgq5.js +590 -0
- package/dist/server/_chunks/index-ms9v9tnx.js +31 -0
- package/dist/server/_chunks/index-n4hxpng2.js +11 -0
- package/dist/server/_chunks/index-n629dy38.js +1071 -0
- package/dist/server/_chunks/index-nf3df4jy.js +266 -0
- package/dist/server/_chunks/index-nqh3xhdc.js +57 -0
- package/dist/server/_chunks/index-pym1cezq.js +39 -0
- package/dist/server/_chunks/index-q3r9z8mq.js +213 -0
- package/dist/server/_chunks/index-q738kkhj.js +100 -0
- package/dist/server/_chunks/index-qcrvt6er.js +112 -0
- package/dist/server/_chunks/index-qjj6gddn.js +54 -0
- package/dist/server/_chunks/index-qpwsgt3a.js +158 -0
- package/dist/server/_chunks/index-r97ptz1q.js +97 -0
- package/dist/server/_chunks/index-ras0sdab.js +26 -0
- package/dist/server/_chunks/index-rcs322t1.js +19 -0
- package/dist/server/_chunks/index-rgj5mx84.js +101 -0
- package/dist/server/_chunks/index-rjegyfx4.js +1435 -0
- package/dist/server/_chunks/index-rt9qq1va.js +4 -0
- package/dist/server/_chunks/index-rthrsed5.js +356 -0
- package/dist/server/_chunks/index-sq3kvz3g.js +200 -0
- package/dist/server/_chunks/index-stbk3jhn.js +31 -0
- package/dist/server/_chunks/index-tf4j19ge.js +130 -0
- package/dist/server/_chunks/index-tgcakdxc.js +125 -0
- package/dist/server/_chunks/index-tgsfjmep.js +74 -0
- package/dist/server/_chunks/index-tq1f96v7.js +51 -0
- package/dist/server/_chunks/index-tq3b39a5.js +107 -0
- package/dist/server/_chunks/index-typcbcsv.js +819 -0
- package/dist/server/_chunks/index-v1ags1na.js +132 -0
- package/dist/server/_chunks/index-vmr35jjw.js +170 -0
- package/dist/server/_chunks/index-vvq7rqtn.js +329 -0
- package/dist/server/_chunks/index-vz0km5qk.js +33 -0
- package/dist/server/_chunks/index-w6h8m6vp.js +138 -0
- package/dist/server/_chunks/index-web361b8.js +138 -0
- package/dist/server/_chunks/index-wm36rj4v.js +311 -0
- package/dist/server/_chunks/index-x0y005nh.js +283 -0
- package/dist/server/_chunks/index-x2m17v9c.js +6166 -0
- package/dist/server/_chunks/index-x3yn4ywm.js +22 -0
- package/dist/server/_chunks/index-x9c55pzy.js +871 -0
- package/dist/server/_chunks/index-xh1nbk46.js +1299 -0
- package/dist/server/_chunks/index-xvj80c3a.js +30 -0
- package/dist/server/_chunks/index-xywjg2vc.js +100 -0
- package/dist/server/_chunks/index-y4d02znn.js +66 -0
- package/dist/server/_chunks/index-y7mzvq2q.js +110 -0
- package/dist/server/_chunks/index-ye9hmsvf.js +47 -0
- package/dist/server/_chunks/index-yhxkxghe.js +56 -0
- package/dist/server/_chunks/index-yrjkqtfj.js +86 -0
- package/dist/server/_chunks/index-z88qv16t.js +11 -0
- package/dist/server/_chunks/index-zfrwq472.js +154 -0
- package/dist/server/_chunks/index-zqpqyg8p.js +666 -0
- package/dist/server/_chunks/loader-5en7wpt5.js +80 -0
- package/dist/server/_chunks/modules-t92favpj.js +76 -0
- package/dist/server/_chunks/pipeline-4t9q43ht.js +836 -0
- package/dist/server/_chunks/production-385bw8df.js +55 -0
- package/dist/server/_chunks/proxy-config-60gprphe.js +23 -0
- package/dist/server/_chunks/proxy-gfhmktbk.js +35 -0
- package/dist/server/_chunks/router-xnrva921.js +501 -0
- package/dist/server/_chunks/routes-ht868pdc.js +66 -0
- package/dist/server/_chunks/run-d40d63ag.js +697 -0
- package/dist/server/_chunks/server-2p8fgqq2.js +1839 -0
- package/dist/server/_chunks/tsconfig-defaults-bcn34eqb.js +21 -0
- package/dist/server/_chunks/typegen-dvtcjtaw.js +37 -0
- package/dist/server/api/client-cache.js +14 -0
- package/dist/server/cli/index.js +375 -0
- package/dist/server/cli/start.js +158 -0
- package/dist/server/client/reference.js +16 -0
- package/dist/server/compat/next/cache.js +56 -0
- package/dist/server/compat/next/canonical-url.js +13 -0
- package/dist/server/compat/next/client-cache.js +57 -0
- package/dist/server/compat/next/client-navigation.js +232 -0
- package/dist/server/compat/next/client-only.js +1 -0
- package/dist/server/compat/next/client-script.js +178 -0
- package/dist/server/compat/next/client-server.js +34 -0
- package/dist/server/compat/next/config-headers.js +34 -0
- package/dist/server/compat/next/config-loader.js +25 -0
- package/dist/server/compat/next/config.js +10 -0
- package/dist/server/compat/next/constants.js +18 -0
- package/dist/server/compat/next/custom-server.js +10 -0
- package/dist/server/compat/next/dist/client/components/app-router-headers.js +48 -0
- package/dist/server/compat/next/dist/server/web/spec-extension/revalidate.js +27 -0
- package/dist/server/compat/next/dist/server/web/spec-extension/unstable-cache.js +25 -0
- package/dist/server/compat/next/dist/server/web/spec-extension/unstable-no-store.js +25 -0
- package/dist/server/compat/next/dynamic.js +21 -0
- package/dist/server/compat/next/error.js +112 -0
- package/dist/server/compat/next/font/cache.js +16 -0
- package/dist/server/compat/next/font/google.js +3 -0
- package/dist/server/compat/next/font/index.js +1 -0
- package/dist/server/compat/next/font/local.js +24 -0
- package/dist/server/compat/next/font/runtime-client.js +33 -0
- package/dist/server/compat/next/font/runtime.js +43 -0
- package/dist/server/compat/next/font/shared.js +22 -0
- package/dist/server/compat/next/form.js +129 -0
- package/dist/server/compat/next/head.js +10 -0
- package/dist/server/compat/next/headers.js +30 -0
- package/dist/server/compat/next/image/client.js +11 -0
- package/dist/server/compat/next/image/config.js +18 -0
- package/dist/server/compat/next/image/optimizer.js +25 -0
- package/dist/server/compat/next/image/patterns.js +12 -0
- package/dist/server/compat/next/image/props.js +16 -0
- package/dist/server/compat/next/image/shared.js +86 -0
- package/dist/server/compat/next/image/static-metadata.js +32 -0
- package/dist/server/compat/next/image/validate.js +8 -0
- package/dist/server/compat/next/image.js +59 -0
- package/dist/server/compat/next/index.js +1 -0
- package/dist/server/compat/next/legacy-image.js +78 -0
- package/dist/server/compat/next/legacy-request-apis.js +24 -0
- package/dist/server/compat/next/link-transform.js +15 -0
- package/dist/server/compat/next/link.js +14 -0
- package/dist/server/compat/next/navigation.js +191 -0
- package/dist/server/compat/next/offline.js +45 -0
- package/dist/server/compat/next/og.js +8 -0
- package/dist/server/compat/next/preferred-region.js +8 -0
- package/dist/server/compat/next/redirects.js +32 -0
- package/dist/server/compat/next/resource-hints.js +30 -0
- package/dist/server/compat/next/rewrites.js +43 -0
- package/dist/server/compat/next/root-params.js +121 -0
- package/dist/server/compat/next/route-state.js +23 -0
- package/dist/server/compat/next/router.js +103 -0
- package/dist/server/compat/next/script.js +37 -0
- package/dist/server/compat/next/server-only.js +1 -0
- package/dist/server/compat/next/server.js +131 -0
- package/dist/server/compat/next/svgr.js +14 -0
- package/dist/server/compat/next/telemetry.js +10 -0
- package/dist/server/compat/next/usage.js +13 -0
- package/dist/server/compat/next/user-agent.js +12 -0
- package/dist/server/compat/next/web-vitals.js +35 -0
- package/dist/server/compat/react/action-state.js +11 -0
- package/dist/server/compat/react/client-lite.js +83 -0
- package/dist/server/compat/react/client.js +131 -0
- package/dist/server/compat/react/compiler-runtime.js +42 -0
- package/dist/server/compat/react/dom-client.js +106 -0
- package/dist/server/compat/react/dom-react-server.js +37 -0
- package/dist/server/compat/react/dom-server.js +40 -0
- package/dist/server/compat/react/dom.js +52 -0
- package/dist/server/compat/react/hooks-extra.js +12 -0
- package/dist/server/compat/react/internals.js +14 -0
- package/dist/server/compat/react/parity.js +11 -0
- package/dist/server/compat/react/preact.js +113 -0
- package/dist/server/compat/react/react-server.js +133 -0
- package/dist/server/compat/react/router-shim.js +8 -0
- package/dist/server/compat/react/server-component-use.js +14 -0
- package/dist/server/compat/react/server-inserted-html.js +14 -0
- package/dist/server/compat/react/server.js +194 -0
- package/dist/server/compat/react/style-values.js +10 -0
- package/dist/server/compat/react/use.js +10 -0
- package/dist/server/compat/react/view-transition.js +12 -0
- package/dist/server/generation.json +1 -0
- package/package.json +4 -1
- package/reference/compat.md +1 -1
- package/reference/config.md +2 -2
- package/reference/dev.md +1 -1
- package/reference/getting-started.md +1 -1
- package/reference/rendering.md +4 -4
- package/src/api/dynamic.tsx +86 -4
- package/src/api/server.ts +24 -6
- package/src/cli/adapters/vercel-warm.ts +327 -62
- package/src/cli/adapters/vercel.ts +164 -1054
- package/src/cli/analyze.ts +3 -2
- package/src/cli/build/cache.ts +6 -6
- package/src/cli/build.ts +78 -45
- package/src/cli/index.ts +21 -3
- package/src/cli/serve/immutable.ts +31 -0
- package/src/cli/serve/pipeline.ts +97 -93
- package/src/cli/serve/standalone-worker.ts +8 -0
- package/src/cli/serve/standalone.ts +703 -0
- package/src/cli/start.ts +31 -8
- package/src/client/build.ts +1 -1
- package/src/client/chunk-fold.ts +19 -6
- package/src/client/react-tier.ts +3 -2
- package/src/client/reference-stub.ts +23 -36
- package/src/compat/actions/client-plugin.ts +4 -2
- package/src/compat/actions/config.ts +6 -5
- package/src/compat/actions/extensions.ts +5 -5
- package/src/compat/aliases.ts +8 -1
- package/src/compat/bundler/config.ts +88 -0
- package/src/compat/bundler/optimize-package-imports.ts +86 -26
- package/src/compat/bundler/relay-transform.ts +15 -3
- package/src/compat/bundler/require-context.ts +2 -1
- package/src/compat/bundler/webpack-loaders.ts +3 -2
- package/src/compat/bundler/worker.ts +2 -2
- package/src/compat/cache-control.ts +16 -8
- package/src/compat/css/inline-css.ts +1 -1
- package/src/compat/css/modules.ts +18 -5
- package/src/compat/export/build-complete.ts +1 -1
- package/src/compat/export/emit.ts +4 -4
- package/src/compat/export/standalone.ts +30 -65
- package/src/compat/image-optimizer/optimize.ts +1 -1
- package/src/compat/lifecycle/error-funnel.ts +1 -1
- package/src/compat/lifecycle/instrumentation-client.ts +4 -3
- package/src/compat/lifecycle/instrumentation.ts +117 -24
- package/src/compat/lifecycle/testmode.ts +3 -2
- package/src/compat/metadata-artifacts.ts +1 -1
- package/src/compat/next/config-loader.ts +140 -13
- package/src/compat/next/dynamic.tsx +10 -23
- package/src/compat/next/font/cache.ts +2 -1
- package/src/compat/next/font/runtime.ts +23 -3
- package/src/compat/next/og.ts +3 -3
- package/src/compat/next/usage.ts +3 -2
- package/src/compat/pages/api.ts +83 -14
- package/src/compat/pages/router.ts +30 -14
- package/src/compat/register/bundler.ts +3 -1
- package/src/compat/register/image.ts +1 -1
- package/src/compat/register/middleware.ts +1 -1
- package/src/compat/register/otel.ts +5 -9
- package/src/compat/register/render.ts +3 -1
- package/src/compat/register/use-cache.ts +3 -1
- package/src/compat/release.ts +46 -0
- package/src/compat/segment/serve.ts +1 -1
- package/src/compat/typecheck/check.ts +6 -4
- package/src/compat/validation/validate.ts +10 -7
- package/src/config.ts +76 -9
- package/src/css/assets.ts +213 -0
- package/src/css/build.ts +190 -247
- package/src/dev/client-chunk-store.ts +2 -1
- package/src/dev/restart/client-key.ts +2 -1
- package/src/dev/restart/global-css.ts +2 -1
- package/src/dev/restart/route-bundle-key.ts +2 -1
- package/src/dev/restart/route-facts.ts +2 -1
- package/src/dev/server.ts +34 -14
- package/src/extensions.ts +4 -0
- package/src/out-paths.ts +10 -0
- package/src/render/hooks.ts +13 -0
- package/src/render/renderer.ts +53 -33
- package/src/request/context.ts +9 -0
- package/src/resolve/dynamic.ts +7 -1
- package/src/resolve/engine.ts +2 -12
- package/src/resolve/imports.ts +12 -52
- package/src/resolve/package-json.ts +56 -0
- package/src/resolve/scan-facts.ts +250 -1
- package/src/routing/href.ts +10 -3
- package/src/routing/match.ts +287 -0
- package/src/routing/metadata-files.ts +20 -6
- package/src/routing/proxy-config.ts +137 -0
- package/src/routing/proxy.ts +35 -134
- package/src/routing/routes.ts +22 -281
- package/src/runtime/fingerprint.ts +23 -8
- package/src/runtime/load.ts +170 -0
- package/src/runtime/loader.ts +218 -44
- package/src/runtime/module-cache.ts +15 -1
- package/src/runtime/modules.ts +405 -82
- package/src/runtime/prebundle.ts +101 -0
- package/src/runtime/production.ts +456 -0
- package/src/runtime/release-graph.ts +342 -0
- package/src/runtime/vendor-build.ts +750 -17
- package/src/runtime/vendor.ts +16 -3
- package/src/types.ts +4 -3
- package/src/utils/directive.ts +40 -0
- package/src/utils/fs.ts +95 -4
- package/src/utils/resource-query.ts +12 -0
- package/src/cli/serve/entry.ts +0 -45
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
invokeServerComponentWithUse
|
|
4
|
+
} from "../../_chunks/index-b6wtkdp4.js";
|
|
5
|
+
import"../../_chunks/index-tgcakdxc.js";
|
|
6
|
+
import"../../_chunks/index-h4xy648y.js";
|
|
7
|
+
import"../../_chunks/index-68m3mwbd.js";
|
|
8
|
+
import"../../_chunks/index-w6h8m6vp.js";
|
|
9
|
+
import"../../_chunks/index-j2zrcp1k.js";
|
|
10
|
+
import"../../_chunks/index-79ngvam8.js";
|
|
11
|
+
import"../../_chunks/index-rt9qq1va.js";
|
|
12
|
+
export {
|
|
13
|
+
invokeServerComponentWithUse
|
|
14
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
clearServerInsertedHTML,
|
|
4
|
+
renderServerInsertedHTML,
|
|
5
|
+
setServerInsertedHTMLScope,
|
|
6
|
+
useServerInsertedHTML
|
|
7
|
+
} from "../../_chunks/index-nqh3xhdc.js";
|
|
8
|
+
import"../../_chunks/index-rt9qq1va.js";
|
|
9
|
+
export {
|
|
10
|
+
clearServerInsertedHTML,
|
|
11
|
+
renderServerInsertedHTML,
|
|
12
|
+
setServerInsertedHTMLScope,
|
|
13
|
+
useServerInsertedHTML
|
|
14
|
+
};
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
ReactClientInternals,
|
|
4
|
+
ReactSharedInternals,
|
|
5
|
+
attachReactInternals
|
|
6
|
+
} from "../../_chunks/index-e88tyv35.js";
|
|
7
|
+
import {
|
|
8
|
+
Children,
|
|
9
|
+
Component,
|
|
10
|
+
Fragment,
|
|
11
|
+
PureComponent,
|
|
12
|
+
StrictMode,
|
|
13
|
+
Suspense,
|
|
14
|
+
SuspenseList,
|
|
15
|
+
cloneElement,
|
|
16
|
+
createContext,
|
|
17
|
+
createElement,
|
|
18
|
+
createFactory,
|
|
19
|
+
createPortal,
|
|
20
|
+
createRef,
|
|
21
|
+
findDOMNode,
|
|
22
|
+
flushSync,
|
|
23
|
+
forwardRef,
|
|
24
|
+
hydrate,
|
|
25
|
+
isFragment,
|
|
26
|
+
isMemo,
|
|
27
|
+
isValidElement,
|
|
28
|
+
lazy,
|
|
29
|
+
memo,
|
|
30
|
+
preact_default,
|
|
31
|
+
render,
|
|
32
|
+
startTransition,
|
|
33
|
+
unmountComponentAtNode,
|
|
34
|
+
unstable_batchedUpdates,
|
|
35
|
+
useId,
|
|
36
|
+
version
|
|
37
|
+
} from "../../_chunks/index-tgcakdxc.js";
|
|
38
|
+
import {
|
|
39
|
+
use
|
|
40
|
+
} from "../../_chunks/index-h4xy648y.js";
|
|
41
|
+
import {
|
|
42
|
+
useActionState
|
|
43
|
+
} from "../../_chunks/index-68m3mwbd.js";
|
|
44
|
+
import"../../_chunks/index-w6h8m6vp.js";
|
|
45
|
+
import {
|
|
46
|
+
useOptimistic
|
|
47
|
+
} from "../../_chunks/index-j2zrcp1k.js";
|
|
48
|
+
import"../../_chunks/index-kqyy1d4f.js";
|
|
49
|
+
import"../../_chunks/index-79ngvam8.js";
|
|
50
|
+
import {
|
|
51
|
+
currentPrerenderScope
|
|
52
|
+
} from "../../_chunks/index-kresp2n8.js";
|
|
53
|
+
import"../../_chunks/index-e3a6yx84.js";
|
|
54
|
+
import {
|
|
55
|
+
ViewTransition,
|
|
56
|
+
addTransitionType
|
|
57
|
+
} from "../../_chunks/index-9ch50vtq.js";
|
|
58
|
+
import"../../_chunks/index-rt9qq1va.js";
|
|
59
|
+
|
|
60
|
+
// src/compat/react/server.ts
|
|
61
|
+
import { cache as serverCache } from "../../../../src/api/cache.ts";
|
|
62
|
+
import { currentCacheSignal } from "../../../../src/request/cache.ts";
|
|
63
|
+
import { cache } from "../../../../src/api/cache.ts";
|
|
64
|
+
attachReactInternals(preact_default);
|
|
65
|
+
var useEffect = () => {
|
|
66
|
+
return;
|
|
67
|
+
};
|
|
68
|
+
var useLayoutEffect = () => {
|
|
69
|
+
return;
|
|
70
|
+
};
|
|
71
|
+
var useInsertionEffect = () => {
|
|
72
|
+
return;
|
|
73
|
+
};
|
|
74
|
+
var useDebugValue = () => {
|
|
75
|
+
return;
|
|
76
|
+
};
|
|
77
|
+
var useImperativeHandle = () => {
|
|
78
|
+
return;
|
|
79
|
+
};
|
|
80
|
+
function useState(initialState) {
|
|
81
|
+
return [
|
|
82
|
+
typeof initialState === "function" ? initialState() : initialState,
|
|
83
|
+
() => {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
];
|
|
87
|
+
}
|
|
88
|
+
function useReducer(reducer, initialArg, init) {
|
|
89
|
+
return [init ? init(initialArg) : initialArg, () => {
|
|
90
|
+
return;
|
|
91
|
+
}];
|
|
92
|
+
}
|
|
93
|
+
function useRef(initialValue) {
|
|
94
|
+
return { current: initialValue };
|
|
95
|
+
}
|
|
96
|
+
function useMemo(factory) {
|
|
97
|
+
return factory();
|
|
98
|
+
}
|
|
99
|
+
function useCallback(callback) {
|
|
100
|
+
return callback;
|
|
101
|
+
}
|
|
102
|
+
function useDeferredValue(value) {
|
|
103
|
+
return value;
|
|
104
|
+
}
|
|
105
|
+
function useTransition() {
|
|
106
|
+
return [false, (callback) => callback()];
|
|
107
|
+
}
|
|
108
|
+
function useSyncExternalStore(_subscribe, _getSnapshot, getServerSnapshot) {
|
|
109
|
+
if (!getServerSnapshot)
|
|
110
|
+
throw new Error("Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.");
|
|
111
|
+
return getServerSnapshot();
|
|
112
|
+
}
|
|
113
|
+
function useContext(context) {
|
|
114
|
+
return preact_default.useContext(context);
|
|
115
|
+
}
|
|
116
|
+
function cacheSignal() {
|
|
117
|
+
const prerender = currentPrerenderScope();
|
|
118
|
+
if (prerender)
|
|
119
|
+
return prerender.signal;
|
|
120
|
+
return currentCacheSignal();
|
|
121
|
+
}
|
|
122
|
+
var ReactServer = { ...preact_default };
|
|
123
|
+
delete ReactServer.useState;
|
|
124
|
+
ReactServer.cache = serverCache;
|
|
125
|
+
ReactServer.cacheSignal = cacheSignal;
|
|
126
|
+
ReactServer.useEffect = useEffect;
|
|
127
|
+
ReactServer.useLayoutEffect = useLayoutEffect;
|
|
128
|
+
ReactServer.useInsertionEffect = useInsertionEffect;
|
|
129
|
+
ReactServer.useDebugValue = useDebugValue;
|
|
130
|
+
ReactServer.useImperativeHandle = useImperativeHandle;
|
|
131
|
+
ReactServer.useReducer = useReducer;
|
|
132
|
+
ReactServer.useRef = useRef;
|
|
133
|
+
ReactServer.useMemo = useMemo;
|
|
134
|
+
ReactServer.useCallback = useCallback;
|
|
135
|
+
ReactServer.useDeferredValue = useDeferredValue;
|
|
136
|
+
ReactServer.useTransition = useTransition;
|
|
137
|
+
ReactServer.useSyncExternalStore = useSyncExternalStore;
|
|
138
|
+
ReactServer.useContext = useContext;
|
|
139
|
+
Object.assign(ReactServer, { ViewTransition, addTransitionType });
|
|
140
|
+
var server_default = ReactServer;
|
|
141
|
+
export {
|
|
142
|
+
Children,
|
|
143
|
+
Component,
|
|
144
|
+
Fragment,
|
|
145
|
+
PureComponent,
|
|
146
|
+
StrictMode,
|
|
147
|
+
Suspense,
|
|
148
|
+
SuspenseList,
|
|
149
|
+
ViewTransition,
|
|
150
|
+
ReactClientInternals as __CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
|
|
151
|
+
ReactSharedInternals as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
|
152
|
+
addTransitionType,
|
|
153
|
+
cache,
|
|
154
|
+
cacheSignal,
|
|
155
|
+
cloneElement,
|
|
156
|
+
createContext,
|
|
157
|
+
createElement,
|
|
158
|
+
createFactory,
|
|
159
|
+
createPortal,
|
|
160
|
+
createRef,
|
|
161
|
+
server_default as default,
|
|
162
|
+
findDOMNode,
|
|
163
|
+
flushSync,
|
|
164
|
+
forwardRef,
|
|
165
|
+
hydrate,
|
|
166
|
+
isFragment,
|
|
167
|
+
isMemo,
|
|
168
|
+
isValidElement,
|
|
169
|
+
lazy,
|
|
170
|
+
memo,
|
|
171
|
+
render,
|
|
172
|
+
startTransition,
|
|
173
|
+
unmountComponentAtNode,
|
|
174
|
+
unstable_batchedUpdates,
|
|
175
|
+
use,
|
|
176
|
+
useActionState,
|
|
177
|
+
useCallback,
|
|
178
|
+
useContext,
|
|
179
|
+
useDebugValue,
|
|
180
|
+
useDeferredValue,
|
|
181
|
+
useEffect,
|
|
182
|
+
useId,
|
|
183
|
+
useImperativeHandle,
|
|
184
|
+
useInsertionEffect,
|
|
185
|
+
useLayoutEffect,
|
|
186
|
+
useMemo,
|
|
187
|
+
useOptimistic,
|
|
188
|
+
useReducer,
|
|
189
|
+
useRef,
|
|
190
|
+
useState,
|
|
191
|
+
useSyncExternalStore,
|
|
192
|
+
useTransition,
|
|
193
|
+
version
|
|
194
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.8","fingerprint":"64aaa993cbaa58df","source":["src/api/cache.ts","src/api/client-navigation.ts","src/api/dynamic.tsx","src/api/link.tsx","src/api/navigation.ts","src/api/server.ts","src/api/suspense.ts","src/client/router/events.ts","src/client/router/history.ts","src/client/router/hub.ts","src/client/router/index.ts","src/client/router/page-slot.ts","src/client/router/policies.ts","src/client/router/runtime.ts","src/index.ts","src/internal.ts","src/request/cache.ts","src/routing/href.ts","src/utils/decode.ts"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wular/pnext",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "A fast little framework for server-first React apps, fully compatible with Next.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"bin",
|
|
28
28
|
"config",
|
|
29
|
+
"dist",
|
|
29
30
|
"src",
|
|
30
31
|
"tsconfig.json",
|
|
31
32
|
"reference"
|
|
@@ -53,6 +54,8 @@
|
|
|
53
54
|
"bench": "bun bench/run.ts",
|
|
54
55
|
"clean": "rm -rf .turbo .pnext node_modules",
|
|
55
56
|
"prepublishOnly": "bun run lint",
|
|
57
|
+
"prepack": "NODE_ENV=production bun scripts/prebundle.ts",
|
|
58
|
+
"postpack": "rm -rf dist",
|
|
56
59
|
"version-bump:patch": "bun scripts/bump.mjs patch",
|
|
57
60
|
"version-bump:minor": "bun scripts/bump.mjs minor",
|
|
58
61
|
"version-bump:major": "bun scripts/bump.mjs major"
|
package/reference/compat.md
CHANGED
|
@@ -125,4 +125,4 @@ A route or proxy declaring an edge runtime, and a Pages Router handler configure
|
|
|
125
125
|
|
|
126
126
|
`output: 'export'` writes a static tree to `out/`, or to `distDir` when the app configures a custom one. The tree carries the HTML and the flat per-page artifacts the client router fetches when no pnext server is present, the client runtime under `_next/static/chunks/`, the build manifests, the `public/` tree, and the not-found page. Dynamic routes without `generateStaticParams`, pages forcing dynamic rendering, and route handlers with disallowed segment config are build errors, as they are in Next.
|
|
127
127
|
|
|
128
|
-
`output: 'standalone'` writes
|
|
128
|
+
`output: 'standalone'` writes the same `standalone/` folder as every build (see [Deploy](./dev.md#deploy)), at `.next/standalone/`, with `.nft.json` traces, a middleware manifest and a `server.js` that serves it on `PORT` and `HOSTNAME` via `node server.js`. Bun must be installed. `public/` and static files are already inside.
|
package/reference/config.md
CHANGED
|
@@ -21,7 +21,7 @@ This is the form `pnext create` scaffolds. With `compat.next`, pnext also loads
|
|
|
21
21
|
|
|
22
22
|
| Field | Default | What it does |
|
|
23
23
|
| ----------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------- |
|
|
24
|
-
| `outDir` | `'.pnext'` | Build output
|
|
24
|
+
| `outDir` | `'.pnext'` | Build output: the shippable `standalone/` folder, the build `cache/`, and generated `types/`. |
|
|
25
25
|
| `basePath` | `''` | Path prefix for an app served below the domain root. |
|
|
26
26
|
| `assetPrefix` | `basePath` | URL prefix for emitted assets. Set it when assets come from a CDN. |
|
|
27
27
|
| `trailingSlash` | `false` | Canonicalizes URLs to a trailing slash and redirects the form without one. |
|
|
@@ -51,7 +51,7 @@ Both `compat.next` and `compat.reactCompiler` imply `compat.react`. Direct Preac
|
|
|
51
51
|
|
|
52
52
|
## Deployment adapter
|
|
53
53
|
|
|
54
|
-
`exclude` and `keep`
|
|
54
|
+
`exclude` drops matching directories and file suffixes from `standalone/`. `keep` ships matching app files the server reads at runtime. Both apply to the Vercel function.
|
|
55
55
|
|
|
56
56
|
```ts
|
|
57
57
|
export default {
|
package/reference/dev.md
CHANGED
|
@@ -48,7 +48,7 @@ Debug flags: `--experimental-build-mode compile|generate` splits the build into
|
|
|
48
48
|
|
|
49
49
|
## Deploy
|
|
50
50
|
|
|
51
|
-
pnext deploys anywhere Bun runs: a VPS, a container, or any host you control. Run `pnext build
|
|
51
|
+
pnext deploys anywhere Bun runs: a VPS, a container, or any host you control. Run `pnext build`, then ship `<outDir>/standalone`; it needs nothing else. Serve it with `pnext start`, or import `standalone/server/entry.js` in your own server and call `createRequestHandler()`. To use a CDN, upload `standalone/static/` as-is.
|
|
52
52
|
|
|
53
53
|
Vercel has a dedicated adapter: `pnext build --adapter vercel` writes Build Output to `.vercel/output`. Static pages and static route-handler responses are emitted as files; everything dynamic runs in a single `_pnext` function on Vercel's Bun runtime.
|
|
54
54
|
|
|
@@ -41,7 +41,7 @@ pnext start
|
|
|
41
41
|
|
|
42
42
|
`pnext build` makes the production build and `pnext start` serves it. Routes render on the server per request; ones that never read the request are prerendered to static HTML at build time.
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
Ship `.pnext/standalone` to any host with Bun. For Vercel, build with `pnext build --adapter vercel` and it writes ready-to-deploy Build Output.
|
|
45
45
|
|
|
46
46
|
## A quick tour
|
|
47
47
|
|
package/reference/rendering.md
CHANGED
|
@@ -40,7 +40,7 @@ Put the directive at the top of a page when the whole page needs browser-only be
|
|
|
40
40
|
|
|
41
41
|
## Lazy loading
|
|
42
42
|
|
|
43
|
-
`dynamic()` defers loading a component
|
|
43
|
+
`dynamic()` defers loading a component in Server and Client Components. The loader can also be a literal module path for a default export.
|
|
44
44
|
|
|
45
45
|
```tsx
|
|
46
46
|
import { dynamic } from '@wular/pnext/dynamic'
|
|
@@ -50,10 +50,10 @@ const Chart = dynamic(() => import('./chart').then(m => m.Chart), {
|
|
|
50
50
|
})
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
The component renders on the server and hydrates by default. The options change that:
|
|
54
54
|
|
|
55
|
-
- `ssr: false`
|
|
56
|
-
- `load: 'visible'` waits for the
|
|
55
|
+
- `ssr: false` renders only in the browser.
|
|
56
|
+
- `load: 'visible'` waits for the component to enter view, and accepts `rootMargin` and `threshold`. It renders only in the browser, except with `ssr: true` in a Server Component.
|
|
57
57
|
- `loading` supplies fallback UI.
|
|
58
58
|
|
|
59
59
|
## Props that cross the boundary
|
package/src/api/dynamic.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @jsxImportSource preact */
|
|
2
|
-
import { h, type ComponentType } from 'preact'
|
|
3
|
-
import { useEffect, useRef, useState } from 'preact/hooks'
|
|
2
|
+
import { Component, h, type ComponentChildren, type ComponentType } from 'preact'
|
|
3
|
+
import { useEffect, useLayoutEffect, useRef, useState } from 'preact/hooks'
|
|
4
4
|
|
|
5
5
|
export type DynamicModule<Props> = ComponentType<Props> | { default: ComponentType<Props> }
|
|
6
6
|
export type DynamicLoader<Props> = string | (() => Promise<DynamicModule<Props>>)
|
|
@@ -9,6 +9,8 @@ export const dynamicReferenceSymbol = Symbol.for('pnext.dynamic')
|
|
|
9
9
|
export interface DynamicTarget {
|
|
10
10
|
file: string
|
|
11
11
|
exportName: string
|
|
12
|
+
/** The client-reference id the build derived, so a moved build matches without the path. */
|
|
13
|
+
id?: string
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
export interface DynamicReference<Props extends object = object> {
|
|
@@ -33,6 +35,7 @@ export function dynamic<Props extends object = object>(
|
|
|
33
35
|
) {
|
|
34
36
|
let loaded: ComponentType<Props> | null = null
|
|
35
37
|
let pending: Promise<ComponentType<Props>> | null = null
|
|
38
|
+
let failed = false
|
|
36
39
|
const loadModule =
|
|
37
40
|
typeof loader === 'string'
|
|
38
41
|
? () => {
|
|
@@ -48,11 +51,45 @@ export function dynamic<Props extends object = object>(
|
|
|
48
51
|
return pending
|
|
49
52
|
}
|
|
50
53
|
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
// Rendered on the server and hydrated from its markup: suspends until the module loads.
|
|
55
|
+
function Loaded(props: Props) {
|
|
56
|
+
const ref = useRef<HTMLElement>(null)
|
|
57
|
+
const [remounts, setRemounts] = useState(0)
|
|
58
|
+
// The server sent `loading` because its load failed: replace that markup, never hydrate it.
|
|
59
|
+
useLayoutEffect(() => {
|
|
60
|
+
if (ref.current?.hasAttribute('data-pnext-loading')) setRemounts(1)
|
|
61
|
+
}, [])
|
|
62
|
+
if (loaded)
|
|
63
|
+
return h('pnext-dynamic', { key: remounts, ref, style: HOST_STYLE }, h(loaded, props))
|
|
64
|
+
const Loading = options.loading
|
|
65
|
+
if (failed) {
|
|
66
|
+
return h(
|
|
67
|
+
'pnext-dynamic',
|
|
68
|
+
{ ref, style: HOST_STYLE, 'data-pnext-loading': '' },
|
|
69
|
+
Loading ? h(Loading, props) : null,
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
|
73
|
+
throw typeof window === 'undefined'
|
|
74
|
+
? load().then(
|
|
75
|
+
() => undefined,
|
|
76
|
+
() => {
|
|
77
|
+
failed = true
|
|
78
|
+
},
|
|
79
|
+
)
|
|
80
|
+
: load()
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function ClientDynamic(props: Props) {
|
|
84
|
+
const [Component, setComponent] = useState<ComponentType<Props> | null>(null)
|
|
53
85
|
const [shouldLoad, setShouldLoad] = useState(() => options.load !== 'visible')
|
|
54
86
|
const visibleRef = useRef<HTMLDivElement>(null)
|
|
55
87
|
|
|
88
|
+
// The server sent `loading`: hydrate it, then swap in a module that is already loaded.
|
|
89
|
+
useLayoutEffect(() => {
|
|
90
|
+
if (loaded) setComponent(() => loaded)
|
|
91
|
+
}, [])
|
|
92
|
+
|
|
56
93
|
useEffect(() => {
|
|
57
94
|
if (Component || shouldLoad) return
|
|
58
95
|
const node = visibleRef.current
|
|
@@ -96,6 +133,18 @@ export function dynamic<Props extends object = object>(
|
|
|
96
133
|
return Loading ? h(Loading, props) : null
|
|
97
134
|
}
|
|
98
135
|
|
|
136
|
+
const DynamicComponent =
|
|
137
|
+
options.ssr === false || options.load === 'visible'
|
|
138
|
+
? ClientDynamic
|
|
139
|
+
: (props: Props) =>
|
|
140
|
+
typeof window === 'undefined'
|
|
141
|
+
? h(Loaded, props)
|
|
142
|
+
: h(
|
|
143
|
+
DynamicBoundary,
|
|
144
|
+
{ fallback: options.loading ? h(options.loading, props) : null },
|
|
145
|
+
h(Loaded, props),
|
|
146
|
+
)
|
|
147
|
+
|
|
99
148
|
;(
|
|
100
149
|
DynamicComponent as typeof DynamicComponent & {
|
|
101
150
|
[dynamicReferenceSymbol]: DynamicReference<Props>
|
|
@@ -104,3 +153,36 @@ export function dynamic<Props extends object = object>(
|
|
|
104
153
|
|
|
105
154
|
return DynamicComponent
|
|
106
155
|
}
|
|
156
|
+
|
|
157
|
+
const HOST_STYLE = { display: 'contents' }
|
|
158
|
+
// preact's mangled MODE_HYDRATE flag on a vnode's `__u`.
|
|
159
|
+
const MODE_HYDRATE = 32
|
|
160
|
+
|
|
161
|
+
interface SuspendedVNode {
|
|
162
|
+
__u: number
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Suspense for one dynamic(): hydration keeps the server markup until the chunk loads, a fresh render
|
|
166
|
+
// shows `fallback`. `__c` is compat's mangled `_childDidSuspend`, so compat suspends here too.
|
|
167
|
+
class DynamicBoundary extends Component<
|
|
168
|
+
{ fallback: ComponentChildren; children?: ComponentChildren },
|
|
169
|
+
{ waiting?: boolean; held?: boolean }
|
|
170
|
+
> {
|
|
171
|
+
__c(promise: Promise<unknown>, vnode: SuspendedVNode) {
|
|
172
|
+
this.setState({ waiting: true, held: (vnode.__u & MODE_HYDRATE) !== 0 })
|
|
173
|
+
void promise.then(() => this.setState({ waiting: false }))
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
componentDidCatch(error: unknown) {
|
|
177
|
+
if (!(error instanceof Promise)) throw error
|
|
178
|
+
this.__c(error, (this as unknown as { __v: { __k: SuspendedVNode[] } }).__v.__k[0]!)
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
shouldComponentUpdate(_props: unknown, state: { waiting?: boolean; held?: boolean }) {
|
|
182
|
+
return !(state.waiting && state.held)
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
render() {
|
|
186
|
+
return this.state.waiting && !this.state.held ? this.props.fallback : this.props.children
|
|
187
|
+
}
|
|
188
|
+
}
|
package/src/api/server.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { safeDecode } from '../utils/decode'
|
|
2
|
-
import {
|
|
2
|
+
import type { ExtensionHost } from '../extensions'
|
|
3
3
|
import { getBasePathPrefix } from '../routing/href'
|
|
4
4
|
import type {
|
|
5
5
|
NextRequest as NextRequestLike,
|
|
@@ -11,6 +11,24 @@ import type {
|
|
|
11
11
|
|
|
12
12
|
const nextResponseMetaSymbol = Symbol.for('pnext.nextResponse')
|
|
13
13
|
|
|
14
|
+
/** Core's proxy response headers (extensions.ts), until a host is active. */
|
|
15
|
+
const coreProxyResponseProtocol = {
|
|
16
|
+
nextHeader: 'x-pnext-middleware-next',
|
|
17
|
+
rewriteHeader: 'x-pnext-middleware-rewrite',
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Through the host's globalThis anchor, not an import: an embedded host loads this module from
|
|
21
|
+
// source, and the prebundled runtime it shares the module with carries its own registry copy.
|
|
22
|
+
function proxyHost() {
|
|
23
|
+
return (globalThis as Record<symbol, Pick<ExtensionHost, 'proxy' | 'proxyResponse'> | undefined>)[
|
|
24
|
+
Symbol.for('pnext.extensionHost')
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function proxyResponseProtocol() {
|
|
29
|
+
return proxyHost()?.proxyResponse ?? coreProxyResponseProtocol
|
|
30
|
+
}
|
|
31
|
+
|
|
14
32
|
export type { NextFetchEvent } from '../types'
|
|
15
33
|
|
|
16
34
|
export interface NextRequestGeo {
|
|
@@ -73,14 +91,14 @@ export class NextResponse extends Response {
|
|
|
73
91
|
|
|
74
92
|
static next(init?: NextResponseInit) {
|
|
75
93
|
const response = new NextResponse(null, init)
|
|
76
|
-
response.headers.set(
|
|
94
|
+
response.headers.set(proxyResponseProtocol().nextHeader, '1')
|
|
77
95
|
defineMeta(response, { kind: 'next', ...requestMeta(init) })
|
|
78
96
|
return response
|
|
79
97
|
}
|
|
80
98
|
|
|
81
99
|
static rewrite(url: string | URL, init?: NextResponseInit) {
|
|
82
100
|
const response = new NextResponse(null, init)
|
|
83
|
-
response.headers.set(
|
|
101
|
+
response.headers.set(proxyResponseProtocol().rewriteHeader, String(url))
|
|
84
102
|
defineMeta(response, { kind: 'rewrite', url: String(url), ...requestMeta(init) })
|
|
85
103
|
return response
|
|
86
104
|
}
|
|
@@ -122,7 +140,7 @@ export function nextResponseMeta(response: Response): NextResponseMeta | undefin
|
|
|
122
140
|
]
|
|
123
141
|
if (meta) return meta
|
|
124
142
|
|
|
125
|
-
const protocol =
|
|
143
|
+
const protocol = proxyResponseProtocol()
|
|
126
144
|
const rewrite = response.headers.get(protocol.rewriteHeader)
|
|
127
145
|
if (rewrite) return { kind: 'rewrite', url: rewrite }
|
|
128
146
|
if (response.headers.get(protocol.nextHeader)) return { kind: 'next' }
|
|
@@ -165,7 +183,7 @@ export function forwardMiddlewareRequestHeaders(from: Response, request: Request
|
|
|
165
183
|
}
|
|
166
184
|
|
|
167
185
|
function proxyInternalHeaders() {
|
|
168
|
-
const protocol =
|
|
186
|
+
const protocol = proxyResponseProtocol()
|
|
169
187
|
return new Set([protocol.nextHeader, protocol.rewriteHeader])
|
|
170
188
|
}
|
|
171
189
|
|
|
@@ -222,7 +240,7 @@ function createNextUrl(url: string | URL): NextURL {
|
|
|
222
240
|
// `req.nextUrl.basePath` reads as a falsy '' rather than the string
|
|
223
241
|
// "undefined" when forwarded through a header.
|
|
224
242
|
nextUrl.basePath = getBasePathPrefix()
|
|
225
|
-
nextUrl.locale =
|
|
243
|
+
nextUrl.locale = proxyHost()?.proxy.locale(nextUrl) ?? ''
|
|
226
244
|
return nextUrl
|
|
227
245
|
}
|
|
228
246
|
|