@wular/pnext 0.1.5 → 0.1.7

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 (302) hide show
  1. package/bin/pnext +9 -2
  2. package/dist/server/_chunks/aliases-j47a10ce.js +44 -0
  3. package/dist/server/_chunks/analyze-arswqe6s.js +445 -0
  4. package/dist/server/_chunks/boot-af0mv3dy.js +36 -0
  5. package/dist/server/_chunks/build-spy3dxp4.js +84 -0
  6. package/dist/server/_chunks/build-t9h0hec3.js +3550 -0
  7. package/dist/server/_chunks/build-tier-m7yvqz61.js +2472 -0
  8. package/dist/server/_chunks/compile-53j02j27.js +22 -0
  9. package/dist/server/_chunks/config-1yzwexq6.js +27 -0
  10. package/dist/server/_chunks/config-n2z7yxps.js +22 -0
  11. package/dist/server/_chunks/create-meec9hs6.js +134 -0
  12. package/dist/server/_chunks/dev-fjmqg6en.js +220 -0
  13. package/dist/server/_chunks/esbuild-yyktfrtt.js +15 -0
  14. package/dist/server/_chunks/generate-n9sh6hzt.js +21 -0
  15. package/dist/server/_chunks/index-0374j2b9.js +66 -0
  16. package/dist/server/_chunks/index-06nyqntx.js +213 -0
  17. package/dist/server/_chunks/index-1011cscr.js +5263 -0
  18. package/dist/server/_chunks/index-11sfk4hb.js +170 -0
  19. package/dist/server/_chunks/index-20ppawv7.js +297 -0
  20. package/dist/server/_chunks/index-2dv4y4wd.js +1065 -0
  21. package/dist/server/_chunks/index-2vz0wzdn.js +59 -0
  22. package/dist/server/_chunks/index-2wfv4kvx.js +182 -0
  23. package/dist/server/_chunks/index-357na4a8.js +109 -0
  24. package/dist/server/_chunks/index-3b3at80h.js +109 -0
  25. package/dist/server/_chunks/index-3tf1xjsp.js +6166 -0
  26. package/dist/server/_chunks/index-3xbr4eyv.js +105 -0
  27. package/dist/server/_chunks/index-4399bvd2.js +18 -0
  28. package/dist/server/_chunks/index-4hgjrqh7.js +851 -0
  29. package/dist/server/_chunks/index-4q2gbfwk.js +2530 -0
  30. package/dist/server/_chunks/index-4t92hdxd.js +172 -0
  31. package/dist/server/_chunks/index-4zzebszd.js +10 -0
  32. package/dist/server/_chunks/index-5gyr4emz.js +107 -0
  33. package/dist/server/_chunks/index-5hr4062s.js +70 -0
  34. package/dist/server/_chunks/index-68m3mwbd.js +84 -0
  35. package/dist/server/_chunks/index-6b009mt0.js +56 -0
  36. package/dist/server/_chunks/index-6e4fqv30.js +588 -0
  37. package/dist/server/_chunks/index-6gex3pfa.js +15 -0
  38. package/dist/server/_chunks/index-6kp9r0d9.js +11 -0
  39. package/dist/server/_chunks/index-6q7zvrap.js +134 -0
  40. package/dist/server/_chunks/index-73z4esab.js +38 -0
  41. package/dist/server/_chunks/index-79ngvam8.js +60 -0
  42. package/dist/server/_chunks/index-7wc9n8be.js +25 -0
  43. package/dist/server/_chunks/index-8k7pfejn.js +1599 -0
  44. package/dist/server/_chunks/index-8kcxdfya.js +206 -0
  45. package/dist/server/_chunks/index-91x12ykq.js +274 -0
  46. package/dist/server/_chunks/index-9ch50vtq.js +18 -0
  47. package/dist/server/_chunks/index-9hx2641q.js +28 -0
  48. package/dist/server/_chunks/index-9n2914ww.js +535 -0
  49. package/dist/server/_chunks/index-9ych9ma8.js +207 -0
  50. package/dist/server/_chunks/index-b6wtkdp4.js +24 -0
  51. package/dist/server/_chunks/index-bcws5eh2.js +35 -0
  52. package/dist/server/_chunks/index-c0g2wf3z.js +92 -0
  53. package/dist/server/_chunks/index-cf4rvxv6.js +95 -0
  54. package/dist/server/_chunks/index-cjgqs13g.js +65 -0
  55. package/dist/server/_chunks/index-ckkdpht5.js +41 -0
  56. package/dist/server/_chunks/index-cyfednwb.js +87 -0
  57. package/dist/server/_chunks/index-danncfhy.js +311 -0
  58. package/dist/server/_chunks/index-dg0f05zs.js +199 -0
  59. package/dist/server/_chunks/index-e3a6yx84.js +18 -0
  60. package/dist/server/_chunks/index-e88tyv35.js +45 -0
  61. package/dist/server/_chunks/index-eajaspjk.js +1253 -0
  62. package/dist/server/_chunks/index-eeaanp2e.js +483 -0
  63. package/dist/server/_chunks/index-egykcqg3.js +101 -0
  64. package/dist/server/_chunks/index-en7n9f7m.js +22 -0
  65. package/dist/server/_chunks/index-ezgj0tr1.js +88 -0
  66. package/dist/server/_chunks/index-fkp000p1.js +590 -0
  67. package/dist/server/_chunks/index-fn1chkkd.js +214 -0
  68. package/dist/server/_chunks/index-fp8r0sqs.js +64 -0
  69. package/dist/server/_chunks/index-ggk2j965.js +9432 -0
  70. package/dist/server/_chunks/index-grta8ap3.js +238 -0
  71. package/dist/server/_chunks/index-h2a70tg4.js +7 -0
  72. package/dist/server/_chunks/index-h4xy648y.js +51 -0
  73. package/dist/server/_chunks/index-hkdfj58q.js +92 -0
  74. package/dist/server/_chunks/index-j2zrcp1k.js +66 -0
  75. package/dist/server/_chunks/index-jcsjq3d1.js +20 -0
  76. package/dist/server/_chunks/index-jepjvcrf.js +198 -0
  77. package/dist/server/_chunks/index-jks0x0a1.js +14 -0
  78. package/dist/server/_chunks/index-jx7bqvw1.js +57 -0
  79. package/dist/server/_chunks/index-k1g3epw0.js +1299 -0
  80. package/dist/server/_chunks/index-knp0s912.js +7 -0
  81. package/dist/server/_chunks/index-kq8kpzye.js +472 -0
  82. package/dist/server/_chunks/index-kqyy1d4f.js +50 -0
  83. package/dist/server/_chunks/index-kresp2n8.js +445 -0
  84. package/dist/server/_chunks/index-ms9v9tnx.js +31 -0
  85. package/dist/server/_chunks/index-n4hxpng2.js +11 -0
  86. package/dist/server/_chunks/index-ncnes8c6.js +17 -0
  87. package/dist/server/_chunks/index-nqh3xhdc.js +57 -0
  88. package/dist/server/_chunks/index-nyrba2kr.js +4130 -0
  89. package/dist/server/_chunks/index-p77b4kcx.js +296 -0
  90. package/dist/server/_chunks/index-pym1cezq.js +39 -0
  91. package/dist/server/_chunks/index-q738kkhj.js +100 -0
  92. package/dist/server/_chunks/index-qjj6gddn.js +54 -0
  93. package/dist/server/_chunks/index-qm6kmhqs.js +110 -0
  94. package/dist/server/_chunks/index-qn4z5s3c.js +819 -0
  95. package/dist/server/_chunks/index-qpwsgt3a.js +158 -0
  96. package/dist/server/_chunks/index-r97ptz1q.js +97 -0
  97. package/dist/server/_chunks/index-ras0sdab.js +26 -0
  98. package/dist/server/_chunks/index-rcs322t1.js +19 -0
  99. package/dist/server/_chunks/index-rn8dyr1f.js +126 -0
  100. package/dist/server/_chunks/index-rt9qq1va.js +4 -0
  101. package/dist/server/_chunks/index-rthrsed5.js +356 -0
  102. package/dist/server/_chunks/index-sctcgyvv.js +185 -0
  103. package/dist/server/_chunks/index-sjpckxqn.js +213 -0
  104. package/dist/server/_chunks/index-sq3kvz3g.js +200 -0
  105. package/dist/server/_chunks/index-stbk3jhn.js +31 -0
  106. package/dist/server/_chunks/index-sv8m6789.js +266 -0
  107. package/dist/server/_chunks/index-tgcakdxc.js +125 -0
  108. package/dist/server/_chunks/index-tgsfjmep.js +74 -0
  109. package/dist/server/_chunks/index-tq0pc7eg.js +154 -0
  110. package/dist/server/_chunks/index-tq1f96v7.js +51 -0
  111. package/dist/server/_chunks/index-tqn2qnnn.js +241 -0
  112. package/dist/server/_chunks/index-tvqkq6e6.js +128 -0
  113. package/dist/server/_chunks/index-v1ags1na.js +132 -0
  114. package/dist/server/_chunks/index-vvmmknm1.js +1431 -0
  115. package/dist/server/_chunks/index-vvq7rqtn.js +329 -0
  116. package/dist/server/_chunks/index-vz0km5qk.js +33 -0
  117. package/dist/server/_chunks/index-w6h8m6vp.js +138 -0
  118. package/dist/server/_chunks/index-web361b8.js +138 -0
  119. package/dist/server/_chunks/index-wpfhfbs4.js +194 -0
  120. package/dist/server/_chunks/index-x0y005nh.js +283 -0
  121. package/dist/server/_chunks/index-x3yn4ywm.js +22 -0
  122. package/dist/server/_chunks/index-x93hv0sc.js +271 -0
  123. package/dist/server/_chunks/index-xvj80c3a.js +30 -0
  124. package/dist/server/_chunks/index-xywjg2vc.js +100 -0
  125. package/dist/server/_chunks/index-y2jr2n72.js +152 -0
  126. package/dist/server/_chunks/index-y36a0ybw.js +57 -0
  127. package/dist/server/_chunks/index-ye9hmsvf.js +47 -0
  128. package/dist/server/_chunks/index-yhxkxghe.js +56 -0
  129. package/dist/server/_chunks/index-ym67zqxp.js +130 -0
  130. package/dist/server/_chunks/index-ytjvpbm2.js +736 -0
  131. package/dist/server/_chunks/index-yz54pxrh.js +960 -0
  132. package/dist/server/_chunks/index-z4z9zv3b.js +733 -0
  133. package/dist/server/_chunks/index-z84ab1w0.js +1270 -0
  134. package/dist/server/_chunks/index-z88qv16t.js +11 -0
  135. package/dist/server/_chunks/index-zqpqyg8p.js +666 -0
  136. package/dist/server/_chunks/loader-7yw0j98z.js +78 -0
  137. package/dist/server/_chunks/modules-jn8bmbn8.js +74 -0
  138. package/dist/server/_chunks/pipeline-yy9jhydf.js +832 -0
  139. package/dist/server/_chunks/production-jar9ztm3.js +44 -0
  140. package/dist/server/_chunks/proxy-config-j84dgksn.js +21 -0
  141. package/dist/server/_chunks/proxy-w1d0wmsn.js +33 -0
  142. package/dist/server/_chunks/router-k1reahfn.js +498 -0
  143. package/dist/server/_chunks/routes-2s277fc6.js +64 -0
  144. package/dist/server/_chunks/run-pvd8bs1t.js +696 -0
  145. package/dist/server/_chunks/server-mt4a994c.js +1835 -0
  146. package/dist/server/_chunks/tsconfig-defaults-1nb3308g.js +20 -0
  147. package/dist/server/_chunks/typegen-0qr0459b.js +35 -0
  148. package/dist/server/api/client-cache.js +14 -0
  149. package/dist/server/cli/index.js +378 -0
  150. package/dist/server/cli/start.js +137 -0
  151. package/dist/server/client/reference.js +16 -0
  152. package/dist/server/compat/next/cache.js +56 -0
  153. package/dist/server/compat/next/canonical-url.js +13 -0
  154. package/dist/server/compat/next/client-cache.js +57 -0
  155. package/dist/server/compat/next/client-navigation.js +232 -0
  156. package/dist/server/compat/next/client-only.js +1 -0
  157. package/dist/server/compat/next/client-script.js +178 -0
  158. package/dist/server/compat/next/client-server.js +34 -0
  159. package/dist/server/compat/next/config-headers.js +32 -0
  160. package/dist/server/compat/next/config-loader.js +25 -0
  161. package/dist/server/compat/next/config.js +10 -0
  162. package/dist/server/compat/next/constants.js +18 -0
  163. package/dist/server/compat/next/custom-server.js +10 -0
  164. package/dist/server/compat/next/dist/client/components/app-router-headers.js +48 -0
  165. package/dist/server/compat/next/dist/server/web/spec-extension/revalidate.js +27 -0
  166. package/dist/server/compat/next/dist/server/web/spec-extension/unstable-cache.js +25 -0
  167. package/dist/server/compat/next/dist/server/web/spec-extension/unstable-no-store.js +25 -0
  168. package/dist/server/compat/next/dynamic.js +32 -0
  169. package/dist/server/compat/next/error.js +112 -0
  170. package/dist/server/compat/next/font/cache.js +14 -0
  171. package/dist/server/compat/next/font/google.js +3 -0
  172. package/dist/server/compat/next/font/index.js +1 -0
  173. package/dist/server/compat/next/font/local.js +22 -0
  174. package/dist/server/compat/next/font/runtime-client.js +33 -0
  175. package/dist/server/compat/next/font/runtime.js +41 -0
  176. package/dist/server/compat/next/font/shared.js +22 -0
  177. package/dist/server/compat/next/form.js +129 -0
  178. package/dist/server/compat/next/head.js +10 -0
  179. package/dist/server/compat/next/headers.js +30 -0
  180. package/dist/server/compat/next/image/client.js +11 -0
  181. package/dist/server/compat/next/image/config.js +18 -0
  182. package/dist/server/compat/next/image/optimizer.js +25 -0
  183. package/dist/server/compat/next/image/patterns.js +12 -0
  184. package/dist/server/compat/next/image/props.js +16 -0
  185. package/dist/server/compat/next/image/shared.js +86 -0
  186. package/dist/server/compat/next/image/static-metadata.js +32 -0
  187. package/dist/server/compat/next/image/validate.js +8 -0
  188. package/dist/server/compat/next/image.js +59 -0
  189. package/dist/server/compat/next/index.js +1 -0
  190. package/dist/server/compat/next/legacy-image.js +78 -0
  191. package/dist/server/compat/next/legacy-request-apis.js +24 -0
  192. package/dist/server/compat/next/link-transform.js +14 -0
  193. package/dist/server/compat/next/link.js +14 -0
  194. package/dist/server/compat/next/navigation.js +190 -0
  195. package/dist/server/compat/next/offline.js +45 -0
  196. package/dist/server/compat/next/og.js +8 -0
  197. package/dist/server/compat/next/preferred-region.js +8 -0
  198. package/dist/server/compat/next/redirects.js +30 -0
  199. package/dist/server/compat/next/resource-hints.js +30 -0
  200. package/dist/server/compat/next/rewrites.js +41 -0
  201. package/dist/server/compat/next/root-params.js +121 -0
  202. package/dist/server/compat/next/route-state.js +23 -0
  203. package/dist/server/compat/next/router.js +103 -0
  204. package/dist/server/compat/next/script.js +37 -0
  205. package/dist/server/compat/next/server-only.js +1 -0
  206. package/dist/server/compat/next/server.js +131 -0
  207. package/dist/server/compat/next/svgr.js +14 -0
  208. package/dist/server/compat/next/telemetry.js +10 -0
  209. package/dist/server/compat/next/usage.js +13 -0
  210. package/dist/server/compat/next/user-agent.js +12 -0
  211. package/dist/server/compat/next/web-vitals.js +35 -0
  212. package/dist/server/compat/react/action-state.js +11 -0
  213. package/dist/server/compat/react/client-lite.js +83 -0
  214. package/dist/server/compat/react/client.js +131 -0
  215. package/dist/server/compat/react/compiler-runtime.js +42 -0
  216. package/dist/server/compat/react/dom-client.js +106 -0
  217. package/dist/server/compat/react/dom-react-server.js +37 -0
  218. package/dist/server/compat/react/dom-server.js +40 -0
  219. package/dist/server/compat/react/dom.js +52 -0
  220. package/dist/server/compat/react/hooks-extra.js +12 -0
  221. package/dist/server/compat/react/internals.js +14 -0
  222. package/dist/server/compat/react/parity.js +11 -0
  223. package/dist/server/compat/react/preact.js +113 -0
  224. package/dist/server/compat/react/react-server.js +133 -0
  225. package/dist/server/compat/react/router-shim.js +8 -0
  226. package/dist/server/compat/react/server-component-use.js +14 -0
  227. package/dist/server/compat/react/server-inserted-html.js +14 -0
  228. package/dist/server/compat/react/server.js +194 -0
  229. package/dist/server/compat/react/style-values.js +10 -0
  230. package/dist/server/compat/react/use.js +10 -0
  231. package/dist/server/compat/react/view-transition.js +12 -0
  232. package/dist/server/generation.json +1 -0
  233. package/package.json +4 -1
  234. package/src/api/dynamic.tsx +2 -0
  235. package/src/api/server.ts +24 -6
  236. package/src/cli/adapters/vercel-warm.ts +315 -61
  237. package/src/cli/adapters/vercel.ts +348 -71
  238. package/src/cli/build.ts +58 -33
  239. package/src/cli/index.ts +23 -10
  240. package/src/cli/serve/entry.ts +21 -159
  241. package/src/cli/serve/immutable.ts +31 -0
  242. package/src/cli/serve/pipeline.ts +82 -84
  243. package/src/cli/start.ts +3 -1
  244. package/src/client/chunk-fold.ts +19 -6
  245. package/src/client/react-tier.ts +3 -2
  246. package/src/client/reference-stub.ts +21 -2
  247. package/src/compat/actions/client-plugin.ts +4 -2
  248. package/src/compat/actions/config.ts +6 -5
  249. package/src/compat/actions/extensions.ts +2 -3
  250. package/src/compat/aliases.ts +8 -1
  251. package/src/compat/bundler/config.ts +88 -0
  252. package/src/compat/bundler/optimize-package-imports.ts +86 -26
  253. package/src/compat/bundler/relay-transform.ts +15 -3
  254. package/src/compat/cache-control.ts +16 -8
  255. package/src/compat/css/modules.ts +18 -5
  256. package/src/compat/lifecycle/error-funnel.ts +1 -1
  257. package/src/compat/lifecycle/instrumentation.ts +117 -24
  258. package/src/compat/lifecycle/testmode.ts +3 -2
  259. package/src/compat/next/config-loader.ts +137 -13
  260. package/src/compat/next/font/runtime.ts +22 -2
  261. package/src/compat/next/og.ts +3 -3
  262. package/src/compat/next/usage.ts +3 -2
  263. package/src/compat/pages/api.ts +83 -14
  264. package/src/compat/pages/router.ts +30 -14
  265. package/src/compat/register/bundler.ts +3 -1
  266. package/src/compat/register/middleware.ts +1 -1
  267. package/src/compat/register/otel.ts +5 -9
  268. package/src/compat/register/render.ts +3 -1
  269. package/src/compat/register/use-cache.ts +3 -1
  270. package/src/compat/release.ts +46 -0
  271. package/src/compat/segment/serve.ts +1 -1
  272. package/src/compat/validation/validate.ts +10 -7
  273. package/src/config.ts +51 -7
  274. package/src/css/assets.ts +213 -0
  275. package/src/css/build.ts +174 -238
  276. package/src/dev/server.ts +27 -8
  277. package/src/extensions.ts +4 -0
  278. package/src/render/hooks.ts +13 -0
  279. package/src/render/renderer.ts +52 -32
  280. package/src/request/context.ts +9 -0
  281. package/src/resolve/dynamic.ts +3 -1
  282. package/src/resolve/imports.ts +12 -52
  283. package/src/resolve/package-json.ts +56 -0
  284. package/src/resolve/scan-facts.ts +65 -0
  285. package/src/routing/href.ts +10 -3
  286. package/src/routing/match.ts +287 -0
  287. package/src/routing/metadata-files.ts +19 -5
  288. package/src/routing/proxy-config.ts +137 -0
  289. package/src/routing/proxy.ts +35 -134
  290. package/src/routing/routes.ts +22 -281
  291. package/src/runtime/fingerprint.ts +23 -8
  292. package/src/runtime/load.ts +170 -0
  293. package/src/runtime/loader.ts +215 -43
  294. package/src/runtime/module-cache.ts +13 -0
  295. package/src/runtime/modules.ts +370 -81
  296. package/src/runtime/prebundle.ts +81 -0
  297. package/src/runtime/production.ts +391 -0
  298. package/src/runtime/release-graph.ts +334 -0
  299. package/src/runtime/vendor-build.ts +724 -13
  300. package/src/runtime/vendor.ts +16 -3
  301. package/src/types.ts +2 -0
  302. package/src/utils/fs.ts +89 -3
@@ -0,0 +1,158 @@
1
+ // @bun
2
+ import {
3
+ getWorkUnit,
4
+ runWithRequest
5
+ } from "./index-grta8ap3.js";
6
+ import {
7
+ getRenderExtensions,
8
+ reportRequestError
9
+ } from "./index-zqpqyg8p.js";
10
+
11
+ // src/routing/handler.ts
12
+ import { isNotFoundError, isRedirectError } from "../../../src/api/navigation.ts";
13
+ import { nextResponseMeta, toNextRequest } from "../../../src/api/server.ts";
14
+ import { safeDecode } from "../../../src/utils/decode.ts";
15
+ var routeMethods = ["GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"];
16
+ var httpMethods = new Set([
17
+ "GET",
18
+ "HEAD",
19
+ "POST",
20
+ "PUT",
21
+ "PATCH",
22
+ "DELETE",
23
+ "OPTIONS",
24
+ "CONNECT",
25
+ "TRACE"
26
+ ]);
27
+ async function handleRouteModule(module, request, params, options = {}) {
28
+ const responseHeaders = new Headers;
29
+ const method = request.method.toUpperCase();
30
+ try {
31
+ if (!httpMethods.has(method))
32
+ return new Response(null, { status: 400 });
33
+ const handler = routeMethods.includes(method) ? module[method] : undefined;
34
+ if (!handler) {
35
+ if (method === "HEAD" && module.GET) {
36
+ const response = finalizeResponse(await callHandler(module.GET, request, params, responseHeaders), request, responseHeaders, options);
37
+ return new Response(null, { status: response.status, headers: response.headers });
38
+ }
39
+ return missingMethodResponse(module, method);
40
+ }
41
+ return finalizeResponse(await callHandler(handler, request, params, responseHeaders), request, responseHeaders, options);
42
+ } catch (error) {
43
+ if (isRedirectError(error)) {
44
+ const status = method === "POST" ? 303 : error.status;
45
+ return withResponseHeaders(new Response(null, { status, headers: { location: error.location } }), responseHeaders);
46
+ }
47
+ if (isNotFoundError(error)) {
48
+ return withResponseHeaders(new Response(null, { status: 404 }), responseHeaders);
49
+ }
50
+ await reportRequestError(error, { method, url: request.url, headers: request.headers }, { phase: "handler", routeKind: "route-handler", ...getWorkUnit()?.responseHints ?? {} });
51
+ console.error(error);
52
+ return new Response(null, { status: 500 });
53
+ }
54
+ }
55
+ function finalizeResponse(response, request, responseHeaders, options) {
56
+ const method = request.method.toUpperCase();
57
+ if (!response) {
58
+ const file = options.routeFile ?? "<route>";
59
+ console.error(`No response is returned from route handler '${file}'. Expected a Response object but ` + `received '${typeof response}' (method: ${method}, url: ${request.url}). Ensure you ` + "return a `Response` or a `NextResponse` in all branches of your handler.");
60
+ return new Response(null, { status: 500 });
61
+ }
62
+ if (nextResponseMeta(response)?.kind === "next") {
63
+ console.error("https://nextjs.org/docs/messages/next-response-next-in-app-route-handler");
64
+ return new Response(null, { status: 500 });
65
+ }
66
+ return withResponseHeaders(response, responseHeaders);
67
+ }
68
+ function callHandler(handler, request, params, responseHeaders) {
69
+ const nextRequest = toNextRequest(request);
70
+ const context = Object.keys(params).length > 0 ? {
71
+ params: getRenderExtensions().legacySyncProps(Promise.resolve(params), "params", params)
72
+ } : {};
73
+ return runWithRequest(nextRequest, () => handler(nextRequest, context), params, {
74
+ responseHeaders
75
+ });
76
+ }
77
+ function withResponseHeaders(response, extra) {
78
+ const withSetCookie = extra;
79
+ const scopeCookies = withSetCookie.getSetCookie?.() ?? [];
80
+ let hasOthers = false;
81
+ extra.forEach((_, key) => {
82
+ if (key !== "set-cookie")
83
+ hasOthers = true;
84
+ });
85
+ if (scopeCookies.length === 0 && !hasOthers)
86
+ return response;
87
+ const apply = (headers) => {
88
+ extra.forEach((value, key) => {
89
+ if (key !== "set-cookie")
90
+ headers.set(key, value);
91
+ });
92
+ const responseCookies = headers.getSetCookie?.() ?? [];
93
+ const jar = new Map;
94
+ for (const cookie of [...scopeCookies, ...responseCookies]) {
95
+ jar.set(cookieName(cookie), normalizeSetCookie(cookie));
96
+ }
97
+ headers.delete("set-cookie");
98
+ for (const cookie of jar.values())
99
+ headers.append("set-cookie", cookie);
100
+ };
101
+ try {
102
+ apply(response.headers);
103
+ return response;
104
+ } catch {
105
+ const headers = new Headers(response.headers);
106
+ apply(headers);
107
+ return new Response(response.body, {
108
+ status: response.status,
109
+ statusText: response.statusText,
110
+ headers
111
+ });
112
+ }
113
+ }
114
+ function cookieName(setCookie) {
115
+ return (setCookie.split("=")[0] ?? "").trim();
116
+ }
117
+ function normalizeSetCookie(setCookie) {
118
+ return /;\s*path=/i.test(setCookie) ? setCookie : `${setCookie}; Path=/`;
119
+ }
120
+ async function staticRouteParams(route, module) {
121
+ if (typeof module.GET !== "function")
122
+ return [];
123
+ const config = route.segmentConfig;
124
+ const optedStatic = config?.dynamic === "force-static" || config?.dynamic === "error" || config?.revalidate === false || typeof config?.revalidate === "number" && config.revalidate > 0;
125
+ if (route.hasStaticParams)
126
+ return module.params?.() ?? [];
127
+ if (route.usesRequest && !optedStatic)
128
+ return [];
129
+ return route.mode === "static" || optedStatic ? [{}] : [];
130
+ }
131
+ function routeParamsFromPath(route, pathname) {
132
+ const match = new RegExp(`^${route.pattern}$`).exec(pathname);
133
+ const params = {};
134
+ if (!match)
135
+ return params;
136
+ for (let index = 0;index < route.params.length; index += 1) {
137
+ params[route.params[index]] = safeDecode(match[index + 1] ?? "");
138
+ }
139
+ if (route.catchAll) {
140
+ params[route.catchAll] = (match[route.params.length + 1] ?? "").split("/").filter(Boolean).map(safeDecode);
141
+ }
142
+ return params;
143
+ }
144
+ function missingMethodResponse(module, method) {
145
+ const headers = { Allow: allowedMethods(module).join(", ") };
146
+ if (method === "OPTIONS")
147
+ return new Response(null, { status: 204, headers });
148
+ return new Response(null, { status: 405, headers });
149
+ }
150
+ function allowedMethods(module) {
151
+ const allowed = new Set(routeMethods.filter((method) => typeof module[method] === "function"));
152
+ if (allowed.has("GET"))
153
+ allowed.add("HEAD");
154
+ allowed.add("OPTIONS");
155
+ return [...allowed].sort();
156
+ }
157
+
158
+ export { handleRouteModule, staticRouteParams, routeParamsFromPath };
@@ -0,0 +1,97 @@
1
+ // @bun
2
+ // src/compat/next/user-agent.ts
3
+ var URLPattern = globalThis.URLPattern;
4
+ var botPattern = /bot|crawler|spider|crawling|slurp|bingpreview|facebookexternalhit|mediapartners|headless/i;
5
+ function userAgentFromString(input) {
6
+ const ua = input ?? "";
7
+ return {
8
+ ua,
9
+ browser: parseBrowser(ua),
10
+ os: parseOs(ua),
11
+ device: parseDevice(ua),
12
+ engine: parseEngine(ua),
13
+ cpu: parseCpu(ua),
14
+ isBot: botPattern.test(ua)
15
+ };
16
+ }
17
+ function userAgent({ headers }) {
18
+ return userAgentFromString(headers.get("user-agent") ?? undefined);
19
+ }
20
+ function parseBrowser(ua) {
21
+ const edge = ua.match(/Edg(?:e|A|iOS)?\/([\d.]+)/);
22
+ if (edge)
23
+ return { name: "Edge", version: edge[1] };
24
+ const samsung = ua.match(/SamsungBrowser\/([\d.]+)/);
25
+ if (samsung)
26
+ return { name: "Samsung Internet", version: samsung[1] };
27
+ const chrome = ua.match(/(?:Chrome|CriOS)\/([\d.]+)/);
28
+ if (chrome)
29
+ return { name: "Chrome", version: chrome[1] };
30
+ const firefox = ua.match(/(?:Firefox|FxiOS)\/([\d.]+)/);
31
+ if (firefox)
32
+ return { name: "Firefox", version: firefox[1] };
33
+ if (ua.includes("Safari"))
34
+ return { name: "Safari", version: ua.match(/Version\/([\d.]+)/)?.[1] };
35
+ return {};
36
+ }
37
+ function parseEngine(ua) {
38
+ const gecko = ua.match(/rv:([\d.]+)\).*Gecko/);
39
+ if (gecko)
40
+ return { name: "Gecko", version: gecko[1] };
41
+ const webkit = ua.match(/AppleWebKit\/([\d.]+)/);
42
+ if (webkit) {
43
+ const chrome = ua.match(/(?:Chrome|CriOS|Edg(?:e|A|iOS)?|OPR)\/([\d.]+)/);
44
+ if (chrome)
45
+ return { name: "Blink", version: chrome[1] };
46
+ return { name: "WebKit", version: webkit[1] };
47
+ }
48
+ return {};
49
+ }
50
+ function parseCpu(ua) {
51
+ if (/arm64|aarch64/i.test(ua))
52
+ return { architecture: "arm64" };
53
+ if (/\barm\b/i.test(ua))
54
+ return { architecture: "arm" };
55
+ if (/x86_64|x64|Win64|WOW64/i.test(ua))
56
+ return { architecture: "amd64" };
57
+ if (/i686|\bx86\b/i.test(ua))
58
+ return { architecture: "ia32" };
59
+ return {};
60
+ }
61
+ function parseOs(ua) {
62
+ if (ua.includes("Windows"))
63
+ return { name: "Windows", version: ua.match(/Windows NT ([\d.]+)/)?.[1] };
64
+ if (ua.includes("Android"))
65
+ return { name: "Android", version: ua.match(/Android ([\d.]+)/)?.[1] };
66
+ if (/iPhone|iPad|iPod/.test(ua)) {
67
+ return { name: "iOS", version: ua.match(/OS (\d+(?:[_.]\d+)*)/)?.[1]?.replace(/_/g, ".") };
68
+ }
69
+ if (ua.includes("Mac OS X")) {
70
+ return {
71
+ name: "Mac OS",
72
+ version: ua.match(/Mac OS X (\d+(?:[_.]\d+)*)/)?.[1]?.replace(/_/g, ".")
73
+ };
74
+ }
75
+ if (ua.includes("Linux"))
76
+ return { name: "Linux" };
77
+ return {};
78
+ }
79
+ function parseDevice(ua) {
80
+ if (ua.includes("iPhone"))
81
+ return { type: "mobile", vendor: "Apple", model: "iPhone" };
82
+ if (ua.includes("iPad"))
83
+ return { type: "tablet", vendor: "Apple", model: "iPad" };
84
+ if (ua.includes("Android")) {
85
+ const type = ua.includes("Mobile") ? "mobile" : "tablet";
86
+ const samsung = ua.match(/\b(SM-[\w]+)\b/);
87
+ if (samsung)
88
+ return { type, vendor: "Samsung", model: samsung[1] };
89
+ const pixel = ua.match(/;\s*(Pixel[\w ]*?)\s*(?:Build|\))/);
90
+ if (pixel)
91
+ return { type, vendor: "Google", model: pixel[1] };
92
+ return { type };
93
+ }
94
+ return ua.includes("Mobile") ? { type: "mobile" } : {};
95
+ }
96
+
97
+ export { URLPattern, userAgentFromString, userAgent };
@@ -0,0 +1,26 @@
1
+ // @bun
2
+ // src/client/reference.ts
3
+ import { createHash } from "crypto";
4
+ import path from "path";
5
+ var compiledClientReferences = new Set;
6
+ function noteCompiledClientReference(file) {
7
+ compiledClientReferences.add(path.resolve(file));
8
+ }
9
+ function compiledClientReferenceFiles() {
10
+ return compiledClientReferences;
11
+ }
12
+ var clientReferenceSymbol = Symbol.for("pnext.clientReference");
13
+ function clientReferenceId(file, exportName) {
14
+ return createHash("sha256").update(file).update("\x00").update(exportName).digest("hex").slice(0, 10);
15
+ }
16
+ function ssrClientReference(reference) {
17
+ if (reference.sideEffect)
18
+ return false;
19
+ if (reference.dynamic?.ssr === false)
20
+ return false;
21
+ if (reference.dynamic?.load === "visible" && reference.dynamic.ssr !== true)
22
+ return false;
23
+ return true;
24
+ }
25
+
26
+ export { noteCompiledClientReference, compiledClientReferenceFiles, clientReferenceSymbol, clientReferenceId, ssrClientReference };
@@ -0,0 +1,19 @@
1
+ // @bun
2
+ import {
3
+ getAssetExtensions
4
+ } from "./index-zqpqyg8p.js";
5
+
6
+ // src/cli/serve/immutable.ts
7
+ var immutableCacheControl = "public, max-age=31536000, immutable";
8
+ function immutableAssetPath(relativePath) {
9
+ return immutableAssetPrefixes().some((prefix) => relativePath.startsWith(prefix));
10
+ }
11
+ function immutableAssetPrefixes() {
12
+ return [
13
+ "assets/",
14
+ "_next/static/",
15
+ ...getAssetExtensions().staticAssetPublicPrefixes().map((prefix) => prefix.replace(/^\/+/, ""))
16
+ ];
17
+ }
18
+
19
+ export { immutableCacheControl, immutableAssetPath, immutableAssetPrefixes };
@@ -0,0 +1,126 @@
1
+ // @bun
2
+ import { join as __pnextJoin } from "node:path";
3
+ const __PNEXT_PACKAGE_ROOT__ = __pnextJoin(import.meta.dirname, "../../..");
4
+ import {
5
+ readText
6
+ } from "./index-20ppawv7.js";
7
+ import {
8
+ pathToFileHref
9
+ } from "./index-x93hv0sc.js";
10
+ import {
11
+ clientReferenceId
12
+ } from "./index-ras0sdab.js";
13
+ import {
14
+ moduleExportNames,
15
+ moduleExportStars
16
+ } from "./index-z4z9zv3b.js";
17
+ import {
18
+ resolveImport
19
+ } from "./index-yz54pxrh.js";
20
+
21
+ // src/client/reference-stub.ts
22
+ import path from "path";
23
+ var clientReferenceRuntimeFile = path.resolve(__PNEXT_PACKAGE_ROOT__ + "/src/client", "reference.ts");
24
+ function clientReferenceModuleSource(sourceFile, exportNames, options = {}) {
25
+ const portable = options.portable;
26
+ const located = portable ? `decodeURIComponent(new URL(${JSON.stringify(path.relative(path.dirname(portable.from), portable.target).split(path.sep).join("/"))}, import.meta.url).pathname)` : undefined;
27
+ const file = !located ? JSON.stringify(sourceFile) : portable?.real ? `__pnextRealpath(${located})` : located;
28
+ const reference = (exportName) => `createReference({ id: ${JSON.stringify(`c-${clientReferenceId(sourceFile, exportName)}`)}, file: ${file}, exportName: ${JSON.stringify(exportName)} })`;
29
+ const defaultExport = exportNames.includes("default") ? `export default ${reference("default")};` : "";
30
+ const namedExports = exportNames.filter((name) => name !== "default").map((name) => `export const ${name} = ${reference(name)};`);
31
+ const symbol = options.inlineSymbol ? `const clientReferenceSymbol = Symbol.for('pnext.clientReference');` : `import { clientReferenceSymbol } from ${JSON.stringify(pathToFileHref(clientReferenceRuntimeFile))};`;
32
+ const realpath = portable?.real ? `import { realpathSync as __pnextRealpath } from 'node:fs';
33
+ ` : "";
34
+ return `${realpath}${symbol}
35
+
36
+ function createReference(reference) {
37
+ function ClientReference({ children }) {
38
+ return children ?? null;
39
+ }
40
+ ClientReference[clientReferenceSymbol] = reference;
41
+ return ClientReference;
42
+ }
43
+
44
+ ${defaultExport}
45
+ ${namedExports.join(`
46
+ `)}
47
+ `;
48
+ }
49
+ async function clientReferenceExportNames(config, file, source, visited = new Set) {
50
+ const key = path.resolve(file);
51
+ if (visited.has(key))
52
+ return [];
53
+ visited.add(key);
54
+ const text = source ?? await readText(file);
55
+ const names = new Set(moduleExportNames(text, file));
56
+ if (names.size === 0) {
57
+ for (const match of text.matchAll(/\bexports\.([A-Za-z_$][\w$]*)\s*=/g)) {
58
+ if (match[1] !== "__esModule")
59
+ names.add(match[1]);
60
+ }
61
+ if (/\bmodule\.exports\s*=/.test(text))
62
+ names.add("default");
63
+ }
64
+ for (const specifier of moduleExportStars(text, file)) {
65
+ const resolved = resolveImport(config.root, file, specifier, config.workspaceRoot);
66
+ if (!resolved || !isInside(config.workspaceRoot, resolved))
67
+ continue;
68
+ for (const name of await clientReferenceExportNames(config, resolved, undefined, visited)) {
69
+ if (name !== "default")
70
+ names.add(name);
71
+ }
72
+ }
73
+ return [...names];
74
+ }
75
+ function hasUseClientDirective(source) {
76
+ const isSpace = (index) => {
77
+ const code = source.charCodeAt(index);
78
+ return code === 32 || code >= 9 && code <= 13 || code > 127 && /\s/.test(source[index]);
79
+ };
80
+ let i = 0;
81
+ for (;; ) {
82
+ while (i < source.length && isSpace(i))
83
+ i += 1;
84
+ if (source.startsWith("//", i)) {
85
+ const newline = source.indexOf(`
86
+ `, i);
87
+ if (newline === -1)
88
+ return false;
89
+ i = newline + 1;
90
+ continue;
91
+ }
92
+ if (source.startsWith("/*", i)) {
93
+ const end2 = source.indexOf("*/", i + 2);
94
+ if (end2 === -1)
95
+ return false;
96
+ i = end2 + 2;
97
+ continue;
98
+ }
99
+ const quote = source[i];
100
+ if (quote !== '"' && quote !== "'")
101
+ return false;
102
+ let end = i + 1;
103
+ while (end < source.length) {
104
+ const char = source[end];
105
+ if (char === quote || char === `
106
+ ` || char === "\\")
107
+ break;
108
+ end += 1;
109
+ }
110
+ if (source[end] !== quote)
111
+ return false;
112
+ if (source.slice(i + 1, end) === "use client")
113
+ return true;
114
+ i = end + 1;
115
+ while (i < source.length && isSpace(i))
116
+ i += 1;
117
+ if (source[i] === ";")
118
+ i += 1;
119
+ }
120
+ }
121
+ function isInside(root, file) {
122
+ const relative = path.relative(root, file);
123
+ return relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative);
124
+ }
125
+
126
+ export { clientReferenceModuleSource, clientReferenceExportNames, hasUseClientDirective };
@@ -0,0 +1,4 @@
1
+ // @bun
2
+ var __require = import.meta.require;
3
+
4
+ export { __require };