@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,7 +1,7 @@
1
- import ReactCompat from './preact';
2
- import { cache as serverCache } from '../../api/cache';
3
- import { currentPrerenderScope } from '../../ppr';
4
- import { currentCacheSignal } from '../../cache/context';
1
+ import ReactCompat from './preact'
2
+ import { cache as serverCache } from '../../api/cache'
3
+ import { currentPrerenderScope } from '../../render/ppr'
4
+ import { currentCacheSignal } from '../../request/cache'
5
5
 
6
6
  export {
7
7
  Children,
@@ -35,20 +35,20 @@ export {
35
35
  useActionState,
36
36
  useOptimistic,
37
37
  version,
38
- } from './preact';
39
- export { cache } from '../../api/cache';
40
- import { ViewTransition, addTransitionType } from './view-transition';
41
- export { ViewTransition, addTransitionType };
38
+ } from './preact'
39
+ export { cache } from '../../api/cache'
40
+ import { ViewTransition, addTransitionType } from './view-transition'
41
+ export { ViewTransition, addTransitionType }
42
42
 
43
- type EffectHook = typeof ReactCompat.useEffect;
44
- type StateSetter<State> = (value: State | ((previous: State) => State)) => void;
45
- type Reducer<Action> = (action: Action) => void;
43
+ type EffectHook = typeof ReactCompat.useEffect
44
+ type StateSetter<State> = (value: State | ((previous: State) => State)) => void
45
+ type Reducer<Action> = (action: Action) => void
46
46
 
47
- const useEffect: EffectHook = () => undefined;
48
- const useLayoutEffect: EffectHook = () => undefined;
49
- const useInsertionEffect: EffectHook = () => undefined;
50
- const useDebugValue: typeof ReactCompat.useDebugValue = () => undefined;
51
- const useImperativeHandle: typeof ReactCompat.useImperativeHandle = () => undefined;
47
+ const useEffect: EffectHook = () => undefined
48
+ const useLayoutEffect: EffectHook = () => undefined
49
+ const useInsertionEffect: EffectHook = () => undefined
50
+ const useDebugValue: typeof ReactCompat.useDebugValue = () => undefined
51
+ const useImperativeHandle: typeof ReactCompat.useImperativeHandle = () => undefined
52
52
 
53
53
  function useState<State = undefined>(
54
54
  initialState?: State | (() => State),
@@ -56,7 +56,7 @@ function useState<State = undefined>(
56
56
  return [
57
57
  typeof initialState === 'function' ? (initialState as () => State)() : initialState,
58
58
  () => undefined,
59
- ];
59
+ ]
60
60
  }
61
61
 
62
62
  function useReducer<State, Action>(
@@ -64,29 +64,29 @@ function useReducer<State, Action>(
64
64
  initialArg: State,
65
65
  init?: (value: State) => State,
66
66
  ): [State, Reducer<Action>] {
67
- void reducer;
68
- return [init ? init(initialArg) : initialArg, () => undefined];
67
+ void reducer
68
+ return [init ? init(initialArg) : initialArg, () => undefined]
69
69
  }
70
70
 
71
71
  function useRef<Value = undefined>(initialValue?: Value): { current: Value | undefined } {
72
- return { current: initialValue };
72
+ return { current: initialValue }
73
73
  }
74
74
 
75
75
  function useMemo<Value>(factory: () => Value): Value {
76
- return factory();
76
+ return factory()
77
77
  }
78
78
 
79
79
  // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type -- must mirror preact's `<T extends Function>` useCallback signature
80
80
  function useCallback<Callback extends Function>(callback: Callback): Callback {
81
- return callback;
81
+ return callback
82
82
  }
83
83
 
84
84
  function useDeferredValue<Value>(value: Value): Value {
85
- return value;
85
+ return value
86
86
  }
87
87
 
88
88
  function useTransition(): [false, (callback: () => void) => void] {
89
- return [false, callback => callback()];
89
+ return [false, callback => callback()]
90
90
  }
91
91
 
92
92
  function useSyncExternalStore<Snapshot>(
@@ -94,13 +94,11 @@ function useSyncExternalStore<Snapshot>(
94
94
  getSnapshot: () => Snapshot,
95
95
  getServerSnapshot?: () => Snapshot,
96
96
  ): Snapshot {
97
- return getServerSnapshot ? getServerSnapshot() : getSnapshot();
97
+ return getServerSnapshot ? getServerSnapshot() : getSnapshot()
98
98
  }
99
99
 
100
- function useContext<Value>(
101
- context: Parameters<typeof ReactCompat.useContext<Value>>[0],
102
- ): Value {
103
- return ReactCompat.useContext(context);
100
+ function useContext<Value>(context: Parameters<typeof ReactCompat.useContext<Value>>[0]): Value {
101
+ return ReactCompat.useContext(context)
104
102
  }
105
103
 
106
104
  // Re-export the server stubs as named exports too. Client-component libraries
@@ -123,34 +121,34 @@ export {
123
121
  useTransition,
124
122
  useSyncExternalStore,
125
123
  useContext,
126
- };
124
+ }
127
125
 
128
126
  export function cacheSignal(): AbortSignal | null {
129
- const prerender = currentPrerenderScope();
130
- if (prerender) return prerender.signal;
131
- return currentCacheSignal();
127
+ const prerender = currentPrerenderScope()
128
+ if (prerender) return prerender.signal
129
+ return currentCacheSignal()
132
130
  }
133
131
 
134
132
  const ReactServer = { ...ReactCompat } as typeof ReactCompat & {
135
- cache: typeof serverCache;
136
- cacheSignal: typeof cacheSignal;
137
- };
138
- delete (ReactServer as { useState?: unknown }).useState;
139
- ReactServer.cache = serverCache;
140
- ReactServer.cacheSignal = cacheSignal;
141
- ReactServer.useEffect = useEffect;
142
- ReactServer.useLayoutEffect = useLayoutEffect;
143
- ReactServer.useInsertionEffect = useInsertionEffect;
144
- ReactServer.useDebugValue = useDebugValue;
145
- ReactServer.useImperativeHandle = useImperativeHandle;
146
- ReactServer.useReducer = useReducer;
147
- ReactServer.useRef = useRef;
148
- ReactServer.useMemo = useMemo;
149
- ReactServer.useCallback = useCallback;
150
- ReactServer.useDeferredValue = useDeferredValue;
151
- ReactServer.useTransition = useTransition;
152
- ReactServer.useSyncExternalStore = useSyncExternalStore;
153
- ReactServer.useContext = useContext as typeof ReactCompat.useContext;
154
- Object.assign(ReactServer, { ViewTransition, addTransitionType });
155
-
156
- export default ReactServer;
133
+ cache: typeof serverCache
134
+ cacheSignal: typeof cacheSignal
135
+ }
136
+ delete (ReactServer as { useState?: unknown }).useState
137
+ ReactServer.cache = serverCache
138
+ ReactServer.cacheSignal = cacheSignal
139
+ ReactServer.useEffect = useEffect
140
+ ReactServer.useLayoutEffect = useLayoutEffect
141
+ ReactServer.useInsertionEffect = useInsertionEffect
142
+ ReactServer.useDebugValue = useDebugValue
143
+ ReactServer.useImperativeHandle = useImperativeHandle
144
+ ReactServer.useReducer = useReducer
145
+ ReactServer.useRef = useRef
146
+ ReactServer.useMemo = useMemo
147
+ ReactServer.useCallback = useCallback
148
+ ReactServer.useDeferredValue = useDeferredValue
149
+ ReactServer.useTransition = useTransition
150
+ ReactServer.useSyncExternalStore = useSyncExternalStore
151
+ ReactServer.useContext = useContext as typeof ReactCompat.useContext
152
+ Object.assign(ReactServer, { ViewTransition, addTransitionType })
153
+
154
+ export default ReactServer
@@ -1,72 +1,72 @@
1
- import { useContext } from 'preact/hooks';
2
- import type { Context } from 'preact';
1
+ import { useContext } from 'preact/hooks'
2
+ import type { Context } from 'preact'
3
3
 
4
4
  interface TrackedThenable<T> extends PromiseLike<T> {
5
- status?: 'pending' | 'fulfilled' | 'rejected';
6
- value?: T;
7
- reason?: unknown;
5
+ status?: 'pending' | 'fulfilled' | 'rejected'
6
+ value?: T
7
+ reason?: unknown
8
8
  }
9
9
 
10
10
  // Replay state for use() in server components: the renderer replays a component
11
11
  // after a thrown thenable settles, and use() call N must resolve to the thenable
12
12
  // recorded on the previous attempt (the rerun creates a fresh promise).
13
13
  export interface UseThenableState {
14
- thenables: TrackedThenable<unknown>[];
14
+ thenables: TrackedThenable<unknown>[]
15
15
  }
16
16
 
17
17
  // globalThis-anchored: the prebundled server entry inlines its own copy of this module;
18
18
  // a replay in one copy must be visible to use() in the other or retries loop forever.
19
19
  interface UseReplayState {
20
- active: UseThenableState | null;
21
- index: number;
20
+ active: UseThenableState | null
21
+ index: number
22
22
  }
23
- const REPLAY_STATE_KEY = Symbol.for('pnext.useReplayState');
23
+ const REPLAY_STATE_KEY = Symbol.for('pnext.useReplayState')
24
24
  const replayState = ((globalThis as Record<PropertyKey, unknown>)[REPLAY_STATE_KEY] ??= {
25
25
  active: null,
26
26
  index: 0,
27
- }) as UseReplayState;
27
+ }) as UseReplayState
28
28
 
29
29
  export function withUseThenableState<T>(state: UseThenableState, run: () => T): T {
30
- const previousState = replayState.active;
31
- const previousIndex = replayState.index;
32
- replayState.active = state;
33
- replayState.index = 0;
30
+ const previousState = replayState.active
31
+ const previousIndex = replayState.index
32
+ replayState.active = state
33
+ replayState.index = 0
34
34
  try {
35
- return run();
35
+ return run()
36
36
  } finally {
37
- replayState.active = previousState;
38
- replayState.index = previousIndex;
37
+ replayState.active = previousState
38
+ replayState.index = previousIndex
39
39
  }
40
40
  }
41
41
 
42
42
  // React 19's use(): unwrap a thenable via suspense, or read a context.
43
43
  export function use<T>(usable: PromiseLike<T> | Context<T>): T {
44
44
  if (usable && typeof (usable as PromiseLike<T>).then === 'function') {
45
- let thenable = usable as TrackedThenable<T>;
45
+ let thenable = usable as TrackedThenable<T>
46
46
  if (replayState.active) {
47
- const index = replayState.index++;
48
- const existing = replayState.active.thenables[index];
49
- if (existing) thenable = existing as TrackedThenable<T>;
50
- else replayState.active.thenables[index] = thenable;
47
+ const index = replayState.index++
48
+ const existing = replayState.active.thenables[index]
49
+ if (existing) thenable = existing as TrackedThenable<T>
50
+ else replayState.active.thenables[index] = thenable
51
51
  }
52
- if (thenable.status === 'fulfilled') return thenable.value as T;
53
- if (thenable.status === 'rejected') throw thenable.reason;
52
+ if (thenable.status === 'fulfilled') return thenable.value as T
53
+ if (thenable.status === 'rejected') throw thenable.reason
54
54
  if (thenable.status !== 'pending') {
55
- thenable.status = 'pending';
55
+ thenable.status = 'pending'
56
56
  thenable.then(
57
57
  value => {
58
- thenable.status = 'fulfilled';
59
- thenable.value = value;
58
+ thenable.status = 'fulfilled'
59
+ thenable.value = value
60
60
  },
61
61
  reason => {
62
- thenable.status = 'rejected';
63
- thenable.reason = reason;
62
+ thenable.status = 'rejected'
63
+ thenable.reason = reason
64
64
  },
65
- );
65
+ )
66
66
  }
67
67
  // React use() protocol: suspend by throwing the thenable itself.
68
68
  // eslint-disable-next-line @typescript-eslint/only-throw-error
69
- throw thenable;
69
+ throw thenable
70
70
  }
71
- return useContext(usable as Context<T>);
71
+ return useContext(usable as Context<T>)
72
72
  }
@@ -9,52 +9,52 @@
9
9
  // `document.startViewTransition`, so this shim keeps the same DOM shape (pure passthrough) and records
10
10
  // the declared names/types; the router applies the actual transition when the browser supports it.
11
11
 
12
- import { Fragment, h, type ComponentChildren, type VNode } from 'preact';
12
+ import { Fragment, h, type ComponentChildren, type VNode } from 'preact'
13
13
 
14
14
  /**
15
15
  * The class/name a ViewTransition applies for a given trigger. React accepts a
16
16
  * string (a single view-transition-class) or a record keyed by transition type.
17
17
  */
18
- export type ViewTransitionClass = string | Record<string, string>;
18
+ export type ViewTransitionClass = string | Record<string, string>
19
19
 
20
20
  export interface ViewTransitionProps {
21
21
  /** view-transition-name for the child; 'auto' lets React derive one. */
22
- name?: string;
22
+ name?: string
23
23
  /** Fallback class applied when no more specific trigger prop matches. */
24
- default?: ViewTransitionClass;
25
- enter?: ViewTransitionClass;
26
- exit?: ViewTransitionClass;
27
- update?: ViewTransitionClass;
28
- share?: ViewTransitionClass;
29
- onEnter?: (element: Element, types: string[]) => void;
30
- onExit?: (element: Element, types: string[]) => void;
31
- onUpdate?: (element: Element, types: string[]) => void;
32
- onShare?: (element: Element, types: string[]) => void;
33
- ref?: unknown;
34
- children?: ComponentChildren;
24
+ default?: ViewTransitionClass
25
+ enter?: ViewTransitionClass
26
+ exit?: ViewTransitionClass
27
+ update?: ViewTransitionClass
28
+ share?: ViewTransitionClass
29
+ onEnter?: (element: Element, types: string[]) => void
30
+ onExit?: (element: Element, types: string[]) => void
31
+ onUpdate?: (element: Element, types: string[]) => void
32
+ onShare?: (element: Element, types: string[]) => void
33
+ ref?: unknown
34
+ children?: ComponentChildren
35
35
  }
36
36
 
37
37
  export function ViewTransition({ children }: ViewTransitionProps): VNode {
38
38
  // Pure passthrough: React's ViewTransition adds no element to the tree, and
39
39
  // any wrapper here would change every consuming app's DOM/CSS selectors.
40
- return h(Fragment, null, children);
40
+ return h(Fragment, null, children)
41
41
  }
42
- ViewTransition.displayName = 'ViewTransition';
42
+ ViewTransition.displayName = 'ViewTransition'
43
43
 
44
44
  // Transition types declared during the current update (React clears them once
45
45
  // the transition commits). `startViewTransition({ types })` consumes them.
46
- const pendingTransitionTypes: string[] = [];
46
+ const pendingTransitionTypes: string[] = []
47
47
 
48
48
  /**
49
49
  * Declare a view-transition type for the in-flight transition, so
50
50
  * `:active-view-transition-type(...)` CSS rules match while it runs.
51
51
  */
52
52
  export function addTransitionType(type: string): void {
53
- if (typeof type !== 'string' || pendingTransitionTypes.includes(type)) return;
54
- pendingTransitionTypes.push(type);
53
+ if (typeof type !== 'string' || pendingTransitionTypes.includes(type)) return
54
+ pendingTransitionTypes.push(type)
55
55
  }
56
56
 
57
57
  /** Drain the declared types (the navigation that starts the transition owns them). */
58
58
  export function takeTransitionTypes(): string[] {
59
- return pendingTransitionTypes.splice(0, pendingTransitionTypes.length);
59
+ return pendingTransitionTypes.splice(0, pendingTransitionTypes.length)
60
60
  }