@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,207 @@
1
+ // @bun
2
+ import { join as __pnextJoin } from "node:path";
3
+ const __PNEXT_PACKAGE_ROOT__ = __pnextJoin(import.meta.dirname, "../../..");
4
+ import {
5
+ getNextConfig
6
+ } from "./index-6e4fqv30.js";
7
+ import {
8
+ includeTypes,
9
+ writeFileAtomic
10
+ } from "./index-20ppawv7.js";
11
+
12
+ // src/compat/tsconfig-defaults.ts
13
+ import { existsSync, readdirSync } from "fs";
14
+ import { readFile } from "fs/promises";
15
+ import { createRequire } from "module";
16
+ import path from "path";
17
+ function hasTypescriptSources(root, depth = 0) {
18
+ if (depth > 6)
19
+ return false;
20
+ let entries;
21
+ try {
22
+ entries = readdirSync(root, { withFileTypes: true });
23
+ } catch {
24
+ return false;
25
+ }
26
+ for (const entry of entries) {
27
+ if (entry.name.startsWith(".") || entry.name === "node_modules")
28
+ continue;
29
+ if (entry.isFile() && /\.(ts|tsx|mts|cts)$/.test(entry.name) && !entry.name.endsWith(".d.ts")) {
30
+ return true;
31
+ }
32
+ if (entry.isDirectory() && hasTypescriptSources(path.join(root, entry.name), depth + 1)) {
33
+ return true;
34
+ }
35
+ }
36
+ return false;
37
+ }
38
+ function appTypescriptVersion(root) {
39
+ for (const base of [root, __PNEXT_PACKAGE_ROOT__ + "/src/compat"]) {
40
+ try {
41
+ const require2 = createRequire(path.join(base, "noop.js"));
42
+ const pkg = require2("typescript/package.json");
43
+ if (typeof pkg.version === "string")
44
+ return pkg.version;
45
+ } catch {}
46
+ }
47
+ return "5.9.0";
48
+ }
49
+ function versionGte(version, major, minor) {
50
+ const [maj = 0, min = 0] = version.split(".").map((part) => Number.parseInt(part, 10));
51
+ return maj > major || maj === major && min >= minor;
52
+ }
53
+ function getDesiredCompilerOptions(typescriptVersion, userTsConfig) {
54
+ const configuredModule = typeof userTsConfig.compilerOptions?.module === "string" ? userTsConfig.compilerOptions.module.toLowerCase() : undefined;
55
+ const preferBundlerResolution = versionGte(typescriptVersion, 5, 0) && configuredModule !== "commonjs" && configuredModule !== "amd";
56
+ const modulePreserve = versionGte(typescriptVersion, 5, 4) && configuredModule === "preserve";
57
+ return {
58
+ target: {
59
+ suggested: "ES2017",
60
+ reason: "For top-level `await`. Note: Next.js only polyfills for the esmodules target."
61
+ },
62
+ lib: { suggested: ["dom", "dom.iterable", "esnext"] },
63
+ allowJs: { suggested: true },
64
+ skipLibCheck: { suggested: true },
65
+ strict: { suggested: false },
66
+ noEmit: { suggested: true },
67
+ incremental: { suggested: true },
68
+ module: {
69
+ parsedValue: "esnext",
70
+ parsedValues: [
71
+ ...versionGte(typescriptVersion, 5, 4) ? ["preserve"] : [],
72
+ "es2020",
73
+ "esnext",
74
+ "commonjs",
75
+ "amd",
76
+ "nodenext",
77
+ "node16"
78
+ ],
79
+ value: "esnext",
80
+ reason: "for dynamic import() support"
81
+ },
82
+ ...modulePreserve ? {} : {
83
+ esModuleInterop: { value: true, reason: "requirement for SWC / babel" },
84
+ moduleResolution: {
85
+ parsedValue: preferBundlerResolution ? "bundler" : "node",
86
+ parsedValues: preferBundlerResolution ? ["node16", "nodenext", "bundler"] : ["node", "node12", "node16", "nodenext"],
87
+ value: preferBundlerResolution ? "bundler" : "node",
88
+ reason: preferBundlerResolution ? "to match modern bundler resolution" : "to match webpack resolution"
89
+ },
90
+ resolveJsonModule: { value: true, reason: "to match webpack resolution" }
91
+ },
92
+ ...userTsConfig.compilerOptions?.verbatimModuleSyntax === true ? {} : { isolatedModules: { value: true, reason: "requirement for SWC / Babel" } },
93
+ jsx: {
94
+ parsedValue: "react-jsx",
95
+ parsedValues: ["preserve", "react-jsx"],
96
+ value: "react-jsx",
97
+ reason: "next.js uses the React automatic runtime"
98
+ }
99
+ };
100
+ }
101
+ function typeDefinitionGlobPatterns(distDir) {
102
+ return [`${distDir}/types/**/*.ts`, `${distDir}/dev/types/**/*.ts`].sort((a, b) => a.length - b.length);
103
+ }
104
+ async function writeTsconfigDefaults(config) {
105
+ const tsConfigPath = path.join(config.root, "tsconfig.json");
106
+ const tempDirectory = path.dirname(config.root);
107
+ let isFirstTimeSetup = false;
108
+ if (!existsSync(tsConfigPath)) {
109
+ if (!hasTypescriptSources(config.root))
110
+ return;
111
+ isFirstTimeSetup = true;
112
+ await writeFileAtomic(tsConfigPath, `{}
113
+ `, tempDirectory);
114
+ }
115
+ let userTsConfig;
116
+ try {
117
+ userTsConfig = JSON.parse(await readFile(tsConfigPath, "utf8"));
118
+ } catch {
119
+ return;
120
+ }
121
+ if (userTsConfig === null || typeof userTsConfig !== "object")
122
+ return;
123
+ if ("extends" in userTsConfig || "references" in userTsConfig)
124
+ return;
125
+ if (userTsConfig.compilerOptions == null)
126
+ userTsConfig.compilerOptions = {};
127
+ const compilerOptions = userTsConfig.compilerOptions;
128
+ const desired = getDesiredCompilerOptions(appTypescriptVersion(config.root), userTsConfig);
129
+ const suggestedActions = [];
130
+ const requiredActions = [];
131
+ for (const [optionKey, check] of Object.entries(desired)) {
132
+ if ("suggested" in check) {
133
+ if (!(optionKey in compilerOptions)) {
134
+ compilerOptions[optionKey] = check.suggested;
135
+ suggestedActions.push(`${optionKey} was set to ${JSON.stringify(check.suggested)}` + (check.reason ? ` (${check.reason})` : ""));
136
+ }
137
+ continue;
138
+ }
139
+ let existingValue = compilerOptions[optionKey];
140
+ if (typeof existingValue === "string")
141
+ existingValue = existingValue.toLowerCase();
142
+ const satisfied = check.parsedValues ? check.parsedValues.includes(existingValue) : (check.parsedValue ?? check.value) === existingValue;
143
+ if (!satisfied) {
144
+ compilerOptions[optionKey] = check.value;
145
+ requiredActions.push(`${optionKey} was set to ${String(check.value)} (${check.reason})`);
146
+ }
147
+ }
148
+ const hasAppDir = existsSync(path.join(config.root, "app")) || existsSync(path.join(config.root, "src", "app"));
149
+ const hasPagesDir = existsSync(path.join(config.root, "pages")) || existsSync(path.join(config.root, "src", "pages"));
150
+ const strictRouteTypes = process.env.__NEXT_EXPERIMENTAL_STRICT_ROUTE_TYPES === "true";
151
+ const distDir = typeof getNextConfig().distDir === "string" ? getNextConfig().distDir : ".next";
152
+ const nextTypes = typeDefinitionGlobPatterns(distDir);
153
+ if (!("include" in userTsConfig)) {
154
+ const defaultInclude = hasAppDir && !strictRouteTypes ? ["next-env.d.ts", ...nextTypes, "**/*.mts", "**/*.ts", "**/*.tsx"] : ["next-env.d.ts", "**/*.mts", "**/*.ts", "**/*.tsx"];
155
+ includeTypes(userTsConfig, [], defaultInclude);
156
+ suggestedActions.push(`include was set to [${defaultInclude.map((type) => `'${type}'`).join(", ")}]`);
157
+ } else if (hasAppDir && !strictRouteTypes && Array.isArray(userTsConfig.include)) {
158
+ for (const type of includeTypes(userTsConfig, nextTypes, [])) {
159
+ suggestedActions.push(`include was updated to add '${type}'`);
160
+ }
161
+ }
162
+ if (hasAppDir) {
163
+ const plugins = [
164
+ ...Array.isArray(userTsConfig.plugins) ? userTsConfig.plugins : [],
165
+ ...Array.isArray(compilerOptions.plugins) ? compilerOptions.plugins : []
166
+ ];
167
+ if (!plugins.some((plugin) => plugin?.name === "next")) {
168
+ if (!Array.isArray(compilerOptions.plugins))
169
+ compilerOptions.plugins = [];
170
+ compilerOptions.plugins.push({ name: "next" });
171
+ suggestedActions.push(`plugins was updated to add { name: 'next' }`);
172
+ }
173
+ if (hasPagesDir && !compilerOptions.strict && !("strictNullChecks" in compilerOptions)) {
174
+ compilerOptions.strictNullChecks = true;
175
+ suggestedActions.push("strictNullChecks was set to true");
176
+ }
177
+ }
178
+ if (!("exclude" in userTsConfig)) {
179
+ userTsConfig.exclude = ["node_modules"];
180
+ suggestedActions.push(`exclude was set to ['node_modules']`);
181
+ }
182
+ if (suggestedActions.length === 0 && requiredActions.length === 0)
183
+ return;
184
+ await writeFileAtomic(tsConfigPath, `${JSON.stringify(userTsConfig, null, 2)}
185
+ `, tempDirectory);
186
+ if (isFirstTimeSetup) {
187
+ console.log(`
188
+ We detected TypeScript in your project and created a tsconfig.json file for you.`);
189
+ return;
190
+ }
191
+ const lines = [
192
+ "",
193
+ `We detected TypeScript in your project and reconfigured your tsconfig.json file for you.${compilerOptions.strict ? "" : " Strict-mode is set to false by default."}`
194
+ ];
195
+ if (suggestedActions.length > 0) {
196
+ lines.push(`The following suggested values were added to your tsconfig.json. These values can be changed to fit your project's needs:
197
+ `, ...suggestedActions.map((action) => ` - ${action}`), "");
198
+ }
199
+ if (requiredActions.length > 0) {
200
+ lines.push(`The following mandatory changes were made to your tsconfig.json:
201
+ `, ...requiredActions.map((action) => ` - ${action}`), "");
202
+ }
203
+ console.log(lines.join(`
204
+ `));
205
+ }
206
+
207
+ export { writeTsconfigDefaults };
@@ -0,0 +1,24 @@
1
+ // @bun
2
+ import {
3
+ withUseThenableState
4
+ } from "./index-h4xy648y.js";
5
+
6
+ // src/compat/react/server-component-use.ts
7
+ function isThenable(value) {
8
+ return value != null && (typeof value === "object" || typeof value === "function") && typeof value.then === "function";
9
+ }
10
+ function invokeServerComponentWithUse(invoke) {
11
+ const state = { thenables: [] };
12
+ const attempt = () => {
13
+ try {
14
+ return withUseThenableState(state, invoke);
15
+ } catch (error) {
16
+ if (isThenable(error))
17
+ return Promise.resolve(error).then(attempt, attempt);
18
+ throw error;
19
+ }
20
+ };
21
+ return attempt();
22
+ }
23
+
24
+ export { invokeServerComponentWithUse };
@@ -0,0 +1,35 @@
1
+ // @bun
2
+ // src/compat/cache/handler.ts
3
+ var handler;
4
+ function setCacheHandler(instance) {
5
+ handler = instance;
6
+ }
7
+ function hasCacheHandler() {
8
+ return handler !== undefined;
9
+ }
10
+ async function cacheHandlerGet(key, ctx) {
11
+ if (!handler)
12
+ return;
13
+ try {
14
+ const entry = await handler.get(key, ctx);
15
+ return entry ?? undefined;
16
+ } catch {
17
+ return;
18
+ }
19
+ }
20
+ async function cacheHandlerSet(key, data, ctx) {
21
+ if (!handler)
22
+ return;
23
+ try {
24
+ await handler.set(key, data, ctx);
25
+ } catch {}
26
+ }
27
+ async function cacheHandlerRevalidateTag(tag) {
28
+ if (!handler?.revalidateTag)
29
+ return;
30
+ try {
31
+ await handler.revalidateTag(tag);
32
+ } catch {}
33
+ }
34
+
35
+ export { setCacheHandler, hasCacheHandler, cacheHandlerGet, cacheHandlerSet, cacheHandlerRevalidateTag };
@@ -0,0 +1,92 @@
1
+ // @bun
2
+ import { join as __pnextJoin } from "node:path";
3
+ const __PNEXT_PACKAGE_ROOT__ = __pnextJoin(import.meta.dirname, "../../..");
4
+ // src/runtime/fingerprint.ts
5
+ import { createHash } from "crypto";
6
+ import { mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
7
+ import path from "path";
8
+ import { fileURLToPath } from "url";
9
+ var prebundleFingerprint = typeof { version: "0.1.7", fingerprint: "3e1b3462bd8a29ed", entries: ["cli/index", "cli/start", "client/reference", "api/client-cache", "compat/next/canonical-url", "compat/next/link-transform", "compat/next/client-navigation", "compat/next/og", "compat/next/link", "compat/next/usage", "compat/next/client-script", "compat/next/headers", "compat/next/custom-server", "compat/next/legacy-image", "compat/next/router", "compat/next/navigation", "compat/next/dist/server/web/spec-extension/unstable-no-store", "compat/next/dist/server/web/spec-extension/unstable-cache", "compat/next/dist/server/web/spec-extension/revalidate", "compat/next/dist/client/components/app-router-headers", "compat/next/web-vitals", "compat/next/root-params", "compat/next/route-state", "compat/next/server-only", "compat/next/client-server", "compat/next/legacy-request-apis", "compat/next/redirects", "compat/next/resource-hints", "compat/next/svgr", "compat/next/client-only", "compat/next/image/props", "compat/next/image/optimizer", "compat/next/image/validate", "compat/next/image/shared", "compat/next/image/patterns", "compat/next/image/config", "compat/next/image/client", "compat/next/image/static-metadata", "compat/next/user-agent", "compat/next/client-cache", "compat/next/head", "compat/next/dynamic", "compat/next/telemetry", "compat/next/offline", "compat/next/cache", "compat/next/constants", "compat/next/error", "compat/next/script", "compat/next/index", "compat/next/font/shared", "compat/next/font/runtime", "compat/next/font/google", "compat/next/font/cache", "compat/next/font/runtime-client", "compat/next/font/local", "compat/next/font/index", "compat/next/config-loader", "compat/next/config", "compat/next/image", "compat/next/server", "compat/next/rewrites", "compat/next/preferred-region", "compat/next/config-headers", "compat/next/form", "compat/react/dom", "compat/react/hooks-extra", "compat/react/react-server", "compat/react/dom-client", "compat/react/style-values", "compat/react/compiler-runtime", "compat/react/router-shim", "compat/react/dom-server", "compat/react/dom-react-server", "compat/react/server-component-use", "compat/react/action-state", "compat/react/client", "compat/react/client-lite", "compat/react/server-inserted-html", "compat/react/parity", "compat/react/preact", "compat/react/use", "compat/react/view-transition", "compat/react/internals", "compat/react/server"] } === "object" ? { version: "0.1.7", fingerprint: "3e1b3462bd8a29ed", entries: ["cli/index", "cli/start", "client/reference", "api/client-cache", "compat/next/canonical-url", "compat/next/link-transform", "compat/next/client-navigation", "compat/next/og", "compat/next/link", "compat/next/usage", "compat/next/client-script", "compat/next/headers", "compat/next/custom-server", "compat/next/legacy-image", "compat/next/router", "compat/next/navigation", "compat/next/dist/server/web/spec-extension/unstable-no-store", "compat/next/dist/server/web/spec-extension/unstable-cache", "compat/next/dist/server/web/spec-extension/revalidate", "compat/next/dist/client/components/app-router-headers", "compat/next/web-vitals", "compat/next/root-params", "compat/next/route-state", "compat/next/server-only", "compat/next/client-server", "compat/next/legacy-request-apis", "compat/next/redirects", "compat/next/resource-hints", "compat/next/svgr", "compat/next/client-only", "compat/next/image/props", "compat/next/image/optimizer", "compat/next/image/validate", "compat/next/image/shared", "compat/next/image/patterns", "compat/next/image/config", "compat/next/image/client", "compat/next/image/static-metadata", "compat/next/user-agent", "compat/next/client-cache", "compat/next/head", "compat/next/dynamic", "compat/next/telemetry", "compat/next/offline", "compat/next/cache", "compat/next/constants", "compat/next/error", "compat/next/script", "compat/next/index", "compat/next/font/shared", "compat/next/font/runtime", "compat/next/font/google", "compat/next/font/cache", "compat/next/font/runtime-client", "compat/next/font/local", "compat/next/font/index", "compat/next/config-loader", "compat/next/config", "compat/next/image", "compat/next/server", "compat/next/rewrites", "compat/next/preferred-region", "compat/next/config-headers", "compat/next/form", "compat/react/dom", "compat/react/hooks-extra", "compat/react/react-server", "compat/react/dom-client", "compat/react/style-values", "compat/react/compiler-runtime", "compat/react/router-shim", "compat/react/dom-server", "compat/react/dom-react-server", "compat/react/server-component-use", "compat/react/action-state", "compat/react/client", "compat/react/client-lite", "compat/react/server-inserted-html", "compat/react/parity", "compat/react/preact", "compat/react/use", "compat/react/view-transition", "compat/react/internals", "compat/react/server"] }.fingerprint : undefined;
10
+ var SOURCE_EXTENSIONS = new Set([".ts", ".tsx", ".js", ".jsx", ".cjs", ".mjs"]);
11
+ var DECLARATION = /\.d\.[cm]?ts$/;
12
+ var frameworkSrc = fileURLToPath(new URL("..", Bun.pathToFileURL(__PNEXT_PACKAGE_ROOT__ + "/src/runtime/fingerprint.ts").href));
13
+ function sourceFiles(dir, found = []) {
14
+ let entries;
15
+ try {
16
+ entries = readdirSync(dir, { withFileTypes: true });
17
+ } catch {
18
+ return found;
19
+ }
20
+ for (const entry of entries.sort((a, b) => a.name < b.name ? -1 : 1)) {
21
+ const full = path.join(dir, entry.name);
22
+ if (entry.isDirectory())
23
+ sourceFiles(full, found);
24
+ else if (SOURCE_EXTENSIONS.has(path.extname(entry.name)) && !DECLARATION.test(entry.name))
25
+ found.push(full);
26
+ }
27
+ return found;
28
+ }
29
+ function contentFingerprint(files, dir) {
30
+ const hash = createHash("sha256");
31
+ for (const file of files) {
32
+ hash.update(path.relative(dir, file));
33
+ try {
34
+ hash.update(Bun.hash(readFileSync(file)).toString(36));
35
+ } catch {}
36
+ hash.update("\x00");
37
+ }
38
+ return hash.digest("hex").slice(0, 16);
39
+ }
40
+ var RECORD_VERSION = 1;
41
+ function statSignature(files, dir) {
42
+ const hash = createHash("sha256");
43
+ for (const file of files) {
44
+ const stats = statSync(file, { throwIfNoEntry: false });
45
+ hash.update(`${path.relative(dir, file)}:${stats?.size ?? -1}:${stats?.mtimeMs ?? -1}\x00`);
46
+ }
47
+ return hash.digest("hex").slice(0, 16);
48
+ }
49
+ function recordFile(dir) {
50
+ return path.join(dir, "framework.json");
51
+ }
52
+ function readRecord(dir) {
53
+ try {
54
+ const parsed = JSON.parse(readFileSync(recordFile(dir), "utf8"));
55
+ return parsed.version === RECORD_VERSION && parsed.stats && parsed.fingerprint ? parsed : undefined;
56
+ } catch {
57
+ return;
58
+ }
59
+ }
60
+ function writeRecord(dir, record) {
61
+ try {
62
+ mkdirSync(dir, { recursive: true });
63
+ writeFileSync(recordFile(dir), JSON.stringify(record));
64
+ } catch {}
65
+ }
66
+ var fingerprint;
67
+ var fingerprintStats;
68
+ var scanned = false;
69
+ var recorded = new Set;
70
+ function frameworkFingerprint(recordDir) {
71
+ const pinned = process.env.PNEXT_FRAMEWORK_FINGERPRINT ?? prebundleFingerprint;
72
+ if (pinned)
73
+ return pinned;
74
+ if (fingerprint !== undefined && (!recordDir || recorded.has(recordDir)))
75
+ return fingerprint;
76
+ const previous = recordDir ? readRecord(recordDir) : undefined;
77
+ if (!scanned || fingerprint === undefined || fingerprintStats === undefined) {
78
+ const files = sourceFiles(frameworkSrc);
79
+ fingerprintStats = statSignature(files, frameworkSrc);
80
+ const recordedFingerprint = previous?.stats === fingerprintStats ? previous.fingerprint : undefined;
81
+ scanned = recordedFingerprint === undefined;
82
+ fingerprint = recordedFingerprint ?? contentFingerprint(files, frameworkSrc);
83
+ }
84
+ if (recordDir) {
85
+ recorded.add(recordDir);
86
+ if (previous?.stats !== fingerprintStats)
87
+ writeRecord(recordDir, { version: RECORD_VERSION, stats: fingerprintStats, fingerprint });
88
+ }
89
+ return fingerprint;
90
+ }
91
+
92
+ export { frameworkFingerprint };
@@ -0,0 +1,95 @@
1
+ // @bun
2
+ import {
3
+ getRequestRuntime
4
+ } from "./index-z88qv16t.js";
5
+ import {
6
+ getNextConfig
7
+ } from "./index-6e4fqv30.js";
8
+
9
+ // src/compat/next/route-state.ts
10
+ function publicSegments(route) {
11
+ if (route === "index" || route === "/")
12
+ return [];
13
+ return route.split("/").filter(Boolean);
14
+ }
15
+ function isDynamicSegment(segment) {
16
+ return segment.startsWith(":");
17
+ }
18
+ function staticSiblingNames(routes, pattern) {
19
+ for (let index = pattern.length - 1;index >= 0; index--) {
20
+ if (isDynamicSegment(pattern[index]))
21
+ return staticSiblingNamesAt(routes, pattern, index);
22
+ }
23
+ return [];
24
+ }
25
+ function staticSiblingNamesBySegment(routes, pattern) {
26
+ const result = {};
27
+ for (let index = 0;index < pattern.length; index++) {
28
+ if (!isDynamicSegment(pattern[index]))
29
+ continue;
30
+ const siblings = staticSiblingNamesAt(routes, pattern, index);
31
+ result[String(index)] = siblings;
32
+ }
33
+ return result;
34
+ }
35
+ function staticSiblingNamesAt(routes, pattern, level) {
36
+ if (!isDynamicSegment(pattern[level]))
37
+ return [];
38
+ const names = new Set;
39
+ for (const route of routes) {
40
+ if (route.kind !== "page" || route.interception)
41
+ continue;
42
+ const segments = publicSegments(route.route);
43
+ if (segments.length <= level)
44
+ continue;
45
+ let compatible = true;
46
+ for (let index = 0;index < level; index++) {
47
+ const own = pattern[index];
48
+ const other = segments[index];
49
+ if (isDynamicSegment(own) || isDynamicSegment(other))
50
+ continue;
51
+ if (own !== other) {
52
+ compatible = false;
53
+ break;
54
+ }
55
+ }
56
+ if (!compatible)
57
+ continue;
58
+ const name = segments[level];
59
+ if (!isDynamicSegment(name))
60
+ names.add(name);
61
+ }
62
+ return [...names].sort();
63
+ }
64
+ function paramsPrerendered(route, params) {
65
+ const sets = route.prerenderedParams;
66
+ if (!sets?.length)
67
+ return false;
68
+ if (Object.keys(params).length !== (route.params ?? []).length)
69
+ return false;
70
+ return sets.some((set) => {
71
+ const names = Object.keys(set);
72
+ return names.length === Object.keys(params).length && names.every((name) => String(set[name]) === String(params[name]));
73
+ });
74
+ }
75
+ function nextClientRouteState(route, state) {
76
+ const pattern = state.route.split("/").filter(Boolean);
77
+ const routes = getRequestRuntime()?.routes;
78
+ if (!routes)
79
+ return state;
80
+ const staticChildrenBySegment = staticSiblingNamesBySegment(routes, pattern);
81
+ const staticChildren = staticSiblingNames(routes, pattern);
82
+ const globalEager = getNextConfig().partialPrefetching === "unstable_eager";
83
+ const declared = route.segmentConfig?.prefetch;
84
+ const partiallyEnumerated = route.stream?.hasLoadingBoundary === true && !paramsPrerendered(route, state.params);
85
+ const prefetchKind = declared === "unstable_eager" || declared === undefined && (globalEager || route.hasStaticParams && !route.usesRequest && !partiallyEnumerated) ? "eager" : declared === "allow-runtime" || declared === "partial" ? "shell" : undefined;
86
+ return {
87
+ ...state,
88
+ ...staticChildren.length > 0 ? { staticChildren } : {},
89
+ ...Object.keys(staticChildrenBySegment).length > 0 ? { staticChildrenBySegment } : {},
90
+ ...prefetchKind ? { prefetchKind } : {},
91
+ ...declared === "allow-runtime" ? { runtimePrefetch: true } : {}
92
+ };
93
+ }
94
+
95
+ export { staticSiblingNames, staticSiblingNamesBySegment, nextClientRouteState };
@@ -0,0 +1,65 @@
1
+ // @bun
2
+ import {
3
+ loadNative
4
+ } from "./index-7wc9n8be.js";
5
+ import {
6
+ __require
7
+ } from "./index-rt9qq1va.js";
8
+
9
+ // src/utils/esbuild.ts
10
+ var esbuild;
11
+ function load() {
12
+ return esbuild ??= loadNative(() => __require("esbuild"));
13
+ }
14
+ var inFlight = 0;
15
+ var stopWhenIdle = false;
16
+ function track(promise) {
17
+ inFlight += 1;
18
+ return promise.finally(() => {
19
+ inFlight -= 1;
20
+ if (inFlight === 0 && stopWhenIdle) {
21
+ stopWhenIdle = false;
22
+ esbuild?.stop();
23
+ }
24
+ });
25
+ }
26
+ var serviceDied = (error) => error instanceof Error && (error.message.includes("The service is no longer running") || error.message.includes("The service was stopped"));
27
+ var resetEpoch = 0;
28
+ var serviceReset;
29
+ async function withServiceRetry(run) {
30
+ const epoch = resetEpoch;
31
+ try {
32
+ return await track(run());
33
+ } catch (error) {
34
+ if (!serviceDied(error))
35
+ throw error;
36
+ if (epoch === resetEpoch) {
37
+ serviceReset ??= Promise.resolve(esbuild?.stop()).catch(() => {
38
+ return;
39
+ }).then(() => {
40
+ resetEpoch += 1;
41
+ serviceReset = undefined;
42
+ });
43
+ await serviceReset;
44
+ }
45
+ return track(run());
46
+ }
47
+ }
48
+ var build = (options) => withServiceRetry(() => load().build(options));
49
+ var transform = (input, options) => withServiceRetry(() => load().transform(input, options));
50
+ function warmEsbuildService() {
51
+ transform("", { loader: "js" }).catch(() => {
52
+ return;
53
+ });
54
+ }
55
+ function stopEsbuildService() {
56
+ if (!esbuild)
57
+ return;
58
+ if (inFlight > 0) {
59
+ stopWhenIdle = true;
60
+ return;
61
+ }
62
+ esbuild.stop();
63
+ }
64
+
65
+ export { build, transform, warmEsbuildService, stopEsbuildService };
@@ -0,0 +1,41 @@
1
+ // @bun
2
+ // src/compat/next/svgr.ts
3
+ var svgAsComponent = false;
4
+ function setSvgAsComponentEnabled(enabled) {
5
+ svgAsComponent = enabled;
6
+ }
7
+ function isSvgAsComponentEnabled() {
8
+ return svgAsComponent;
9
+ }
10
+ function webpackReferencesSvgr(config) {
11
+ return typeof config.webpack === "function" && String(config.webpack).includes("@svgr/webpack");
12
+ }
13
+ var XML_PROLOGUE = /^\uFEFF?\s*(?:<\?xml[^>]*\?>\s*)?(?:<!DOCTYPE[^>]*>\s*)?/i;
14
+ var SVG_TAG = /^<svg([^>]*)>([\s\S]*)<\/svg>\s*$/i;
15
+ var ATTR = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)\s*=\s*"([^"]*)"|([a-zA-Z_:][-a-zA-Z0-9_:.]*)\s*=\s*'([^']*)'/g;
16
+ function parseRootAttrs(raw) {
17
+ const attrs = {};
18
+ for (const match of raw.matchAll(ATTR)) {
19
+ const name = match[1] ?? match[3];
20
+ const value = match[2] ?? match[4] ?? "";
21
+ if (name)
22
+ attrs[name] = value;
23
+ }
24
+ return attrs;
25
+ }
26
+ function svgComponentModule(bytes) {
27
+ const text = new TextDecoder().decode(bytes).replace(XML_PROLOGUE, "").trim();
28
+ const match = SVG_TAG.exec(text);
29
+ const rootAttrs = match ? parseRootAttrs(match[1] ?? "") : {};
30
+ const inner = match ? match[2] : text;
31
+ return `import { h } from 'preact';
32
+ const __pnextSvgAttrs = ${JSON.stringify(rootAttrs)};
33
+ const __pnextSvgInner = ${JSON.stringify(inner)};
34
+ function SvgComponent(props) {
35
+ return h('svg', { ...__pnextSvgAttrs, ...props, dangerouslySetInnerHTML: { __html: __pnextSvgInner } });
36
+ }
37
+ export default SvgComponent;
38
+ `;
39
+ }
40
+
41
+ export { setSvgAsComponentEnabled, isSvgAsComponentEnabled, webpackReferencesSvgr, svgComponentModule };
@@ -0,0 +1,87 @@
1
+ // @bun
2
+ import { join as __pnextJoin } from "node:path";
3
+ const __PNEXT_PACKAGE_ROOT__ = __pnextJoin(import.meta.dirname, "../../..");
4
+ // src/cli/boot/named-bin.ts
5
+ import {
6
+ chmodSync,
7
+ constants as fsConstants,
8
+ copyFileSync,
9
+ existsSync,
10
+ linkSync,
11
+ mkdirSync,
12
+ readdirSync,
13
+ renameSync,
14
+ rmSync
15
+ } from "fs";
16
+ import { createRequire } from "module";
17
+ import os from "os";
18
+ import path from "path";
19
+ var namedBinaryName = "pnext";
20
+ var cliCommands = new Set(["dev", "build", "start", "analyze", "typegen"]);
21
+ function commandBinaryName(command) {
22
+ if (command && cliCommands.has(command))
23
+ return `${namedBinaryName}-${command}`;
24
+ return namedBinaryName;
25
+ }
26
+ function namedBunBinary(name = namedBinaryName) {
27
+ if (process.platform === "win32")
28
+ return process.execPath;
29
+ if (path.basename(process.execPath) === name)
30
+ return process.execPath;
31
+ return namedExecutable(process.execPath, `bun-${Bun.version}`, name);
32
+ }
33
+ function nameEsbuildProcess() {
34
+ if (process.platform === "win32")
35
+ return;
36
+ if (process.env.ESBUILD_BINARY_PATH)
37
+ return;
38
+ try {
39
+ const require2 = createRequire(Bun.pathToFileURL(__PNEXT_PACKAGE_ROOT__ + "/src/cli/boot/named-bin.ts").href);
40
+ const { version } = require2("esbuild/package.json");
41
+ const binPath = require2.resolve(`@esbuild/${process.platform}-${process.arch}/bin/esbuild`);
42
+ const named = namedExecutable(binPath, `esbuild-${version}`, "pnext-esbuild");
43
+ if (named !== binPath)
44
+ process.env.ESBUILD_BINARY_PATH = named;
45
+ } catch {}
46
+ }
47
+ function namedExecutable(sourcePath, versionDir, name) {
48
+ try {
49
+ const binRoot = path.join(cacheRoot(), "bin");
50
+ const dir = path.join(binRoot, versionDir);
51
+ const named = path.join(dir, name);
52
+ if (!existsSync(named)) {
53
+ mkdirSync(dir, { recursive: true });
54
+ const staging = path.join(dir, `.${name}-${process.pid}`);
55
+ rmSync(staging, { force: true });
56
+ try {
57
+ linkSync(sourcePath, staging);
58
+ } catch {
59
+ copyFileSync(sourcePath, staging, fsConstants.COPYFILE_FICLONE);
60
+ chmodSync(staging, 493);
61
+ }
62
+ renameSync(staging, named);
63
+ removeStaleVersions(binRoot, path.basename(dir));
64
+ }
65
+ return named;
66
+ } catch {
67
+ return sourcePath;
68
+ }
69
+ }
70
+ function removeStaleVersions(binRoot, keep) {
71
+ const toolPrefix = keep.slice(0, keep.indexOf("-") + 1);
72
+ try {
73
+ for (const entry of readdirSync(binRoot)) {
74
+ if (entry === keep || !entry.startsWith(toolPrefix))
75
+ continue;
76
+ rmSync(path.join(binRoot, entry), { recursive: true, force: true });
77
+ }
78
+ } catch {}
79
+ }
80
+ function cacheRoot() {
81
+ const xdg = process.env.XDG_CACHE_HOME;
82
+ if (xdg)
83
+ return path.join(xdg, "pnext");
84
+ return path.join(os.homedir(), ".cache", "pnext");
85
+ }
86
+
87
+ export { commandBinaryName, namedBunBinary, nameEsbuildProcess, cacheRoot };