@wular/pnext 0.0.4 → 0.0.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 (395) hide show
  1. package/README.md +22 -16
  2. package/bin/pnext +6 -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 +87 -22
  8. package/reference/config.md +40 -93
  9. package/reference/css.md +42 -33
  10. package/reference/dev.md +26 -33
  11. package/reference/env.md +18 -20
  12. package/reference/getting-started.md +132 -0
  13. package/reference/metadata.md +31 -46
  14. package/reference/navigation.md +65 -105
  15. package/reference/performance.md +21 -142
  16. package/reference/rendering.md +78 -75
  17. package/reference/routing.md +97 -107
  18. package/reference/typegen.md +27 -29
  19. package/src/api/cache.ts +36 -37
  20. package/src/api/client-cache.ts +2 -2
  21. package/src/api/client-navigation.ts +121 -114
  22. package/src/api/dynamic.tsx +58 -55
  23. package/src/api/link.tsx +52 -53
  24. package/src/api/navigation.ts +59 -58
  25. package/src/api/server.ts +152 -144
  26. package/src/api/suspense.ts +4 -4
  27. package/src/cli/adapters/vercel-warm.ts +126 -121
  28. package/src/cli/adapters/vercel.ts +437 -443
  29. package/src/cli/analyze.ts +333 -144
  30. package/src/cli/{named-bin.ts → boot/named-bin.ts} +37 -37
  31. package/src/cli/{boot-trace.ts → boot/trace.ts} +10 -10
  32. package/src/cli/build.ts +976 -978
  33. package/src/cli/create.ts +72 -64
  34. package/src/cli/dev.ts +116 -116
  35. package/src/cli/index.ts +94 -85
  36. package/src/cli/migrate/package-json.ts +73 -71
  37. package/src/cli/migrate/report.ts +32 -33
  38. package/src/cli/migrate/{index.ts → run.ts} +48 -49
  39. package/src/cli/migrate/scan.ts +46 -46
  40. package/src/cli/migrate/spinner.ts +9 -9
  41. package/src/cli/migrate/tsconfig.ts +35 -35
  42. package/src/cli/{server-entry.ts → serve/entry.ts} +57 -57
  43. package/src/cli/{request-pipeline.ts → serve/pipeline.ts} +386 -394
  44. package/src/cli/{serve-ui.ts → serve/ui.ts} +47 -47
  45. package/src/cli/start.ts +65 -66
  46. package/src/{typegen.ts → cli/typegen.ts} +59 -59
  47. package/src/client/build.ts +802 -768
  48. package/src/client/chunk-fold.ts +245 -240
  49. package/src/client/{paths.ts → chunk-name.ts} +6 -6
  50. package/src/client/entry.ts +162 -147
  51. package/src/client/prebuilt.ts +231 -223
  52. package/src/client/profile.ts +29 -29
  53. package/src/client/react-compiler.ts +20 -15
  54. package/src/client/{compat-surface.ts → react-tier.ts} +64 -64
  55. package/src/client/reference-stub.ts +51 -51
  56. package/src/client/reference.ts +19 -19
  57. package/src/{api → client}/router/events.ts +32 -17
  58. package/src/{api → client}/router/history.ts +16 -16
  59. package/src/{api → client}/router/hub.ts +52 -53
  60. package/src/{api/router.ts → client/router/index.ts} +61 -60
  61. package/src/{api → client}/router/policies.ts +24 -24
  62. package/src/{api → client}/router/runtime.ts +2022 -1995
  63. package/src/{api → client}/router/types.ts +98 -98
  64. package/src/compat/actions/client-plugin.ts +42 -43
  65. package/src/compat/actions/client-stub.ts +14 -14
  66. package/src/compat/actions/{action-client.ts → client.ts} +194 -193
  67. package/src/compat/actions/config.ts +63 -64
  68. package/src/compat/actions/detect.ts +68 -68
  69. package/src/compat/actions/discovery.ts +105 -105
  70. package/src/compat/actions/{action-dispatch.ts → dispatch.ts} +277 -274
  71. package/src/compat/actions/early-submit.ts +1 -1
  72. package/src/compat/actions/endpoint.ts +198 -198
  73. package/src/compat/actions/extensions.ts +811 -0
  74. package/src/compat/actions/flight.ts +23 -23
  75. package/src/compat/actions/form-state.ts +34 -34
  76. package/src/compat/actions/hoist.ts +382 -236
  77. package/src/compat/actions/ids.ts +7 -12
  78. package/src/compat/actions/index.ts +8 -8
  79. package/src/compat/actions/instances.ts +46 -46
  80. package/src/compat/actions/origin.ts +47 -48
  81. package/src/compat/actions/protocol.ts +22 -22
  82. package/src/compat/actions/registry.ts +19 -19
  83. package/src/compat/{misc/action-return.ts → actions/return.ts} +60 -57
  84. package/src/compat/actions/rewrite.ts +125 -125
  85. package/src/compat/actions/{action-router.ts → router.ts} +10 -10
  86. package/src/compat/actions/serve.ts +132 -136
  87. package/src/compat/actions/server-tag.ts +4 -4
  88. package/src/compat/actions/{action-shared.ts → shared.ts} +34 -34
  89. package/src/compat/actions/unrecognized-error.ts +4 -4
  90. package/src/compat/{index.ts → aliases.ts} +112 -109
  91. package/src/compat/bundler/bun-externals.ts +18 -18
  92. package/src/compat/bundler/cjs-exports.ts +271 -223
  93. package/src/compat/bundler/config.ts +116 -111
  94. package/src/compat/bundler/externals.ts +12 -12
  95. package/src/compat/bundler/import-meta-url.ts +19 -19
  96. package/src/compat/bundler/modularize-imports.ts +36 -33
  97. package/src/compat/bundler/new-url-asset.ts +22 -24
  98. package/src/compat/bundler/optimize-package-imports.ts +111 -107
  99. package/src/compat/bundler/polyfill.ts +28 -28
  100. package/src/compat/bundler/react-compiler.ts +35 -29
  101. package/src/compat/bundler/react-profiler.tsx +11 -11
  102. package/src/compat/bundler/relay-transform.ts +48 -47
  103. package/src/compat/bundler/require-context.ts +119 -113
  104. package/src/compat/bundler/resolve-extensions.ts +19 -19
  105. package/src/compat/bundler/source-cache.ts +25 -25
  106. package/src/compat/bundler/static-imports.ts +7 -7
  107. package/src/compat/bundler/symlink-imports.ts +46 -46
  108. package/src/compat/bundler/tsconfig-paths.ts +13 -15
  109. package/src/compat/bundler/wasm.ts +58 -60
  110. package/src/compat/bundler/webpack-loaders.ts +254 -241
  111. package/src/compat/bundler/worker.ts +101 -104
  112. package/src/compat/cache/build-flags.ts +29 -29
  113. package/src/compat/cache/build-prerender-errors.ts +40 -44
  114. package/src/compat/cache/custom-handler.ts +60 -53
  115. package/src/compat/cache/fetch-patch.ts +240 -240
  116. package/src/compat/cache/handler.ts +27 -31
  117. package/src/compat/cache/modern-handler.ts +148 -126
  118. package/src/compat/cache/resume-data-cache.ts +47 -45
  119. package/src/compat/cache/revalidate.ts +233 -232
  120. package/src/compat/cache/runtime-error.ts +35 -35
  121. package/src/compat/cache/use-cache-transform.ts +442 -417
  122. package/src/compat/cache/use-cache.ts +650 -614
  123. package/src/compat/cache-control.ts +140 -142
  124. package/src/compat/client/base-path.ts +21 -20
  125. package/src/compat/client/css-order.ts +18 -18
  126. package/src/compat/client/errors/bare-boundary.ts +11 -11
  127. package/src/compat/client/errors/control-flow.ts +23 -23
  128. package/src/compat/client/errors/error-boundary.ts +61 -61
  129. package/src/compat/client/errors/global-error.ts +101 -91
  130. package/src/compat/client/errors/install.ts +71 -72
  131. package/src/compat/client/errors/lazy.ts +23 -23
  132. package/src/compat/client/errors/primitive-throw.ts +47 -45
  133. package/src/compat/client/errors/soft-refresh.ts +4 -4
  134. package/src/compat/client/link-status.ts +33 -33
  135. package/src/compat/client/{nav-compat-runtime.ts → nav-runtime.ts} +20 -20
  136. package/src/compat/client/{nav-compat.ts → nav.ts} +12 -13
  137. package/src/compat/client/navigation-scroll.ts +63 -63
  138. package/src/compat/client/optimistic-routing.ts +93 -88
  139. package/src/compat/client/prefetch-cache.ts +23 -24
  140. package/src/compat/client/route-announcer.ts +35 -35
  141. package/src/compat/client/segment-cache-policy.ts +20 -20
  142. package/src/compat/client/segment-cache.ts +309 -315
  143. package/src/compat/client/segment-prefetch.ts +127 -132
  144. package/src/compat/client/trailing-slash.ts +5 -4
  145. package/src/compat/css/chunking.ts +113 -116
  146. package/src/compat/css/inline-css.ts +21 -21
  147. package/src/compat/css/lightningcss.ts +37 -38
  148. package/src/compat/css/modules.ts +161 -175
  149. package/src/compat/css/nonce.ts +7 -7
  150. package/src/compat/css/sass-plugin.ts +18 -21
  151. package/src/compat/css/sass.ts +150 -152
  152. package/src/compat/css/styled-jsx-runtime.ts +27 -27
  153. package/src/compat/css/styled-jsx.ts +21 -21
  154. package/src/compat/edge-runtime.ts +27 -27
  155. package/src/compat/{adapter → export}/build-complete.ts +72 -75
  156. package/src/compat/export/client.ts +29 -31
  157. package/src/compat/export/{index.ts → emit.ts} +111 -110
  158. package/src/compat/export/standalone.ts +62 -54
  159. package/src/compat/image-optimizer/cache.ts +51 -49
  160. package/src/compat/image-optimizer/detect.ts +52 -52
  161. package/src/compat/image-optimizer/{index.ts → optimize.ts} +189 -194
  162. package/src/compat/image-optimizer/source.ts +77 -80
  163. package/src/compat/lifecycle/after-scope.ts +26 -26
  164. package/src/compat/lifecycle/after.ts +48 -45
  165. package/src/compat/lifecycle/error-funnel.ts +98 -102
  166. package/src/compat/lifecycle/error-serialize.ts +30 -26
  167. package/src/compat/lifecycle/error-ui.ts +67 -32
  168. package/src/compat/lifecycle/instrumentation-client.ts +36 -38
  169. package/src/compat/lifecycle/instrumentation.ts +85 -85
  170. package/src/compat/lifecycle/node-console.ts +11 -11
  171. package/src/compat/lifecycle/testmode.ts +160 -132
  172. package/src/compat/mdx/compile.ts +60 -57
  173. package/src/compat/mdx/plugin.ts +11 -11
  174. package/src/compat/mdx/{next-mdx-stub.ts → stub.ts} +5 -5
  175. package/src/compat/{metadata-route-artifacts.ts → metadata-artifacts.ts} +195 -191
  176. package/src/compat/metadata.ts +75 -81
  177. package/src/compat/next/cache.ts +68 -69
  178. package/src/compat/next/canonical-url.ts +9 -9
  179. package/src/compat/next/client-cache.ts +19 -19
  180. package/src/compat/next/client-navigation.ts +112 -116
  181. package/src/compat/next/client-only.ts +1 -1
  182. package/src/compat/next/client-script.tsx +99 -93
  183. package/src/compat/next/client-server.ts +10 -10
  184. package/src/compat/next/config-loader.ts +176 -173
  185. package/src/compat/next/config.ts +7 -7
  186. package/src/compat/next/constants.cjs +6 -6
  187. package/src/compat/next/constants.ts +6 -6
  188. package/src/compat/next/custom-server.ts +26 -24
  189. package/src/compat/next/dist/client/components/app-router-headers.ts +21 -21
  190. package/src/compat/next/dist/server/app-render/work-unit-async-storage.external.cjs +3 -4
  191. package/src/compat/next/dist/server/web/spec-extension/revalidate.ts +1 -1
  192. package/src/compat/next/dist/server/web/spec-extension/unstable-cache.ts +1 -1
  193. package/src/compat/next/dist/server/web/spec-extension/unstable-no-store.ts +1 -1
  194. package/src/compat/next/dynamic.tsx +21 -18
  195. package/src/compat/next/error.tsx +52 -52
  196. package/src/compat/next/font/cache.ts +74 -74
  197. package/src/compat/next/font/google.ts +2 -2
  198. package/src/compat/next/font/index.ts +1 -1
  199. package/src/compat/next/font/local.ts +3 -3
  200. package/src/compat/next/font/runtime-client.ts +17 -15
  201. package/src/compat/next/font/runtime.ts +443 -408
  202. package/src/compat/next/font/shared.ts +120 -108
  203. package/src/compat/next/form.tsx +63 -63
  204. package/src/compat/next/head.tsx +2 -2
  205. package/src/compat/next/headers.ts +103 -95
  206. package/src/compat/next/image/client.tsx +220 -0
  207. package/src/compat/next/image/config.ts +56 -58
  208. package/src/compat/next/image/optimizer.ts +40 -36
  209. package/src/compat/next/image/patterns.ts +37 -40
  210. package/src/compat/next/{image-props.ts → image/props.ts} +208 -202
  211. package/src/compat/next/image/shared.ts +65 -57
  212. package/src/compat/next/image/static-metadata.ts +98 -107
  213. package/src/compat/next/image/validate.ts +79 -88
  214. package/src/compat/next/image.tsx +19 -23
  215. package/src/compat/next/index.ts +1 -1
  216. package/src/compat/next/legacy-image.tsx +59 -60
  217. package/src/compat/next/{link-validation-transform.ts → link-transform.ts} +95 -96
  218. package/src/compat/next/link.tsx +158 -158
  219. package/src/compat/next/navigation.cjs +12 -3
  220. package/src/compat/next/navigation.ts +48 -50
  221. package/src/compat/next/offline.ts +27 -27
  222. package/src/compat/next/og.ts +121 -124
  223. package/src/compat/next/preferred-region.ts +13 -14
  224. package/src/compat/next/redirects.ts +58 -56
  225. package/src/compat/next/resource-hints.ts +73 -76
  226. package/src/compat/next/rewrites.ts +130 -133
  227. package/src/compat/next/root-params.ts +45 -45
  228. package/src/compat/next/{optimistic-route-state.ts → route-state.ts} +52 -52
  229. package/src/compat/next/router.cjs +4 -2
  230. package/src/compat/next/router.ts +58 -61
  231. package/src/compat/next/script.tsx +108 -108
  232. package/src/compat/next/server-only.ts +1 -1
  233. package/src/compat/next/server.ts +19 -19
  234. package/src/compat/next/svgr.ts +18 -17
  235. package/src/compat/next/telemetry.ts +24 -24
  236. package/src/compat/next/{image-usage.ts → usage.ts} +70 -39
  237. package/src/compat/next/user-agent.ts +53 -49
  238. package/src/compat/next/web-vitals.ts +22 -24
  239. package/src/compat/otel/api.ts +41 -41
  240. package/src/compat/otel/client-trace-metadata.ts +25 -27
  241. package/src/compat/otel/fetch-span.ts +29 -29
  242. package/src/compat/otel/tracer.ts +331 -331
  243. package/src/compat/pages/api.ts +456 -0
  244. package/src/compat/pages/client-plugin.ts +36 -36
  245. package/src/compat/pages/router-state.ts +34 -34
  246. package/src/compat/pages/{index.ts → router.ts} +130 -135
  247. package/src/compat/ppr/io.ts +12 -12
  248. package/src/compat/ppr/missing-root-params.ts +34 -38
  249. package/src/compat/ppr/root-params-scan.ts +66 -66
  250. package/src/compat/ppr/root-params-transform.ts +24 -26
  251. package/src/compat/ppr/root-params.ts +30 -30
  252. package/src/compat/ppr/segment-config-incompat.ts +6 -7
  253. package/src/compat/protocol.ts +71 -70
  254. package/src/compat/react/action-state.ts +47 -48
  255. package/src/compat/react/client-lite.ts +15 -15
  256. package/src/compat/react/client.ts +4 -4
  257. package/src/compat/react/compiler-runtime.ts +11 -11
  258. package/src/compat/react/dom-client.ts +44 -44
  259. package/src/compat/react/dom-react-server.ts +10 -16
  260. package/src/compat/react/dom-server.ts +10 -10
  261. package/src/compat/react/dom.ts +52 -52
  262. package/src/compat/react/hooks-extra.ts +34 -35
  263. package/src/compat/react/parity.ts +64 -61
  264. package/src/compat/react/preact.ts +81 -82
  265. package/src/compat/react/react-server.ts +28 -28
  266. package/src/compat/react/router-shim.ts +1 -1
  267. package/src/compat/react/server-component-use.ts +8 -8
  268. package/src/compat/react/server-inserted-html.ts +30 -31
  269. package/src/compat/react/server.ts +53 -55
  270. package/src/compat/react/use.ts +32 -32
  271. package/src/compat/react/view-transition.ts +20 -20
  272. package/src/compat/register/actions.ts +35 -824
  273. package/src/compat/register/boot.ts +41 -41
  274. package/src/compat/register/build-tier.ts +5 -5
  275. package/src/compat/register/build.ts +74 -70
  276. package/src/compat/register/bundler.ts +161 -156
  277. package/src/compat/register/cache.ts +20 -20
  278. package/src/compat/register/client-errors.ts +3 -3
  279. package/src/compat/register/config.ts +6 -6
  280. package/src/compat/register/css-extras.ts +30 -34
  281. package/src/compat/register/edge-runtime.ts +3 -3
  282. package/src/compat/register/errors.ts +10 -12
  283. package/src/compat/register/export.ts +16 -16
  284. package/src/compat/register/font.ts +11 -11
  285. package/src/compat/register/hooks.ts +2 -2
  286. package/src/compat/register/image.ts +40 -40
  287. package/src/compat/register/index.ts +59 -62
  288. package/src/compat/register/instrumentation-client.ts +10 -10
  289. package/src/compat/register/lifecycle.ts +25 -28
  290. package/src/compat/register/mdx.ts +10 -10
  291. package/src/compat/register/middleware.ts +226 -16
  292. package/src/compat/register/otel.ts +80 -88
  293. package/src/compat/register/pages-api.ts +10 -463
  294. package/src/compat/register/ppr.ts +16 -16
  295. package/src/compat/register/protocol.ts +17 -18
  296. package/src/compat/register/proxy.ts +49 -51
  297. package/src/compat/register/render.ts +79 -76
  298. package/src/compat/register/routing.ts +162 -159
  299. package/src/compat/register/segment.ts +24 -1897
  300. package/src/compat/register/static-image.ts +3 -3
  301. package/src/compat/register/{misc.ts → taint.ts} +9 -9
  302. package/src/compat/register/typed-routes.ts +14 -14
  303. package/src/compat/register/{usecache.ts → use-cache.ts} +39 -39
  304. package/src/compat/register/validation.ts +18 -18
  305. package/src/compat/segment/loading-boundary.ts +43 -45
  306. package/src/compat/segment/page-slot.ts +69 -69
  307. package/src/compat/segment/serve.ts +1884 -0
  308. package/src/compat/segment/tree.ts +113 -112
  309. package/src/compat/segment/vary-key.ts +38 -38
  310. package/src/compat/segment/vary-params.ts +138 -142
  311. package/src/compat/static-params.ts +14 -12
  312. package/src/compat/tsconfig-defaults.ts +87 -91
  313. package/src/compat/typecheck/{index.ts → check.ts} +234 -212
  314. package/src/compat/typecheck/worker.ts +15 -12
  315. package/src/compat/typed-routes/{index.ts → generate.ts} +36 -36
  316. package/src/compat/typed-routes/manifest.ts +174 -170
  317. package/src/compat/typed-routes/typegen.ts +127 -110
  318. package/src/compat/validation/errors.ts +16 -19
  319. package/src/compat/validation/prerender-diagnostics.ts +521 -504
  320. package/src/compat/validation/{index.ts → validate.ts} +647 -648
  321. package/src/compat-bootstrap.ts +16 -16
  322. package/src/config.ts +86 -69
  323. package/src/css/build.ts +230 -227
  324. package/src/css/postcss.ts +79 -80
  325. package/src/css/worker.ts +14 -15
  326. package/src/dev/client-actions.ts +10 -10
  327. package/src/dev/client-chunk-store.ts +27 -27
  328. package/src/dev/{client-key-cache.ts → restart/client-key.ts} +76 -76
  329. package/src/dev/{restart-cache.ts → restart/enabled.ts} +1 -1
  330. package/src/dev/{global-css-cache.ts → restart/global-css.ts} +91 -83
  331. package/src/dev/{node-module-bundle-cache.ts → restart/node-modules.ts} +24 -24
  332. package/src/dev/{route-bundle-key-cache.ts → restart/route-bundle-key.ts} +53 -53
  333. package/src/dev/{route-facts-cache.ts → restart/route-facts.ts} +82 -82
  334. package/src/dev/server.ts +804 -820
  335. package/src/env.ts +46 -43
  336. package/src/extensions.ts +491 -478
  337. package/src/index.ts +8 -8
  338. package/src/internal.ts +20 -23
  339. package/src/{islands → render}/boundary-error.ts +3 -3
  340. package/src/render/hooks.ts +71 -71
  341. package/src/render/island-context.ts +14 -14
  342. package/src/render/metadata.ts +310 -310
  343. package/src/{ppr-postpone.ts → render/postpone.ts} +5 -5
  344. package/src/{ppr.ts → render/ppr.ts} +244 -245
  345. package/src/render/renderer.ts +2087 -2082
  346. package/src/render/resource-hints.ts +16 -17
  347. package/src/render/slots.tsx +224 -235
  348. package/src/{islands → render}/static-children.ts +9 -12
  349. package/src/{islands → render}/static-slots.ts +37 -37
  350. package/src/{cache/context.ts → request/cache.ts} +20 -20
  351. package/src/request/context.ts +107 -107
  352. package/src/{dynamic/source.ts → resolve/dynamic.ts} +139 -139
  353. package/src/resolve/engine.ts +90 -77
  354. package/src/resolve/imports.ts +475 -463
  355. package/src/resolve/scan-facts.ts +318 -296
  356. package/src/resolve/source-text.ts +37 -37
  357. package/src/{dynamic → resolve}/tree-shake.ts +132 -128
  358. package/src/routing/forwarded.ts +19 -19
  359. package/src/routing/handler.ts +84 -91
  360. package/src/routing/href.ts +87 -70
  361. package/src/routing/{metadata.ts → metadata-files.ts} +403 -401
  362. package/src/{proxy.ts → routing/proxy.ts} +306 -312
  363. package/src/routing/{request-runtime.ts → request-environment.ts} +10 -10
  364. package/src/routing/routes.ts +827 -815
  365. package/src/routing/slots.ts +164 -160
  366. package/src/runtime/loader.ts +954 -0
  367. package/src/{dev → runtime}/module-cache.ts +309 -287
  368. package/src/{dev → runtime}/module-generations.ts +9 -9
  369. package/src/{dev → runtime}/module-transform.ts +81 -72
  370. package/src/{dev/imports.ts → runtime/modules.ts} +934 -847
  371. package/src/runtime/{server.ts → vendor-build.ts} +848 -1696
  372. package/src/runtime/vendor.ts +428 -406
  373. package/src/styles.d.ts +9 -0
  374. package/src/types.ts +324 -335
  375. package/src/utils/ansi.ts +5 -5
  376. package/src/utils/{source.ts → code.ts} +15 -12
  377. package/src/utils/content-type.ts +3 -3
  378. package/src/utils/decode.ts +2 -2
  379. package/src/utils/dev-profile.ts +13 -13
  380. package/src/utils/error-log.ts +6 -6
  381. package/src/utils/esbuild.ts +18 -18
  382. package/src/utils/fs-cache.ts +13 -13
  383. package/src/utils/fs.ts +57 -49
  384. package/src/utils/html.ts +20 -24
  385. package/src/utils/native-require.ts +8 -8
  386. package/src/utils/serialize.ts +139 -146
  387. package/src/utils/verbose.ts +18 -18
  388. package/reference/overview.md +0 -35
  389. package/src/cli/analyze-print.ts +0 -181
  390. package/src/compat/middleware/manifest.ts +0 -210
  391. package/src/compat/next/image-client.tsx +0 -215
  392. package/src/compat/next/link-usage.ts +0 -29
  393. package/src/css/index.ts +0 -2
  394. package/src/render/index.ts +0 -1
  395. 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
  }