@wular/pnext 0.1.5 → 0.1.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 (302) hide show
  1. package/bin/pnext +9 -2
  2. package/dist/server/_chunks/aliases-j47a10ce.js +44 -0
  3. package/dist/server/_chunks/analyze-arswqe6s.js +445 -0
  4. package/dist/server/_chunks/boot-af0mv3dy.js +36 -0
  5. package/dist/server/_chunks/build-spy3dxp4.js +84 -0
  6. package/dist/server/_chunks/build-t9h0hec3.js +3550 -0
  7. package/dist/server/_chunks/build-tier-m7yvqz61.js +2472 -0
  8. package/dist/server/_chunks/compile-53j02j27.js +22 -0
  9. package/dist/server/_chunks/config-1yzwexq6.js +27 -0
  10. package/dist/server/_chunks/config-n2z7yxps.js +22 -0
  11. package/dist/server/_chunks/create-meec9hs6.js +134 -0
  12. package/dist/server/_chunks/dev-fjmqg6en.js +220 -0
  13. package/dist/server/_chunks/esbuild-yyktfrtt.js +15 -0
  14. package/dist/server/_chunks/generate-n9sh6hzt.js +21 -0
  15. package/dist/server/_chunks/index-0374j2b9.js +66 -0
  16. package/dist/server/_chunks/index-06nyqntx.js +213 -0
  17. package/dist/server/_chunks/index-1011cscr.js +5263 -0
  18. package/dist/server/_chunks/index-11sfk4hb.js +170 -0
  19. package/dist/server/_chunks/index-20ppawv7.js +297 -0
  20. package/dist/server/_chunks/index-2dv4y4wd.js +1065 -0
  21. package/dist/server/_chunks/index-2vz0wzdn.js +59 -0
  22. package/dist/server/_chunks/index-2wfv4kvx.js +182 -0
  23. package/dist/server/_chunks/index-357na4a8.js +109 -0
  24. package/dist/server/_chunks/index-3b3at80h.js +109 -0
  25. package/dist/server/_chunks/index-3tf1xjsp.js +6166 -0
  26. package/dist/server/_chunks/index-3xbr4eyv.js +105 -0
  27. package/dist/server/_chunks/index-4399bvd2.js +18 -0
  28. package/dist/server/_chunks/index-4hgjrqh7.js +851 -0
  29. package/dist/server/_chunks/index-4q2gbfwk.js +2530 -0
  30. package/dist/server/_chunks/index-4t92hdxd.js +172 -0
  31. package/dist/server/_chunks/index-4zzebszd.js +10 -0
  32. package/dist/server/_chunks/index-5gyr4emz.js +107 -0
  33. package/dist/server/_chunks/index-5hr4062s.js +70 -0
  34. package/dist/server/_chunks/index-68m3mwbd.js +84 -0
  35. package/dist/server/_chunks/index-6b009mt0.js +56 -0
  36. package/dist/server/_chunks/index-6e4fqv30.js +588 -0
  37. package/dist/server/_chunks/index-6gex3pfa.js +15 -0
  38. package/dist/server/_chunks/index-6kp9r0d9.js +11 -0
  39. package/dist/server/_chunks/index-6q7zvrap.js +134 -0
  40. package/dist/server/_chunks/index-73z4esab.js +38 -0
  41. package/dist/server/_chunks/index-79ngvam8.js +60 -0
  42. package/dist/server/_chunks/index-7wc9n8be.js +25 -0
  43. package/dist/server/_chunks/index-8k7pfejn.js +1599 -0
  44. package/dist/server/_chunks/index-8kcxdfya.js +206 -0
  45. package/dist/server/_chunks/index-91x12ykq.js +274 -0
  46. package/dist/server/_chunks/index-9ch50vtq.js +18 -0
  47. package/dist/server/_chunks/index-9hx2641q.js +28 -0
  48. package/dist/server/_chunks/index-9n2914ww.js +535 -0
  49. package/dist/server/_chunks/index-9ych9ma8.js +207 -0
  50. package/dist/server/_chunks/index-b6wtkdp4.js +24 -0
  51. package/dist/server/_chunks/index-bcws5eh2.js +35 -0
  52. package/dist/server/_chunks/index-c0g2wf3z.js +92 -0
  53. package/dist/server/_chunks/index-cf4rvxv6.js +95 -0
  54. package/dist/server/_chunks/index-cjgqs13g.js +65 -0
  55. package/dist/server/_chunks/index-ckkdpht5.js +41 -0
  56. package/dist/server/_chunks/index-cyfednwb.js +87 -0
  57. package/dist/server/_chunks/index-danncfhy.js +311 -0
  58. package/dist/server/_chunks/index-dg0f05zs.js +199 -0
  59. package/dist/server/_chunks/index-e3a6yx84.js +18 -0
  60. package/dist/server/_chunks/index-e88tyv35.js +45 -0
  61. package/dist/server/_chunks/index-eajaspjk.js +1253 -0
  62. package/dist/server/_chunks/index-eeaanp2e.js +483 -0
  63. package/dist/server/_chunks/index-egykcqg3.js +101 -0
  64. package/dist/server/_chunks/index-en7n9f7m.js +22 -0
  65. package/dist/server/_chunks/index-ezgj0tr1.js +88 -0
  66. package/dist/server/_chunks/index-fkp000p1.js +590 -0
  67. package/dist/server/_chunks/index-fn1chkkd.js +214 -0
  68. package/dist/server/_chunks/index-fp8r0sqs.js +64 -0
  69. package/dist/server/_chunks/index-ggk2j965.js +9432 -0
  70. package/dist/server/_chunks/index-grta8ap3.js +238 -0
  71. package/dist/server/_chunks/index-h2a70tg4.js +7 -0
  72. package/dist/server/_chunks/index-h4xy648y.js +51 -0
  73. package/dist/server/_chunks/index-hkdfj58q.js +92 -0
  74. package/dist/server/_chunks/index-j2zrcp1k.js +66 -0
  75. package/dist/server/_chunks/index-jcsjq3d1.js +20 -0
  76. package/dist/server/_chunks/index-jepjvcrf.js +198 -0
  77. package/dist/server/_chunks/index-jks0x0a1.js +14 -0
  78. package/dist/server/_chunks/index-jx7bqvw1.js +57 -0
  79. package/dist/server/_chunks/index-k1g3epw0.js +1299 -0
  80. package/dist/server/_chunks/index-knp0s912.js +7 -0
  81. package/dist/server/_chunks/index-kq8kpzye.js +472 -0
  82. package/dist/server/_chunks/index-kqyy1d4f.js +50 -0
  83. package/dist/server/_chunks/index-kresp2n8.js +445 -0
  84. package/dist/server/_chunks/index-ms9v9tnx.js +31 -0
  85. package/dist/server/_chunks/index-n4hxpng2.js +11 -0
  86. package/dist/server/_chunks/index-ncnes8c6.js +17 -0
  87. package/dist/server/_chunks/index-nqh3xhdc.js +57 -0
  88. package/dist/server/_chunks/index-nyrba2kr.js +4130 -0
  89. package/dist/server/_chunks/index-p77b4kcx.js +296 -0
  90. package/dist/server/_chunks/index-pym1cezq.js +39 -0
  91. package/dist/server/_chunks/index-q738kkhj.js +100 -0
  92. package/dist/server/_chunks/index-qjj6gddn.js +54 -0
  93. package/dist/server/_chunks/index-qm6kmhqs.js +110 -0
  94. package/dist/server/_chunks/index-qn4z5s3c.js +819 -0
  95. package/dist/server/_chunks/index-qpwsgt3a.js +158 -0
  96. package/dist/server/_chunks/index-r97ptz1q.js +97 -0
  97. package/dist/server/_chunks/index-ras0sdab.js +26 -0
  98. package/dist/server/_chunks/index-rcs322t1.js +19 -0
  99. package/dist/server/_chunks/index-rn8dyr1f.js +126 -0
  100. package/dist/server/_chunks/index-rt9qq1va.js +4 -0
  101. package/dist/server/_chunks/index-rthrsed5.js +356 -0
  102. package/dist/server/_chunks/index-sctcgyvv.js +185 -0
  103. package/dist/server/_chunks/index-sjpckxqn.js +213 -0
  104. package/dist/server/_chunks/index-sq3kvz3g.js +200 -0
  105. package/dist/server/_chunks/index-stbk3jhn.js +31 -0
  106. package/dist/server/_chunks/index-sv8m6789.js +266 -0
  107. package/dist/server/_chunks/index-tgcakdxc.js +125 -0
  108. package/dist/server/_chunks/index-tgsfjmep.js +74 -0
  109. package/dist/server/_chunks/index-tq0pc7eg.js +154 -0
  110. package/dist/server/_chunks/index-tq1f96v7.js +51 -0
  111. package/dist/server/_chunks/index-tqn2qnnn.js +241 -0
  112. package/dist/server/_chunks/index-tvqkq6e6.js +128 -0
  113. package/dist/server/_chunks/index-v1ags1na.js +132 -0
  114. package/dist/server/_chunks/index-vvmmknm1.js +1431 -0
  115. package/dist/server/_chunks/index-vvq7rqtn.js +329 -0
  116. package/dist/server/_chunks/index-vz0km5qk.js +33 -0
  117. package/dist/server/_chunks/index-w6h8m6vp.js +138 -0
  118. package/dist/server/_chunks/index-web361b8.js +138 -0
  119. package/dist/server/_chunks/index-wpfhfbs4.js +194 -0
  120. package/dist/server/_chunks/index-x0y005nh.js +283 -0
  121. package/dist/server/_chunks/index-x3yn4ywm.js +22 -0
  122. package/dist/server/_chunks/index-x93hv0sc.js +271 -0
  123. package/dist/server/_chunks/index-xvj80c3a.js +30 -0
  124. package/dist/server/_chunks/index-xywjg2vc.js +100 -0
  125. package/dist/server/_chunks/index-y2jr2n72.js +152 -0
  126. package/dist/server/_chunks/index-y36a0ybw.js +57 -0
  127. package/dist/server/_chunks/index-ye9hmsvf.js +47 -0
  128. package/dist/server/_chunks/index-yhxkxghe.js +56 -0
  129. package/dist/server/_chunks/index-ym67zqxp.js +130 -0
  130. package/dist/server/_chunks/index-ytjvpbm2.js +736 -0
  131. package/dist/server/_chunks/index-yz54pxrh.js +960 -0
  132. package/dist/server/_chunks/index-z4z9zv3b.js +733 -0
  133. package/dist/server/_chunks/index-z84ab1w0.js +1270 -0
  134. package/dist/server/_chunks/index-z88qv16t.js +11 -0
  135. package/dist/server/_chunks/index-zqpqyg8p.js +666 -0
  136. package/dist/server/_chunks/loader-7yw0j98z.js +78 -0
  137. package/dist/server/_chunks/modules-jn8bmbn8.js +74 -0
  138. package/dist/server/_chunks/pipeline-yy9jhydf.js +832 -0
  139. package/dist/server/_chunks/production-jar9ztm3.js +44 -0
  140. package/dist/server/_chunks/proxy-config-j84dgksn.js +21 -0
  141. package/dist/server/_chunks/proxy-w1d0wmsn.js +33 -0
  142. package/dist/server/_chunks/router-k1reahfn.js +498 -0
  143. package/dist/server/_chunks/routes-2s277fc6.js +64 -0
  144. package/dist/server/_chunks/run-pvd8bs1t.js +696 -0
  145. package/dist/server/_chunks/server-mt4a994c.js +1835 -0
  146. package/dist/server/_chunks/tsconfig-defaults-1nb3308g.js +20 -0
  147. package/dist/server/_chunks/typegen-0qr0459b.js +35 -0
  148. package/dist/server/api/client-cache.js +14 -0
  149. package/dist/server/cli/index.js +378 -0
  150. package/dist/server/cli/start.js +137 -0
  151. package/dist/server/client/reference.js +16 -0
  152. package/dist/server/compat/next/cache.js +56 -0
  153. package/dist/server/compat/next/canonical-url.js +13 -0
  154. package/dist/server/compat/next/client-cache.js +57 -0
  155. package/dist/server/compat/next/client-navigation.js +232 -0
  156. package/dist/server/compat/next/client-only.js +1 -0
  157. package/dist/server/compat/next/client-script.js +178 -0
  158. package/dist/server/compat/next/client-server.js +34 -0
  159. package/dist/server/compat/next/config-headers.js +32 -0
  160. package/dist/server/compat/next/config-loader.js +25 -0
  161. package/dist/server/compat/next/config.js +10 -0
  162. package/dist/server/compat/next/constants.js +18 -0
  163. package/dist/server/compat/next/custom-server.js +10 -0
  164. package/dist/server/compat/next/dist/client/components/app-router-headers.js +48 -0
  165. package/dist/server/compat/next/dist/server/web/spec-extension/revalidate.js +27 -0
  166. package/dist/server/compat/next/dist/server/web/spec-extension/unstable-cache.js +25 -0
  167. package/dist/server/compat/next/dist/server/web/spec-extension/unstable-no-store.js +25 -0
  168. package/dist/server/compat/next/dynamic.js +32 -0
  169. package/dist/server/compat/next/error.js +112 -0
  170. package/dist/server/compat/next/font/cache.js +14 -0
  171. package/dist/server/compat/next/font/google.js +3 -0
  172. package/dist/server/compat/next/font/index.js +1 -0
  173. package/dist/server/compat/next/font/local.js +22 -0
  174. package/dist/server/compat/next/font/runtime-client.js +33 -0
  175. package/dist/server/compat/next/font/runtime.js +41 -0
  176. package/dist/server/compat/next/font/shared.js +22 -0
  177. package/dist/server/compat/next/form.js +129 -0
  178. package/dist/server/compat/next/head.js +10 -0
  179. package/dist/server/compat/next/headers.js +30 -0
  180. package/dist/server/compat/next/image/client.js +11 -0
  181. package/dist/server/compat/next/image/config.js +18 -0
  182. package/dist/server/compat/next/image/optimizer.js +25 -0
  183. package/dist/server/compat/next/image/patterns.js +12 -0
  184. package/dist/server/compat/next/image/props.js +16 -0
  185. package/dist/server/compat/next/image/shared.js +86 -0
  186. package/dist/server/compat/next/image/static-metadata.js +32 -0
  187. package/dist/server/compat/next/image/validate.js +8 -0
  188. package/dist/server/compat/next/image.js +59 -0
  189. package/dist/server/compat/next/index.js +1 -0
  190. package/dist/server/compat/next/legacy-image.js +78 -0
  191. package/dist/server/compat/next/legacy-request-apis.js +24 -0
  192. package/dist/server/compat/next/link-transform.js +14 -0
  193. package/dist/server/compat/next/link.js +14 -0
  194. package/dist/server/compat/next/navigation.js +190 -0
  195. package/dist/server/compat/next/offline.js +45 -0
  196. package/dist/server/compat/next/og.js +8 -0
  197. package/dist/server/compat/next/preferred-region.js +8 -0
  198. package/dist/server/compat/next/redirects.js +30 -0
  199. package/dist/server/compat/next/resource-hints.js +30 -0
  200. package/dist/server/compat/next/rewrites.js +41 -0
  201. package/dist/server/compat/next/root-params.js +121 -0
  202. package/dist/server/compat/next/route-state.js +23 -0
  203. package/dist/server/compat/next/router.js +103 -0
  204. package/dist/server/compat/next/script.js +37 -0
  205. package/dist/server/compat/next/server-only.js +1 -0
  206. package/dist/server/compat/next/server.js +131 -0
  207. package/dist/server/compat/next/svgr.js +14 -0
  208. package/dist/server/compat/next/telemetry.js +10 -0
  209. package/dist/server/compat/next/usage.js +13 -0
  210. package/dist/server/compat/next/user-agent.js +12 -0
  211. package/dist/server/compat/next/web-vitals.js +35 -0
  212. package/dist/server/compat/react/action-state.js +11 -0
  213. package/dist/server/compat/react/client-lite.js +83 -0
  214. package/dist/server/compat/react/client.js +131 -0
  215. package/dist/server/compat/react/compiler-runtime.js +42 -0
  216. package/dist/server/compat/react/dom-client.js +106 -0
  217. package/dist/server/compat/react/dom-react-server.js +37 -0
  218. package/dist/server/compat/react/dom-server.js +40 -0
  219. package/dist/server/compat/react/dom.js +52 -0
  220. package/dist/server/compat/react/hooks-extra.js +12 -0
  221. package/dist/server/compat/react/internals.js +14 -0
  222. package/dist/server/compat/react/parity.js +11 -0
  223. package/dist/server/compat/react/preact.js +113 -0
  224. package/dist/server/compat/react/react-server.js +133 -0
  225. package/dist/server/compat/react/router-shim.js +8 -0
  226. package/dist/server/compat/react/server-component-use.js +14 -0
  227. package/dist/server/compat/react/server-inserted-html.js +14 -0
  228. package/dist/server/compat/react/server.js +194 -0
  229. package/dist/server/compat/react/style-values.js +10 -0
  230. package/dist/server/compat/react/use.js +10 -0
  231. package/dist/server/compat/react/view-transition.js +12 -0
  232. package/dist/server/generation.json +1 -0
  233. package/package.json +4 -1
  234. package/src/api/dynamic.tsx +2 -0
  235. package/src/api/server.ts +24 -6
  236. package/src/cli/adapters/vercel-warm.ts +315 -61
  237. package/src/cli/adapters/vercel.ts +348 -71
  238. package/src/cli/build.ts +58 -33
  239. package/src/cli/index.ts +23 -10
  240. package/src/cli/serve/entry.ts +21 -159
  241. package/src/cli/serve/immutable.ts +31 -0
  242. package/src/cli/serve/pipeline.ts +82 -84
  243. package/src/cli/start.ts +3 -1
  244. package/src/client/chunk-fold.ts +19 -6
  245. package/src/client/react-tier.ts +3 -2
  246. package/src/client/reference-stub.ts +21 -2
  247. package/src/compat/actions/client-plugin.ts +4 -2
  248. package/src/compat/actions/config.ts +6 -5
  249. package/src/compat/actions/extensions.ts +2 -3
  250. package/src/compat/aliases.ts +8 -1
  251. package/src/compat/bundler/config.ts +88 -0
  252. package/src/compat/bundler/optimize-package-imports.ts +86 -26
  253. package/src/compat/bundler/relay-transform.ts +15 -3
  254. package/src/compat/cache-control.ts +16 -8
  255. package/src/compat/css/modules.ts +18 -5
  256. package/src/compat/lifecycle/error-funnel.ts +1 -1
  257. package/src/compat/lifecycle/instrumentation.ts +117 -24
  258. package/src/compat/lifecycle/testmode.ts +3 -2
  259. package/src/compat/next/config-loader.ts +137 -13
  260. package/src/compat/next/font/runtime.ts +22 -2
  261. package/src/compat/next/og.ts +3 -3
  262. package/src/compat/next/usage.ts +3 -2
  263. package/src/compat/pages/api.ts +83 -14
  264. package/src/compat/pages/router.ts +30 -14
  265. package/src/compat/register/bundler.ts +3 -1
  266. package/src/compat/register/middleware.ts +1 -1
  267. package/src/compat/register/otel.ts +5 -9
  268. package/src/compat/register/render.ts +3 -1
  269. package/src/compat/register/use-cache.ts +3 -1
  270. package/src/compat/release.ts +46 -0
  271. package/src/compat/segment/serve.ts +1 -1
  272. package/src/compat/validation/validate.ts +10 -7
  273. package/src/config.ts +51 -7
  274. package/src/css/assets.ts +213 -0
  275. package/src/css/build.ts +174 -238
  276. package/src/dev/server.ts +27 -8
  277. package/src/extensions.ts +4 -0
  278. package/src/render/hooks.ts +13 -0
  279. package/src/render/renderer.ts +52 -32
  280. package/src/request/context.ts +9 -0
  281. package/src/resolve/dynamic.ts +3 -1
  282. package/src/resolve/imports.ts +12 -52
  283. package/src/resolve/package-json.ts +56 -0
  284. package/src/resolve/scan-facts.ts +65 -0
  285. package/src/routing/href.ts +10 -3
  286. package/src/routing/match.ts +287 -0
  287. package/src/routing/metadata-files.ts +19 -5
  288. package/src/routing/proxy-config.ts +137 -0
  289. package/src/routing/proxy.ts +35 -134
  290. package/src/routing/routes.ts +22 -281
  291. package/src/runtime/fingerprint.ts +23 -8
  292. package/src/runtime/load.ts +170 -0
  293. package/src/runtime/loader.ts +215 -43
  294. package/src/runtime/module-cache.ts +13 -0
  295. package/src/runtime/modules.ts +370 -81
  296. package/src/runtime/prebundle.ts +81 -0
  297. package/src/runtime/production.ts +391 -0
  298. package/src/runtime/release-graph.ts +334 -0
  299. package/src/runtime/vendor-build.ts +724 -13
  300. package/src/runtime/vendor.ts +16 -3
  301. package/src/types.ts +2 -0
  302. package/src/utils/fs.ts +89 -3
@@ -0,0 +1,535 @@
1
+ // @bun
2
+ import {
3
+ cacheHandlerRevalidateTag
4
+ } from "./index-bcws5eh2.js";
5
+ import {
6
+ getNextConfig
7
+ } from "./index-6e4fqv30.js";
8
+ import {
9
+ currentRequest,
10
+ getWorkUnit
11
+ } from "./index-grta8ap3.js";
12
+ import {
13
+ realNow,
14
+ trackPrerenderCacheFill
15
+ } from "./index-kresp2n8.js";
16
+ import {
17
+ escapeRegex
18
+ } from "./index-qjj6gddn.js";
19
+
20
+ // src/compat/cache/revalidate.ts
21
+ import { AsyncLocalStorage } from "async_hooks";
22
+
23
+ // src/compat/cache/modern-handler.ts
24
+ import { existsSync, readFileSync } from "fs";
25
+ import { createRequire } from "module";
26
+ import path from "path";
27
+ import { format } from "util";
28
+ import { fileURLToPath, pathToFileURL } from "url";
29
+ var MODERN_CACHE_HANDLER_STATE = Symbol.for("pnext.compat.modernCacheHandler");
30
+ function state() {
31
+ const global = globalThis;
32
+ return global[MODERN_CACHE_HANDLER_STATE] ??= {};
33
+ }
34
+ function installModernCacheHandlers(root) {
35
+ const configured = defaultCacheHandlerPath();
36
+ const current = state();
37
+ if (!configured) {
38
+ current.handler = undefined;
39
+ current.installedFor = undefined;
40
+ return;
41
+ }
42
+ const filePath = resolveHandlerPath(configured, root);
43
+ if (current.installedFor === filePath)
44
+ return;
45
+ const loaded = loadHandler(filePath, root);
46
+ if (!loaded)
47
+ return;
48
+ current.handler = loaded;
49
+ current.installedFor = filePath;
50
+ }
51
+ async function modernCacheUpdateTags(tags, durations) {
52
+ const handler = state().handler;
53
+ const updateTags = handler?.updateTags;
54
+ if (!handler || !updateTags)
55
+ return;
56
+ try {
57
+ await withNodeConsoleFormat(() => updateTags.call(handler, tags, durations));
58
+ } catch {}
59
+ }
60
+ async function withNodeConsoleFormat(fn) {
61
+ const original = console.log.bind(console);
62
+ console.log = (...args) => {
63
+ original(format(...args));
64
+ };
65
+ try {
66
+ return await fn();
67
+ } finally {
68
+ console.log = original;
69
+ }
70
+ }
71
+ function defaultCacheHandlerPath() {
72
+ const cacheHandlers = getNextConfig().cacheHandlers;
73
+ if (!cacheHandlers || typeof cacheHandlers !== "object" || Array.isArray(cacheHandlers))
74
+ return;
75
+ const configured = cacheHandlers.default;
76
+ return typeof configured === "string" && configured.length > 0 ? configured : undefined;
77
+ }
78
+ function resolveHandlerPath(configured, root) {
79
+ const resolved = configured.startsWith("file:") ? fileURLToPath(configured) : configured;
80
+ if (path.isAbsolute(resolved))
81
+ return resolved;
82
+ return path.resolve(root, resolved);
83
+ }
84
+ function loadHandler(filePath, root) {
85
+ if (!existsSync(filePath))
86
+ return;
87
+ try {
88
+ const require2 = createRequire(pathToFileURL(`${root}/index.js`).href);
89
+ try {
90
+ return pickHandler(require2(filePath));
91
+ } catch (error) {
92
+ if (!isNextDistMissing(error))
93
+ return;
94
+ return loadCommonJsHandlerWithNextStubs(filePath, require2);
95
+ }
96
+ } catch {
97
+ return;
98
+ }
99
+ }
100
+ function loadCommonJsHandlerWithNextStubs(filePath, rootRequire) {
101
+ try {
102
+ const module = { exports: {} };
103
+ const localRequire = (specifier) => {
104
+ if (specifier === "next/dist/server/lib/cache-handlers/default.external") {
105
+ return { default: createDefaultExternalHandler() };
106
+ }
107
+ if (specifier.startsWith("next/dist/"))
108
+ return {};
109
+ if (specifier.startsWith("./") || specifier.startsWith("../")) {
110
+ return rootRequire(path.resolve(path.dirname(filePath), specifier));
111
+ }
112
+ return rootRequire(specifier);
113
+ };
114
+ const source = readFileSync(filePath, "utf8");
115
+ const evaluate = new Function("require", "module", "exports", "__filename", "__dirname", source);
116
+ evaluate(localRequire, module, module.exports, filePath, path.dirname(filePath));
117
+ return pickHandler(module.exports);
118
+ } catch {
119
+ return;
120
+ }
121
+ }
122
+ function isNextDistMissing(error) {
123
+ const message = error.message;
124
+ return typeof message === "string" && message.includes("next/dist/");
125
+ }
126
+ function pickHandler(mod) {
127
+ const candidate = mod && typeof mod === "object" && "default" in mod ? mod.default : mod;
128
+ return candidate && typeof candidate === "object" ? candidate : undefined;
129
+ }
130
+ function createDefaultExternalHandler() {
131
+ const entries = new Map;
132
+ const tagExpirations = new Map;
133
+ return {
134
+ get(cacheKey) {
135
+ return entries.get(cacheKey);
136
+ },
137
+ async set(cacheKey, pendingEntry) {
138
+ entries.set(cacheKey, await pendingEntry);
139
+ },
140
+ refreshTags() {
141
+ return;
142
+ },
143
+ getExpiration(tags) {
144
+ let value = 0;
145
+ for (const tag of tags)
146
+ value = Math.max(value, tagExpirations.get(tag) ?? 0);
147
+ return value;
148
+ },
149
+ updateTags(tags) {
150
+ const now = realNow();
151
+ for (const tag of tags)
152
+ tagExpirations.set(tag, now);
153
+ }
154
+ };
155
+ }
156
+
157
+ // src/compat/cache/build-prerender-errors.ts
158
+ var PRERENDER_ERROR_GLOBALS = Symbol.for("pnext.compat.prerenderErrorGlobals");
159
+ function state2() {
160
+ const root = globalThis;
161
+ return root[PRERENDER_ERROR_GLOBALS] ??= { collected: [], armed: false };
162
+ }
163
+ function beginPrerenderErrorCollection() {
164
+ const s = state2();
165
+ s.collected.length = 0;
166
+ s.armed = true;
167
+ }
168
+ function endPrerenderErrorCollection() {
169
+ const s = state2();
170
+ s.armed = false;
171
+ const out = s.collected.slice();
172
+ s.collected.length = 0;
173
+ return out;
174
+ }
175
+ function prerenderErrorCollectionActive() {
176
+ return state2().armed;
177
+ }
178
+ function recordPrerenderError(error) {
179
+ const s = state2();
180
+ if (!s.armed)
181
+ return;
182
+ const collected = s.collected;
183
+ if (collected.some((e) => e.kind === error.kind && e.route === error.route))
184
+ return;
185
+ collected.push(error);
186
+ console.error(error.consoleBlock);
187
+ if (error.route) {
188
+ console.error(`Error occurred prerendering page "${error.route}".`);
189
+ }
190
+ }
191
+ var USE_CACHE_HANGING_MESSAGE = "Filling a cache during prerender timed out, likely because request-specific " + "arguments such as params, searchParams, cookies() or dynamic data were used " + 'inside "use cache".';
192
+ var USE_CACHE_CLOSE_OVER_FUNCTION_MESSAGE = "Functions cannot be passed directly to Client Components unless you " + 'explicitly expose it by marking it with "use server". Or maybe you meant to ' + "call this function rather than return it.";
193
+ var USE_CACHE_CLOSE_OVER_FUNCTION_BLOCK = `
194
+ Error: ${USE_CACHE_CLOSE_OVER_FUNCTION_MESSAGE}` + `
195
+ [function]` + `
196
+ ^^^^^^^^`;
197
+ function unstableCacheDynamicApiMessage(route, api) {
198
+ return `Route ${route} used \`${api}\` inside a function cached with ` + "`unstable_cache()`. Accessing Dynamic data sources inside a cache scope is " + `not supported. If you need this data inside a cached function use \`${api}\` ` + "outside of the cached function and pass the required dynamic data in as an " + "argument. See more info here: " + "https://nextjs.org/docs/app/api-reference/functions/unstable_cache";
199
+ }
200
+ function useCacheDynamicApiMessage(route, api) {
201
+ return `Route ${route} used \`${api}\` inside "use cache". Accessing Dynamic data ` + "sources inside a cache scope is not supported. If you need this data inside " + `a cached function use \`${api}\` outside of the cached function and pass the ` + "required dynamic data in as an argument. See more info here: " + "https://nextjs.org/docs/messages/next-request-in-use-cache";
202
+ }
203
+
204
+ // src/compat/cache/revalidate.ts
205
+ function draftModeBypassActive() {
206
+ return currentRequest()?.cookies?.has("__prerender_bypass") ?? false;
207
+ }
208
+ var REVALIDATE_GLOBALS = Symbol.for("pnext.compat.revalidateGlobals");
209
+ var USE_CACHE_ENTRIES = Symbol.for("pnext.compat.useCacheEntries");
210
+ function revalidateGlobal(name, create) {
211
+ const root = globalThis;
212
+ const container = root[REVALIDATE_GLOBALS] ??= {};
213
+ if (!(name in container))
214
+ container[name] = create();
215
+ return container[name];
216
+ }
217
+ var revalidatedPaths = revalidateGlobal("revalidatedPaths", () => new Map);
218
+ var revalidatedPathReasons = revalidateGlobal("revalidatedPathReasons", () => new Map);
219
+ var revalidatedTags = revalidateGlobal("revalidatedTags", () => new Map);
220
+ var counters = revalidateGlobal("counters", () => ({ tagSeq: 0, lastPathAt: 0, events: 0 }));
221
+ var revalidatedTagSeq = revalidateGlobal("revalidatedTagSeq", () => new Map);
222
+ var revalidatedTagReasons = revalidateGlobal("revalidatedTagReasons", () => new Map);
223
+ var staleTags = revalidateGlobal("staleTags", () => new Map);
224
+ var dataCacheInvalidators = revalidateGlobal("dataCacheInvalidators", () => new Set);
225
+ var revalidationInvalidators = revalidateGlobal("revalidationInvalidators", () => new Set);
226
+ function evictUseCacheEntries(invalidation) {
227
+ const entries = globalThis[USE_CACHE_ENTRIES];
228
+ if (!entries || invalidation.kind === "tag" && invalidation.stale)
229
+ return;
230
+ for (const [key, entry] of entries) {
231
+ const matches = invalidation.kind === "tag" ? entry.tags.includes(invalidation.tag) : pathScopeRevalidated(entry.route, entry.storedAt);
232
+ if (matches)
233
+ entries.delete(key);
234
+ }
235
+ }
236
+ var revalidatedPatterns = revalidateGlobal("revalidatedPatterns", () => []);
237
+ var revalidatedPatternsLimit = 256;
238
+ function revalidationEventCount() {
239
+ return counters.events;
240
+ }
241
+ function bumpRevalidationEvent() {
242
+ counters.events += 1;
243
+ }
244
+ function normalizeRevalidatePath(path2) {
245
+ let pathname = path2.split("?")[0] ?? path2;
246
+ try {
247
+ pathname = decodeURI(pathname);
248
+ } catch {}
249
+ const trimmed = pathname.replace(/\/+$/, "");
250
+ return trimmed === "" ? "/" : trimmed;
251
+ }
252
+ function markPathRevalidated(path2, type) {
253
+ counters.events += 1;
254
+ counters.lastPathAt = Date.now();
255
+ const normalized = normalizeRevalidatePath(path2);
256
+ modernCacheUpdateTags([`_N_T_${normalized}`]);
257
+ const reason = getWorkUnit()?.phase === "action" ? "stale" : "on-demand";
258
+ if (normalized.includes("[") || type === "layout") {
259
+ const source = normalized.split("/").map((segment) => /^\[?\[\.\.\./.test(segment) ? ".+" : segment.startsWith("[") ? "[^/]+" : escapeRegex(segment)).join("/");
260
+ const base = normalized === "/" ? "" : source;
261
+ const regex = type === "layout" ? new RegExp(`^${base}(?:/.*)?$`) : new RegExp(`^${source}$`);
262
+ revalidatedPatterns.push({ regex, at: Date.now(), reason });
263
+ if (revalidatedPatterns.length > revalidatedPatternsLimit)
264
+ revalidatedPatterns.shift();
265
+ const invalidation2 = { kind: "path", path: normalized };
266
+ evictUseCacheEntries(invalidation2);
267
+ notifyRevalidationInvalidators(invalidation2);
268
+ return;
269
+ }
270
+ revalidatedPaths.set(normalized, Date.now());
271
+ revalidatedPathReasons.set(normalized, reason);
272
+ const invalidation = { kind: "path", path: normalized };
273
+ evictUseCacheEntries(invalidation);
274
+ notifyRevalidationInvalidators(invalidation);
275
+ }
276
+ function markTagRevalidated(tag) {
277
+ counters.events += 1;
278
+ revalidatedTags.set(tag, Date.now());
279
+ revalidatedTagSeq.set(tag, ++counters.tagSeq);
280
+ revalidatedTagReasons.set(tag, getWorkUnit()?.phase === "action" ? "stale" : "on-demand");
281
+ cacheHandlerRevalidateTag(tag);
282
+ modernCacheUpdateTags([tag]);
283
+ const invalidation = { kind: "tag", tag, stale: false };
284
+ evictUseCacheEntries(invalidation);
285
+ notifyRevalidationInvalidators(invalidation);
286
+ }
287
+ function markTagStale(tag) {
288
+ staleTags.set(tag, Date.now());
289
+ cacheHandlerRevalidateTag(tag);
290
+ modernCacheUpdateTags([tag]);
291
+ notifyRevalidationInvalidators({ kind: "tag", tag, stale: true });
292
+ }
293
+ function markedAfter(at, time) {
294
+ return at !== undefined && at >= Math.trunc(time) && at > time - 1;
295
+ }
296
+ function pathRevalidatedSince(path2, time) {
297
+ const normalized = normalizeRevalidatePath(path2);
298
+ if (markedAfter(revalidatedPaths.get(normalized), time))
299
+ return true;
300
+ return revalidatedPatterns.some((pattern) => markedAfter(pattern.at, time) && pattern.regex.test(normalized));
301
+ }
302
+ function pathRevalidationReasonSince(path2, time) {
303
+ const normalized = normalizeRevalidatePath(path2);
304
+ if (markedAfter(revalidatedPaths.get(normalized), time)) {
305
+ return revalidatedPathReasons.get(normalized) ?? "on-demand";
306
+ }
307
+ return revalidatedPatterns.find((pattern) => markedAfter(pattern.at, time) && pattern.regex.test(normalized))?.reason;
308
+ }
309
+ function pathScopeRevalidated(route, time) {
310
+ if (route === undefined)
311
+ return markedAfter(counters.lastPathAt || undefined, time);
312
+ return pathRevalidatedSince(route, time);
313
+ }
314
+ function tagsRevalidatedSince(tags, time) {
315
+ return tags.some((tag) => markedAfter(revalidatedTags.get(tag), time));
316
+ }
317
+ function currentTagRevalidationSeq() {
318
+ return counters.tagSeq;
319
+ }
320
+ function rdcProcessId() {
321
+ return revalidateGlobal("rdcProcessId", () => `${process.pid}:${Date.now()}:${Math.random().toString(36).slice(2)}`);
322
+ }
323
+ function rebaseRdcTagSeq(record) {
324
+ if (record.pid !== rdcProcessId())
325
+ return 0;
326
+ return Math.min(record.tagSeq, counters.tagSeq);
327
+ }
328
+ function tagsRevalidatedAfterSeq(tags, seq) {
329
+ return tags.some((tag) => (revalidatedTagSeq.get(tag) ?? 0) > seq);
330
+ }
331
+ function tagsRevalidationReasonSince(tags, time) {
332
+ for (const tag of tags) {
333
+ if (markedAfter(revalidatedTags.get(tag), time)) {
334
+ return revalidatedTagReasons.get(tag) ?? "on-demand";
335
+ }
336
+ }
337
+ return;
338
+ }
339
+ function tagsStaleSince(tags, time) {
340
+ return tags.some((tag) => markedAfter(staleTags.get(tag), time));
341
+ }
342
+ var dataCache = revalidateGlobal("dataCache", () => new Map);
343
+ var dataCacheLimit = 1024;
344
+ function dataCacheEntryExpired(entry) {
345
+ return entry.revalidateSeconds !== undefined && realNow() - entry.storedAt >= entry.revalidateSeconds * 1000;
346
+ }
347
+ function cachedData(key, produce, options = {}) {
348
+ if (draftModeBypassActive())
349
+ return produce();
350
+ const entry = dataCache.get(key);
351
+ const meta = cacheMetaStorage.getStore();
352
+ const refresh = meta?.refreshFetches === true && entry?.refreshedIn !== meta && entry !== undefined && (tagsRevalidatedSince(entry.tags, entry.storedAt) || pathScopeRevalidated(entry.route, entry.storedAt) || tagsStaleSince(entry.tags, entry.storedAt) || dataCacheEntryExpired(entry));
353
+ if (entry && !refresh && !tagsRevalidatedSince(entry.tags, entry.storedAt) && !pathScopeRevalidated(entry.route, entry.storedAt)) {
354
+ recordCacheTags(entry.tags);
355
+ if (entry.revalidateSeconds !== undefined) {
356
+ recordCacheRevalidate(entry.revalidateSeconds);
357
+ }
358
+ const tagStale = tagsStaleSince(entry.tags, entry.storedAt);
359
+ if (!tagStale && !dataCacheEntryExpired(entry))
360
+ return entry.value;
361
+ if (cacheMetaStorage.getStore()?.blockingStaleFetches !== true) {
362
+ if (!entry.refreshing) {
363
+ entry.refreshing = true;
364
+ storeDataCacheEntry(key, produce, options, entry);
365
+ }
366
+ return entry.value;
367
+ }
368
+ }
369
+ return storeDataCacheEntry(key, produce, options);
370
+ }
371
+ function storeDataCacheEntry(key, produce, options, serveStale) {
372
+ const parentProducerTags = producerTagsStorage.getStore();
373
+ const producerTags = new Set(options.tags ?? []);
374
+ const value = producerTagsStorage.run(producerTags, () => runInsideUnstableCacheProducer(produce));
375
+ trackPrerenderCacheFill(value);
376
+ const producingMeta = cacheMetaStorage.getStore();
377
+ const stored = {
378
+ value,
379
+ storedAt: realNow(),
380
+ tags: options.tags ?? [],
381
+ revalidateSeconds: options.revalidateSeconds,
382
+ ...producingMeta !== undefined ? { refreshedIn: producingMeta } : {},
383
+ ...serveStale?.route !== undefined ? { route: serveStale.route } : producingMeta?.route !== undefined ? { route: producingMeta.route } : {}
384
+ };
385
+ const applyInheritedTags = () => {
386
+ stored.tags = [...producerTags];
387
+ if (parentProducerTags)
388
+ for (const tag of producerTags)
389
+ parentProducerTags.add(tag);
390
+ };
391
+ if (serveStale) {
392
+ value.then(() => {
393
+ applyInheritedTags();
394
+ dataCache.set(key, stored);
395
+ }, () => {
396
+ serveStale.refreshing = false;
397
+ });
398
+ return value;
399
+ }
400
+ if (dataCache.size >= dataCacheLimit) {
401
+ const oldest = dataCache.keys().next().value;
402
+ if (oldest !== undefined)
403
+ dataCache.delete(oldest);
404
+ }
405
+ dataCache.set(key, stored);
406
+ value.then(applyInheritedTags, () => {
407
+ if (dataCache.get(key)?.value === value)
408
+ dataCache.delete(key);
409
+ });
410
+ return value;
411
+ }
412
+ function registerDataCacheInvalidator(invalidate) {
413
+ dataCacheInvalidators.add(invalidate);
414
+ return () => {
415
+ dataCacheInvalidators.delete(invalidate);
416
+ };
417
+ }
418
+ function registerRevalidationInvalidator(invalidate) {
419
+ revalidationInvalidators.add(invalidate);
420
+ return () => {
421
+ revalidationInvalidators.delete(invalidate);
422
+ };
423
+ }
424
+ function notifyRevalidationInvalidators(invalidation) {
425
+ for (const invalidate of revalidationInvalidators)
426
+ invalidate(invalidation);
427
+ }
428
+ var cacheMetaStorage = revalidateGlobal("cacheMetaStorage", () => new AsyncLocalStorage);
429
+ function currentRenderCacheMeta() {
430
+ return cacheMetaStorage.getStore();
431
+ }
432
+ function currentRenderIsStaticGeneration() {
433
+ const meta = cacheMetaStorage.getStore();
434
+ return meta?.prerender === true || meta?.blockingStaleFetches === true;
435
+ }
436
+ function recordCacheTags(tags) {
437
+ const producerTags = producerTagsStorage.getStore();
438
+ if (producerTags)
439
+ for (const tag of tags)
440
+ producerTags.add(tag);
441
+ const meta = cacheMetaStorage.getStore();
442
+ if (!meta)
443
+ return;
444
+ for (const tag of tags)
445
+ meta.tags.add(tag);
446
+ }
447
+ var useCacheRevalidateSink = revalidateGlobal("useCacheRevalidateSink", () => ({
448
+ current: undefined
449
+ }));
450
+ function setUseCacheRevalidateSink(sink) {
451
+ useCacheRevalidateSink.current = sink;
452
+ }
453
+ function recordCacheRevalidate(seconds) {
454
+ useCacheRevalidateSink.current?.(seconds);
455
+ const meta = cacheMetaStorage.getStore();
456
+ if (!meta)
457
+ return;
458
+ meta.revalidateSeconds = meta.revalidateSeconds === undefined ? seconds : Math.min(meta.revalidateSeconds, seconds);
459
+ }
460
+ function recordCacheNoStore() {
461
+ if (insideProducerStorage.getStore())
462
+ return;
463
+ const meta = cacheMetaStorage.getStore();
464
+ if (meta)
465
+ meta.noStore = true;
466
+ }
467
+ var insideProducerStorage = revalidateGlobal("insideProducerStorage", () => new AsyncLocalStorage);
468
+ var producerKindStorage = revalidateGlobal("producerKindStorage", () => new AsyncLocalStorage);
469
+ var producerTagsStorage = revalidateGlobal("producerTagsStorage", () => new AsyncLocalStorage);
470
+ var insideUnstableCacheStorage = revalidateGlobal("insideUnstableCacheStorage", () => new AsyncLocalStorage);
471
+ function runInsideDataCacheProducer(fn, kind = "use-cache") {
472
+ return producerKindStorage.run(kind, () => insideProducerStorage.run(true, fn));
473
+ }
474
+ function runInsideUnstableCacheProducer(fn) {
475
+ return insideUnstableCacheStorage.run(true, () => runInsideDataCacheProducer(fn, "unstable-cache"));
476
+ }
477
+ function insideDataCacheProducer() {
478
+ return insideProducerStorage.getStore() === true;
479
+ }
480
+ function insideUnstableCacheProducer() {
481
+ return insideUnstableCacheStorage.getStore() === true;
482
+ }
483
+ function assertNoDynamicApiInsideCache(api) {
484
+ if (!insideDataCacheProducer())
485
+ return;
486
+ const route = cacheMetaStorage.getStore()?.route ?? "";
487
+ const unstable = insideUnstableCacheProducer();
488
+ const message = unstable ? unstableCacheDynamicApiMessage(route, api) : useCacheDynamicApiMessage(route, api);
489
+ if (prerenderErrorCollectionActive()) {
490
+ recordPrerenderError({
491
+ kind: unstable ? "unstable-cache-dynamic" : "use-cache-dynamic",
492
+ route,
493
+ consoleBlock: `Error: ${message}`
494
+ });
495
+ }
496
+ throw new Error(message);
497
+ }
498
+ async function collectRenderCacheMeta(produce, options = {}) {
499
+ const meta = {
500
+ tags: new Set,
501
+ fetchCache: options.fetchCache,
502
+ refreshFetches: options.refreshFetches,
503
+ blockingStaleFetches: options.blockingStaleFetches,
504
+ route: options.route,
505
+ prerender: options.prerender,
506
+ handler: options.handler,
507
+ dynamicError: options.dynamicError
508
+ };
509
+ const value = await cacheMetaStorage.run(meta, produce);
510
+ await drainStaticAfterTasks(meta);
511
+ return {
512
+ value,
513
+ tags: [...meta.tags],
514
+ ...meta.revalidateSeconds !== undefined ? { revalidateSeconds: meta.revalidateSeconds } : {},
515
+ ...meta.expireSeconds !== undefined ? { expireSeconds: meta.expireSeconds } : {},
516
+ ...meta.staleSeconds !== undefined ? { staleSeconds: meta.staleSeconds } : {},
517
+ ...meta.noStore ? { noStore: true } : {}
518
+ };
519
+ }
520
+ async function drainStaticAfterTasks(meta) {
521
+ while (meta.afterTasks?.length) {
522
+ const tasks = meta.afterTasks;
523
+ meta.afterTasks = [];
524
+ for (const task of tasks) {
525
+ try {
526
+ await cacheMetaStorage.run(meta, task);
527
+ } catch (error) {
528
+ console.error(`Error occurred prerendering page "${meta.route ?? "/"}". Read more: https://nextjs.org/docs/messages/prerender-error`);
529
+ throw error;
530
+ }
531
+ }
532
+ }
533
+ }
534
+
535
+ export { installModernCacheHandlers, beginPrerenderErrorCollection, endPrerenderErrorCollection, draftModeBypassActive, revalidationEventCount, bumpRevalidationEvent, normalizeRevalidatePath, markPathRevalidated, markTagRevalidated, markTagStale, pathRevalidatedSince, pathRevalidationReasonSince, pathScopeRevalidated, tagsRevalidatedSince, currentTagRevalidationSeq, rdcProcessId, rebaseRdcTagSeq, tagsRevalidatedAfterSeq, tagsRevalidationReasonSince, tagsStaleSince, cachedData, registerDataCacheInvalidator, registerRevalidationInvalidator, currentRenderCacheMeta, currentRenderIsStaticGeneration, recordCacheTags, setUseCacheRevalidateSink, recordCacheRevalidate, recordCacheNoStore, insideDataCacheProducer, insideUnstableCacheProducer, assertNoDynamicApiInsideCache, collectRenderCacheMeta };