@wular/pnext 0.0.3 → 0.0.6

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 (392) hide show
  1. package/README.md +11 -11
  2. package/bin/pnext +1 -1
  3. package/config/lint/base.js +7 -7
  4. package/config/ts/base.json +2 -4
  5. package/config/ts/react.json +2 -6
  6. package/package.json +23 -2
  7. package/reference/compat.md +1 -1
  8. package/reference/config.md +2 -2
  9. package/reference/css.md +13 -9
  10. package/reference/dev.md +1 -1
  11. package/reference/metadata.md +7 -7
  12. package/reference/navigation.md +35 -28
  13. package/reference/performance.md +70 -70
  14. package/reference/rendering.md +17 -17
  15. package/reference/routing.md +17 -17
  16. package/reference/typegen.md +12 -8
  17. package/src/api/cache.ts +36 -37
  18. package/src/api/client-cache.ts +2 -2
  19. package/src/api/client-navigation.ts +113 -109
  20. package/src/api/dynamic.tsx +58 -55
  21. package/src/api/link.tsx +49 -52
  22. package/src/api/navigation.ts +59 -58
  23. package/src/api/server.ts +152 -144
  24. package/src/api/suspense.ts +4 -4
  25. package/src/cli/adapters/vercel-warm.ts +126 -121
  26. package/src/cli/adapters/vercel.ts +437 -443
  27. package/src/cli/analyze.ts +333 -144
  28. package/src/cli/{named-bin.ts → boot/named-bin.ts} +37 -37
  29. package/src/cli/{boot-trace.ts → boot/trace.ts} +10 -10
  30. package/src/cli/build.ts +976 -978
  31. package/src/cli/create.ts +71 -63
  32. package/src/cli/dev.ts +116 -116
  33. package/src/cli/index.ts +88 -85
  34. package/src/cli/migrate/package-json.ts +73 -71
  35. package/src/cli/migrate/report.ts +32 -33
  36. package/src/cli/migrate/{index.ts → run.ts} +48 -49
  37. package/src/cli/migrate/scan.ts +46 -46
  38. package/src/cli/migrate/spinner.ts +9 -9
  39. package/src/cli/migrate/tsconfig.ts +35 -35
  40. package/src/cli/{server-entry.ts → serve/entry.ts} +57 -57
  41. package/src/cli/{request-pipeline.ts → serve/pipeline.ts} +386 -394
  42. package/src/cli/{serve-ui.ts → serve/ui.ts} +47 -47
  43. package/src/cli/start.ts +65 -66
  44. package/src/{typegen.ts → cli/typegen.ts} +59 -59
  45. package/src/client/build.ts +794 -768
  46. package/src/client/chunk-fold.ts +245 -240
  47. package/src/client/{paths.ts → chunk-name.ts} +6 -6
  48. package/src/client/entry.ts +162 -147
  49. package/src/client/prebuilt.ts +231 -223
  50. package/src/client/profile.ts +29 -29
  51. package/src/client/react-compiler.ts +20 -15
  52. package/src/client/{compat-surface.ts → react-tier.ts} +64 -64
  53. package/src/client/reference-stub.ts +51 -51
  54. package/src/client/reference.ts +19 -19
  55. package/src/{api → client}/router/events.ts +17 -17
  56. package/src/{api → client}/router/history.ts +16 -16
  57. package/src/{api → client}/router/hub.ts +52 -53
  58. package/src/{api/router.ts → client/router/index.ts} +61 -60
  59. package/src/{api → client}/router/policies.ts +24 -24
  60. package/src/{api → client}/router/runtime.ts +1988 -1961
  61. package/src/{api → client}/router/types.ts +93 -98
  62. package/src/compat/actions/client-plugin.ts +42 -43
  63. package/src/compat/actions/client-stub.ts +14 -14
  64. package/src/compat/actions/{action-client.ts → client.ts} +194 -193
  65. package/src/compat/actions/config.ts +63 -64
  66. package/src/compat/actions/detect.ts +68 -68
  67. package/src/compat/actions/discovery.ts +105 -105
  68. package/src/compat/actions/{action-dispatch.ts → dispatch.ts} +277 -274
  69. package/src/compat/actions/early-submit.ts +1 -1
  70. package/src/compat/actions/endpoint.ts +198 -198
  71. package/src/compat/actions/extensions.ts +811 -0
  72. package/src/compat/actions/flight.ts +23 -23
  73. package/src/compat/actions/form-state.ts +34 -34
  74. package/src/compat/actions/hoist.ts +382 -236
  75. package/src/compat/actions/ids.ts +7 -12
  76. package/src/compat/actions/index.ts +8 -8
  77. package/src/compat/actions/instances.ts +46 -46
  78. package/src/compat/actions/origin.ts +47 -48
  79. package/src/compat/actions/protocol.ts +22 -22
  80. package/src/compat/actions/registry.ts +19 -19
  81. package/src/compat/{misc/action-return.ts → actions/return.ts} +60 -57
  82. package/src/compat/actions/rewrite.ts +125 -125
  83. package/src/compat/actions/{action-router.ts → router.ts} +10 -10
  84. package/src/compat/actions/serve.ts +132 -136
  85. package/src/compat/actions/server-tag.ts +4 -4
  86. package/src/compat/actions/{action-shared.ts → shared.ts} +34 -34
  87. package/src/compat/actions/unrecognized-error.ts +4 -4
  88. package/src/compat/{index.ts → aliases.ts} +112 -109
  89. package/src/compat/bundler/bun-externals.ts +18 -18
  90. package/src/compat/bundler/cjs-exports.ts +271 -223
  91. package/src/compat/bundler/config.ts +116 -111
  92. package/src/compat/bundler/externals.ts +12 -12
  93. package/src/compat/bundler/import-meta-url.ts +19 -19
  94. package/src/compat/bundler/modularize-imports.ts +36 -33
  95. package/src/compat/bundler/new-url-asset.ts +22 -24
  96. package/src/compat/bundler/optimize-package-imports.ts +111 -107
  97. package/src/compat/bundler/polyfill.ts +28 -28
  98. package/src/compat/bundler/react-compiler.ts +35 -29
  99. package/src/compat/bundler/react-profiler.tsx +11 -11
  100. package/src/compat/bundler/relay-transform.ts +48 -47
  101. package/src/compat/bundler/require-context.ts +119 -113
  102. package/src/compat/bundler/resolve-extensions.ts +19 -19
  103. package/src/compat/bundler/source-cache.ts +25 -25
  104. package/src/compat/bundler/static-imports.ts +7 -7
  105. package/src/compat/bundler/symlink-imports.ts +46 -46
  106. package/src/compat/bundler/tsconfig-paths.ts +13 -15
  107. package/src/compat/bundler/wasm.ts +58 -60
  108. package/src/compat/bundler/webpack-loaders.ts +254 -241
  109. package/src/compat/bundler/worker.ts +101 -104
  110. package/src/compat/cache/build-flags.ts +29 -29
  111. package/src/compat/cache/build-prerender-errors.ts +40 -44
  112. package/src/compat/cache/custom-handler.ts +60 -53
  113. package/src/compat/cache/fetch-patch.ts +240 -240
  114. package/src/compat/cache/handler.ts +27 -31
  115. package/src/compat/cache/modern-handler.ts +148 -126
  116. package/src/compat/cache/resume-data-cache.ts +47 -45
  117. package/src/compat/cache/revalidate.ts +233 -232
  118. package/src/compat/cache/runtime-error.ts +35 -35
  119. package/src/compat/cache/use-cache-transform.ts +442 -417
  120. package/src/compat/cache/use-cache.ts +650 -614
  121. package/src/compat/cache-control.ts +140 -142
  122. package/src/compat/client/base-path.ts +21 -20
  123. package/src/compat/client/css-order.ts +18 -18
  124. package/src/compat/client/errors/bare-boundary.ts +11 -11
  125. package/src/compat/client/errors/control-flow.ts +23 -23
  126. package/src/compat/client/errors/error-boundary.ts +61 -61
  127. package/src/compat/client/errors/global-error.ts +101 -91
  128. package/src/compat/client/errors/install.ts +71 -72
  129. package/src/compat/client/errors/lazy.ts +23 -23
  130. package/src/compat/client/errors/primitive-throw.ts +47 -45
  131. package/src/compat/client/errors/soft-refresh.ts +4 -4
  132. package/src/compat/client/link-status.ts +33 -33
  133. package/src/compat/client/{nav-compat-runtime.ts → nav-runtime.ts} +20 -20
  134. package/src/compat/client/{nav-compat.ts → nav.ts} +12 -13
  135. package/src/compat/client/navigation-scroll.ts +63 -63
  136. package/src/compat/client/optimistic-routing.ts +93 -88
  137. package/src/compat/client/prefetch-cache.ts +23 -24
  138. package/src/compat/client/route-announcer.ts +35 -35
  139. package/src/compat/client/segment-cache-policy.ts +20 -20
  140. package/src/compat/client/segment-cache.ts +309 -315
  141. package/src/compat/client/segment-prefetch.ts +127 -132
  142. package/src/compat/client/trailing-slash.ts +5 -4
  143. package/src/compat/css/chunking.ts +113 -116
  144. package/src/compat/css/inline-css.ts +21 -21
  145. package/src/compat/css/lightningcss.ts +37 -38
  146. package/src/compat/css/modules.ts +161 -175
  147. package/src/compat/css/nonce.ts +7 -7
  148. package/src/compat/css/sass-plugin.ts +18 -21
  149. package/src/compat/css/sass.ts +150 -152
  150. package/src/compat/css/styled-jsx-runtime.ts +27 -27
  151. package/src/compat/css/styled-jsx.ts +21 -21
  152. package/src/compat/edge-runtime.ts +27 -27
  153. package/src/compat/{adapter → export}/build-complete.ts +72 -75
  154. package/src/compat/export/client.ts +29 -31
  155. package/src/compat/export/{index.ts → emit.ts} +111 -110
  156. package/src/compat/export/standalone.ts +62 -54
  157. package/src/compat/image-optimizer/cache.ts +51 -49
  158. package/src/compat/image-optimizer/detect.ts +52 -52
  159. package/src/compat/image-optimizer/{index.ts → optimize.ts} +189 -194
  160. package/src/compat/image-optimizer/source.ts +77 -80
  161. package/src/compat/lifecycle/after-scope.ts +26 -26
  162. package/src/compat/lifecycle/after.ts +48 -45
  163. package/src/compat/lifecycle/error-funnel.ts +98 -102
  164. package/src/compat/lifecycle/error-serialize.ts +30 -26
  165. package/src/compat/lifecycle/error-ui.ts +67 -32
  166. package/src/compat/lifecycle/instrumentation-client.ts +36 -38
  167. package/src/compat/lifecycle/instrumentation.ts +85 -85
  168. package/src/compat/lifecycle/node-console.ts +11 -11
  169. package/src/compat/lifecycle/testmode.ts +160 -132
  170. package/src/compat/mdx/compile.ts +60 -57
  171. package/src/compat/mdx/plugin.ts +11 -11
  172. package/src/compat/mdx/{next-mdx-stub.ts → stub.ts} +5 -5
  173. package/src/compat/{metadata-route-artifacts.ts → metadata-artifacts.ts} +195 -191
  174. package/src/compat/metadata.ts +75 -81
  175. package/src/compat/next/cache.ts +68 -69
  176. package/src/compat/next/canonical-url.ts +9 -9
  177. package/src/compat/next/client-cache.ts +19 -19
  178. package/src/compat/next/client-navigation.ts +112 -116
  179. package/src/compat/next/client-only.ts +1 -1
  180. package/src/compat/next/client-script.tsx +99 -93
  181. package/src/compat/next/client-server.ts +10 -10
  182. package/src/compat/next/config-loader.ts +176 -173
  183. package/src/compat/next/config.ts +7 -7
  184. package/src/compat/next/constants.cjs +6 -6
  185. package/src/compat/next/constants.ts +6 -6
  186. package/src/compat/next/custom-server.ts +26 -24
  187. package/src/compat/next/dist/client/components/app-router-headers.ts +21 -21
  188. package/src/compat/next/dist/server/app-render/work-unit-async-storage.external.cjs +3 -4
  189. package/src/compat/next/dist/server/web/spec-extension/revalidate.ts +1 -1
  190. package/src/compat/next/dist/server/web/spec-extension/unstable-cache.ts +1 -1
  191. package/src/compat/next/dist/server/web/spec-extension/unstable-no-store.ts +1 -1
  192. package/src/compat/next/dynamic.tsx +21 -18
  193. package/src/compat/next/error.tsx +52 -52
  194. package/src/compat/next/font/cache.ts +74 -74
  195. package/src/compat/next/font/google.ts +2 -2
  196. package/src/compat/next/font/index.ts +1 -1
  197. package/src/compat/next/font/local.ts +3 -3
  198. package/src/compat/next/font/runtime-client.ts +17 -15
  199. package/src/compat/next/font/runtime.ts +443 -408
  200. package/src/compat/next/font/shared.ts +120 -108
  201. package/src/compat/next/form.tsx +63 -63
  202. package/src/compat/next/head.tsx +2 -2
  203. package/src/compat/next/headers.ts +103 -95
  204. package/src/compat/next/image/client.tsx +220 -0
  205. package/src/compat/next/image/config.ts +56 -58
  206. package/src/compat/next/image/optimizer.ts +40 -36
  207. package/src/compat/next/image/patterns.ts +37 -40
  208. package/src/compat/next/{image-props.ts → image/props.ts} +208 -202
  209. package/src/compat/next/image/shared.ts +65 -57
  210. package/src/compat/next/image/static-metadata.ts +98 -107
  211. package/src/compat/next/image/validate.ts +79 -88
  212. package/src/compat/next/image.tsx +19 -23
  213. package/src/compat/next/index.ts +1 -1
  214. package/src/compat/next/legacy-image.tsx +59 -60
  215. package/src/compat/next/{link-validation-transform.ts → link-transform.ts} +95 -96
  216. package/src/compat/next/link.tsx +158 -158
  217. package/src/compat/next/navigation.cjs +12 -3
  218. package/src/compat/next/navigation.ts +48 -50
  219. package/src/compat/next/offline.ts +27 -27
  220. package/src/compat/next/og.ts +121 -124
  221. package/src/compat/next/preferred-region.ts +13 -14
  222. package/src/compat/next/redirects.ts +58 -56
  223. package/src/compat/next/resource-hints.ts +73 -76
  224. package/src/compat/next/rewrites.ts +130 -133
  225. package/src/compat/next/root-params.ts +45 -45
  226. package/src/compat/next/{optimistic-route-state.ts → route-state.ts} +52 -52
  227. package/src/compat/next/router.cjs +4 -2
  228. package/src/compat/next/router.ts +58 -61
  229. package/src/compat/next/script.tsx +108 -108
  230. package/src/compat/next/server-only.ts +1 -1
  231. package/src/compat/next/server.ts +19 -19
  232. package/src/compat/next/svgr.ts +18 -17
  233. package/src/compat/next/telemetry.ts +24 -24
  234. package/src/compat/next/{image-usage.ts → usage.ts} +70 -39
  235. package/src/compat/next/user-agent.ts +53 -49
  236. package/src/compat/next/web-vitals.ts +22 -24
  237. package/src/compat/otel/api.ts +41 -41
  238. package/src/compat/otel/client-trace-metadata.ts +25 -27
  239. package/src/compat/otel/fetch-span.ts +29 -29
  240. package/src/compat/otel/tracer.ts +331 -331
  241. package/src/compat/pages/api.ts +456 -0
  242. package/src/compat/pages/client-plugin.ts +36 -36
  243. package/src/compat/pages/router-state.ts +34 -34
  244. package/src/compat/pages/{index.ts → router.ts} +130 -135
  245. package/src/compat/ppr/io.ts +12 -12
  246. package/src/compat/ppr/missing-root-params.ts +34 -38
  247. package/src/compat/ppr/root-params-scan.ts +66 -66
  248. package/src/compat/ppr/root-params-transform.ts +24 -26
  249. package/src/compat/ppr/root-params.ts +30 -30
  250. package/src/compat/ppr/segment-config-incompat.ts +6 -7
  251. package/src/compat/protocol.ts +71 -70
  252. package/src/compat/react/action-state.ts +47 -48
  253. package/src/compat/react/client-lite.ts +15 -15
  254. package/src/compat/react/client.ts +4 -4
  255. package/src/compat/react/compiler-runtime.ts +11 -11
  256. package/src/compat/react/dom-client.ts +44 -44
  257. package/src/compat/react/dom-react-server.ts +10 -16
  258. package/src/compat/react/dom-server.ts +10 -10
  259. package/src/compat/react/dom.ts +52 -52
  260. package/src/compat/react/hooks-extra.ts +34 -35
  261. package/src/compat/react/parity.ts +64 -61
  262. package/src/compat/react/preact.ts +81 -82
  263. package/src/compat/react/react-server.ts +28 -28
  264. package/src/compat/react/router-shim.ts +1 -1
  265. package/src/compat/react/server-component-use.ts +8 -8
  266. package/src/compat/react/server-inserted-html.ts +30 -31
  267. package/src/compat/react/server.ts +53 -55
  268. package/src/compat/react/use.ts +32 -32
  269. package/src/compat/react/view-transition.ts +20 -20
  270. package/src/compat/register/actions.ts +35 -824
  271. package/src/compat/register/boot.ts +41 -41
  272. package/src/compat/register/build-tier.ts +5 -5
  273. package/src/compat/register/build.ts +74 -70
  274. package/src/compat/register/bundler.ts +161 -156
  275. package/src/compat/register/cache.ts +20 -20
  276. package/src/compat/register/client-errors.ts +3 -3
  277. package/src/compat/register/config.ts +6 -6
  278. package/src/compat/register/css-extras.ts +30 -34
  279. package/src/compat/register/edge-runtime.ts +3 -3
  280. package/src/compat/register/errors.ts +10 -12
  281. package/src/compat/register/export.ts +16 -16
  282. package/src/compat/register/font.ts +11 -11
  283. package/src/compat/register/hooks.ts +2 -2
  284. package/src/compat/register/image.ts +40 -40
  285. package/src/compat/register/index.ts +59 -62
  286. package/src/compat/register/instrumentation-client.ts +10 -10
  287. package/src/compat/register/lifecycle.ts +25 -28
  288. package/src/compat/register/mdx.ts +10 -10
  289. package/src/compat/register/middleware.ts +226 -16
  290. package/src/compat/register/otel.ts +80 -88
  291. package/src/compat/register/pages-api.ts +10 -463
  292. package/src/compat/register/ppr.ts +16 -16
  293. package/src/compat/register/protocol.ts +17 -18
  294. package/src/compat/register/proxy.ts +49 -51
  295. package/src/compat/register/render.ts +79 -76
  296. package/src/compat/register/routing.ts +162 -159
  297. package/src/compat/register/segment.ts +24 -1887
  298. package/src/compat/register/static-image.ts +3 -3
  299. package/src/compat/register/{misc.ts → taint.ts} +9 -9
  300. package/src/compat/register/typed-routes.ts +14 -14
  301. package/src/compat/register/{usecache.ts → use-cache.ts} +39 -39
  302. package/src/compat/register/validation.ts +18 -18
  303. package/src/compat/segment/loading-boundary.ts +43 -45
  304. package/src/compat/segment/page-slot.ts +69 -69
  305. package/src/compat/segment/serve.ts +1884 -0
  306. package/src/compat/segment/tree.ts +113 -112
  307. package/src/compat/segment/vary-key.ts +38 -38
  308. package/src/compat/segment/vary-params.ts +138 -142
  309. package/src/compat/static-params.ts +14 -12
  310. package/src/compat/tsconfig-defaults.ts +87 -91
  311. package/src/compat/typecheck/{index.ts → check.ts} +234 -212
  312. package/src/compat/typecheck/worker.ts +15 -12
  313. package/src/compat/typed-routes/{index.ts → generate.ts} +36 -36
  314. package/src/compat/typed-routes/manifest.ts +174 -170
  315. package/src/compat/typed-routes/typegen.ts +127 -110
  316. package/src/compat/validation/errors.ts +16 -19
  317. package/src/compat/validation/prerender-diagnostics.ts +521 -504
  318. package/src/compat/validation/{index.ts → validate.ts} +647 -648
  319. package/src/compat-bootstrap.ts +16 -16
  320. package/src/config.ts +69 -69
  321. package/src/css/build.ts +230 -227
  322. package/src/css/postcss.ts +79 -80
  323. package/src/css/worker.ts +14 -15
  324. package/src/dev/client-actions.ts +10 -10
  325. package/src/dev/client-chunk-store.ts +27 -27
  326. package/src/dev/{client-key-cache.ts → restart/client-key.ts} +76 -76
  327. package/src/dev/{restart-cache.ts → restart/enabled.ts} +1 -1
  328. package/src/dev/{global-css-cache.ts → restart/global-css.ts} +91 -83
  329. package/src/dev/{node-module-bundle-cache.ts → restart/node-modules.ts} +24 -24
  330. package/src/dev/{route-bundle-key-cache.ts → restart/route-bundle-key.ts} +53 -53
  331. package/src/dev/{route-facts-cache.ts → restart/route-facts.ts} +82 -82
  332. package/src/dev/server.ts +804 -820
  333. package/src/env.ts +46 -43
  334. package/src/extensions.ts +491 -478
  335. package/src/index.ts +8 -8
  336. package/src/internal.ts +20 -23
  337. package/src/{islands → render}/boundary-error.ts +3 -3
  338. package/src/render/hooks.ts +71 -71
  339. package/src/render/island-context.ts +14 -14
  340. package/src/render/metadata.ts +310 -310
  341. package/src/{ppr-postpone.ts → render/postpone.ts} +5 -5
  342. package/src/{ppr.ts → render/ppr.ts} +244 -245
  343. package/src/render/renderer.ts +2076 -2082
  344. package/src/render/resource-hints.ts +16 -17
  345. package/src/render/slots.tsx +224 -235
  346. package/src/{islands → render}/static-children.ts +9 -12
  347. package/src/{islands → render}/static-slots.ts +37 -37
  348. package/src/{cache/context.ts → request/cache.ts} +20 -20
  349. package/src/request/context.ts +107 -107
  350. package/src/{dynamic/source.ts → resolve/dynamic.ts} +152 -143
  351. package/src/resolve/engine.ts +90 -77
  352. package/src/resolve/imports.ts +475 -463
  353. package/src/resolve/scan-facts.ts +442 -186
  354. package/src/resolve/source-text.ts +37 -37
  355. package/src/{dynamic → resolve}/tree-shake.ts +132 -128
  356. package/src/routing/forwarded.ts +19 -19
  357. package/src/routing/handler.ts +84 -91
  358. package/src/routing/href.ts +69 -70
  359. package/src/routing/{metadata.ts → metadata-files.ts} +403 -401
  360. package/src/{proxy.ts → routing/proxy.ts} +306 -312
  361. package/src/routing/{request-runtime.ts → request-environment.ts} +10 -10
  362. package/src/routing/routes.ts +833 -848
  363. package/src/routing/slots.ts +164 -160
  364. package/src/runtime/loader.ts +952 -0
  365. package/src/{dev → runtime}/module-cache.ts +309 -287
  366. package/src/{dev → runtime}/module-generations.ts +9 -9
  367. package/src/{dev → runtime}/module-transform.ts +81 -72
  368. package/src/{dev/imports.ts → runtime/modules.ts} +934 -847
  369. package/src/runtime/{server.ts → vendor-build.ts} +848 -1696
  370. package/src/runtime/vendor.ts +425 -404
  371. package/src/styles.d.ts +9 -0
  372. package/src/types.ts +320 -335
  373. package/src/utils/ansi.ts +5 -5
  374. package/src/utils/{source.ts → code.ts} +15 -12
  375. package/src/utils/content-type.ts +3 -3
  376. package/src/utils/decode.ts +2 -2
  377. package/src/utils/dev-profile.ts +13 -13
  378. package/src/utils/error-log.ts +6 -6
  379. package/src/utils/esbuild.ts +18 -18
  380. package/src/utils/fs-cache.ts +13 -13
  381. package/src/utils/fs.ts +57 -49
  382. package/src/utils/html.ts +20 -24
  383. package/src/utils/native-require.ts +8 -8
  384. package/src/utils/serialize.ts +139 -146
  385. package/src/utils/verbose.ts +18 -18
  386. package/src/cli/analyze-print.ts +0 -181
  387. package/src/compat/middleware/manifest.ts +0 -210
  388. package/src/compat/next/image-client.tsx +0 -215
  389. package/src/compat/next/link-usage.ts +0 -29
  390. package/src/css/index.ts +0 -2
  391. package/src/render/index.ts +0 -1
  392. package/src/style-modules.d.ts +0 -9
@@ -1,6 +1,6 @@
1
- exports.PHASE_EXPORT = 'phase-export';
2
- exports.PHASE_PRODUCTION_BUILD = 'phase-production-build';
3
- exports.PHASE_PRODUCTION_SERVER = 'phase-production-server';
4
- exports.PHASE_DEVELOPMENT_SERVER = 'phase-development-server';
5
- exports.PHASE_TEST = 'phase-test';
6
- exports.PHASE_INFO = 'phase-info';
1
+ exports.PHASE_EXPORT = 'phase-export'
2
+ exports.PHASE_PRODUCTION_BUILD = 'phase-production-build'
3
+ exports.PHASE_PRODUCTION_SERVER = 'phase-production-server'
4
+ exports.PHASE_DEVELOPMENT_SERVER = 'phase-development-server'
5
+ exports.PHASE_TEST = 'phase-test'
6
+ exports.PHASE_INFO = 'phase-info'
@@ -1,6 +1,6 @@
1
- export const PHASE_EXPORT = 'phase-export';
2
- export const PHASE_PRODUCTION_BUILD = 'phase-production-build';
3
- export const PHASE_PRODUCTION_SERVER = 'phase-production-server';
4
- export const PHASE_DEVELOPMENT_SERVER = 'phase-development-server';
5
- export const PHASE_TEST = 'phase-test';
6
- export const PHASE_INFO = 'phase-info';
1
+ export const PHASE_EXPORT = 'phase-export'
2
+ export const PHASE_PRODUCTION_BUILD = 'phase-production-build'
3
+ export const PHASE_PRODUCTION_SERVER = 'phase-production-server'
4
+ export const PHASE_DEVELOPMENT_SERVER = 'phase-development-server'
5
+ export const PHASE_TEST = 'phase-test'
6
+ export const PHASE_INFO = 'phase-info'
@@ -13,27 +13,27 @@
13
13
  // Only a missing, symlinked, or previously shimmed `node_modules/next` is replaced: the e2e harness
14
14
  // links the real Next checkout for tsc typechecks, and fixtures with a genuinely installed `next` are
15
15
  // left alone.
16
- import { existsSync, lstatSync, readFileSync } from 'node:fs';
17
- import { mkdir, rm, writeFile } from 'node:fs/promises';
18
- import path from 'node:path';
19
- import type { ResolvedConfig } from '../../config';
16
+ import { existsSync, lstatSync, readFileSync } from 'node:fs'
17
+ import { mkdir, rm, writeFile } from 'node:fs/promises'
18
+ import path from 'node:path'
19
+ import type { ResolvedConfig } from '../../config'
20
20
 
21
- const SERVER_ENTRY_NAMES = ['server.js', 'server.mjs', 'server.cjs', 'server.ts'];
22
- const SHIM_VERSION = '0.0.0-pnext-custom-server';
21
+ const SERVER_ENTRY_NAMES = ['server.js', 'server.mjs', 'server.cjs', 'server.ts']
22
+ const SHIM_VERSION = '0.0.0-pnext-custom-server'
23
23
 
24
24
  /** Whether the app root ships a custom server entry that imports 'next'. */
25
25
  export function hasCustomServerEntry(root: string): boolean {
26
26
  for (const name of SERVER_ENTRY_NAMES) {
27
- const file = path.join(root, name);
28
- if (!existsSync(file)) continue;
27
+ const file = path.join(root, name)
28
+ if (!existsSync(file)) continue
29
29
  try {
30
- const source = readFileSync(file, 'utf8');
31
- if (/(?:require\(\s*['"]next['"]\s*\)|from\s+['"]next['"])/.test(source)) return true;
30
+ const source = readFileSync(file, 'utf8')
31
+ if (/(?:require\(\s*['"]next['"]\s*\)|from\s+['"]next['"])/.test(source)) return true
32
32
  } catch {
33
33
  // Unreadable entry — skip.
34
34
  }
35
35
  }
36
- return false;
36
+ return false
37
37
  }
38
38
 
39
39
  /**
@@ -42,32 +42,34 @@ export function hasCustomServerEntry(root: string): boolean {
42
42
  * third-party install (absent, symlinked, or an earlier shim is replaced).
43
43
  */
44
44
  export async function emitCustomServerShim(config: ResolvedConfig): Promise<void> {
45
- if (!hasCustomServerEntry(config.root)) return;
46
- const target = path.join(config.root, 'node_modules', 'next');
45
+ if (!hasCustomServerEntry(config.root)) return
46
+ const target = path.join(config.root, 'node_modules', 'next')
47
47
  try {
48
- const stat = lstatSync(target);
48
+ const stat = lstatSync(target)
49
49
  // A previously emitted shim is a real directory too — refresh it, so a
50
50
  // rebuild in an existing test dir never keeps a stale copy.
51
- if (!stat.isSymbolicLink() && !isEmittedShim(target)) return; // real install — leave it alone
52
- await rm(target, { recursive: true, force: true });
51
+ if (!stat.isSymbolicLink() && !isEmittedShim(target)) return // real install — leave it alone
52
+ await rm(target, { recursive: true, force: true })
53
53
  } catch {
54
54
  // Missing — create fresh below.
55
55
  }
56
- await mkdir(target, { recursive: true });
56
+ await mkdir(target, { recursive: true })
57
57
  await writeFile(
58
58
  path.join(target, 'package.json'),
59
59
  `${JSON.stringify({ name: 'next', version: SHIM_VERSION, main: 'index.cjs' }, null, 2)}\n`,
60
- );
61
- await writeFile(path.join(target, 'index.cjs'), customServerShimSource());
60
+ )
61
+ await writeFile(path.join(target, 'index.cjs'), customServerShimSource())
62
62
  }
63
63
 
64
64
  /** Whether `node_modules/next` is a shim this build emitted earlier. */
65
65
  function isEmittedShim(target: string): boolean {
66
66
  try {
67
- const pkg = JSON.parse(readFileSync(path.join(target, 'package.json'), 'utf8')) as { version?: string };
68
- return pkg.version === SHIM_VERSION;
67
+ const pkg = JSON.parse(readFileSync(path.join(target, 'package.json'), 'utf8')) as {
68
+ version?: string
69
+ }
70
+ return pkg.version === SHIM_VERSION
69
71
  } catch {
70
- return false;
72
+ return false
71
73
  }
72
74
  }
73
75
 
@@ -76,7 +78,7 @@ function isEmittedShim(target: string): boolean {
76
78
  * same runtime the harness/build used, from any app directory.
77
79
  */
78
80
  function customServerShimSource(): string {
79
- const cliPath = path.resolve(import.meta.dirname, '..', '..', 'cli', 'index.ts');
81
+ const cliPath = path.resolve(import.meta.dirname, '..', '..', 'cli', 'index.ts')
80
82
  return `'use strict';
81
83
  // pnext custom-server shim for require('next') / import next from 'next'.
82
84
  // Generated by pnext build; see src/compat/next/custom-server.ts.
@@ -232,5 +234,5 @@ function createServer(options = {}) {
232
234
 
233
235
  module.exports = createServer;
234
236
  module.exports.default = createServer;
235
- `;
237
+ `
236
238
  }
@@ -1,16 +1,16 @@
1
1
  // Header-name constants matching
2
2
  // next/src/client/components/app-router-headers.ts exactly.
3
- export const RSC_HEADER = 'rsc' as const;
4
- export const ACTION_HEADER = 'next-action' as const;
5
- export const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree' as const;
6
- export const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch' as const;
7
- export const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'next-router-segment-prefetch' as const;
8
- export const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh' as const;
9
- export const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__' as const;
10
- export const NEXT_URL = 'next-url' as const;
11
- export const RSC_CONTENT_TYPE_HEADER = 'text/x-component' as const;
3
+ export const RSC_HEADER = 'rsc' as const
4
+ export const ACTION_HEADER = 'next-action' as const
5
+ export const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree' as const
6
+ export const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch' as const
7
+ export const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'next-router-segment-prefetch' as const
8
+ export const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh' as const
9
+ export const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__' as const
10
+ export const NEXT_URL = 'next-url' as const
11
+ export const RSC_CONTENT_TYPE_HEADER = 'text/x-component' as const
12
12
 
13
- export const NEXT_INSTANT_TEST_COOKIE = 'next-instant-navigation-testing' as const;
13
+ export const NEXT_INSTANT_TEST_COOKIE = 'next-instant-navigation-testing' as const
14
14
 
15
15
  export const FLIGHT_HEADERS = [
16
16
  RSC_HEADER,
@@ -18,15 +18,15 @@ export const FLIGHT_HEADERS = [
18
18
  NEXT_ROUTER_PREFETCH_HEADER,
19
19
  NEXT_HMR_REFRESH_HEADER,
20
20
  NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,
21
- ] as const;
21
+ ] as const
22
22
 
23
- export const NEXT_RSC_UNION_QUERY = '_rsc' as const;
24
- export const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time' as const;
25
- export const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed' as const;
26
- export const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path' as const;
27
- export const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query' as const;
28
- export const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender' as const;
29
- export const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found' as const;
30
- export const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id' as const;
31
- export const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id' as const;
32
- export const NEXT_ACTION_REVALIDATED_HEADER = 'x-action-revalidated' as const;
23
+ export const NEXT_RSC_UNION_QUERY = '_rsc' as const
24
+ export const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time' as const
25
+ export const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed' as const
26
+ export const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path' as const
27
+ export const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query' as const
28
+ export const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender' as const
29
+ export const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found' as const
30
+ export const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id' as const
31
+ export const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id' as const
32
+ export const NEXT_ACTION_REVALIDATED_HEADER = 'x-action-revalidated' as const
@@ -6,7 +6,7 @@
6
6
  // framework populates during a render. Next backs that with an
7
7
  // AsyncLocalStorage whose store carries `type` ('request' | 'prerender' |
8
8
  // 'prerender-runtime') plus, for a request work unit, `cookies`/`headers`.
9
- // pnext keeps that state in core (src/request/context.ts, src/ppr.ts) and
9
+ // pnext keeps that state in core (src/request/context.ts, src/render/ppr.ts) and
10
10
  // publishes a getter onto globalThis, which this module reflects — so a direct
11
11
  // import observes the live store rather than a separate, empty instance.
12
12
  //
@@ -16,7 +16,7 @@
16
16
  // requirable. The same module as a `.ts` external is forced through that
17
17
  // transform, becomes an async module, and `require()` throws
18
18
  // "require() async module ... is unsupported". Same rule as constants.cjs /
19
- // navigation.cjs — see the note in src/compat/index.ts.
19
+ // navigation.cjs — see the note in src/compat/aliases.ts.
20
20
  const WORK_UNIT_EXTERNAL = Symbol.for('pnext.workUnitExternal')
21
21
  /** @type {Record<PropertyKey, unknown>} */
22
22
  const root = globalThis
@@ -24,8 +24,7 @@ const root = globalThis
24
24
  const workUnitAsyncStorage = {
25
25
  // Never undefined: fixtures do `getStore().type` during build prerenders as
26
26
  // well as live requests. Core's getter always answers with a store.
27
- getStore: () =>
28
- /** @type {(() => unknown) | undefined} */ (root[WORK_UNIT_EXTERNAL])?.(),
27
+ getStore: () => /** @type {(() => unknown) | undefined} */ (root[WORK_UNIT_EXTERNAL])?.(),
29
28
  /**
30
29
  * @param {unknown} _store
31
30
  * @param {(...args: unknown[]) => unknown} callback
@@ -1 +1 @@
1
- export { revalidatePath, revalidateTag } from '../../../../cache';
1
+ export { revalidatePath, revalidateTag } from '../../../../cache'
@@ -1 +1 @@
1
- export { unstable_cache } from '../../../../cache';
1
+ export { unstable_cache } from '../../../../cache'
@@ -1 +1 @@
1
- export { unstable_noStore } from '../../../../cache';
1
+ export { unstable_noStore } from '../../../../cache'
@@ -1,5 +1,5 @@
1
- import { h, type ComponentType } from 'preact';
2
- import { lazy, Suspense } from 'preact/compat';
1
+ import { h, type ComponentType } from 'preact'
2
+ import { lazy, Suspense } from 'preact/compat'
3
3
  import {
4
4
  dynamic as pnextDynamic,
5
5
  dynamicReferenceSymbol,
@@ -8,9 +8,9 @@ import {
8
8
  type DynamicOptions,
9
9
  type DynamicReference,
10
10
  type DynamicTarget,
11
- } from '../../api/dynamic';
11
+ } from '../../api/dynamic'
12
12
 
13
- export type { DynamicLoader, DynamicModule, DynamicOptions };
13
+ export type { DynamicLoader, DynamicModule, DynamicOptions }
14
14
 
15
15
  export default function dynamic<Props extends object = object>(
16
16
  loader: DynamicLoader<Props>,
@@ -18,33 +18,36 @@ export default function dynamic<Props extends object = object>(
18
18
  // Injected by the server compile; see rewriteDynamicCallTargets.
19
19
  target?: DynamicTarget,
20
20
  ) {
21
- if (typeof loader === 'string') return pnextDynamic(loader, options, target);
21
+ if (typeof loader === 'string') return pnextDynamic(loader, options, target)
22
22
 
23
- const coreDynamic = pnextDynamic(loader, options, target) as DynamicWithReference<Props>;
24
- const Lazy = lazy(() => loader().then(module => ({ default: componentFromModule(module) })));
23
+ const coreDynamic = pnextDynamic(loader, options, target) as DynamicWithReference<Props>
24
+ const Lazy = lazy(() => loader().then(module => ({ default: componentFromModule(module) })))
25
25
  const DynamicComponent = ((props: Props) => {
26
- const Loading = options.loading;
26
+ const Loading = options.loading
27
27
  // ssr:false renders nothing on the server, so the client mount is a *hydration* whose only child
28
28
  // suspends. preact/compat nulls a hydrating vnode's type when it unmounts, and Suspense reuses the
29
29
  // same props.children vnode on its resolve re-render - the poisoned element then renders as text.
30
30
  // The hooks-based core component loads without suspending, so that boundary is never entered.
31
31
  if (options.ssr === false) {
32
- return h('pnext-dynamic', { style: { display: 'contents' } },
33
- (!process.browser && typeof window === 'undefined') ? null : h(coreDynamic, props));
32
+ return h(
33
+ 'pnext-dynamic',
34
+ { style: { display: 'contents' } },
35
+ !process.browser && typeof window === 'undefined' ? null : h(coreDynamic, props),
36
+ )
34
37
  }
35
- return h(Suspense, { fallback: Loading ? h(Loading, props) : null }, h(Lazy, props));
36
- }) as DynamicWithReference<Props>;
38
+ return h(Suspense, { fallback: Loading ? h(Loading, props) : null }, h(Lazy, props))
39
+ }) as DynamicWithReference<Props>
37
40
 
38
- DynamicComponent[dynamicReferenceSymbol] = coreDynamic[dynamicReferenceSymbol];
39
- return DynamicComponent;
41
+ DynamicComponent[dynamicReferenceSymbol] = coreDynamic[dynamicReferenceSymbol]
42
+ return DynamicComponent
40
43
  }
41
44
 
42
- export { dynamic };
45
+ export { dynamic }
43
46
 
44
47
  type DynamicWithReference<Props extends object> = ComponentType<Props> & {
45
- [dynamicReferenceSymbol]?: DynamicReference<Props>;
46
- };
48
+ [dynamicReferenceSymbol]?: DynamicReference<Props>
49
+ }
47
50
 
48
51
  function componentFromModule<Props>(module: DynamicModule<Props>) {
49
- return typeof module === 'function' ? module : module.default;
52
+ return typeof module === 'function' ? module : module.default
50
53
  }
@@ -1,13 +1,13 @@
1
- 'use client';
1
+ 'use client'
2
2
 
3
- import { Component, Fragment, h, type ComponentChildren, type ComponentType } from 'preact';
4
- import { isControlFlowError } from '../client/errors/control-flow';
5
- import { untagPrimitiveThrow } from '../client/errors/primitive-throw';
3
+ import { Component, Fragment, h, type ComponentChildren, type ComponentType } from 'preact'
4
+ import { isControlFlowError } from '../client/errors/control-flow'
5
+ import { untagPrimitiveThrow } from '../client/errors/primitive-throw'
6
6
 
7
7
  export interface ErrorInfo {
8
- error: unknown;
9
- reset: () => void;
10
- unstable_retry: () => void;
8
+ error: unknown
9
+ reset: () => void
10
+ unstable_retry: () => void
11
11
  }
12
12
 
13
13
  // Island error-boundary protocol (see render/renderer.ts): when a Server Component inside this
@@ -17,64 +17,64 @@ export interface ErrorInfo {
17
17
  // state and the server-rendered fallback hydrates interactive. Without this handoff the client would
18
18
  // remount with "no error" and blank out the fallback. The renderer only performs the handoff for
19
19
  // components carrying `Symbol.for('pnext.islandErrorBoundary')`, stamped below.
20
- const ISLAND_BOUNDARY_ERROR_PROP = '__pnextBoundaryError';
21
- const islandErrorBoundarySymbol = Symbol.for('pnext.islandErrorBoundary');
20
+ const ISLAND_BOUNDARY_ERROR_PROP = '__pnextBoundaryError'
21
+ const islandErrorBoundarySymbol = Symbol.for('pnext.islandErrorBoundary')
22
22
 
23
23
  interface IslandBoundaryErrorMarker {
24
- name?: string;
25
- message?: string;
26
- digest?: string;
24
+ name?: string
25
+ message?: string
26
+ digest?: string
27
27
  }
28
28
 
29
29
  interface CatchErrorProps {
30
- children?: ComponentChildren;
31
- clearError?: () => void;
32
- [ISLAND_BOUNDARY_ERROR_PROP]?: IslandBoundaryErrorMarker;
30
+ children?: ComponentChildren
31
+ clearError?: () => void
32
+ [ISLAND_BOUNDARY_ERROR_PROP]?: IslandBoundaryErrorMarker
33
33
  }
34
34
 
35
35
  interface CatchErrorState {
36
- error: unknown;
37
- hasError: boolean;
38
- version: number;
36
+ error: unknown
37
+ hasError: boolean
38
+ version: number
39
39
  }
40
40
 
41
41
  function reviveBoundaryError(marker: IslandBoundaryErrorMarker): Error & { digest?: string } {
42
- const error = new Error(String(marker.message ?? '')) as Error & { digest?: string };
43
- if (marker.name) error.name = String(marker.name);
44
- if (typeof marker.digest === 'string') error.digest = marker.digest;
45
- return error;
42
+ const error = new Error(String(marker.message ?? '')) as Error & { digest?: string }
43
+ if (marker.name) error.name = String(marker.name)
44
+ if (typeof marker.digest === 'string') error.digest = marker.digest
45
+ return error
46
46
  }
47
47
 
48
48
  function initialCatchErrorState(props: CatchErrorProps): CatchErrorState {
49
- const marker = props[ISLAND_BOUNDARY_ERROR_PROP];
49
+ const marker = props[ISLAND_BOUNDARY_ERROR_PROP]
50
50
  if (marker && typeof marker === 'object') {
51
- return { error: reviveBoundaryError(marker), hasError: true, version: 0 };
51
+ return { error: reviveBoundaryError(marker), hasError: true, version: 0 }
52
52
  }
53
- return { error: undefined, hasError: false, version: 0 };
53
+ return { error: undefined, hasError: false, version: 0 }
54
54
  }
55
55
 
56
56
  export function unstable_catchError<Props extends Record<string, unknown>>(
57
57
  Fallback: (props: Props, info: ErrorInfo) => ComponentChildren,
58
58
  ): ComponentType<Props & CatchErrorProps> {
59
59
  class CatchError extends Component<Props & CatchErrorProps, CatchErrorState> {
60
- state: CatchErrorState = initialCatchErrorState(this.props);
60
+ state: CatchErrorState = initialCatchErrorState(this.props)
61
61
 
62
62
  static getDerivedStateFromError(error: unknown): Partial<CatchErrorState> {
63
63
  // Router signals belong to their owning route boundary. Capturing one
64
64
  // here turns a redirect/notFound into a stale local fallback instead of
65
65
  // letting the client control-flow handler complete the navigation.
66
- if (isControlFlowError(error)) throw error;
67
- return { error: normalizeBoundaryError(error), hasError: true };
66
+ if (isControlFlowError(error)) throw error
67
+ return { error: normalizeBoundaryError(error), hasError: true }
68
68
  }
69
69
 
70
70
  reset = () => {
71
- this.props.clearError?.();
71
+ this.props.clearError?.()
72
72
  this.setState(state => ({
73
73
  error: undefined,
74
74
  hasError: false,
75
75
  version: state.version + 1,
76
- }));
77
- };
76
+ }))
77
+ }
78
78
 
79
79
  unstable_retry = () => {
80
80
  // App-Router only: `unstable_retry` re-runs the server render, which the Pages Router has no
@@ -84,52 +84,52 @@ export function unstable_catchError<Props extends Record<string, unknown>>(
84
84
  if (!isAppRouterDocument()) {
85
85
  throw new Error(
86
86
  '`unstable_retry()` can only be used in the App Router. Use `reset()` in the Pages Router.',
87
- );
87
+ )
88
88
  }
89
89
  if (!process.browser && typeof window === 'undefined') {
90
- this.reset();
91
- return;
90
+ this.reset()
91
+ return
92
92
  }
93
93
  // Refresh FIRST, reset when it settles. Resetting immediately re-renders the children while the
94
94
  // refresh response is still in flight; anything the user does in that window is wiped when the
95
95
  // body swap lands, so a rapid retry-then-interact cycle loses the new state. Deferring the reset
96
96
  // closes that window (if the swap remounted this boundary the setState is a no-op on an unmounted
97
97
  // instance, which preact ignores). A failed refresh still resets.
98
- const refreshed = routerRefresh();
98
+ const refreshed = routerRefresh()
99
99
  void Promise.resolve(refreshed)
100
100
  .catch(() => undefined)
101
- .then(() => this.reset());
102
- };
101
+ .then(() => this.reset())
102
+ }
103
103
 
104
104
  render(props: Props & CatchErrorProps, state: CatchErrorState) {
105
105
  if (state.hasError) {
106
106
  // Strip the internal handoff marker; the user's fallback gets the
107
107
  // component's own props (title, clearError, ...), matching Next.
108
- const { [ISLAND_BOUNDARY_ERROR_PROP]: _marker, ...rest } = props;
108
+ const { [ISLAND_BOUNDARY_ERROR_PROP]: _marker, ...rest } = props
109
109
  return Fallback(rest as unknown as Props, {
110
110
  error: state.error,
111
111
  reset: this.reset,
112
112
  unstable_retry: this.unstable_retry,
113
- });
113
+ })
114
114
  }
115
- return h(Fragment, { key: state.version }, props.children);
115
+ return h(Fragment, { key: state.version }, props.children)
116
116
  }
117
117
  }
118
118
  // Opt in to the renderer's island error-boundary handoff (see above).
119
- (CatchError as unknown as Record<symbol, boolean>)[islandErrorBoundarySymbol] = true;
120
- return CatchError;
119
+ ;(CatchError as unknown as Record<symbol, boolean>)[islandErrorBoundarySymbol] = true
120
+ return CatchError
121
121
  }
122
122
 
123
123
  function isAppRouterDocument(): boolean {
124
- if (typeof document === 'undefined') return false;
125
- return Boolean(document.querySelector('pnext-layout, [data-pnext-root]'));
124
+ if (typeof document === 'undefined') return false
125
+ return Boolean(document.querySelector('pnext-layout, [data-pnext-root]'))
126
126
  }
127
127
 
128
128
  function routerRefresh() {
129
129
  const global = window as unknown as {
130
- __PNEXT_ROUTER__?: { refresh?: () => Promise<void> | void };
131
- };
132
- return global.__PNEXT_ROUTER__?.refresh?.();
130
+ __PNEXT_ROUTER__?: { refresh?: () => Promise<void> | void }
131
+ }
132
+ return global.__PNEXT_ROUTER__?.refresh?.()
133
133
  }
134
134
 
135
135
  function normalizeBoundaryError(error: unknown): unknown {
@@ -137,12 +137,12 @@ function normalizeBoundaryError(error: unknown): unknown {
137
137
  // `throw undefined`/`null` arrives here re-thrown as a tagged Error so it
138
138
  // survived preact's own `e.then` suspense check without crashing. Unwrap
139
139
  // back to the raw value Next passes to error UIs.
140
- const untagged = untagPrimitiveThrow(error);
141
- if (untagged !== error) return untagged;
140
+ const untagged = untagPrimitiveThrow(error)
141
+ if (untagged !== error) return untagged
142
142
  if (error instanceof Error) {
143
143
  // Fallback for any crash that slips through un-tagged (defense in depth).
144
- if (error.message === "Cannot read properties of undefined (reading 'then')") return undefined;
145
- if (error.message === "Cannot read properties of null (reading 'then')") return null;
144
+ if (error.message === "Cannot read properties of undefined (reading 'then')") return undefined
145
+ if (error.message === "Cannot read properties of null (reading 'then')") return null
146
146
  }
147
- return error;
147
+ return error
148
148
  }