@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
@@ -6,7 +6,7 @@ export {
6
6
  PNextRedirectError,
7
7
  PNextUnauthorizedError,
8
8
  unauthorized,
9
- } from '../../api/navigation';
9
+ } from '../../api/navigation'
10
10
  import {
11
11
  permanentRedirect as pnextPermanentRedirect,
12
12
  PNextForbiddenError,
@@ -15,33 +15,33 @@ import {
15
15
  PNextUnauthorizedError,
16
16
  ReadonlyURLSearchParams,
17
17
  redirect as pnextRedirect,
18
- } from '../../api/navigation';
19
- import { isPostpone } from '../../ppr-postpone';
20
- import { currentParams, currentRequest } from '../../request/context';
21
- import { useContext } from 'preact/hooks';
18
+ } from '../../api/navigation'
19
+ import { isPostpone } from '../../render/postpone'
20
+ import { currentParams, currentRequest } from '../../request/context'
21
+ import { useContext } from 'preact/hooks'
22
22
  import {
23
23
  currentLayoutSegments,
24
24
  currentParamsSnapshot,
25
25
  hasLayoutSegmentScope,
26
- } from '../../render/slots';
27
- import { LayoutSegmentContext, RouteParamsContext } from '../../render/island-context';
28
- import { canonicalUrlHref } from './canonical-url';
29
- import { isUnrecognizedActionError } from '../actions/unrecognized-error';
30
- import { stripBasePath } from '../client/base-path';
31
- import { addBasePath } from '../client/base-path';
32
- import type { CurrentRoute, PNextRouter } from '../../api/client-navigation';
33
- import type { RouteParams, RoutePath } from '../../types';
34
-
35
- export type { RedirectStatus } from '../../api/navigation';
36
- export type { CurrentRoute, PNextRouter } from '../../api/client-navigation';
37
- export { ReadonlyURLSearchParams };
26
+ } from '../../render/slots'
27
+ import { LayoutSegmentContext, RouteParamsContext } from '../../render/island-context'
28
+ import { canonicalUrlHref } from './canonical-url'
29
+ import { isUnrecognizedActionError } from '../actions/unrecognized-error'
30
+ import { stripBasePath } from '../client/base-path'
31
+ import { addBasePath } from '../client/base-path'
32
+ import type { CurrentRoute, PNextRouter } from '../../api/client-navigation'
33
+ import type { RouteParams, RoutePath } from '../../types'
34
+
35
+ export type { RedirectStatus } from '../../api/navigation'
36
+ export type { CurrentRoute, PNextRouter } from '../../api/client-navigation'
37
+ export { ReadonlyURLSearchParams }
38
38
 
39
39
  export const RedirectType = {
40
40
  push: 'push',
41
41
  replace: 'replace',
42
- } as const;
42
+ } as const
43
43
 
44
- export type RedirectType = (typeof RedirectType)[keyof typeof RedirectType];
44
+ export type RedirectType = (typeof RedirectType)[keyof typeof RedirectType]
45
45
 
46
46
  export function redirect(location: string, type?: RedirectType): never {
47
47
  try {
@@ -49,19 +49,19 @@ export function redirect(location: string, type?: RedirectType): never {
49
49
  // targets outside the basePath) are left as-is. Normalizing here means every downstream consumer -
50
50
  // the page-GET redirect response and the server-action redirect envelope - sees a basePath-space
51
51
  // location uniformly.
52
- pnextRedirect(addBasePath(location));
52
+ pnextRedirect(addBasePath(location))
53
53
  } catch (error) {
54
54
  // Server actions honor push/replace history semantics on the client;
55
55
  // carry the requested type on the control-flow error.
56
56
  if (type && error instanceof PNextRedirectError) {
57
- (error as PNextRedirectError & { redirectType?: RedirectType }).redirectType = type;
57
+ ;(error as PNextRedirectError & { redirectType?: RedirectType }).redirectType = type
58
58
  }
59
- throw error;
59
+ throw error
60
60
  }
61
61
  }
62
62
 
63
63
  export function permanentRedirect(location: string, _type?: RedirectType): never {
64
- pnextPermanentRedirect(addBasePath(location));
64
+ pnextPermanentRedirect(addBasePath(location))
65
65
  }
66
66
 
67
67
  /** Rethrow framework control-flow errors so user catch blocks don't swallow them. */
@@ -73,7 +73,7 @@ export function unstable_rethrow(error: unknown): void {
73
73
  error instanceof PNextUnauthorizedError ||
74
74
  isPostpone(error)
75
75
  ) {
76
- throw error;
76
+ throw error
77
77
  }
78
78
  }
79
79
 
@@ -85,22 +85,22 @@ const serverRouter: PNextRouter = {
85
85
  back: () => undefined,
86
86
  forward: () => undefined,
87
87
  bfcacheId: '',
88
- };
88
+ }
89
89
 
90
90
  export function useRouter(): PNextRouter {
91
- return serverRouter;
91
+ return serverRouter
92
92
  }
93
93
 
94
94
  export function usePathname() {
95
- return stripBasePath(currentUrl().pathname);
95
+ return stripBasePath(currentUrl().pathname)
96
96
  }
97
97
 
98
98
  export function useSearchParams(): ReadonlyURLSearchParams {
99
- return new ReadonlyURLSearchParams(currentUrl().search);
99
+ return new ReadonlyURLSearchParams(currentUrl().search)
100
100
  }
101
101
 
102
102
  export function useParams<Route extends RoutePath = RoutePath>() {
103
- return resolveParams() as RouteParams<Route>;
103
+ return resolveParams() as RouteParams<Route>
104
104
  }
105
105
 
106
106
  /**
@@ -112,41 +112,39 @@ export function useParams<Route extends RoutePath = RoutePath>() {
112
112
  * runs during a preact render.
113
113
  */
114
114
  function resolveParams(): Record<string, string | string[]> {
115
- const scope = currentParamsSnapshot();
116
- if (scope) return scope;
115
+ const scope = currentParamsSnapshot()
116
+ if (scope) return scope
117
117
  // Island SSR (a `'use client'` component in a slot) reads the snapshot from
118
118
  // the RouteParamsContext the renderer wraps around it. useContext is only
119
119
  // valid inside a preact render; a plain server component resolved by direct
120
120
  // call has no hook context, so guard it and fall back to the global params.
121
121
  try {
122
- const snapshot = useContext(RouteParamsContext);
123
- if (snapshot) return snapshot;
122
+ const snapshot = useContext(RouteParamsContext)
123
+ if (snapshot) return snapshot
124
124
  } catch {
125
125
  // not in a preact render — fall through to global route params
126
126
  }
127
- return currentParams();
127
+ return currentParams()
128
128
  }
129
129
 
130
130
  export function useRoute<Route extends RoutePath = RoutePath>(): CurrentRoute<Route> {
131
- const url = currentUrl();
131
+ const url = currentUrl()
132
132
  return {
133
133
  route: null,
134
134
  pathname: url.pathname,
135
135
  params: resolveParams() as RouteParams<Route>,
136
136
  searchParams: new ReadonlyURLSearchParams(url.search),
137
- };
137
+ }
138
138
  }
139
139
 
140
- export function useSelectedLayoutSegment(
141
- parallelRoutesKey?: string,
142
- ): string | null {
143
- const segments = selectedLayoutSegments(parallelRoutesKey);
144
- return segments[parallelRoutesKey ? segments.length - 1 : 0] ?? null;
140
+ export function useSelectedLayoutSegment(parallelRoutesKey?: string): string | null {
141
+ const segments = selectedLayoutSegments(parallelRoutesKey)
142
+ return segments[parallelRoutesKey ? segments.length - 1 : 0] ?? null
145
143
  }
146
144
 
147
145
  export function useSelectedLayoutSegments(parallelRoutesKey?: string): string[] {
148
146
  // A defensive copy so callers can't mutate the render-scoped array.
149
- return [...selectedLayoutSegments(parallelRoutesKey)];
147
+ return [...selectedLayoutSegments(parallelRoutesKey)]
150
148
  }
151
149
 
152
150
  /**
@@ -156,14 +154,14 @@ export function useSelectedLayoutSegments(parallelRoutesKey?: string): string[]
156
154
  * re-provides at mount. useContext is safe: the no-scope branch only runs during a preact render.
157
155
  */
158
156
  function selectedLayoutSegments(parallelRoutesKey?: string): string[] {
159
- if (hasLayoutSegmentScope()) return currentLayoutSegments(parallelRoutesKey);
160
- const snapshot = useContext(LayoutSegmentContext);
161
- if (!snapshot) return [];
162
- return parallelRoutesKey ? (snapshot.slots[parallelRoutesKey] ?? []) : snapshot.segments;
157
+ if (hasLayoutSegmentScope()) return currentLayoutSegments(parallelRoutesKey)
158
+ const snapshot = useContext(LayoutSegmentContext)
159
+ if (!snapshot) return []
160
+ return parallelRoutesKey ? (snapshot.slots[parallelRoutesKey] ?? []) : snapshot.segments
163
161
  }
164
162
 
165
163
  export function useLinkStatus() {
166
- return { pending: false };
164
+ return { pending: false }
167
165
  }
168
166
 
169
167
  /**
@@ -172,7 +170,7 @@ export function useLinkStatus() {
172
170
  * asked for read the recorded canonical URL first (see canonical-url.ts).
173
171
  */
174
172
  function currentUrl() {
175
- return new URL(canonicalUrlHref() ?? currentRequest()?.url ?? 'http://pnext.local/');
173
+ return new URL(canonicalUrlHref() ?? currentRequest()?.url ?? 'http://pnext.local/')
176
174
  }
177
175
 
178
176
  /**
@@ -181,8 +179,8 @@ function currentUrl() {
181
179
  * action endpoint sends for an unknown id.
182
180
  */
183
181
  export function unstable_isUnrecognizedActionError(error: unknown): boolean {
184
- return isUnrecognizedActionError(error);
182
+ return isUnrecognizedActionError(error)
185
183
  }
186
184
 
187
185
  // CSS-in-JS SSR insertion hook (Next exports it from next/navigation).
188
- export { useServerInsertedHTML } from '../react/server-inserted-html';
186
+ export { useServerInsertedHTML } from '../react/server-inserted-html'
@@ -1,33 +1,33 @@
1
1
  // `next/offline` - the useOffline() hook. Reports whether the app is currently offline: false on the
2
2
  // server and during hydration; in the browser it tracks the native online/offline events. The router's
3
- // own offline handling (soft-nav retry on reconnect) lives in api/router.ts; this hook is only the
3
+ // own offline handling (soft-nav retry on reconnect) lives in client/router/index.ts; this hook is only the
4
4
  // UI-facing subscription.
5
5
 
6
- import { useEffect, useState } from 'preact/hooks';
6
+ import { useEffect, useState } from 'preact/hooks'
7
7
 
8
- type Listener = () => void;
8
+ type Listener = () => void
9
9
 
10
- const listeners = new Set<Listener>();
11
- let installed = false;
12
- let offline = false;
10
+ const listeners = new Set<Listener>()
11
+ let installed = false
12
+ let offline = false
13
13
 
14
14
  function currentOffline(): boolean {
15
- if (typeof navigator === 'undefined') return false;
16
- return navigator.onLine === false;
15
+ if (typeof navigator === 'undefined') return false
16
+ return navigator.onLine === false
17
17
  }
18
18
 
19
19
  function install() {
20
- if (installed || (!process.browser && typeof window === 'undefined')) return;
21
- installed = true;
22
- offline = currentOffline();
20
+ if (installed || (!process.browser && typeof window === 'undefined')) return
21
+ installed = true
22
+ offline = currentOffline()
23
23
  const update = () => {
24
- const next = currentOffline();
25
- if (next === offline) return;
26
- offline = next;
27
- for (const listener of [...listeners]) listener();
28
- };
29
- window.addEventListener('offline', update);
30
- window.addEventListener('online', update);
24
+ const next = currentOffline()
25
+ if (next === offline) return
26
+ offline = next
27
+ for (const listener of [...listeners]) listener()
28
+ }
29
+ window.addEventListener('offline', update)
30
+ window.addEventListener('online', update)
31
31
  }
32
32
 
33
33
  /**
@@ -36,16 +36,16 @@ function install() {
36
36
  * client-side signal only).
37
37
  */
38
38
  export function useOffline(): boolean {
39
- const [value, setValue] = useState(false);
39
+ const [value, setValue] = useState(false)
40
40
  useEffect(() => {
41
- install();
42
- const listener = () => setValue(offline);
43
- listeners.add(listener);
41
+ install()
42
+ const listener = () => setValue(offline)
43
+ listeners.add(listener)
44
44
  // The state may have flipped between render and subscription.
45
- listener();
45
+ listener()
46
46
  return () => {
47
- listeners.delete(listener);
48
- };
49
- }, []);
50
- return value;
47
+ listeners.delete(listener)
48
+ }
49
+ }, [])
50
+ return value
51
51
  }