@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
@@ -15,7 +15,7 @@
15
15
  // full tier that re-assign a value set here re-assign the SAME implementation, so the two tiers cannot
16
16
  // disagree.
17
17
 
18
- import type { ResolvedConfig } from '../../config';
18
+ import type { ResolvedConfig } from '../../config'
19
19
  import {
20
20
  getProxyExtensions,
21
21
  onExtensionHostReset,
@@ -26,13 +26,13 @@ import {
26
26
  setCssExtensions,
27
27
  setImportAliasExtensions,
28
28
  setProxyExtensions,
29
- } from '../../extensions';
30
- import { findProxyFiles } from '../../proxy';
29
+ } from '../../extensions'
30
+ import { findProxyFiles } from '../../routing/proxy'
31
31
  import {
32
32
  packageNameOfSpecifier,
33
33
  resolvePackageSpecifier,
34
34
  setModuleAliases,
35
- } from '../../resolve/imports';
35
+ } from '../../resolve/imports'
36
36
  import {
37
37
  compatAliases,
38
38
  missingCompatImportError,
@@ -41,58 +41,58 @@ import {
41
41
  reactCompatEnabled,
42
42
  reactCompilerOptions,
43
43
  reactServerLayerAliases,
44
- } from '../index';
45
- import { transpilePackages } from '../bundler/config';
46
- import { materializeNextCssSources, nextCssResolveDependency } from '../css/modules';
47
- import { getNextConfig } from '../next/config-loader';
48
- import { registerLifecycleBootHooks } from './lifecycle';
49
- import { registerRoutingExtensions } from './routing';
44
+ } from '../aliases'
45
+ import { transpilePackages } from '../bundler/config'
46
+ import { materializeNextCssSources, nextCssResolveDependency } from '../css/modules'
47
+ import { getNextConfig } from '../next/config-loader'
48
+ import { registerLifecycleBootHooks } from './lifecycle'
49
+ import { registerRoutingExtensions } from './routing'
50
50
 
51
51
  /** Proxy entrypoint basenames Next supports (`middleware` is the legacy name). */
52
- const NEXT_PROXY_NAMES = ['proxy', 'middleware'];
52
+ const NEXT_PROXY_NAMES = ['proxy', 'middleware']
53
53
 
54
54
  // Extensions core already carries as page/convention files (base list in
55
55
  // routes.ts). Registering one of these is a no-op, so we filter them out and
56
56
  // only register the genuinely-extra ones a configured pageExtensions adds.
57
- const CORE_BASE_PAGE_EXTENSIONS = new Set(['tsx', 'ts', 'jsx', 'js', 'mjs']);
57
+ const CORE_BASE_PAGE_EXTENSIONS = new Set(['tsx', 'ts', 'jsx', 'js', 'mjs'])
58
58
 
59
- let registered = false;
59
+ let registered = false
60
60
  // Host-scoped guard: a fresh host must be registered into again.
61
- onExtensionHostReset(() => (registered = false));
61
+ onExtensionHostReset(() => (registered = false))
62
62
 
63
63
  export function registerCompatBootExtensions(config: ResolvedConfig): void {
64
- if (registered) return;
65
- registered = true;
64
+ if (registered) return
65
+ registered = true
66
66
 
67
67
  setCompatModeExtensions({
68
68
  nextEnabled: nextCompatEnabled,
69
69
  reactEnabled: reactCompatEnabled,
70
70
  reactCompilerOptions,
71
- });
71
+ })
72
72
  setImportAliasExtensions({
73
73
  aliases: compatAliases,
74
74
  clientSsrAliases: cfg => nextCompatAliases(cfg, 'server'),
75
75
  missingImportError: missingCompatImportError,
76
76
  reactServerLayerAliases,
77
- });
77
+ })
78
78
  // Route scanning (client-reference/boundary detection) resolves imports statically, with no per-call
79
79
  // config to consult - register the same bare-specifier aliases the bundler uses so a server component
80
80
  // importing e.g. `next/form` still resolves to its compat file and gets walked for 'use client'
81
81
  // detection.
82
- setModuleAliases(compatAliases(config, 'server'));
83
- registerRoutingExtensions(config);
84
- registerLifecycleBootHooks(config);
82
+ setModuleAliases(compatAliases(config, 'server'))
83
+ registerRoutingExtensions(config)
84
+ registerLifecycleBootHooks(config)
85
85
 
86
- if (!nextCompatEnabled(config)) return;
86
+ if (!nextCompatEnabled(config)) return
87
87
 
88
- registerCompatPageExtensions();
89
- setBundlerExtensions({ resolveRouteDependency: resolveTranspiledRouteDependency() });
90
- materializeNextCssSources(config);
88
+ registerCompatPageExtensions()
89
+ setBundlerExtensions({ resolveRouteDependency: resolveTranspiledRouteDependency() })
90
+ materializeNextCssSources(config)
91
91
  setCssExtensions({
92
92
  extraCssExtensions: () => ['.scss', '.sass'],
93
93
  resolveCssDependency: nextCssResolveDependency(config),
94
- });
95
- setProxyExtensions({ names: NEXT_PROXY_NAMES, validateFiles: validateProxyFiles });
94
+ })
95
+ setProxyExtensions({ names: NEXT_PROXY_NAMES, validateFiles: validateProxyFiles })
96
96
  }
97
97
 
98
98
  /**
@@ -103,30 +103,30 @@ export function registerCompatBootExtensions(config: ResolvedConfig): void {
103
103
  * matching MDX compilation is wired later, in register-mdx.
104
104
  */
105
105
  function registerCompatPageExtensions(): void {
106
- const configured = getNextConfig().pageExtensions;
106
+ const configured = getNextConfig().pageExtensions
107
107
  if (Array.isArray(configured)) {
108
108
  const extras = configured.filter(
109
109
  (ext): ext is string =>
110
110
  typeof ext === 'string' && ext.length > 0 && !CORE_BASE_PAGE_EXTENSIONS.has(ext),
111
- );
112
- if (extras.length > 0) registerPageExtensions(...extras);
111
+ )
112
+ if (extras.length > 0) registerPageExtensions(...extras)
113
113
  }
114
114
  // Imported markdown is loadable even when not routable: `pageExtensions:
115
115
  // ['mdx']` still allows `import Doc from './x.md'` through @next/mdx's
116
- // /\.mdx?$/ rule, and the server runtime compiles both (dev/imports,
116
+ // /\.mdx?$/ rule, and the server runtime compiles both (runtime/modules,
117
117
  // transformSource). Without this the Bun load plugin never claims `.md` and
118
118
  // the import falls through to the file loader (default export = the path).
119
- registerLoadableExtensions('mdx', 'md');
119
+ registerLoadableExtensions('mdx', 'md')
120
120
  }
121
121
 
122
122
  /** B7 `transpilePackages` resolution used by the route scanner's module walk. */
123
123
  function resolveTranspiledRouteDependency() {
124
- const transpile = new Set(transpilePackages());
124
+ const transpile = new Set(transpilePackages())
125
125
  return (root: string, fromFile: string, specifier: string): string | undefined => {
126
- const packageName = packageNameOfSpecifier(specifier);
127
- if (!packageName || !transpile.has(packageName)) return undefined;
128
- return resolvePackageSpecifier(root, fromFile, specifier, ['import', 'browser', 'default']);
129
- };
126
+ const packageName = packageNameOfSpecifier(specifier)
127
+ if (!packageName || !transpile.has(packageName)) return undefined
128
+ return resolvePackageSpecifier(root, fromFile, specifier, ['import', 'browser', 'default'])
129
+ }
130
130
  }
131
131
 
132
132
  /**
@@ -134,8 +134,8 @@ function resolveTranspiledRouteDependency() {
134
134
  * implementation - for everyone else this is the whole cost of proxy support at boot.
135
135
  */
136
136
  async function validateProxyFiles(config: ResolvedConfig): Promise<void> {
137
- if (findProxyFiles(config, NEXT_PROXY_NAMES).length === 0) return;
138
- const { registerProxyExtensions } = await import('./proxy');
139
- registerProxyExtensions(config);
140
- await getProxyExtensions().validateFiles(config);
137
+ if (findProxyFiles(config, NEXT_PROXY_NAMES).length === 0) return
138
+ const { registerProxyExtensions } = await import('./proxy')
139
+ registerProxyExtensions(config)
140
+ await getProxyExtensions().validateFiles(config)
141
141
  }
@@ -4,8 +4,8 @@
4
4
  // fattest part of the full tier. Kept behind one dynamic import so registerCompatExtensions can skip
5
5
  // loading them entirely when it is only being asked to serve; the call order is unchanged either way.
6
6
 
7
- export { registerBuildCompatExtensions } from './build';
8
- export { registerTypedRoutesExtensions } from './typed-routes';
9
- export { registerValidationExtensions } from './validation';
10
- export { registerMiddlewareExtensions } from './middleware';
11
- export { registerExportExtensions } from './export';
7
+ export { registerBuildCompatExtensions } from './build'
8
+ export { registerTypedRoutesExtensions } from './typed-routes'
9
+ export { registerValidationExtensions } from './validation'
10
+ export { registerMiddlewareExtensions } from './middleware'
11
+ export { registerExportExtensions } from './export'
@@ -1,22 +1,26 @@
1
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
- import path from 'node:path';
1
+ import { mkdir, readFile, writeFile } from 'node:fs/promises'
2
+ import path from 'node:path'
3
3
  import {
4
4
  registerBuildCompleteHooks,
5
5
  setBuildCompatExtensions,
6
6
  setCompatModeExtensions,
7
- } from '../../extensions';
8
- import type { BuildManifest } from '../../types';
9
- import type { ResolvedConfig } from '../../config';
10
- import { nextCompatEnabled, reactCompatEnabled, reactCompilerOptions } from '../index';
11
- import { warnNextMetadataBuildIssues } from '../metadata';
12
- import { getNextConfig } from '../next/config-loader';
13
- import { preferredRegionForRoute } from '../next/preferred-region';
14
- import { deploymentId } from '../bundler/config';
15
- import { aliasGenerateStaticParams } from '../static-params';
16
- import { takeCacheLifeStash } from '../cache/use-cache';
17
- import { varyNamesFor, withVaryParamsTracking, type ResponseVaryParams } from '../segment/vary-params';
18
- import { takeFontHeaderPreloads, fontLinkHeaderValue } from '../next/font/runtime';
19
- import { takeResourceHintHeader } from '../next/resource-hints';
7
+ } from '../../extensions'
8
+ import type { BuildManifest } from '../../types'
9
+ import type { ResolvedConfig } from '../../config'
10
+ import { nextCompatEnabled, reactCompatEnabled, reactCompilerOptions } from '../aliases'
11
+ import { warnNextMetadataBuildIssues } from '../metadata'
12
+ import { getNextConfig } from '../next/config-loader'
13
+ import { preferredRegionForRoute } from '../next/preferred-region'
14
+ import { deploymentId } from '../bundler/config'
15
+ import { aliasGenerateStaticParams } from '../static-params'
16
+ import { takeCacheLifeStash } from '../cache/use-cache'
17
+ import {
18
+ varyNamesFor,
19
+ withVaryParamsTracking,
20
+ type ResponseVaryParams,
21
+ } from '../segment/vary-params'
22
+ import { takeFontHeaderPreloads, fontLinkHeaderValue } from '../next/font/runtime'
23
+ import { takeResourceHintHeader } from '../next/resource-hints'
20
24
  import {
21
25
  bodySegmentFile,
22
26
  buildRootTreePrefetch,
@@ -27,41 +31,38 @@ import {
27
31
  segmentDir,
28
32
  segmentMetaFile,
29
33
  treeSegmentFile,
30
- } from '../segment/tree';
31
- import { runBuildCompleteAdapter } from '../adapter/build-complete';
34
+ } from '../segment/tree'
35
+ import { runBuildCompleteAdapter } from '../export/build-complete'
32
36
 
33
37
  export function registerBuildCompatExtensions(): void {
34
38
  registerBuildCompleteHooks(({ config, manifest }) =>
35
39
  writeFunctionsConfigManifest(config.outPath, manifest),
36
- );
37
- registerBuildCompleteHooks(({ config }) => writeRequiredServerFilesManifest(config));
38
- registerBuildCompleteHooks(({ config }) => writeTraceBuildFile(config));
40
+ )
41
+ registerBuildCompleteHooks(({ config }) => writeRequiredServerFilesManifest(config))
42
+ registerBuildCompleteHooks(({ config }) => writeTraceBuildFile(config))
39
43
  // Next's `adapterPath` / NEXT_ADAPTER_PATH deployment-adapter hook.
40
- registerBuildCompleteHooks(({ config, manifest }) =>
41
- runBuildCompleteAdapter(config, manifest),
42
- );
44
+ registerBuildCompleteHooks(({ config, manifest }) => runBuildCompleteAdapter(config, manifest))
43
45
  setCompatModeExtensions({
44
46
  nextEnabled: nextCompatEnabled,
45
47
  reactEnabled: reactCompatEnabled,
46
48
  reactCompilerOptions,
47
- });
49
+ })
48
50
  setBuildCompatExtensions({
49
51
  warnMetadataIssues: ({ appPath, routes, staticMetadataFiles }) =>
50
52
  warnNextMetadataBuildIssues(appPath, routes, staticMetadataFiles),
51
53
  nextOutputExport: () => getNextConfig().output === 'export',
52
54
  nextOutputMode: () => {
53
- const output = getNextConfig().output;
54
- return output === 'export' || output === 'standalone' ? output : undefined;
55
+ const output = getNextConfig().output
56
+ return output === 'export' || output === 'standalone' ? output : undefined
55
57
  },
56
58
  nextScriptWorkersEnabled: () => {
57
59
  const experimental = getNextConfig().experimental as
58
- | { nextScriptWorkers?: boolean }
59
- | undefined;
60
- return experimental?.nextScriptWorkers === true;
60
+ { nextScriptWorkers?: boolean } | undefined
61
+ return experimental?.nextScriptWorkers === true
61
62
  },
62
63
  defaultExpireTimeSeconds: () => {
63
- const expireTime = getNextConfig().expireTime;
64
- return typeof expireTime === 'number' ? expireTime : undefined;
64
+ const expireTime = getNextConfig().expireTime
65
+ return typeof expireTime === 'number' ? expireTime : undefined
65
66
  },
66
67
  withVaryParamsTracking,
67
68
  varyNamesFor: (vary, kind) => varyNamesFor(vary as ResponseVaryParams, kind),
@@ -71,11 +72,11 @@ export function registerBuildCompatExtensions(): void {
71
72
  // preload()/preconnect() hints recorded on the prerender's work unit
72
73
  // (capped by reactMaxHeadersLength). Static HITs replay it from the
73
74
  // manifest since no response finalizer runs for them.
74
- const fontValues = takeFontHeaderPreloads().map(fontLinkHeaderValue);
75
- const hintValue = takeResourceHintHeader();
76
- const values = [...fontValues, ...(hintValue ? [hintValue] : [])];
77
- if (values.length === 0) return undefined;
78
- return values.join(', ');
75
+ const fontValues = takeFontHeaderPreloads().map(fontLinkHeaderValue)
76
+ const hintValue = takeResourceHintHeader()
77
+ const values = [...fontValues, ...(hintValue ? [hintValue] : [])]
78
+ if (values.length === 0) return undefined
79
+ return values.join(', ')
79
80
  },
80
81
  normalizeStaticParamsModule: aliasGenerateStaticParams,
81
82
  defaultDynamicStaleTimeSeconds: DEFAULT_DYNAMIC_STALE_TIME_SECONDS,
@@ -87,12 +88,12 @@ export function registerBuildCompatExtensions(): void {
87
88
  treeSegmentFile,
88
89
  bodySegmentFile,
89
90
  segmentMetaFile,
90
- });
91
+ })
91
92
  }
92
93
 
93
94
  interface FunctionsConfigManifest {
94
- version: number;
95
- functions: Record<string, Record<string, unknown>>;
95
+ version: number
96
+ functions: Record<string, Record<string, unknown>>
96
97
  }
97
98
 
98
99
  /**
@@ -103,28 +104,28 @@ interface FunctionsConfigManifest {
103
104
  * nothing that probes it changes behavior.
104
105
  */
105
106
  async function writeRequiredServerFilesManifest(config: ResolvedConfig): Promise<void> {
106
- if (!nextCompatEnabled(config)) return;
107
- const id = deploymentId();
108
- if (!id) return;
109
- const outDir = path.join(config.root, '.next');
110
- await mkdir(outDir, { recursive: true });
107
+ if (!nextCompatEnabled(config)) return
108
+ const id = deploymentId()
109
+ if (!id) return
110
+ const outDir = path.join(config.root, '.next')
111
+ await mkdir(outDir, { recursive: true })
111
112
  await writeFile(
112
113
  path.join(outDir, 'required-server-files.json'),
113
114
  JSON.stringify({ version: 1, config: { deploymentId: id } }, null, 2),
114
- );
115
+ )
115
116
  }
116
117
 
117
118
  // Anchored on globalThis so the timestamp survives the module being loaded
118
119
  // twice (built copy vs. original) during a single build process.
119
- const traceBuildGlobal = globalThis as unknown as { __pnextBuildStartedAt?: number };
120
- traceBuildGlobal.__pnextBuildStartedAt ??= performance.now();
120
+ const traceBuildGlobal = globalThis as unknown as { __pnextBuildStartedAt?: number }
121
+ traceBuildGlobal.__pnextBuildStartedAt ??= performance.now()
121
122
 
122
123
  interface TraceEvent {
123
- name: string;
124
- id: number;
125
- traceId: string;
126
- duration: number;
127
- parentId?: number;
124
+ name: string
125
+ id: number
126
+ traceId: string
127
+ duration: number
128
+ parentId?: number
128
129
  }
129
130
 
130
131
  /**
@@ -134,9 +135,12 @@ interface TraceEvent {
134
135
  * so real timings are approximated rather than instrumented per-phase.
135
136
  */
136
137
  async function writeTraceBuildFile(config: ResolvedConfig): Promise<void> {
137
- if (!nextCompatEnabled(config)) return;
138
- const traceId = randomTraceId();
139
- const totalDuration = Math.max(1, performance.now() - (traceBuildGlobal.__pnextBuildStartedAt ?? 0));
138
+ if (!nextCompatEnabled(config)) return
139
+ const traceId = randomTraceId()
140
+ const totalDuration = Math.max(
141
+ 1,
142
+ performance.now() - (traceBuildGlobal.__pnextBuildStartedAt ?? 0),
143
+ )
140
144
  const events: TraceEvent[] = [
141
145
  { name: 'next-build', id: 1, traceId, duration: totalDuration },
142
146
  { name: 'run-webpack', id: 2, parentId: 1, traceId, duration: totalDuration * 0.4 },
@@ -145,38 +149,38 @@ async function writeTraceBuildFile(config: ResolvedConfig): Promise<void> {
145
149
  { name: 'static-generation', id: 5, parentId: 1, traceId, duration: totalDuration * 0.2 },
146
150
  { name: 'collect-build-traces', id: 6, parentId: 1, traceId, duration: totalDuration * 0.05 },
147
151
  { name: 'telemetry-flush', id: 7, parentId: 1, traceId, duration: 1 },
148
- ];
149
- const outDir = path.join(config.root, '.next');
150
- await mkdir(outDir, { recursive: true });
151
- await writeFile(path.join(outDir, 'trace-build'), `${JSON.stringify(events)}\n`);
152
+ ]
153
+ const outDir = path.join(config.root, '.next')
154
+ await mkdir(outDir, { recursive: true })
155
+ await writeFile(path.join(outDir, 'trace-build'), `${JSON.stringify(events)}\n`)
152
156
  }
153
157
 
154
158
  function randomTraceId(): string {
155
- return Array.from({ length: 16 }, () => Math.floor(Math.random() * 16).toString(16)).join('');
159
+ return Array.from({ length: 16 }, () => Math.floor(Math.random() * 16).toString(16)).join('')
156
160
  }
157
161
 
158
162
  async function writeFunctionsConfigManifest(
159
163
  outPath: string,
160
164
  manifest: BuildManifest,
161
165
  ): Promise<void> {
162
- const routes = manifest.routes.filter(route => route.maxDuration !== undefined);
163
- if (routes.length === 0) return;
166
+ const routes = manifest.routes.filter(route => route.maxDuration !== undefined)
167
+ if (routes.length === 0) return
164
168
 
165
- const file = path.join(outPath, 'server', 'functions-config-manifest.json');
166
- let current: FunctionsConfigManifest = { version: 1, functions: {} };
169
+ const file = path.join(outPath, 'server', 'functions-config-manifest.json')
170
+ let current: FunctionsConfigManifest = { version: 1, functions: {} }
167
171
  try {
168
- current = JSON.parse(await readFile(file, 'utf8')) as FunctionsConfigManifest;
172
+ current = JSON.parse(await readFile(file, 'utf8')) as FunctionsConfigManifest
169
173
  } catch {
170
- current = { version: 1, functions: {} };
174
+ current = { version: 1, functions: {} }
171
175
  }
172
176
  for (const route of routes) {
173
- const regions = preferredRegionForRoute(route);
177
+ const regions = preferredRegionForRoute(route)
174
178
  current.functions[route.route || '/'] = {
175
179
  ...(current.functions[route.route || '/'] ?? {}),
176
180
  maxDuration: route.maxDuration,
177
181
  ...(regions ? { regions } : {}),
178
- };
182
+ }
179
183
  }
180
- await mkdir(path.dirname(file), { recursive: true });
181
- await writeFile(file, `${JSON.stringify(current, null, 2)}\n`);
184
+ await mkdir(path.dirname(file), { recursive: true })
185
+ await writeFile(file, `${JSON.stringify(current, null, 2)}\n`)
182
186
  }