@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,960 @@
1
+ // @bun
2
+ import {
3
+ loadNative
4
+ } from "./index-7wc9n8be.js";
5
+ import {
6
+ findWorkspaceRoot,
7
+ readPackageJson
8
+ } from "./index-pym1cezq.js";
9
+ import {
10
+ onExtensionHostReset
11
+ } from "./index-zqpqyg8p.js";
12
+ import {
13
+ __require
14
+ } from "./index-rt9qq1va.js";
15
+
16
+ // src/resolve/engine.ts
17
+ import { existsSync as existsSync2 } from "fs";
18
+ import path2 from "path";
19
+
20
+ // src/utils/fs-cache.ts
21
+ import { existsSync, readdirSync } from "fs";
22
+ import path from "path";
23
+ var NODE_MODULES = `${path.sep}node_modules${path.sep}`;
24
+ var dirents = new Map;
25
+ function direntsFor(dir) {
26
+ if (dirents.has(dir))
27
+ return dirents.get(dir);
28
+ let names;
29
+ try {
30
+ names = new Set(readdirSync(dir));
31
+ } catch {
32
+ names = undefined;
33
+ }
34
+ dirents.set(dir, names);
35
+ return names;
36
+ }
37
+ function cachedExistsSync(file) {
38
+ if (!file.includes(NODE_MODULES))
39
+ return existsSync(file);
40
+ return direntsFor(path.dirname(file))?.has(path.basename(file)) ?? false;
41
+ }
42
+ function clearNodeModulesFsCache() {
43
+ dirents.clear();
44
+ }
45
+
46
+ // src/resolve/engine.ts
47
+ function createResolverFactory(options) {
48
+ const { ResolverFactory: Factory } = loadNative(() => __require("oxc-resolver"));
49
+ return new Factory(options);
50
+ }
51
+ var sourceExtensions = [
52
+ ".tsx",
53
+ ".ts",
54
+ ".jsx",
55
+ ".js",
56
+ ".mjs",
57
+ ".mts",
58
+ ".cts",
59
+ ".module.css",
60
+ ".css"
61
+ ];
62
+ var extensionAlias = {
63
+ ".js": [".ts", ".tsx", ".js"],
64
+ ".jsx": [".tsx", ".jsx"],
65
+ ".mjs": [".mts", ".mjs"],
66
+ ".cjs": [".cts", ".cjs"]
67
+ };
68
+ var configuredExtensions;
69
+ var configuredTsConfigPath;
70
+ var baseFactory;
71
+ var factories = new Map;
72
+ var tsConfigFiles = new Map;
73
+ function setEngineExtensions(extensions) {
74
+ configuredExtensions = extensions && extensions.length > 0 ? [...extensions] : undefined;
75
+ resetEngine();
76
+ }
77
+ function setEngineTsConfigPath(file) {
78
+ configuredTsConfigPath = file;
79
+ resetEngine();
80
+ }
81
+ function resetEngine() {
82
+ baseFactory = undefined;
83
+ factories.clear();
84
+ tsConfigFiles.clear();
85
+ nodeModulesOutcomes.clear();
86
+ }
87
+ function clearResolverFsCache() {
88
+ baseFactory?.clearCache();
89
+ for (const factory of factories.values())
90
+ factory.clearCache();
91
+ nodeModulesOutcomes.clear();
92
+ clearNodeModulesFsCache();
93
+ }
94
+ function tsConfigFileFor(root) {
95
+ const key = path2.resolve(root);
96
+ if (tsConfigFiles.has(key))
97
+ return tsConfigFiles.get(key);
98
+ const candidates = [
99
+ ...configuredTsConfigPath ? [path2.resolve(key, configuredTsConfigPath)] : [],
100
+ path2.join(key, "tsconfig.json"),
101
+ path2.join(key, "jsconfig.json")
102
+ ];
103
+ const file = candidates.find((candidate) => existsSync2(candidate));
104
+ tsConfigFiles.set(key, file);
105
+ return file;
106
+ }
107
+ function splitResourceQuery(specifier) {
108
+ const offset = specifier.startsWith("#") ? 1 : 0;
109
+ const match = /[?#]/.exec(specifier.slice(offset));
110
+ if (!match)
111
+ return { path: specifier, query: "" };
112
+ const index = offset + match.index;
113
+ return { path: specifier.slice(0, index), query: specifier.slice(index) };
114
+ }
115
+ function resolveFrom(dir, specifier, conditions, tsConfigRoot) {
116
+ const { path: request } = splitResourceQuery(specifier);
117
+ const tsconfig = tsConfigRoot ? tsConfigFileFor(tsConfigRoot) : undefined;
118
+ return resolveRequest(dir, request, conditions, tsconfig, isSourceRequest(request));
119
+ }
120
+ function probeFile(target, conditions) {
121
+ return probe(target, conditions, true);
122
+ }
123
+ function probePackageTarget(target, conditions) {
124
+ return probe(target, conditions, false);
125
+ }
126
+ function probe(target, conditions, sourceAlias) {
127
+ const { path: file } = splitResourceQuery(target);
128
+ const request = `./${path2.basename(file)}`;
129
+ const outcome = resolveRequest(path2.dirname(file), request, conditions, undefined, sourceAlias);
130
+ return outcome && "path" in outcome ? outcome.path : undefined;
131
+ }
132
+ var nodeModulesOutcomes = new Map;
133
+ var NODE_MODULES_SEGMENT = `${path2.sep}node_modules${path2.sep}`;
134
+ function resolveRequest(dir, request, conditions, tsconfig, sourceAlias) {
135
+ const key = dir.includes(NODE_MODULES_SEGMENT) ? `${dir}\x00${request}\x00${conditions.join(",")}\x00${tsconfig ?? ""}\x00${sourceAlias}` : undefined;
136
+ if (key !== undefined && nodeModulesOutcomes.has(key))
137
+ return nodeModulesOutcomes.get(key);
138
+ const { path: file, error } = resolverFor(conditions, tsconfig, sourceAlias).sync(dir, request);
139
+ const outcome = file ? isDeclarationFile(file) ? undefined : { path: file } : error?.includes("is not exported") ? { notExported: true } : undefined;
140
+ if (key !== undefined)
141
+ nodeModulesOutcomes.set(key, outcome);
142
+ return outcome;
143
+ }
144
+ function isSourceRequest(request) {
145
+ return request.startsWith(".") || path2.isAbsolute(request);
146
+ }
147
+ function resolverFor(conditions, tsconfig, sourceExtensionAlias) {
148
+ const key = `${conditions.join(",")}\x00${tsconfig ?? ""}\x00${sourceExtensionAlias}`;
149
+ let resolver = factories.get(key);
150
+ if (!resolver) {
151
+ const options = {
152
+ ...baseOptions(),
153
+ extensionAlias: sourceExtensionAlias ? extensionAlias : {},
154
+ conditionNames: [...conditions],
155
+ mainFields: mainFieldsFor(conditions)
156
+ };
157
+ if (tsconfig)
158
+ options.tsconfig = { configFile: tsconfig };
159
+ resolver = baseResolver().cloneWithOptions(options);
160
+ factories.set(key, resolver);
161
+ }
162
+ return resolver;
163
+ }
164
+ function baseOptions() {
165
+ return {
166
+ extensions: configuredExtensions ?? sourceExtensions,
167
+ symlinks: false
168
+ };
169
+ }
170
+ function baseResolver() {
171
+ baseFactory ??= createResolverFactory(baseOptions());
172
+ return baseFactory;
173
+ }
174
+ function mainFieldsFor(conditions) {
175
+ const fields = ["module", "main"];
176
+ if (conditions.includes("browser"))
177
+ fields.unshift("browser");
178
+ if (conditions.includes("edge-light"))
179
+ fields.unshift("edge-light");
180
+ return fields;
181
+ }
182
+ function isDeclarationFile(file) {
183
+ return /\.d\.[cm]?ts$/.test(file);
184
+ }
185
+
186
+ // src/resolve/imports.ts
187
+ import { existsSync as existsSync3, readFileSync, readdirSync as readdirSync2, realpathSync } from "fs";
188
+ import path3 from "path";
189
+ var { Bun: bun } = globalThis;
190
+ var localConditions = ["source", "import", "browser", "node", "default", "require"];
191
+ function setResolveExtensions(extensions) {
192
+ setEngineExtensions(extensions);
193
+ clearVendorPackageResolutions();
194
+ }
195
+ var noExternalPolicy = {
196
+ external: () => false,
197
+ transpile: () => false,
198
+ esmExternals: () => true
199
+ };
200
+ var externalPackagePolicy = noExternalPolicy;
201
+ var externalLoadResolver;
202
+ function setExternalPackagePolicy(policy) {
203
+ externalPackagePolicy = policy ?? noExternalPolicy;
204
+ }
205
+ function getExternalPackagePolicy() {
206
+ return externalPackagePolicy;
207
+ }
208
+ function setExternalLoadResolver(resolver) {
209
+ externalLoadResolver = resolver;
210
+ externalLoadTargets.clear();
211
+ }
212
+ var externalLoadTargets = new Map;
213
+ function resolveExternalLoadTarget(context) {
214
+ if (!externalLoadResolver)
215
+ return;
216
+ if (context.specifier.startsWith("#"))
217
+ return externalLoadResolver(context);
218
+ const resolveContext = context.fromFile.includes(`${path3.sep}node_modules${path3.sep}`) ? { ...context, root: path3.dirname(context.fromFile) } : context;
219
+ const key = `${context.target}\x00${resolutionRootForFile(resolveContext.root, context.fromFile)}\x00${context.specifier}`;
220
+ if (externalLoadTargets.has(key))
221
+ return externalLoadTargets.get(key);
222
+ const target = externalLoadResolver(resolveContext);
223
+ externalLoadTargets.set(key, target);
224
+ return target;
225
+ }
226
+ function packageNameOfSpecifier(specifier) {
227
+ return packageNameFromSpecifier(specifier);
228
+ }
229
+ function packageNameForFile(file) {
230
+ const packageRoot = nearestPackageRoot(path3.dirname(file));
231
+ return packageRoot ? readPackageJson(packageRoot).name : undefined;
232
+ }
233
+ function externalPackageImportTarget(root, fromFile, specifier) {
234
+ const packageName = packageNameFromSpecifier(specifier);
235
+ if (!packageName)
236
+ return;
237
+ const policy = getExternalPackagePolicy();
238
+ if (!policy.external(packageName) || policy.esmExternals() !== true)
239
+ return;
240
+ const imported = resolvePackageSpecifier(root, fromFile, specifier, ["import", "node", "default"]);
241
+ if (!imported || isEsmModuleFile(imported))
242
+ return;
243
+ const required = resolvePackageSpecifier(root, fromFile, specifier, [
244
+ "require",
245
+ "node",
246
+ "default"
247
+ ]);
248
+ return required && required !== imported ? required : undefined;
249
+ }
250
+ function setTsConfigPath(file) {
251
+ setEngineTsConfigPath(file);
252
+ tsConfigCache.clear();
253
+ clearVendorPackageResolutions();
254
+ }
255
+ var extraModuleAliases;
256
+ onExtensionHostReset(() => {
257
+ extraModuleAliases = undefined;
258
+ clearVendorPackageResolutions();
259
+ });
260
+ function setModuleAliases(aliases) {
261
+ extraModuleAliases = aliases;
262
+ }
263
+ function resolveModuleAlias(specifier) {
264
+ const aliased = extraModuleAliases?.[specifier];
265
+ return aliased ? probeFile(aliased, localConditions) : undefined;
266
+ }
267
+ function resolveImport(root, fromFile, specifier, workspaceRoot) {
268
+ if (splitResourceQuery(specifier).query)
269
+ return;
270
+ if (specifier.startsWith(".")) {
271
+ return resolveLocalFile(path3.dirname(realImportPath(fromFile)), specifier);
272
+ }
273
+ if (path3.isAbsolute(specifier))
274
+ return probeFile(specifier, localConditions);
275
+ const resolutionRoot = resolutionRootForFile(root, fromFile);
276
+ const tsResolved = resolveTsPath(resolutionRoot, specifier);
277
+ if (tsResolved)
278
+ return realImportPath(tsResolved);
279
+ if (specifier.startsWith("#")) {
280
+ const resolved = resolveLocalFile(resolutionRoot, specifier);
281
+ return resolved ? realImportPath(resolved) : undefined;
282
+ }
283
+ const workspaceResolved = resolveWorkspacePackageImport(root, specifier, workspaceRoot);
284
+ if (workspaceResolved)
285
+ return workspaceResolved;
286
+ return resolveAppTreePackage(resolutionRoot, root, fromFile, specifier);
287
+ }
288
+ function resolveLocalFile(dir, specifier) {
289
+ const outcome = resolveFrom(dir, specifier, localConditions);
290
+ return outcome && "path" in outcome ? outcome.path : undefined;
291
+ }
292
+ var realImportPathCache = new Map;
293
+ function realImportPath(file) {
294
+ const cached = realImportPathCache.get(file);
295
+ if (cached !== undefined)
296
+ return cached;
297
+ try {
298
+ const real = realpathSync(file);
299
+ realImportPathCache.set(file, real);
300
+ return real;
301
+ } catch {
302
+ return file;
303
+ }
304
+ }
305
+ var appTreeResolveCache = new Map;
306
+ var memoAppTree = process.env.PNEXT_RESOLVE_APPTREE_MEMO !== "0";
307
+ function resolveAppTreePackage(resolutionRoot, root, fromFile, specifier) {
308
+ const from = path3.dirname(path3.resolve(fromFile));
309
+ const key = `${resolutionRoot}\x00${root}\x00${from}\x00${specifier}`;
310
+ if (memoAppTree) {
311
+ const cached = appTreeResolveCache.get(key);
312
+ if (cached !== undefined)
313
+ return cached;
314
+ }
315
+ const outcome = resolveFrom(from, specifier, localConditions, resolutionRoot);
316
+ if (!outcome || !("path" in outcome))
317
+ return;
318
+ const resolved = isAppTreeFile(path3.resolve(root), outcome.path) ? outcome.path : undefined;
319
+ if (memoAppTree && resolved !== undefined)
320
+ appTreeResolveCache.set(key, resolved);
321
+ return resolved;
322
+ }
323
+ function isAppTreeFile(root, file) {
324
+ const relative = path3.relative(root, file);
325
+ if (relative.startsWith("..") || path3.isAbsolute(relative))
326
+ return false;
327
+ const nodeModules = relative.split(path3.sep).indexOf("node_modules");
328
+ return nodeModules !== 0;
329
+ }
330
+ function resolveConfiguredTsPath(root, fromFile, specifier) {
331
+ if (specifier.startsWith(".") || specifier.startsWith("#") || path3.isAbsolute(specifier)) {
332
+ return;
333
+ }
334
+ return resolveTsPath(resolutionRootForFile(root, fromFile), specifier);
335
+ }
336
+ function configuredTsPathPatterns(root, workspaceRoot) {
337
+ const roots = new Set([path3.resolve(root)]);
338
+ if (workspaceRoot) {
339
+ const resolved = path3.resolve(workspaceRoot);
340
+ roots.add(resolved);
341
+ for (const packageRoot of workspacePackages(resolved).values())
342
+ roots.add(packageRoot);
343
+ }
344
+ const patterns = new Set;
345
+ for (const dir of roots) {
346
+ for (const pattern of Object.keys(readTsConfig(dir).compilerOptions?.paths ?? {})) {
347
+ patterns.add(pattern);
348
+ }
349
+ }
350
+ return [...patterns];
351
+ }
352
+ function resolveTsPath(root, specifier) {
353
+ const compilerOptions = readTsConfig(root).compilerOptions ?? {};
354
+ const baseUrl = path3.resolve(root, compilerOptions.baseUrl ?? ".");
355
+ for (const [pattern, targets] of Object.entries(compilerOptions.paths ?? {})) {
356
+ const match = matchPattern(pattern, specifier);
357
+ if (!match)
358
+ continue;
359
+ for (const target of targets) {
360
+ const resolved = probeFile(path3.resolve(baseUrl, applyPattern(target, match)), localConditions);
361
+ if (resolved)
362
+ return resolved;
363
+ }
364
+ }
365
+ return;
366
+ }
367
+ function resolveWorkspacePackageImport(root, specifier, boundary) {
368
+ const workspaceRoot = boundary ? path3.resolve(boundary) : findWorkspaceRoot(root);
369
+ if (!workspaceRoot)
370
+ return;
371
+ const packageName = packageNameFromSpecifier(specifier);
372
+ if (!packageName)
373
+ return;
374
+ const packageRoot = workspacePackages(workspaceRoot).get(packageName);
375
+ if (!packageRoot)
376
+ return;
377
+ const packageJson = readPackageJson(packageRoot);
378
+ const subpath = subpathOfSpecifier(packageName, specifier);
379
+ const exported = packageExportTarget(packageJson.exports, subpath);
380
+ if (exported) {
381
+ const resolved = probePackageTarget(path3.resolve(packageRoot, exported), localConditions);
382
+ if (resolved && isInside(packageRoot, resolved))
383
+ return resolved;
384
+ }
385
+ const onDisk = onDiskSubpath(packageRoot, subpath, localConditions);
386
+ if (onDisk)
387
+ return onDisk;
388
+ for (const entry of [
389
+ packageJson.source,
390
+ packageJson.module,
391
+ packageJson.main,
392
+ "./src/index",
393
+ "./index"
394
+ ]) {
395
+ if (!entry)
396
+ continue;
397
+ const resolved = probePackageTarget(path3.resolve(packageRoot, entry), localConditions);
398
+ if (resolved)
399
+ return resolved;
400
+ }
401
+ return;
402
+ }
403
+ function packageExportTarget(exports, subpath) {
404
+ if (!exports)
405
+ return;
406
+ if (!isSubpathExports(exports))
407
+ return subpath === "." ? packageTargetPath(exports) : undefined;
408
+ for (const [pattern, target] of Object.entries(exports)) {
409
+ const match = matchPattern(pattern, subpath);
410
+ if (!match)
411
+ continue;
412
+ const targetPath = packageTargetPath(target);
413
+ if (targetPath)
414
+ return applyPattern(targetPath, match);
415
+ }
416
+ return;
417
+ }
418
+ function packageExportTargetForConditions(exports, subpath, conditions) {
419
+ if (!exports)
420
+ return;
421
+ if (!isSubpathExports(exports)) {
422
+ return subpath === "." ? packageTargetPathForConditions(exports, conditions) : undefined;
423
+ }
424
+ for (const [pattern, target] of Object.entries(exports)) {
425
+ const match = matchPattern(pattern, subpath);
426
+ if (!match)
427
+ continue;
428
+ const targetPath = packageTargetPathForConditions(target, conditions);
429
+ if (targetPath)
430
+ return applyPattern(targetPath, match);
431
+ }
432
+ return;
433
+ }
434
+ function packageTargetPathForConditions(target, conditions) {
435
+ if (!target)
436
+ return;
437
+ if (typeof target === "string")
438
+ return target;
439
+ if (Array.isArray(target)) {
440
+ for (const item of target) {
441
+ const resolved = packageTargetPathForConditions(item, conditions);
442
+ if (resolved)
443
+ return resolved;
444
+ }
445
+ return;
446
+ }
447
+ if (!isPackageExportObject(target))
448
+ return;
449
+ for (const [key, value] of Object.entries(target)) {
450
+ if (key !== "default" && !conditions.includes(key))
451
+ continue;
452
+ const resolved = packageTargetPathForConditions(value, conditions);
453
+ if (resolved)
454
+ return resolved;
455
+ }
456
+ return;
457
+ }
458
+ function isSubpathExports(exports) {
459
+ return isPackageExportObject(exports) && Object.keys(exports).some((key) => key.startsWith("."));
460
+ }
461
+ function packageTargetPath(target) {
462
+ if (!target)
463
+ return;
464
+ if (typeof target === "string")
465
+ return target;
466
+ if (Array.isArray(target)) {
467
+ for (const item of target) {
468
+ const resolved = packageTargetPath(item);
469
+ if (resolved)
470
+ return resolved;
471
+ }
472
+ return;
473
+ }
474
+ if (!isPackageExportObject(target))
475
+ return;
476
+ for (const key of ["source", "import", "browser", "node", "default", "types", "require"]) {
477
+ const resolved = packageTargetPath(target[key]);
478
+ if (resolved)
479
+ return resolved;
480
+ }
481
+ for (const value of Object.values(target)) {
482
+ const resolved = packageTargetPath(value);
483
+ if (resolved)
484
+ return resolved;
485
+ }
486
+ return;
487
+ }
488
+ function isPackageExportObject(target) {
489
+ return typeof target === "object" && target !== null && !Array.isArray(target);
490
+ }
491
+ function matchPattern(pattern, specifier) {
492
+ if (pattern === specifier)
493
+ return { wildcard: "" };
494
+ const star = pattern.indexOf("*");
495
+ if (star === -1)
496
+ return;
497
+ const prefix = pattern.slice(0, star);
498
+ const suffix = pattern.slice(star + 1);
499
+ if (!specifier.startsWith(prefix) || !specifier.endsWith(suffix))
500
+ return;
501
+ return { wildcard: specifier.slice(prefix.length, specifier.length - suffix.length) };
502
+ }
503
+ function applyPattern(pattern, match) {
504
+ return pattern.replace("*", match.wildcard);
505
+ }
506
+ function packageNameFromSpecifier(specifier) {
507
+ const parts = specifier.split("/");
508
+ if (specifier.startsWith("@"))
509
+ return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : undefined;
510
+ return parts[0] || undefined;
511
+ }
512
+ function subpathOfSpecifier(packageName, specifier) {
513
+ return specifier === packageName ? "." : `.${specifier.slice(packageName.length)}`;
514
+ }
515
+ function resolutionRootForFile(root, fromFile) {
516
+ const resolvedRoot = path3.resolve(root);
517
+ const resolvedFile = path3.resolve(fromFile);
518
+ if (isInside(resolvedRoot, resolvedFile))
519
+ return resolvedRoot;
520
+ return nearestPackageRoot(path3.dirname(resolvedFile)) ?? resolvedRoot;
521
+ }
522
+ function resolveNestedPackageFromImporter(importerFile, specifier, conditions) {
523
+ const packageName = packageNameFromSpecifier(specifier);
524
+ if (!packageName)
525
+ return;
526
+ const from = path3.dirname(realImportPath(path3.resolve(importerFile)));
527
+ return realLinkedPackageFile(resolvePackageFrom(from, packageName, specifier, conditions));
528
+ }
529
+ var packageRoots = new Map;
530
+ function nearestPackageRoot(fromDir) {
531
+ const start = path3.resolve(fromDir);
532
+ if (packageRoots.has(start))
533
+ return packageRoots.get(start);
534
+ let dir = start;
535
+ const walked = [];
536
+ let found;
537
+ while (true) {
538
+ walked.push(dir);
539
+ if (existsSync3(path3.join(dir, "package.json"))) {
540
+ found = dir;
541
+ break;
542
+ }
543
+ const parent = path3.dirname(dir);
544
+ if (parent === dir)
545
+ break;
546
+ dir = parent;
547
+ }
548
+ for (const seen of walked)
549
+ packageRoots.set(seen, found);
550
+ return found;
551
+ }
552
+ var vendorEntryProvisions = new Map;
553
+ function provideEntryResolution(specifier, resolveDir, resolved) {
554
+ vendorEntryProvisions.set(`${specifier}\x00${resolveDir}`, resolved);
555
+ }
556
+ function providedEntryResolution(specifier, resolveDir) {
557
+ return vendorEntryProvisions.get(`${specifier}\x00${resolveDir}`);
558
+ }
559
+ function resolvePackageSpecifier(root, fromFile, specifier, conditions) {
560
+ const packageName = packageNameFromSpecifier(specifier);
561
+ if (!packageName)
562
+ return;
563
+ const from = resolutionRootForFile(root, fromFile);
564
+ return realLinkedPackageFile(resolvePackageFrom(from, packageName, specifier, conditions));
565
+ }
566
+ var vendorPackageResolutions = new Map;
567
+ function resolveVendorPackageSpecifier(root, fromFile, specifier, conditions) {
568
+ const packageName = packageNameFromSpecifier(specifier);
569
+ if (!packageName)
570
+ return;
571
+ const from = resolutionRootForFile(root, fromFile);
572
+ const key = `${from}\x00${specifier}\x00${conditions.join(",")}`;
573
+ if (vendorPackageResolutions.has(key))
574
+ return vendorPackageResolutions.get(key);
575
+ const resolved = realLinkedPackageFile(resolvePackageFrom(from, packageName, specifier, conditions));
576
+ vendorPackageResolutions.set(key, resolved);
577
+ return resolved;
578
+ }
579
+ function clearVendorPackageResolutions() {
580
+ vendorPackageResolutions.clear();
581
+ }
582
+ function clearAppTreeResolutions() {
583
+ appTreeResolveCache.clear();
584
+ externalLoadTargets.clear();
585
+ }
586
+ function resolvePackageImportSpecifier(root, fromFile, specifier, conditions) {
587
+ if (!specifier.startsWith("#"))
588
+ return;
589
+ const from = nearestPackageRoot(path3.dirname(fromFile)) ?? resolutionRootForFile(root, fromFile);
590
+ const outcome = resolveFrom(from, specifier, conditions);
591
+ return outcome && "path" in outcome ? outcome.path : undefined;
592
+ }
593
+ function resolvePackageFrom(from, packageName, specifier, conditions) {
594
+ const outcome = resolveFrom(from, specifier, conditions);
595
+ if (outcome && "path" in outcome)
596
+ return outcome.path;
597
+ const packageRoot = findNodePackageRoot(from, packageName);
598
+ if (!packageRoot)
599
+ return;
600
+ return onDiskSubpath(packageRoot, subpathOfSpecifier(packageName, specifier), conditions);
601
+ }
602
+ function onDiskSubpath(packageRoot, subpath, conditions) {
603
+ if (subpath === ".")
604
+ return;
605
+ const resolved = probePackageTarget(path3.resolve(packageRoot, subpath.slice(2)), conditions);
606
+ return resolved && isInside(packageRoot, resolved) ? resolved : undefined;
607
+ }
608
+ var runtimeResolveCache = new Map;
609
+ function resolveRuntimeSpecifier(dir, specifier) {
610
+ const key = `${dir}\x00${specifier}`;
611
+ const cached = runtimeResolveCache.get(key);
612
+ if (cached !== undefined)
613
+ return cached;
614
+ try {
615
+ const resolved = bun.resolveSync(specifier, dir);
616
+ runtimeResolveCache.set(key, resolved);
617
+ return resolved;
618
+ } catch {
619
+ return;
620
+ }
621
+ }
622
+ var linkedPackageFileCache = new Map;
623
+ function realLinkedPackageFile(file) {
624
+ if (!file)
625
+ return file;
626
+ const cached = linkedPackageFileCache.get(file);
627
+ if (cached !== undefined)
628
+ return cached;
629
+ let resolved = file;
630
+ try {
631
+ const real = realpathSync(file);
632
+ if (!real.includes(`${path3.sep}node_modules${path3.sep}`))
633
+ resolved = real;
634
+ } catch {}
635
+ linkedPackageFileCache.set(file, resolved);
636
+ return resolved;
637
+ }
638
+ function isPackageSubpathUnexported(root, fromFile, specifier, conditions) {
639
+ const packageName = packageNameFromSpecifier(specifier);
640
+ if (!packageName)
641
+ return false;
642
+ const resolutionRoot = resolutionRootForFile(root, fromFile);
643
+ const packageRoot = findNodePackageRoot(resolutionRoot, packageName) ?? findLinkedPackageRoot(resolutionRoot, packageName);
644
+ if (!packageRoot)
645
+ return false;
646
+ const { exports } = readPackageJson(packageRoot);
647
+ if (!exports || !isSubpathExports(exports))
648
+ return false;
649
+ const subpath = subpathOfSpecifier(packageName, specifier);
650
+ if (!Object.keys(exports).some((pattern) => matchPattern(pattern, subpath)))
651
+ return false;
652
+ if (packageExportTargetForConditions(exports, subpath, conditions))
653
+ return false;
654
+ return !onDiskSubpath(packageRoot, subpath, conditions);
655
+ }
656
+ function resolveLinkedPackageSpecifier(root, fromFile, specifier, conditions) {
657
+ const packageName = packageNameFromSpecifier(specifier);
658
+ if (!packageName)
659
+ return;
660
+ const packageRoot = findLinkedPackageRoot(resolutionRootForFile(root, fromFile), packageName);
661
+ if (!packageRoot)
662
+ return;
663
+ return realLinkedPackageFile(resolvePackageAtRoot(packageRoot, subpathOfSpecifier(packageName, specifier), conditions));
664
+ }
665
+ function resolvePackageAtRoot(packageRoot, subpath, conditions) {
666
+ const packageJson = readPackageJson(packageRoot);
667
+ const exported = packageExportTargetForConditions(packageJson.exports, subpath, conditions);
668
+ if (exported) {
669
+ const resolved = probePackageTarget(path3.resolve(packageRoot, exported), conditions);
670
+ if (resolved && isInside(packageRoot, resolved))
671
+ return resolved;
672
+ }
673
+ const onDisk = onDiskSubpath(packageRoot, subpath, conditions);
674
+ if (onDisk)
675
+ return onDisk;
676
+ const edgeLight = conditions.includes("edge-light") ? [packageJson["edge-light"]] : [];
677
+ const browser = conditions.includes("browser") ? [packageJson.browser] : [];
678
+ for (const entry of [...edgeLight, ...browser, packageJson.module, packageJson.main, "./index"]) {
679
+ if (typeof entry !== "string")
680
+ continue;
681
+ const resolved = probePackageTarget(path3.resolve(packageRoot, entry), conditions);
682
+ if (resolved)
683
+ return resolved;
684
+ }
685
+ return;
686
+ }
687
+ function findNodePackageRoot(root, packageName) {
688
+ let dir = path3.resolve(root);
689
+ while (true) {
690
+ const candidate = path3.join(dir, "node_modules", packageName);
691
+ if (existsSync3(path3.join(candidate, "package.json")))
692
+ return candidate;
693
+ const parent = path3.dirname(dir);
694
+ if (parent === dir)
695
+ return;
696
+ dir = parent;
697
+ }
698
+ }
699
+ var linkedPackageRootCache = new Map;
700
+ var memoLinkedRoots = process.env.PNEXT_RESOLVE_LINK_MEMO !== "0";
701
+ function findLinkedPackageRoot(root, packageName) {
702
+ if (!memoLinkedRoots)
703
+ return walkForLinkedPackageRoot(root, packageName);
704
+ const key = `${path3.resolve(root)}\x00${packageName}`;
705
+ const cached = linkedPackageRootCache.get(key);
706
+ if (cached !== undefined || linkedPackageRootCache.has(key))
707
+ return cached;
708
+ const found = walkForLinkedPackageRoot(root, packageName);
709
+ linkedPackageRootCache.set(key, found);
710
+ return found;
711
+ }
712
+ function walkForLinkedPackageRoot(root, packageName) {
713
+ let dir = path3.resolve(root);
714
+ while (true) {
715
+ const linked = linkedPackageRoot(dir, packageName);
716
+ if (linked)
717
+ return linked;
718
+ const parent = path3.dirname(dir);
719
+ if (parent === dir)
720
+ return;
721
+ dir = parent;
722
+ }
723
+ }
724
+ function linkedPackageRoot(packageRoot, packageName) {
725
+ const packageJson = readPackageJson(packageRoot);
726
+ const specifier = packageJson.dependencies?.[packageName] ?? packageJson.devDependencies?.[packageName] ?? packageJson.optionalDependencies?.[packageName] ?? packageJson.peerDependencies?.[packageName];
727
+ const relative = localDependencyPath(specifier);
728
+ if (!relative)
729
+ return;
730
+ const candidate = path3.resolve(packageRoot, relative);
731
+ const linkedPackageJson = readPackageJson(candidate);
732
+ return linkedPackageJson.name === packageName ? candidate : undefined;
733
+ }
734
+ function localDependencyPath(specifier) {
735
+ if (!specifier)
736
+ return;
737
+ for (const prefix of ["link:", "file:"]) {
738
+ if (specifier.startsWith(prefix))
739
+ return specifier.slice(prefix.length);
740
+ }
741
+ return specifier.startsWith("./") || specifier.startsWith("../") ? specifier : undefined;
742
+ }
743
+ function isEsmModuleFile(file) {
744
+ const ext = path3.extname(file);
745
+ if (ext === ".mjs" || ext === ".mts")
746
+ return true;
747
+ if (ext === ".cjs" || ext === ".cts")
748
+ return false;
749
+ const packageRoot = nearestPackageRoot(path3.dirname(file));
750
+ return Boolean(packageRoot && readPackageJson(packageRoot).type === "module");
751
+ }
752
+ var esmEntryCache = new Map;
753
+ function isEsmModuleEntry(file) {
754
+ if (isEsmModuleFile(file))
755
+ return true;
756
+ if (path3.extname(file) !== ".js")
757
+ return false;
758
+ const cached = esmEntryCache.get(file);
759
+ if (cached !== undefined)
760
+ return cached;
761
+ let esm = false;
762
+ try {
763
+ esm = !isCommonJsModuleSource(readFileSync(file, "utf8"), file);
764
+ } catch {}
765
+ esmEntryCache.set(file, esm);
766
+ return esm;
767
+ }
768
+ function isCommonJsModuleSource(source, file) {
769
+ const extension = path3.extname(file);
770
+ if (extension !== ".js" && extension !== ".cjs" || isEsmModuleFile(file))
771
+ return false;
772
+ return !/^\s*(?:import(?:\s|[{'"*])|export(?:\s|[{*]))/m.test(source);
773
+ }
774
+ function isInside(root, file) {
775
+ const relative = path3.relative(root, file);
776
+ return relative === "" || !relative.startsWith("..") && !path3.isAbsolute(relative);
777
+ }
778
+ function workspacePackageDirs(root) {
779
+ const workspaces = readPackageJson(root).workspaces;
780
+ const patterns = [
781
+ ...Array.isArray(workspaces) ? workspaces : workspaces?.packages ?? [],
782
+ ...readPnpmWorkspacePatterns(root)
783
+ ];
784
+ const dirs = new Set;
785
+ for (const pattern of patterns) {
786
+ if (pattern.startsWith("!"))
787
+ continue;
788
+ const star = pattern.indexOf("*");
789
+ if (star === -1) {
790
+ dirs.add(path3.resolve(root, pattern));
791
+ continue;
792
+ }
793
+ const base = path3.resolve(root, pattern.slice(0, star));
794
+ if (!existsSync3(base))
795
+ continue;
796
+ for (const entry of readdirSync2(base, { withFileTypes: true })) {
797
+ if (!entry.isDirectory())
798
+ continue;
799
+ dirs.add(path3.join(base, entry.name, pattern.slice(star + 1)));
800
+ }
801
+ }
802
+ return [...dirs];
803
+ }
804
+ function readPnpmWorkspacePatterns(root) {
805
+ const file = path3.join(root, "pnpm-workspace.yaml");
806
+ if (!existsSync3(file))
807
+ return [];
808
+ const patterns = [];
809
+ let inPackages = false;
810
+ for (const line of readFileSync(file, "utf8").split(/\r?\n/)) {
811
+ const trimmed = line.trim();
812
+ if (!trimmed || trimmed.startsWith("#"))
813
+ continue;
814
+ if (/^packages\s*:\s*$/.test(trimmed)) {
815
+ inPackages = true;
816
+ continue;
817
+ }
818
+ if (!inPackages)
819
+ continue;
820
+ const match = /^-\s*['"]?([^'"]+)['"]?\s*(?:#.*)?$/.exec(trimmed);
821
+ if (match?.[1]) {
822
+ patterns.push(match[1]);
823
+ continue;
824
+ }
825
+ if (/^\S/.test(line))
826
+ break;
827
+ }
828
+ return patterns;
829
+ }
830
+ var tsConfigCache = new Map;
831
+ var workspacePackageCache = new Map;
832
+ function readTsConfig(root) {
833
+ const existing = tsConfigCache.get(root);
834
+ if (existing)
835
+ return existing;
836
+ const file = tsConfigFileFor(root);
837
+ const config = (file ? readJsonc(file) : undefined) ?? {};
838
+ tsConfigCache.set(root, config);
839
+ return config;
840
+ }
841
+ function workspacePackages(root) {
842
+ const existing = workspacePackageCache.get(root);
843
+ if (existing)
844
+ return existing;
845
+ const packages = new Map;
846
+ for (const dir of workspacePackageDirs(root)) {
847
+ const packageJson = readPackageJson(dir);
848
+ if (packageJson.name)
849
+ packages.set(packageJson.name, dir);
850
+ }
851
+ workspacePackageCache.set(root, packages);
852
+ return packages;
853
+ }
854
+ var workspaceMembershipCache = new Map;
855
+ function isWorkspacePackage(root, name, boundary) {
856
+ const key = `${path3.resolve(root)}\x00${name}\x00${boundary ?? ""}`;
857
+ const cached = workspaceMembershipCache.get(key);
858
+ if (cached !== undefined)
859
+ return cached;
860
+ const workspaceRoot = boundary ? path3.resolve(boundary) : findWorkspaceRoot(root);
861
+ let member = Boolean(workspaceRoot && workspacePackages(workspaceRoot).has(name));
862
+ if (!member && !boundary) {
863
+ const packageRoot = findNodePackageRoot(path3.resolve(root), name);
864
+ const real = packageRoot ? realImportPath(packageRoot) : undefined;
865
+ const linkedRoot = real ? findWorkspaceRoot(real) : undefined;
866
+ const declared = linkedRoot ? workspacePackages(linkedRoot).get(name) : undefined;
867
+ member = Boolean(declared && realImportPath(declared) === real);
868
+ }
869
+ workspaceMembershipCache.set(key, member);
870
+ return member;
871
+ }
872
+ function workspacePackageRoots(root) {
873
+ return [...workspacePackages(path3.resolve(root)).values()].sort();
874
+ }
875
+ function readJsonc(file) {
876
+ if (!existsSync3(file))
877
+ return;
878
+ return JSON.parse(stripTrailingCommas(stripJsonComments(readFileSync(file, "utf8"))));
879
+ }
880
+ function stripJsonComments(source) {
881
+ let output = "";
882
+ let inString = false;
883
+ let quote = "";
884
+ let escaped = false;
885
+ for (let index = 0;index < source.length; index += 1) {
886
+ const char = source[index];
887
+ const next = source[index + 1];
888
+ if (inString) {
889
+ output += char;
890
+ if (escaped) {
891
+ escaped = false;
892
+ } else if (char === "\\") {
893
+ escaped = true;
894
+ } else if (char === quote) {
895
+ inString = false;
896
+ }
897
+ continue;
898
+ }
899
+ if (char === '"' || char === "'") {
900
+ inString = true;
901
+ quote = char;
902
+ output += char;
903
+ continue;
904
+ }
905
+ if (char === "/" && next === "/") {
906
+ while (index < source.length && source[index] !== `
907
+ `)
908
+ index += 1;
909
+ output += `
910
+ `;
911
+ continue;
912
+ }
913
+ if (char === "/" && next === "*") {
914
+ index += 2;
915
+ while (index < source.length && !(source[index] === "*" && source[index + 1] === "/"))
916
+ index += 1;
917
+ index += 1;
918
+ continue;
919
+ }
920
+ output += char;
921
+ }
922
+ return output;
923
+ }
924
+ function stripTrailingCommas(source) {
925
+ let output = "";
926
+ let inString = false;
927
+ let quote = "";
928
+ let escaped = false;
929
+ for (let index = 0;index < source.length; index += 1) {
930
+ const char = source[index];
931
+ if (inString) {
932
+ output += char;
933
+ if (escaped) {
934
+ escaped = false;
935
+ } else if (char === "\\") {
936
+ escaped = true;
937
+ } else if (char === quote) {
938
+ inString = false;
939
+ }
940
+ continue;
941
+ }
942
+ if (char === '"' || char === "'") {
943
+ inString = true;
944
+ quote = char;
945
+ output += char;
946
+ continue;
947
+ }
948
+ if (char === ",") {
949
+ let nextIndex = index + 1;
950
+ while (/\s/.test(source[nextIndex] ?? ""))
951
+ nextIndex += 1;
952
+ if (source[nextIndex] === "}" || source[nextIndex] === "]")
953
+ continue;
954
+ }
955
+ output += char;
956
+ }
957
+ return output;
958
+ }
959
+
960
+ export { cachedExistsSync, clearResolverFsCache, splitResourceQuery, setResolveExtensions, setExternalPackagePolicy, getExternalPackagePolicy, setExternalLoadResolver, resolveExternalLoadTarget, packageNameOfSpecifier, packageNameForFile, externalPackageImportTarget, setTsConfigPath, setModuleAliases, resolveModuleAlias, resolveImport, resolveConfiguredTsPath, configuredTsPathPatterns, resolutionRootForFile, resolveNestedPackageFromImporter, provideEntryResolution, providedEntryResolution, resolvePackageSpecifier, resolveVendorPackageSpecifier, clearAppTreeResolutions, resolvePackageImportSpecifier, resolveRuntimeSpecifier, isPackageSubpathUnexported, resolveLinkedPackageSpecifier, isEsmModuleFile, isEsmModuleEntry, isCommonJsModuleSource, isWorkspacePackage, workspacePackageRoots };