@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.
Files changed (337) hide show
  1. package/bin/pnext +9 -2
  2. package/dist/server/_chunks/aliases-pycbtjt1.js +46 -0
  3. package/dist/server/_chunks/analyze-4d9e00g9.js +449 -0
  4. package/dist/server/_chunks/boot-bhemypxz.js +38 -0
  5. package/dist/server/_chunks/build-c991dv65.js +86 -0
  6. package/dist/server/_chunks/build-kh5e3x48.js +3341 -0
  7. package/dist/server/_chunks/build-tier-0a96kmx3.js +2456 -0
  8. package/dist/server/_chunks/compile-040r79gj.js +22 -0
  9. package/dist/server/_chunks/config-0tvz03a6.js +24 -0
  10. package/dist/server/_chunks/config-27rj7830.js +36 -0
  11. package/dist/server/_chunks/create-9rvwshsp.js +135 -0
  12. package/dist/server/_chunks/dev-ex9exynt.js +220 -0
  13. package/dist/server/_chunks/esbuild-yyktfrtt.js +15 -0
  14. package/dist/server/_chunks/generate-myw9hef7.js +22 -0
  15. package/dist/server/_chunks/index-0r5eqfc7.js +279 -0
  16. package/dist/server/_chunks/index-0yjv5v47.js +105 -0
  17. package/dist/server/_chunks/index-11xpbfej.js +17 -0
  18. package/dist/server/_chunks/index-141vcwk6.js +109 -0
  19. package/dist/server/_chunks/index-1pzm1hdy.js +4130 -0
  20. package/dist/server/_chunks/index-29pq0kax.js +590 -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-38xpdxwd.js +194 -0
  24. package/dist/server/_chunks/index-3e075kny.js +128 -0
  25. package/dist/server/_chunks/index-3ycf5ckv.js +472 -0
  26. package/dist/server/_chunks/index-4399bvd2.js +18 -0
  27. package/dist/server/_chunks/index-4da76t62.js +297 -0
  28. package/dist/server/_chunks/index-4t92hdxd.js +172 -0
  29. package/dist/server/_chunks/index-4zzebszd.js +10 -0
  30. package/dist/server/_chunks/index-52k54ykj.js +95 -0
  31. package/dist/server/_chunks/index-5hr4062s.js +70 -0
  32. package/dist/server/_chunks/index-68m3mwbd.js +84 -0
  33. package/dist/server/_chunks/index-6b009mt0.js +56 -0
  34. package/dist/server/_chunks/index-6gex3pfa.js +15 -0
  35. package/dist/server/_chunks/index-6kp9r0d9.js +11 -0
  36. package/dist/server/_chunks/index-6q7zvrap.js +134 -0
  37. package/dist/server/_chunks/index-71885zaq.js +284 -0
  38. package/dist/server/_chunks/index-73z4esab.js +38 -0
  39. package/dist/server/_chunks/index-79ngvam8.js +60 -0
  40. package/dist/server/_chunks/index-7wc9n8be.js +25 -0
  41. package/dist/server/_chunks/index-8ct7rqy3.js +198 -0
  42. package/dist/server/_chunks/index-8kcxdfya.js +206 -0
  43. package/dist/server/_chunks/index-9ch50vtq.js +18 -0
  44. package/dist/server/_chunks/index-9f49w76j.js +213 -0
  45. package/dist/server/_chunks/index-9hz3s0m8.js +851 -0
  46. package/dist/server/_chunks/index-akkrvjn6.js +535 -0
  47. package/dist/server/_chunks/index-b6wtkdp4.js +24 -0
  48. package/dist/server/_chunks/index-b7j671dj.js +207 -0
  49. package/dist/server/_chunks/index-bcws5eh2.js +35 -0
  50. package/dist/server/_chunks/index-bzd2ef7t.js +10 -0
  51. package/dist/server/_chunks/index-cjgqs13g.js +65 -0
  52. package/dist/server/_chunks/index-ckkdpht5.js +41 -0
  53. package/dist/server/_chunks/index-cn86z041.js +296 -0
  54. package/dist/server/_chunks/index-cvr4z22m.js +92 -0
  55. package/dist/server/_chunks/index-cyfednwb.js +87 -0
  56. package/dist/server/_chunks/index-d158y67j.js +152 -0
  57. package/dist/server/_chunks/index-d1jsmhhk.js +955 -0
  58. package/dist/server/_chunks/index-dg0f05zs.js +199 -0
  59. package/dist/server/_chunks/index-dgr390q7.js +9438 -0
  60. package/dist/server/_chunks/index-drwv61cc.js +185 -0
  61. package/dist/server/_chunks/index-e3a6yx84.js +18 -0
  62. package/dist/server/_chunks/index-e88tyv35.js +45 -0
  63. package/dist/server/_chunks/index-en7n9f7m.js +22 -0
  64. package/dist/server/_chunks/index-entm8bmz.js +28 -0
  65. package/dist/server/_chunks/index-evhd413j.js +57 -0
  66. package/dist/server/_chunks/index-ezgj0tr1.js +88 -0
  67. package/dist/server/_chunks/index-fjv96re1.js +5295 -0
  68. package/dist/server/_chunks/index-fn1chkkd.js +214 -0
  69. package/dist/server/_chunks/index-fp8r0sqs.js +64 -0
  70. package/dist/server/_chunks/index-gcmj16xy.js +92 -0
  71. package/dist/server/_chunks/index-gkndxkxf.js +736 -0
  72. package/dist/server/_chunks/index-grta8ap3.js +238 -0
  73. package/dist/server/_chunks/index-h2a70tg4.js +7 -0
  74. package/dist/server/_chunks/index-h4xy648y.js +51 -0
  75. package/dist/server/_chunks/index-hdbwtdv2.js +352 -0
  76. package/dist/server/_chunks/index-he6n2bvp.js +1270 -0
  77. package/dist/server/_chunks/index-j0m1jxqa.js +1253 -0
  78. package/dist/server/_chunks/index-j2zrcp1k.js +66 -0
  79. package/dist/server/_chunks/index-j681c48a.js +2530 -0
  80. package/dist/server/_chunks/index-jbj7ehef.js +50 -0
  81. package/dist/server/_chunks/index-jcsjq3d1.js +20 -0
  82. package/dist/server/_chunks/index-jks0x0a1.js +14 -0
  83. package/dist/server/_chunks/index-jn9rbhrx.js +1599 -0
  84. package/dist/server/_chunks/index-jt8e1pje.js +12 -0
  85. package/dist/server/_chunks/index-kdhxpwyq.js +483 -0
  86. package/dist/server/_chunks/index-knp0s912.js +7 -0
  87. package/dist/server/_chunks/index-kqyy1d4f.js +50 -0
  88. package/dist/server/_chunks/index-kresp2n8.js +445 -0
  89. package/dist/server/_chunks/index-m63czgq5.js +590 -0
  90. package/dist/server/_chunks/index-ms9v9tnx.js +31 -0
  91. package/dist/server/_chunks/index-n4hxpng2.js +11 -0
  92. package/dist/server/_chunks/index-n629dy38.js +1071 -0
  93. package/dist/server/_chunks/index-nf3df4jy.js +266 -0
  94. package/dist/server/_chunks/index-nqh3xhdc.js +57 -0
  95. package/dist/server/_chunks/index-pym1cezq.js +39 -0
  96. package/dist/server/_chunks/index-q3r9z8mq.js +213 -0
  97. package/dist/server/_chunks/index-q738kkhj.js +100 -0
  98. package/dist/server/_chunks/index-qcrvt6er.js +112 -0
  99. package/dist/server/_chunks/index-qjj6gddn.js +54 -0
  100. package/dist/server/_chunks/index-qpwsgt3a.js +158 -0
  101. package/dist/server/_chunks/index-r97ptz1q.js +97 -0
  102. package/dist/server/_chunks/index-ras0sdab.js +26 -0
  103. package/dist/server/_chunks/index-rcs322t1.js +19 -0
  104. package/dist/server/_chunks/index-rgj5mx84.js +101 -0
  105. package/dist/server/_chunks/index-rjegyfx4.js +1435 -0
  106. package/dist/server/_chunks/index-rt9qq1va.js +4 -0
  107. package/dist/server/_chunks/index-rthrsed5.js +356 -0
  108. package/dist/server/_chunks/index-sq3kvz3g.js +200 -0
  109. package/dist/server/_chunks/index-stbk3jhn.js +31 -0
  110. package/dist/server/_chunks/index-tf4j19ge.js +130 -0
  111. package/dist/server/_chunks/index-tgcakdxc.js +125 -0
  112. package/dist/server/_chunks/index-tgsfjmep.js +74 -0
  113. package/dist/server/_chunks/index-tq1f96v7.js +51 -0
  114. package/dist/server/_chunks/index-tq3b39a5.js +107 -0
  115. package/dist/server/_chunks/index-typcbcsv.js +819 -0
  116. package/dist/server/_chunks/index-v1ags1na.js +132 -0
  117. package/dist/server/_chunks/index-vmr35jjw.js +170 -0
  118. package/dist/server/_chunks/index-vvq7rqtn.js +329 -0
  119. package/dist/server/_chunks/index-vz0km5qk.js +33 -0
  120. package/dist/server/_chunks/index-w6h8m6vp.js +138 -0
  121. package/dist/server/_chunks/index-web361b8.js +138 -0
  122. package/dist/server/_chunks/index-wm36rj4v.js +311 -0
  123. package/dist/server/_chunks/index-x0y005nh.js +283 -0
  124. package/dist/server/_chunks/index-x2m17v9c.js +6166 -0
  125. package/dist/server/_chunks/index-x3yn4ywm.js +22 -0
  126. package/dist/server/_chunks/index-x9c55pzy.js +871 -0
  127. package/dist/server/_chunks/index-xh1nbk46.js +1299 -0
  128. package/dist/server/_chunks/index-xvj80c3a.js +30 -0
  129. package/dist/server/_chunks/index-xywjg2vc.js +100 -0
  130. package/dist/server/_chunks/index-y4d02znn.js +66 -0
  131. package/dist/server/_chunks/index-y7mzvq2q.js +110 -0
  132. package/dist/server/_chunks/index-ye9hmsvf.js +47 -0
  133. package/dist/server/_chunks/index-yhxkxghe.js +56 -0
  134. package/dist/server/_chunks/index-yrjkqtfj.js +86 -0
  135. package/dist/server/_chunks/index-z88qv16t.js +11 -0
  136. package/dist/server/_chunks/index-zfrwq472.js +154 -0
  137. package/dist/server/_chunks/index-zqpqyg8p.js +666 -0
  138. package/dist/server/_chunks/loader-5en7wpt5.js +80 -0
  139. package/dist/server/_chunks/modules-t92favpj.js +76 -0
  140. package/dist/server/_chunks/pipeline-4t9q43ht.js +836 -0
  141. package/dist/server/_chunks/production-385bw8df.js +55 -0
  142. package/dist/server/_chunks/proxy-config-60gprphe.js +23 -0
  143. package/dist/server/_chunks/proxy-gfhmktbk.js +35 -0
  144. package/dist/server/_chunks/router-xnrva921.js +501 -0
  145. package/dist/server/_chunks/routes-ht868pdc.js +66 -0
  146. package/dist/server/_chunks/run-d40d63ag.js +697 -0
  147. package/dist/server/_chunks/server-2p8fgqq2.js +1839 -0
  148. package/dist/server/_chunks/tsconfig-defaults-bcn34eqb.js +21 -0
  149. package/dist/server/_chunks/typegen-dvtcjtaw.js +37 -0
  150. package/dist/server/api/client-cache.js +14 -0
  151. package/dist/server/cli/index.js +375 -0
  152. package/dist/server/cli/start.js +158 -0
  153. package/dist/server/client/reference.js +16 -0
  154. package/dist/server/compat/next/cache.js +56 -0
  155. package/dist/server/compat/next/canonical-url.js +13 -0
  156. package/dist/server/compat/next/client-cache.js +57 -0
  157. package/dist/server/compat/next/client-navigation.js +232 -0
  158. package/dist/server/compat/next/client-only.js +1 -0
  159. package/dist/server/compat/next/client-script.js +178 -0
  160. package/dist/server/compat/next/client-server.js +34 -0
  161. package/dist/server/compat/next/config-headers.js +34 -0
  162. package/dist/server/compat/next/config-loader.js +25 -0
  163. package/dist/server/compat/next/config.js +10 -0
  164. package/dist/server/compat/next/constants.js +18 -0
  165. package/dist/server/compat/next/custom-server.js +10 -0
  166. package/dist/server/compat/next/dist/client/components/app-router-headers.js +48 -0
  167. package/dist/server/compat/next/dist/server/web/spec-extension/revalidate.js +27 -0
  168. package/dist/server/compat/next/dist/server/web/spec-extension/unstable-cache.js +25 -0
  169. package/dist/server/compat/next/dist/server/web/spec-extension/unstable-no-store.js +25 -0
  170. package/dist/server/compat/next/dynamic.js +21 -0
  171. package/dist/server/compat/next/error.js +112 -0
  172. package/dist/server/compat/next/font/cache.js +16 -0
  173. package/dist/server/compat/next/font/google.js +3 -0
  174. package/dist/server/compat/next/font/index.js +1 -0
  175. package/dist/server/compat/next/font/local.js +24 -0
  176. package/dist/server/compat/next/font/runtime-client.js +33 -0
  177. package/dist/server/compat/next/font/runtime.js +43 -0
  178. package/dist/server/compat/next/font/shared.js +22 -0
  179. package/dist/server/compat/next/form.js +129 -0
  180. package/dist/server/compat/next/head.js +10 -0
  181. package/dist/server/compat/next/headers.js +30 -0
  182. package/dist/server/compat/next/image/client.js +11 -0
  183. package/dist/server/compat/next/image/config.js +18 -0
  184. package/dist/server/compat/next/image/optimizer.js +25 -0
  185. package/dist/server/compat/next/image/patterns.js +12 -0
  186. package/dist/server/compat/next/image/props.js +16 -0
  187. package/dist/server/compat/next/image/shared.js +86 -0
  188. package/dist/server/compat/next/image/static-metadata.js +32 -0
  189. package/dist/server/compat/next/image/validate.js +8 -0
  190. package/dist/server/compat/next/image.js +59 -0
  191. package/dist/server/compat/next/index.js +1 -0
  192. package/dist/server/compat/next/legacy-image.js +78 -0
  193. package/dist/server/compat/next/legacy-request-apis.js +24 -0
  194. package/dist/server/compat/next/link-transform.js +15 -0
  195. package/dist/server/compat/next/link.js +14 -0
  196. package/dist/server/compat/next/navigation.js +191 -0
  197. package/dist/server/compat/next/offline.js +45 -0
  198. package/dist/server/compat/next/og.js +8 -0
  199. package/dist/server/compat/next/preferred-region.js +8 -0
  200. package/dist/server/compat/next/redirects.js +32 -0
  201. package/dist/server/compat/next/resource-hints.js +30 -0
  202. package/dist/server/compat/next/rewrites.js +43 -0
  203. package/dist/server/compat/next/root-params.js +121 -0
  204. package/dist/server/compat/next/route-state.js +23 -0
  205. package/dist/server/compat/next/router.js +103 -0
  206. package/dist/server/compat/next/script.js +37 -0
  207. package/dist/server/compat/next/server-only.js +1 -0
  208. package/dist/server/compat/next/server.js +131 -0
  209. package/dist/server/compat/next/svgr.js +14 -0
  210. package/dist/server/compat/next/telemetry.js +10 -0
  211. package/dist/server/compat/next/usage.js +13 -0
  212. package/dist/server/compat/next/user-agent.js +12 -0
  213. package/dist/server/compat/next/web-vitals.js +35 -0
  214. package/dist/server/compat/react/action-state.js +11 -0
  215. package/dist/server/compat/react/client-lite.js +83 -0
  216. package/dist/server/compat/react/client.js +131 -0
  217. package/dist/server/compat/react/compiler-runtime.js +42 -0
  218. package/dist/server/compat/react/dom-client.js +106 -0
  219. package/dist/server/compat/react/dom-react-server.js +37 -0
  220. package/dist/server/compat/react/dom-server.js +40 -0
  221. package/dist/server/compat/react/dom.js +52 -0
  222. package/dist/server/compat/react/hooks-extra.js +12 -0
  223. package/dist/server/compat/react/internals.js +14 -0
  224. package/dist/server/compat/react/parity.js +11 -0
  225. package/dist/server/compat/react/preact.js +113 -0
  226. package/dist/server/compat/react/react-server.js +133 -0
  227. package/dist/server/compat/react/router-shim.js +8 -0
  228. package/dist/server/compat/react/server-component-use.js +14 -0
  229. package/dist/server/compat/react/server-inserted-html.js +14 -0
  230. package/dist/server/compat/react/server.js +194 -0
  231. package/dist/server/compat/react/style-values.js +10 -0
  232. package/dist/server/compat/react/use.js +10 -0
  233. package/dist/server/compat/react/view-transition.js +12 -0
  234. package/dist/server/generation.json +1 -0
  235. package/package.json +4 -1
  236. package/reference/compat.md +1 -1
  237. package/reference/config.md +2 -2
  238. package/reference/dev.md +1 -1
  239. package/reference/getting-started.md +1 -1
  240. package/reference/rendering.md +4 -4
  241. package/src/api/dynamic.tsx +86 -4
  242. package/src/api/server.ts +24 -6
  243. package/src/cli/adapters/vercel-warm.ts +327 -62
  244. package/src/cli/adapters/vercel.ts +164 -1054
  245. package/src/cli/analyze.ts +3 -2
  246. package/src/cli/build/cache.ts +6 -6
  247. package/src/cli/build.ts +78 -45
  248. package/src/cli/index.ts +21 -3
  249. package/src/cli/serve/immutable.ts +31 -0
  250. package/src/cli/serve/pipeline.ts +97 -93
  251. package/src/cli/serve/standalone-worker.ts +8 -0
  252. package/src/cli/serve/standalone.ts +703 -0
  253. package/src/cli/start.ts +31 -8
  254. package/src/client/build.ts +1 -1
  255. package/src/client/chunk-fold.ts +19 -6
  256. package/src/client/react-tier.ts +3 -2
  257. package/src/client/reference-stub.ts +23 -36
  258. package/src/compat/actions/client-plugin.ts +4 -2
  259. package/src/compat/actions/config.ts +6 -5
  260. package/src/compat/actions/extensions.ts +5 -5
  261. package/src/compat/aliases.ts +8 -1
  262. package/src/compat/bundler/config.ts +88 -0
  263. package/src/compat/bundler/optimize-package-imports.ts +86 -26
  264. package/src/compat/bundler/relay-transform.ts +15 -3
  265. package/src/compat/bundler/require-context.ts +2 -1
  266. package/src/compat/bundler/webpack-loaders.ts +3 -2
  267. package/src/compat/bundler/worker.ts +2 -2
  268. package/src/compat/cache-control.ts +16 -8
  269. package/src/compat/css/inline-css.ts +1 -1
  270. package/src/compat/css/modules.ts +18 -5
  271. package/src/compat/export/build-complete.ts +1 -1
  272. package/src/compat/export/emit.ts +4 -4
  273. package/src/compat/export/standalone.ts +30 -65
  274. package/src/compat/image-optimizer/optimize.ts +1 -1
  275. package/src/compat/lifecycle/error-funnel.ts +1 -1
  276. package/src/compat/lifecycle/instrumentation-client.ts +4 -3
  277. package/src/compat/lifecycle/instrumentation.ts +117 -24
  278. package/src/compat/lifecycle/testmode.ts +3 -2
  279. package/src/compat/metadata-artifacts.ts +1 -1
  280. package/src/compat/next/config-loader.ts +140 -13
  281. package/src/compat/next/dynamic.tsx +10 -23
  282. package/src/compat/next/font/cache.ts +2 -1
  283. package/src/compat/next/font/runtime.ts +23 -3
  284. package/src/compat/next/og.ts +3 -3
  285. package/src/compat/next/usage.ts +3 -2
  286. package/src/compat/pages/api.ts +83 -14
  287. package/src/compat/pages/router.ts +30 -14
  288. package/src/compat/register/bundler.ts +3 -1
  289. package/src/compat/register/image.ts +1 -1
  290. package/src/compat/register/middleware.ts +1 -1
  291. package/src/compat/register/otel.ts +5 -9
  292. package/src/compat/register/render.ts +3 -1
  293. package/src/compat/register/use-cache.ts +3 -1
  294. package/src/compat/release.ts +46 -0
  295. package/src/compat/segment/serve.ts +1 -1
  296. package/src/compat/typecheck/check.ts +6 -4
  297. package/src/compat/validation/validate.ts +10 -7
  298. package/src/config.ts +76 -9
  299. package/src/css/assets.ts +213 -0
  300. package/src/css/build.ts +190 -247
  301. package/src/dev/client-chunk-store.ts +2 -1
  302. package/src/dev/restart/client-key.ts +2 -1
  303. package/src/dev/restart/global-css.ts +2 -1
  304. package/src/dev/restart/route-bundle-key.ts +2 -1
  305. package/src/dev/restart/route-facts.ts +2 -1
  306. package/src/dev/server.ts +34 -14
  307. package/src/extensions.ts +4 -0
  308. package/src/out-paths.ts +10 -0
  309. package/src/render/hooks.ts +13 -0
  310. package/src/render/renderer.ts +53 -33
  311. package/src/request/context.ts +9 -0
  312. package/src/resolve/dynamic.ts +7 -1
  313. package/src/resolve/engine.ts +2 -12
  314. package/src/resolve/imports.ts +12 -52
  315. package/src/resolve/package-json.ts +56 -0
  316. package/src/resolve/scan-facts.ts +250 -1
  317. package/src/routing/href.ts +10 -3
  318. package/src/routing/match.ts +287 -0
  319. package/src/routing/metadata-files.ts +20 -6
  320. package/src/routing/proxy-config.ts +137 -0
  321. package/src/routing/proxy.ts +35 -134
  322. package/src/routing/routes.ts +22 -281
  323. package/src/runtime/fingerprint.ts +23 -8
  324. package/src/runtime/load.ts +170 -0
  325. package/src/runtime/loader.ts +218 -44
  326. package/src/runtime/module-cache.ts +15 -1
  327. package/src/runtime/modules.ts +405 -82
  328. package/src/runtime/prebundle.ts +101 -0
  329. package/src/runtime/production.ts +456 -0
  330. package/src/runtime/release-graph.ts +342 -0
  331. package/src/runtime/vendor-build.ts +750 -17
  332. package/src/runtime/vendor.ts +16 -3
  333. package/src/types.ts +4 -3
  334. package/src/utils/directive.ts +40 -0
  335. package/src/utils/fs.ts +95 -4
  336. package/src/utils/resource-query.ts +12 -0
  337. 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,10 @@
1
+ // @bun
2
+ import {
3
+ applyReactStyleValues,
4
+ reactStyleValue
5
+ } from "../../_chunks/index-kqyy1d4f.js";
6
+ import"../../_chunks/index-rt9qq1va.js";
7
+ export {
8
+ applyReactStyleValues,
9
+ reactStyleValue
10
+ };
@@ -0,0 +1,10 @@
1
+ // @bun
2
+ import {
3
+ use,
4
+ withUseThenableState
5
+ } from "../../_chunks/index-h4xy648y.js";
6
+ import"../../_chunks/index-rt9qq1va.js";
7
+ export {
8
+ use,
9
+ withUseThenableState
10
+ };
@@ -0,0 +1,12 @@
1
+ // @bun
2
+ import {
3
+ ViewTransition,
4
+ addTransitionType,
5
+ takeTransitionTypes
6
+ } from "../../_chunks/index-9ch50vtq.js";
7
+ import"../../_chunks/index-rt9qq1va.js";
8
+ export {
9
+ ViewTransition,
10
+ addTransitionType,
11
+ takeTransitionTypes
12
+ };
@@ -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.6",
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"
@@ -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 `.next/standalone/` with a `server.js` that boots on `PORT` and `HOSTNAME`, along with a `.nft.json` trace beside each page entry and a middleware manifest. Because pnext's production server runs under Bun, that launcher is a thin Node script that re-executes the real pnext server pointed back at the original build directory. The folder is therefore not a self-contained bundle you can ship on its own, because the build tree has to travel with it.
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.
@@ -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 for HTML, client assets, cache files, and `manifest.json`. |
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` are string lists that adjust which directories and file suffixes an adapter packs. The Vercel adapter consumes them.
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` on the machine or in CI, then `pnext start` serves the app on your port.
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
- That deploys anywhere Bun runs. For Vercel, build with `pnext build --adapter vercel` and it writes ready-to-deploy Build Output.
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
 
@@ -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. It works in Server Components and Client Components alike, and inside a Client Component it is a browser lazy loader. The loader can also be a literal module path for a default export.
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
- A Client Component target renders on the server and hydrates by default. The options change that:
53
+ The component renders on the server and hydrates by default. The options change that:
54
54
 
55
- - `ssr: false` produces browser-only output.
56
- - `load: 'visible'` waits for the island to enter view, and accepts `rootMargin` and `threshold`. It is browser-only as well unless `ssr` is true.
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
@@ -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
- function DynamicComponent(props: Props) {
52
- const [Component, setComponent] = useState<ComponentType<Props> | null>(() => loaded)
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 { getProxyExtensions, getProxyResponseProtocol } from '../extensions'
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(getProxyResponseProtocol().nextHeader, '1')
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(getProxyResponseProtocol().rewriteHeader, String(url))
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 = getProxyResponseProtocol()
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 = getProxyResponseProtocol()
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 = getProxyExtensions().locale(nextUrl)
243
+ nextUrl.locale = proxyHost()?.proxy.locale(nextUrl) ?? ''
226
244
  return nextUrl
227
245
  }
228
246