vinext 0.0.30 → 0.0.32

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 (435) hide show
  1. package/README.md +15 -7
  2. package/dist/build/prerender.d.ts +188 -0
  3. package/dist/build/prerender.js +675 -0
  4. package/dist/build/prerender.js.map +1 -0
  5. package/dist/build/report.d.ts +45 -46
  6. package/dist/build/report.js +581 -276
  7. package/dist/build/report.js.map +1 -1
  8. package/dist/build/run-prerender.d.ts +62 -0
  9. package/dist/build/run-prerender.js +183 -0
  10. package/dist/build/run-prerender.js.map +1 -0
  11. package/dist/build/server-manifest.d.ts +19 -0
  12. package/dist/build/server-manifest.js +29 -0
  13. package/dist/build/server-manifest.js.map +1 -0
  14. package/dist/build/static-export.d.ts +51 -66
  15. package/dist/build/static-export.js +51 -545
  16. package/dist/build/static-export.js.map +1 -1
  17. package/dist/check.d.ts +26 -24
  18. package/dist/check.js +681 -571
  19. package/dist/check.js.map +1 -1
  20. package/dist/cli.d.ts +1 -15
  21. package/dist/cli.js +432 -491
  22. package/dist/cli.js.map +1 -1
  23. package/dist/client/entry.d.ts +1 -2
  24. package/dist/client/entry.js +49 -62
  25. package/dist/client/entry.js.map +1 -1
  26. package/dist/client/validate-module-path.d.ts +4 -1
  27. package/dist/client/validate-module-path.js +23 -28
  28. package/dist/client/validate-module-path.js.map +1 -1
  29. package/dist/client/vinext-next-data.d.ts +15 -20
  30. package/dist/client/vinext-next-data.js +0 -1
  31. package/dist/cloudflare/index.d.ts +3 -8
  32. package/dist/cloudflare/index.js +3 -8
  33. package/dist/cloudflare/kv-cache-handler.d.ts +95 -105
  34. package/dist/cloudflare/kv-cache-handler.js +354 -380
  35. package/dist/cloudflare/kv-cache-handler.js.map +1 -1
  36. package/dist/cloudflare/tpr.d.ts +36 -34
  37. package/dist/cloudflare/tpr.js +460 -603
  38. package/dist/cloudflare/tpr.js.map +1 -1
  39. package/dist/config/config-matchers.d.ts +31 -40
  40. package/dist/config/config-matchers.js +727 -936
  41. package/dist/config/config-matchers.js.map +1 -1
  42. package/dist/config/dotenv.d.ts +18 -11
  43. package/dist/config/dotenv.js +79 -84
  44. package/dist/config/dotenv.js.map +1 -1
  45. package/dist/config/next-config.d.ts +156 -146
  46. package/dist/config/next-config.js +376 -464
  47. package/dist/config/next-config.js.map +1 -1
  48. package/dist/deploy.d.ts +87 -96
  49. package/dist/deploy.js +490 -628
  50. package/dist/deploy.js.map +1 -1
  51. package/dist/entries/app-browser-entry.d.ts +4 -1
  52. package/dist/entries/app-browser-entry.js +12 -8
  53. package/dist/entries/app-browser-entry.js.map +1 -1
  54. package/dist/entries/app-rsc-entry.d.ts +33 -20
  55. package/dist/entries/app-rsc-entry.js +444 -212
  56. package/dist/entries/app-rsc-entry.js.map +1 -1
  57. package/dist/entries/app-ssr-entry.d.ts +9 -1
  58. package/dist/entries/app-ssr-entry.js +61 -28
  59. package/dist/entries/app-ssr-entry.js.map +1 -1
  60. package/dist/entries/pages-client-entry.d.ts +6 -2
  61. package/dist/entries/pages-client-entry.js +30 -33
  62. package/dist/entries/pages-client-entry.js.map +1 -1
  63. package/dist/entries/pages-entry-helpers.d.ts +5 -1
  64. package/dist/entries/pages-entry-helpers.js +17 -14
  65. package/dist/entries/pages-entry-helpers.js.map +1 -1
  66. package/dist/entries/pages-server-entry.d.ts +6 -2
  67. package/dist/entries/pages-server-entry.js +86 -114
  68. package/dist/entries/pages-server-entry.js.map +1 -1
  69. package/dist/index.d.ts +92 -60
  70. package/dist/index.js +2151 -3133
  71. package/dist/index.js.map +1 -1
  72. package/dist/init.d.ts +40 -37
  73. package/dist/init.js +201 -258
  74. package/dist/init.js.map +1 -1
  75. package/dist/plugins/async-hooks-stub.d.ts +7 -3
  76. package/dist/plugins/async-hooks-stub.js +39 -42
  77. package/dist/plugins/async-hooks-stub.js.map +1 -1
  78. package/dist/plugins/client-reference-dedup.d.ts +7 -3
  79. package/dist/plugins/client-reference-dedup.js +63 -88
  80. package/dist/plugins/client-reference-dedup.js.map +1 -1
  81. package/dist/routing/app-router.d.ts +100 -96
  82. package/dist/routing/app-router.js +560 -670
  83. package/dist/routing/app-router.js.map +1 -1
  84. package/dist/routing/file-matcher.d.ts +18 -15
  85. package/dist/routing/file-matcher.js +65 -65
  86. package/dist/routing/file-matcher.js.map +1 -1
  87. package/dist/routing/pages-router.d.ts +23 -24
  88. package/dist/routing/pages-router.js +147 -172
  89. package/dist/routing/pages-router.js.map +1 -1
  90. package/dist/routing/route-trie.d.ts +23 -20
  91. package/dist/routing/route-trie.js +131 -151
  92. package/dist/routing/route-trie.js.map +1 -1
  93. package/dist/routing/route-validation.d.ts +5 -2
  94. package/dist/routing/route-validation.js +98 -130
  95. package/dist/routing/route-validation.js.map +1 -1
  96. package/dist/routing/utils.d.ts +10 -7
  97. package/dist/routing/utils.js +75 -111
  98. package/dist/routing/utils.js.map +1 -1
  99. package/dist/server/api-handler.d.ts +8 -13
  100. package/dist/server/api-handler.js +160 -193
  101. package/dist/server/api-handler.js.map +1 -1
  102. package/dist/server/app-router-entry.d.ts +6 -16
  103. package/dist/server/app-router-entry.js +26 -54
  104. package/dist/server/app-router-entry.js.map +1 -1
  105. package/dist/server/dev-module-runner.d.ts +11 -64
  106. package/dist/server/dev-module-runner.js +89 -101
  107. package/dist/server/dev-module-runner.js.map +1 -1
  108. package/dist/server/dev-origin-check.d.ts +12 -10
  109. package/dist/server/dev-origin-check.js +98 -108
  110. package/dist/server/dev-origin-check.js.map +1 -1
  111. package/dist/server/dev-server.d.ts +19 -15
  112. package/dist/server/dev-server.js +543 -871
  113. package/dist/server/dev-server.js.map +1 -1
  114. package/dist/server/html.d.ts +4 -1
  115. package/dist/server/html.js +25 -26
  116. package/dist/server/html.js.map +1 -1
  117. package/dist/server/image-optimization.d.ts +31 -28
  118. package/dist/server/image-optimization.js +181 -210
  119. package/dist/server/image-optimization.js.map +1 -1
  120. package/dist/server/instrumentation.d.ts +34 -59
  121. package/dist/server/instrumentation.js +112 -125
  122. package/dist/server/instrumentation.js.map +1 -1
  123. package/dist/server/isr-cache.d.ts +16 -26
  124. package/dist/server/isr-cache.js +106 -128
  125. package/dist/server/isr-cache.js.map +1 -1
  126. package/dist/server/metadata-routes.d.ts +85 -88
  127. package/dist/server/metadata-routes.js +270 -317
  128. package/dist/server/metadata-routes.js.map +1 -1
  129. package/dist/server/middleware-codegen.d.ts +7 -4
  130. package/dist/server/middleware-codegen.js +61 -61
  131. package/dist/server/middleware-codegen.js.map +1 -1
  132. package/dist/server/middleware-request-headers.d.ts +8 -6
  133. package/dist/server/middleware-request-headers.js +47 -65
  134. package/dist/server/middleware-request-headers.js.map +1 -1
  135. package/dist/server/middleware.d.ts +32 -47
  136. package/dist/server/middleware.js +261 -409
  137. package/dist/server/middleware.js.map +1 -1
  138. package/dist/server/normalize-path.d.ts +4 -1
  139. package/dist/server/normalize-path.js +33 -47
  140. package/dist/server/normalize-path.js.map +1 -1
  141. package/dist/server/pages-i18n.d.ts +38 -30
  142. package/dist/server/pages-i18n.js +112 -139
  143. package/dist/server/pages-i18n.js.map +1 -1
  144. package/dist/server/prod-server.d.ts +19 -31
  145. package/dist/server/prod-server.js +715 -945
  146. package/dist/server/prod-server.js.map +1 -1
  147. package/dist/server/request-log.d.ts +18 -12
  148. package/dist/server/request-log.js +45 -52
  149. package/dist/server/request-log.js.map +1 -1
  150. package/dist/server/request-pipeline.d.ts +9 -17
  151. package/dist/server/request-pipeline.js +133 -184
  152. package/dist/server/request-pipeline.js.map +1 -1
  153. package/dist/server/worker-utils.d.ts +4 -1
  154. package/dist/server/worker-utils.js +31 -37
  155. package/dist/server/worker-utils.js.map +1 -1
  156. package/dist/shims/amp.d.ts +5 -2
  157. package/dist/shims/amp.js +19 -15
  158. package/dist/shims/amp.js.map +1 -1
  159. package/dist/shims/app.d.ts +8 -10
  160. package/dist/shims/app.js +0 -1
  161. package/dist/shims/cache-runtime.d.ts +20 -45
  162. package/dist/shims/cache-runtime.js +271 -422
  163. package/dist/shims/cache-runtime.js.map +1 -1
  164. package/dist/shims/cache.d.ts +130 -121
  165. package/dist/shims/cache.js +339 -427
  166. package/dist/shims/cache.js.map +1 -1
  167. package/dist/shims/client-only.d.ts +1 -18
  168. package/dist/shims/client-only.js +0 -17
  169. package/dist/shims/compat-router.d.ts +6 -1
  170. package/dist/shims/compat-router.js +23 -19
  171. package/dist/shims/compat-router.js.map +1 -1
  172. package/dist/shims/config.d.ts +7 -5
  173. package/dist/shims/config.js +16 -23
  174. package/dist/shims/config.js.map +1 -1
  175. package/dist/shims/constants.d.ts +119 -118
  176. package/dist/shims/constants.js +159 -164
  177. package/dist/shims/constants.js.map +1 -1
  178. package/dist/shims/document.d.ts +20 -16
  179. package/dist/shims/document.js +41 -22
  180. package/dist/shims/document.js.map +1 -1
  181. package/dist/shims/dynamic.d.ts +13 -22
  182. package/dist/shims/dynamic.js +122 -136
  183. package/dist/shims/dynamic.js.map +1 -1
  184. package/dist/shims/error-boundary.d.ts +22 -15
  185. package/dist/shims/error-boundary.js +81 -79
  186. package/dist/shims/error-boundary.js.map +1 -1
  187. package/dist/shims/error.d.ts +11 -12
  188. package/dist/shims/error.js +35 -39
  189. package/dist/shims/error.js.map +1 -1
  190. package/dist/shims/fetch-cache.d.ts +16 -14
  191. package/dist/shims/fetch-cache.js +439 -645
  192. package/dist/shims/fetch-cache.js.map +1 -1
  193. package/dist/shims/font-google-base.d.ts +28 -26
  194. package/dist/shims/font-google-base.js +238 -325
  195. package/dist/shims/font-google-base.js.map +1 -1
  196. package/dist/shims/font-google.d.ts +3 -3
  197. package/dist/shims/font-google.generated.d.ts +1928 -1924
  198. package/dist/shims/font-google.generated.js +1928 -2133
  199. package/dist/shims/font-google.generated.js.map +1 -1
  200. package/dist/shims/font-google.js +3 -3
  201. package/dist/shims/font-local.d.ts +28 -26
  202. package/dist/shims/font-local.js +204 -260
  203. package/dist/shims/font-local.js.map +1 -1
  204. package/dist/shims/form.d.ts +13 -27
  205. package/dist/shims/form.js +128 -180
  206. package/dist/shims/form.js.map +1 -1
  207. package/dist/shims/head-state.d.ts +8 -13
  208. package/dist/shims/head-state.js +25 -42
  209. package/dist/shims/head-state.js.map +1 -1
  210. package/dist/shims/head.d.ts +17 -20
  211. package/dist/shims/head.js +194 -250
  212. package/dist/shims/head.js.map +1 -1
  213. package/dist/shims/headers.d.ts +84 -78
  214. package/dist/shims/headers.js +447 -575
  215. package/dist/shims/headers.js.map +1 -1
  216. package/dist/shims/i18n-context.d.ts +16 -20
  217. package/dist/shims/i18n-context.js +35 -48
  218. package/dist/shims/i18n-context.js.map +1 -1
  219. package/dist/shims/i18n-state.d.ts +8 -14
  220. package/dist/shims/i18n-state.js +34 -42
  221. package/dist/shims/i18n-state.js.map +1 -1
  222. package/dist/shims/image-config.d.ts +11 -8
  223. package/dist/shims/image-config.js +50 -83
  224. package/dist/shims/image-config.js.map +1 -1
  225. package/dist/shims/image.d.ts +37 -46
  226. package/dist/shims/image.js +283 -308
  227. package/dist/shims/image.js.map +1 -1
  228. package/dist/shims/internal/api-utils.d.ts +7 -4
  229. package/dist/shims/internal/api-utils.js +0 -6
  230. package/dist/shims/internal/app-router-context.d.ts +22 -17
  231. package/dist/shims/internal/app-router-context.js +17 -13
  232. package/dist/shims/internal/app-router-context.js.map +1 -1
  233. package/dist/shims/internal/cookies.d.ts +2 -9
  234. package/dist/shims/internal/cookies.js +2 -9
  235. package/dist/shims/internal/parse-cookie-header.d.ts +4 -1
  236. package/dist/shims/internal/parse-cookie-header.js +29 -29
  237. package/dist/shims/internal/parse-cookie-header.js.map +1 -1
  238. package/dist/shims/internal/router-context.d.ts +7 -1
  239. package/dist/shims/internal/router-context.js +11 -7
  240. package/dist/shims/internal/router-context.js.map +1 -1
  241. package/dist/shims/internal/utils.d.ts +40 -37
  242. package/dist/shims/internal/utils.js +24 -30
  243. package/dist/shims/internal/utils.js.map +1 -1
  244. package/dist/shims/internal/work-unit-async-storage.d.ts +6 -10
  245. package/dist/shims/internal/work-unit-async-storage.js +14 -11
  246. package/dist/shims/internal/work-unit-async-storage.js.map +1 -1
  247. package/dist/shims/layout-segment-context.d.ts +11 -14
  248. package/dist/shims/layout-segment-context.js +24 -23
  249. package/dist/shims/layout-segment-context.js.map +1 -1
  250. package/dist/shims/legacy-image.d.ts +39 -46
  251. package/dist/shims/legacy-image.js +47 -42
  252. package/dist/shims/legacy-image.js.map +1 -1
  253. package/dist/shims/link.d.ts +32 -36
  254. package/dist/shims/link.js +255 -391
  255. package/dist/shims/link.js.map +1 -1
  256. package/dist/shims/metadata.d.ts +210 -202
  257. package/dist/shims/metadata.js +545 -546
  258. package/dist/shims/metadata.js.map +1 -1
  259. package/dist/shims/navigation-state.d.ts +10 -18
  260. package/dist/shims/navigation-state.js +66 -74
  261. package/dist/shims/navigation-state.js.map +1 -1
  262. package/dist/shims/navigation.d.ts +59 -63
  263. package/dist/shims/navigation.js +505 -704
  264. package/dist/shims/navigation.js.map +1 -1
  265. package/dist/shims/og.d.ts +2 -20
  266. package/dist/shims/og.js +2 -19
  267. package/dist/shims/readonly-url-search-params.d.ts +8 -5
  268. package/dist/shims/readonly-url-search-params.js +26 -22
  269. package/dist/shims/readonly-url-search-params.js.map +1 -1
  270. package/dist/shims/request-context.d.ts +8 -5
  271. package/dist/shims/request-context.js +50 -60
  272. package/dist/shims/request-context.js.map +1 -1
  273. package/dist/shims/request-state-types.d.ts +11 -11
  274. package/dist/shims/request-state-types.js +0 -1
  275. package/dist/shims/router-state.d.ts +13 -10
  276. package/dist/shims/router-state.js +34 -43
  277. package/dist/shims/router-state.js.map +1 -1
  278. package/dist/shims/router.d.ts +81 -85
  279. package/dist/shims/router.js +506 -628
  280. package/dist/shims/router.js.map +1 -1
  281. package/dist/shims/script.d.ts +39 -48
  282. package/dist/shims/script.js +107 -160
  283. package/dist/shims/script.js.map +1 -1
  284. package/dist/shims/server-only.d.ts +1 -19
  285. package/dist/shims/server-only.js +0 -18
  286. package/dist/shims/server.d.ts +213 -164
  287. package/dist/shims/server.js +545 -478
  288. package/dist/shims/server.js.map +1 -1
  289. package/dist/shims/unified-request-context.d.ts +20 -20
  290. package/dist/shims/unified-request-context.js +81 -99
  291. package/dist/shims/unified-request-context.js.map +1 -1
  292. package/dist/shims/url-safety.d.ts +4 -1
  293. package/dist/shims/url-safety.js +15 -11
  294. package/dist/shims/url-safety.js.map +1 -1
  295. package/dist/shims/url-utils.d.ts +8 -5
  296. package/dist/shims/url-utils.js +62 -93
  297. package/dist/shims/url-utils.js.map +1 -1
  298. package/dist/shims/web-vitals.d.ts +10 -8
  299. package/dist/shims/web-vitals.js +9 -15
  300. package/dist/shims/web-vitals.js.map +1 -1
  301. package/dist/utils/base-path.d.ts +5 -2
  302. package/dist/utils/base-path.js +21 -19
  303. package/dist/utils/base-path.js.map +1 -1
  304. package/dist/utils/domain-locale.d.ts +17 -9
  305. package/dist/utils/domain-locale.js +36 -56
  306. package/dist/utils/domain-locale.js.map +1 -1
  307. package/dist/utils/hash.d.ts +4 -1
  308. package/dist/utils/hash.js +19 -17
  309. package/dist/utils/hash.js.map +1 -1
  310. package/dist/utils/manifest-paths.d.ts +6 -3
  311. package/dist/utils/manifest-paths.js +15 -16
  312. package/dist/utils/manifest-paths.js.map +1 -1
  313. package/dist/utils/project.d.ts +13 -11
  314. package/dist/utils/project.js +169 -216
  315. package/dist/utils/project.js.map +1 -1
  316. package/dist/utils/query.d.ts +8 -6
  317. package/dist/utils/query.js +57 -67
  318. package/dist/utils/query.js.map +1 -1
  319. package/package.json +10 -9
  320. package/dist/build/report.d.ts.map +0 -1
  321. package/dist/build/static-export.d.ts.map +0 -1
  322. package/dist/check.d.ts.map +0 -1
  323. package/dist/cli.d.ts.map +0 -1
  324. package/dist/client/entry.d.ts.map +0 -1
  325. package/dist/client/validate-module-path.d.ts.map +0 -1
  326. package/dist/client/vinext-next-data.d.ts.map +0 -1
  327. package/dist/client/vinext-next-data.js.map +0 -1
  328. package/dist/cloudflare/index.d.ts.map +0 -1
  329. package/dist/cloudflare/index.js.map +0 -1
  330. package/dist/cloudflare/kv-cache-handler.d.ts.map +0 -1
  331. package/dist/cloudflare/tpr.d.ts.map +0 -1
  332. package/dist/config/config-matchers.d.ts.map +0 -1
  333. package/dist/config/dotenv.d.ts.map +0 -1
  334. package/dist/config/next-config.d.ts.map +0 -1
  335. package/dist/deploy.d.ts.map +0 -1
  336. package/dist/entries/app-browser-entry.d.ts.map +0 -1
  337. package/dist/entries/app-rsc-entry.d.ts.map +0 -1
  338. package/dist/entries/app-ssr-entry.d.ts.map +0 -1
  339. package/dist/entries/pages-client-entry.d.ts.map +0 -1
  340. package/dist/entries/pages-entry-helpers.d.ts.map +0 -1
  341. package/dist/entries/pages-server-entry.d.ts.map +0 -1
  342. package/dist/index.d.ts.map +0 -1
  343. package/dist/init.d.ts.map +0 -1
  344. package/dist/plugins/async-hooks-stub.d.ts.map +0 -1
  345. package/dist/plugins/client-reference-dedup.d.ts.map +0 -1
  346. package/dist/routing/app-router.d.ts.map +0 -1
  347. package/dist/routing/file-matcher.d.ts.map +0 -1
  348. package/dist/routing/pages-router.d.ts.map +0 -1
  349. package/dist/routing/route-trie.d.ts.map +0 -1
  350. package/dist/routing/route-validation.d.ts.map +0 -1
  351. package/dist/routing/utils.d.ts.map +0 -1
  352. package/dist/server/api-handler.d.ts.map +0 -1
  353. package/dist/server/app-router-entry.d.ts.map +0 -1
  354. package/dist/server/dev-module-runner.d.ts.map +0 -1
  355. package/dist/server/dev-origin-check.d.ts.map +0 -1
  356. package/dist/server/dev-server.d.ts.map +0 -1
  357. package/dist/server/html.d.ts.map +0 -1
  358. package/dist/server/image-optimization.d.ts.map +0 -1
  359. package/dist/server/instrumentation.d.ts.map +0 -1
  360. package/dist/server/isr-cache.d.ts.map +0 -1
  361. package/dist/server/metadata-routes.d.ts.map +0 -1
  362. package/dist/server/middleware-codegen.d.ts.map +0 -1
  363. package/dist/server/middleware-request-headers.d.ts.map +0 -1
  364. package/dist/server/middleware.d.ts.map +0 -1
  365. package/dist/server/normalize-path.d.ts.map +0 -1
  366. package/dist/server/pages-i18n.d.ts.map +0 -1
  367. package/dist/server/prod-server.d.ts.map +0 -1
  368. package/dist/server/request-log.d.ts.map +0 -1
  369. package/dist/server/request-pipeline.d.ts.map +0 -1
  370. package/dist/server/worker-utils.d.ts.map +0 -1
  371. package/dist/shims/amp.d.ts.map +0 -1
  372. package/dist/shims/app.d.ts.map +0 -1
  373. package/dist/shims/app.js.map +0 -1
  374. package/dist/shims/cache-runtime.d.ts.map +0 -1
  375. package/dist/shims/cache.d.ts.map +0 -1
  376. package/dist/shims/client-only.d.ts.map +0 -1
  377. package/dist/shims/client-only.js.map +0 -1
  378. package/dist/shims/compat-router.d.ts.map +0 -1
  379. package/dist/shims/config.d.ts.map +0 -1
  380. package/dist/shims/constants.d.ts.map +0 -1
  381. package/dist/shims/document.d.ts.map +0 -1
  382. package/dist/shims/dynamic.d.ts.map +0 -1
  383. package/dist/shims/error-boundary.d.ts.map +0 -1
  384. package/dist/shims/error.d.ts.map +0 -1
  385. package/dist/shims/fetch-cache.d.ts.map +0 -1
  386. package/dist/shims/font-google-base.d.ts.map +0 -1
  387. package/dist/shims/font-google.d.ts.map +0 -1
  388. package/dist/shims/font-google.generated.d.ts.map +0 -1
  389. package/dist/shims/font-google.js.map +0 -1
  390. package/dist/shims/font-local.d.ts.map +0 -1
  391. package/dist/shims/form.d.ts.map +0 -1
  392. package/dist/shims/head-state.d.ts.map +0 -1
  393. package/dist/shims/head.d.ts.map +0 -1
  394. package/dist/shims/headers.d.ts.map +0 -1
  395. package/dist/shims/i18n-context.d.ts.map +0 -1
  396. package/dist/shims/i18n-state.d.ts.map +0 -1
  397. package/dist/shims/image-config.d.ts.map +0 -1
  398. package/dist/shims/image.d.ts.map +0 -1
  399. package/dist/shims/internal/api-utils.d.ts.map +0 -1
  400. package/dist/shims/internal/api-utils.js.map +0 -1
  401. package/dist/shims/internal/app-router-context.d.ts.map +0 -1
  402. package/dist/shims/internal/cookies.d.ts.map +0 -1
  403. package/dist/shims/internal/cookies.js.map +0 -1
  404. package/dist/shims/internal/parse-cookie-header.d.ts.map +0 -1
  405. package/dist/shims/internal/router-context.d.ts.map +0 -1
  406. package/dist/shims/internal/utils.d.ts.map +0 -1
  407. package/dist/shims/internal/work-unit-async-storage.d.ts.map +0 -1
  408. package/dist/shims/layout-segment-context.d.ts.map +0 -1
  409. package/dist/shims/legacy-image.d.ts.map +0 -1
  410. package/dist/shims/link.d.ts.map +0 -1
  411. package/dist/shims/metadata.d.ts.map +0 -1
  412. package/dist/shims/navigation-state.d.ts.map +0 -1
  413. package/dist/shims/navigation.d.ts.map +0 -1
  414. package/dist/shims/og.d.ts.map +0 -1
  415. package/dist/shims/og.js.map +0 -1
  416. package/dist/shims/readonly-url-search-params.d.ts.map +0 -1
  417. package/dist/shims/request-context.d.ts.map +0 -1
  418. package/dist/shims/request-state-types.d.ts.map +0 -1
  419. package/dist/shims/request-state-types.js.map +0 -1
  420. package/dist/shims/router-state.d.ts.map +0 -1
  421. package/dist/shims/router.d.ts.map +0 -1
  422. package/dist/shims/script.d.ts.map +0 -1
  423. package/dist/shims/server-only.d.ts.map +0 -1
  424. package/dist/shims/server-only.js.map +0 -1
  425. package/dist/shims/server.d.ts.map +0 -1
  426. package/dist/shims/unified-request-context.d.ts.map +0 -1
  427. package/dist/shims/url-safety.d.ts.map +0 -1
  428. package/dist/shims/url-utils.d.ts.map +0 -1
  429. package/dist/shims/web-vitals.d.ts.map +0 -1
  430. package/dist/utils/base-path.d.ts.map +0 -1
  431. package/dist/utils/domain-locale.d.ts.map +0 -1
  432. package/dist/utils/hash.d.ts.map +0 -1
  433. package/dist/utils/manifest-paths.d.ts.map +0 -1
  434. package/dist/utils/project.d.ts.map +0 -1
  435. package/dist/utils/query.d.ts.map +0 -1
@@ -1,169 +1,116 @@
1
1
  "use client";
2
- /**
3
- * next/script shim
4
- *
5
- * Provides the <Script> component for loading third-party scripts with
6
- * configurable loading strategies.
7
- *
8
- * Strategies:
9
- * - "beforeInteractive": rendered as a <script> tag in SSR output
10
- * - "afterInteractive" (default): loaded client-side after hydration
11
- * - "lazyOnload": deferred until window.load + requestIdleCallback
12
- * - "worker": sets type="text/partytown" (requires Partytown setup)
13
- */
14
- import React, { useEffect, useRef } from "react";
15
2
  import { escapeInlineContent } from "./head.js";
16
- // Track scripts that have already been loaded to avoid duplicates
17
- const loadedScripts = new Set();
3
+ import React, { useEffect, useRef } from "react";
4
+ //#region src/shims/script.tsx
5
+ /**
6
+ * next/script shim
7
+ *
8
+ * Provides the <Script> component for loading third-party scripts with
9
+ * configurable loading strategies.
10
+ *
11
+ * Strategies:
12
+ * - "beforeInteractive": rendered as a <script> tag in SSR output
13
+ * - "afterInteractive" (default): loaded client-side after hydration
14
+ * - "lazyOnload": deferred until window.load + requestIdleCallback
15
+ * - "worker": sets type="text/partytown" (requires Partytown setup)
16
+ */
17
+ const loadedScripts = /* @__PURE__ */ new Set();
18
18
  /**
19
- * Load a script imperatively (outside of React).
20
- */
21
- export function handleClientScriptLoad(props) {
22
- const { src, id, onLoad, onError, strategy: _strategy, onReady: _onReady, children, ...rest } = props;
23
- if (typeof window === "undefined")
24
- return;
25
- const key = id ?? src ?? "";
26
- if (key && loadedScripts.has(key))
27
- return;
28
- const el = document.createElement("script");
29
- if (src)
30
- el.src = src;
31
- if (id)
32
- el.id = id;
33
- for (const [attr, value] of Object.entries(rest)) {
34
- if (attr === "dangerouslySetInnerHTML" || attr === "className")
35
- continue;
36
- if (typeof value === "string") {
37
- el.setAttribute(attr, value);
38
- }
39
- else if (typeof value === "boolean" && value) {
40
- el.setAttribute(attr, "");
41
- }
42
- }
43
- if (children && typeof children === "string") {
44
- el.textContent = children;
45
- }
46
- if (onLoad)
47
- el.addEventListener("load", onLoad);
48
- if (onError)
49
- el.addEventListener("error", onError);
50
- document.body.appendChild(el);
51
- if (key)
52
- loadedScripts.add(key);
19
+ * Load a script imperatively (outside of React).
20
+ */
21
+ function handleClientScriptLoad(props) {
22
+ const { src, id, onLoad, onError, strategy: _strategy, onReady: _onReady, children, ...rest } = props;
23
+ if (typeof window === "undefined") return;
24
+ const key = id ?? src ?? "";
25
+ if (key && loadedScripts.has(key)) return;
26
+ const el = document.createElement("script");
27
+ if (src) el.src = src;
28
+ if (id) el.id = id;
29
+ for (const [attr, value] of Object.entries(rest)) {
30
+ if (attr === "dangerouslySetInnerHTML" || attr === "className") continue;
31
+ if (typeof value === "string") el.setAttribute(attr, value);
32
+ else if (typeof value === "boolean" && value) el.setAttribute(attr, "");
33
+ }
34
+ if (children && typeof children === "string") el.textContent = children;
35
+ if (onLoad) el.addEventListener("load", onLoad);
36
+ if (onError) el.addEventListener("error", onError);
37
+ document.body.appendChild(el);
38
+ if (key) loadedScripts.add(key);
53
39
  }
54
40
  /**
55
- * Initialize multiple scripts at once (called during app bootstrap).
56
- */
57
- export function initScriptLoader(scripts) {
58
- for (const script of scripts) {
59
- handleClientScriptLoad(script);
60
- }
41
+ * Initialize multiple scripts at once (called during app bootstrap).
42
+ */
43
+ function initScriptLoader(scripts) {
44
+ for (const script of scripts) handleClientScriptLoad(script);
61
45
  }
62
46
  function Script(props) {
63
- const { src, id, strategy = "afterInteractive", onLoad, onReady, onError, children, dangerouslySetInnerHTML, ...rest } = props;
64
- const hasMounted = useRef(false);
65
- const key = id ?? src ?? "";
66
- // Client path: load scripts via useEffect based on strategy.
67
- // useEffect never runs during SSR, so it's safe to call unconditionally.
68
- useEffect(() => {
69
- if (hasMounted.current)
70
- return;
71
- hasMounted.current = true;
72
- // Already loaded — just fire onReady
73
- if (key && loadedScripts.has(key)) {
74
- onReady?.();
75
- return;
76
- }
77
- const load = () => {
78
- if (key && loadedScripts.has(key)) {
79
- onReady?.();
80
- return;
81
- }
82
- const el = document.createElement("script");
83
- if (src)
84
- el.src = src;
85
- if (id)
86
- el.id = id;
87
- for (const [attr, value] of Object.entries(rest)) {
88
- if (attr === "className") {
89
- el.setAttribute("class", String(value));
90
- }
91
- else if (typeof value === "string") {
92
- el.setAttribute(attr, value);
93
- }
94
- else if (typeof value === "boolean" && value) {
95
- el.setAttribute(attr, "");
96
- }
97
- }
98
- if (strategy === "worker") {
99
- el.setAttribute("type", "text/partytown");
100
- }
101
- if (dangerouslySetInnerHTML?.__html) {
102
- el.innerHTML = dangerouslySetInnerHTML.__html;
103
- }
104
- else if (children && typeof children === "string") {
105
- el.textContent = children;
106
- }
107
- el.addEventListener("load", (e) => {
108
- if (key)
109
- loadedScripts.add(key);
110
- onLoad?.(e);
111
- onReady?.();
112
- });
113
- if (onError) {
114
- el.addEventListener("error", onError);
115
- }
116
- document.body.appendChild(el);
117
- };
118
- if (strategy === "lazyOnload") {
119
- // Wait for window load, then use idle callback
120
- if (document.readyState === "complete") {
121
- if (typeof requestIdleCallback === "function") {
122
- requestIdleCallback(load);
123
- }
124
- else {
125
- setTimeout(load, 1);
126
- }
127
- }
128
- else {
129
- window.addEventListener("load", () => {
130
- if (typeof requestIdleCallback === "function") {
131
- requestIdleCallback(load);
132
- }
133
- else {
134
- setTimeout(load, 1);
135
- }
136
- });
137
- }
138
- }
139
- else {
140
- // "afterInteractive" (default), "beforeInteractive" (client re-mount), "worker"
141
- load();
142
- }
143
- }, [src, id, strategy, onLoad, onReady, onError, children, dangerouslySetInnerHTML, key, rest]);
144
- // SSR path: only "beforeInteractive" renders a <script> tag server-side
145
- if (typeof window === "undefined") {
146
- if (strategy === "beforeInteractive") {
147
- const scriptProps = { ...rest };
148
- if (src)
149
- scriptProps.src = src;
150
- if (id)
151
- scriptProps.id = id;
152
- if (dangerouslySetInnerHTML) {
153
- // Escape closing </script> sequences in inline content so the HTML
154
- // parser doesn't prematurely terminate the element during SSR.
155
- const raw = dangerouslySetInnerHTML.__html;
156
- scriptProps.dangerouslySetInnerHTML = {
157
- __html: escapeInlineContent(raw, "script"),
158
- };
159
- }
160
- return React.createElement("script", scriptProps, children);
161
- }
162
- // Other strategies don't render during SSR
163
- return null;
164
- }
165
- // The component itself renders nothing — scripts are injected imperatively
166
- return null;
47
+ const { src, id, strategy = "afterInteractive", onLoad, onReady, onError, children, dangerouslySetInnerHTML, ...rest } = props;
48
+ const hasMounted = useRef(false);
49
+ const key = id ?? src ?? "";
50
+ useEffect(() => {
51
+ if (hasMounted.current) return;
52
+ hasMounted.current = true;
53
+ if (key && loadedScripts.has(key)) {
54
+ onReady?.();
55
+ return;
56
+ }
57
+ const load = () => {
58
+ if (key && loadedScripts.has(key)) {
59
+ onReady?.();
60
+ return;
61
+ }
62
+ const el = document.createElement("script");
63
+ if (src) el.src = src;
64
+ if (id) el.id = id;
65
+ for (const [attr, value] of Object.entries(rest)) if (attr === "className") el.setAttribute("class", String(value));
66
+ else if (typeof value === "string") el.setAttribute(attr, value);
67
+ else if (typeof value === "boolean" && value) el.setAttribute(attr, "");
68
+ if (strategy === "worker") el.setAttribute("type", "text/partytown");
69
+ if (dangerouslySetInnerHTML?.__html) el.innerHTML = dangerouslySetInnerHTML.__html;
70
+ else if (children && typeof children === "string") el.textContent = children;
71
+ el.addEventListener("load", (e) => {
72
+ if (key) loadedScripts.add(key);
73
+ onLoad?.(e);
74
+ onReady?.();
75
+ });
76
+ if (onError) el.addEventListener("error", onError);
77
+ document.body.appendChild(el);
78
+ };
79
+ if (strategy === "lazyOnload") if (document.readyState === "complete") if (typeof requestIdleCallback === "function") requestIdleCallback(load);
80
+ else setTimeout(load, 1);
81
+ else window.addEventListener("load", () => {
82
+ if (typeof requestIdleCallback === "function") requestIdleCallback(load);
83
+ else setTimeout(load, 1);
84
+ });
85
+ else load();
86
+ }, [
87
+ src,
88
+ id,
89
+ strategy,
90
+ onLoad,
91
+ onReady,
92
+ onError,
93
+ children,
94
+ dangerouslySetInnerHTML,
95
+ key,
96
+ rest
97
+ ]);
98
+ if (typeof window === "undefined") {
99
+ if (strategy === "beforeInteractive") {
100
+ const scriptProps = { ...rest };
101
+ if (src) scriptProps.src = src;
102
+ if (id) scriptProps.id = id;
103
+ if (dangerouslySetInnerHTML) {
104
+ const raw = dangerouslySetInnerHTML.__html;
105
+ scriptProps.dangerouslySetInnerHTML = { __html: escapeInlineContent(raw, "script") };
106
+ }
107
+ return React.createElement("script", scriptProps, children);
108
+ }
109
+ return null;
110
+ }
111
+ return null;
167
112
  }
168
- export default Script;
113
+ //#endregion
114
+ export { Script as default, handleClientScriptLoad, initScriptLoader };
115
+
169
116
  //# sourceMappingURL=script.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/shims/script.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\n/**\n * next/script shim\n *\n * Provides the <Script> component for loading third-party scripts with\n * configurable loading strategies.\n *\n * Strategies:\n * - \"beforeInteractive\": rendered as a <script> tag in SSR output\n * - \"afterInteractive\" (default): loaded client-side after hydration\n * - \"lazyOnload\": deferred until window.load + requestIdleCallback\n * - \"worker\": sets type=\"text/partytown\" (requires Partytown setup)\n */\nimport React, { useEffect, useRef } from \"react\";\nimport { escapeInlineContent } from \"./head.js\";\n\nexport interface ScriptProps {\n /** Script source URL */\n src?: string;\n /** Loading strategy. Default: \"afterInteractive\" */\n strategy?: \"beforeInteractive\" | \"afterInteractive\" | \"lazyOnload\" | \"worker\";\n /** Unique identifier for the script */\n id?: string;\n /** Called when the script has loaded */\n onLoad?: (e: Event) => void;\n /** Called when the script is ready (after load, and on every re-render if already loaded) */\n onReady?: () => void;\n /** Called on script load error */\n onError?: (e: Event) => void;\n /** Inline script content */\n children?: React.ReactNode;\n /** Dangerous inner HTML */\n dangerouslySetInnerHTML?: { __html: string };\n /** Script type attribute */\n type?: string;\n /** Async attribute */\n async?: boolean;\n /** Defer attribute */\n defer?: boolean;\n /** Crossorigin attribute */\n crossOrigin?: string;\n /** Nonce for CSP */\n nonce?: string;\n /** Integrity hash */\n integrity?: string;\n /** Additional attributes */\n [key: string]: unknown;\n}\n\n// Track scripts that have already been loaded to avoid duplicates\nconst loadedScripts = new Set<string>();\n\n/**\n * Load a script imperatively (outside of React).\n */\nexport function handleClientScriptLoad(props: ScriptProps): void {\n const {\n src,\n id,\n onLoad,\n onError,\n strategy: _strategy,\n onReady: _onReady,\n children,\n ...rest\n } = props;\n if (typeof window === \"undefined\") return;\n\n const key = id ?? src ?? \"\";\n if (key && loadedScripts.has(key)) return;\n\n const el = document.createElement(\"script\");\n if (src) el.src = src;\n if (id) el.id = id;\n\n for (const [attr, value] of Object.entries(rest)) {\n if (attr === \"dangerouslySetInnerHTML\" || attr === \"className\") continue;\n if (typeof value === \"string\") {\n el.setAttribute(attr, value);\n } else if (typeof value === \"boolean\" && value) {\n el.setAttribute(attr, \"\");\n }\n }\n\n if (children && typeof children === \"string\") {\n el.textContent = children;\n }\n\n if (onLoad) el.addEventListener(\"load\", onLoad);\n if (onError) el.addEventListener(\"error\", onError);\n\n document.body.appendChild(el);\n if (key) loadedScripts.add(key);\n}\n\n/**\n * Initialize multiple scripts at once (called during app bootstrap).\n */\nexport function initScriptLoader(scripts: ScriptProps[]): void {\n for (const script of scripts) {\n handleClientScriptLoad(script);\n }\n}\n\nfunction Script(props: ScriptProps): React.ReactElement | null {\n const {\n src,\n id,\n strategy = \"afterInteractive\",\n onLoad,\n onReady,\n onError,\n children,\n dangerouslySetInnerHTML,\n ...rest\n } = props;\n\n const hasMounted = useRef(false);\n const key = id ?? src ?? \"\";\n\n // Client path: load scripts via useEffect based on strategy.\n // useEffect never runs during SSR, so it's safe to call unconditionally.\n useEffect(() => {\n if (hasMounted.current) return;\n hasMounted.current = true;\n\n // Already loaded — just fire onReady\n if (key && loadedScripts.has(key)) {\n onReady?.();\n return;\n }\n\n const load = () => {\n if (key && loadedScripts.has(key)) {\n onReady?.();\n return;\n }\n\n const el = document.createElement(\"script\");\n if (src) el.src = src;\n if (id) el.id = id;\n\n for (const [attr, value] of Object.entries(rest)) {\n if (attr === \"className\") {\n el.setAttribute(\"class\", String(value));\n } else if (typeof value === \"string\") {\n el.setAttribute(attr, value);\n } else if (typeof value === \"boolean\" && value) {\n el.setAttribute(attr, \"\");\n }\n }\n\n if (strategy === \"worker\") {\n el.setAttribute(\"type\", \"text/partytown\");\n }\n\n if (dangerouslySetInnerHTML?.__html) {\n el.innerHTML = dangerouslySetInnerHTML.__html as string;\n } else if (children && typeof children === \"string\") {\n el.textContent = children;\n }\n\n el.addEventListener(\"load\", (e) => {\n if (key) loadedScripts.add(key);\n onLoad?.(e);\n onReady?.();\n });\n\n if (onError) {\n el.addEventListener(\"error\", onError);\n }\n\n document.body.appendChild(el);\n };\n\n if (strategy === \"lazyOnload\") {\n // Wait for window load, then use idle callback\n if (document.readyState === \"complete\") {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(load);\n } else {\n setTimeout(load, 1);\n }\n } else {\n window.addEventListener(\"load\", () => {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(load);\n } else {\n setTimeout(load, 1);\n }\n });\n }\n } else {\n // \"afterInteractive\" (default), \"beforeInteractive\" (client re-mount), \"worker\"\n load();\n }\n }, [src, id, strategy, onLoad, onReady, onError, children, dangerouslySetInnerHTML, key, rest]);\n\n // SSR path: only \"beforeInteractive\" renders a <script> tag server-side\n if (typeof window === \"undefined\") {\n if (strategy === \"beforeInteractive\") {\n const scriptProps: Record<string, unknown> = { ...rest };\n if (src) scriptProps.src = src;\n if (id) scriptProps.id = id;\n if (dangerouslySetInnerHTML) {\n // Escape closing </script> sequences in inline content so the HTML\n // parser doesn't prematurely terminate the element during SSR.\n const raw = dangerouslySetInnerHTML.__html;\n scriptProps.dangerouslySetInnerHTML = {\n __html: escapeInlineContent(raw, \"script\"),\n };\n }\n return React.createElement(\"script\", scriptProps, children);\n }\n // Other strategies don't render during SSR\n return null;\n }\n\n // The component itself renders nothing — scripts are injected imperatively\n return null;\n}\n\nexport default Script;\n"]}
1
+ {"version":3,"file":"script.js","names":[],"sources":["../../src/shims/script.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * next/script shim\n *\n * Provides the <Script> component for loading third-party scripts with\n * configurable loading strategies.\n *\n * Strategies:\n * - \"beforeInteractive\": rendered as a <script> tag in SSR output\n * - \"afterInteractive\" (default): loaded client-side after hydration\n * - \"lazyOnload\": deferred until window.load + requestIdleCallback\n * - \"worker\": sets type=\"text/partytown\" (requires Partytown setup)\n */\nimport React, { useEffect, useRef } from \"react\";\nimport { escapeInlineContent } from \"./head.js\";\n\nexport interface ScriptProps {\n /** Script source URL */\n src?: string;\n /** Loading strategy. Default: \"afterInteractive\" */\n strategy?: \"beforeInteractive\" | \"afterInteractive\" | \"lazyOnload\" | \"worker\";\n /** Unique identifier for the script */\n id?: string;\n /** Called when the script has loaded */\n onLoad?: (e: Event) => void;\n /** Called when the script is ready (after load, and on every re-render if already loaded) */\n onReady?: () => void;\n /** Called on script load error */\n onError?: (e: Event) => void;\n /** Inline script content */\n children?: React.ReactNode;\n /** Dangerous inner HTML */\n dangerouslySetInnerHTML?: { __html: string };\n /** Script type attribute */\n type?: string;\n /** Async attribute */\n async?: boolean;\n /** Defer attribute */\n defer?: boolean;\n /** Crossorigin attribute */\n crossOrigin?: string;\n /** Nonce for CSP */\n nonce?: string;\n /** Integrity hash */\n integrity?: string;\n /** Additional attributes */\n [key: string]: unknown;\n}\n\n// Track scripts that have already been loaded to avoid duplicates\nconst loadedScripts = new Set<string>();\n\n/**\n * Load a script imperatively (outside of React).\n */\nexport function handleClientScriptLoad(props: ScriptProps): void {\n const {\n src,\n id,\n onLoad,\n onError,\n strategy: _strategy,\n onReady: _onReady,\n children,\n ...rest\n } = props;\n if (typeof window === \"undefined\") return;\n\n const key = id ?? src ?? \"\";\n if (key && loadedScripts.has(key)) return;\n\n const el = document.createElement(\"script\");\n if (src) el.src = src;\n if (id) el.id = id;\n\n for (const [attr, value] of Object.entries(rest)) {\n if (attr === \"dangerouslySetInnerHTML\" || attr === \"className\") continue;\n if (typeof value === \"string\") {\n el.setAttribute(attr, value);\n } else if (typeof value === \"boolean\" && value) {\n el.setAttribute(attr, \"\");\n }\n }\n\n if (children && typeof children === \"string\") {\n el.textContent = children;\n }\n\n if (onLoad) el.addEventListener(\"load\", onLoad);\n if (onError) el.addEventListener(\"error\", onError);\n\n document.body.appendChild(el);\n if (key) loadedScripts.add(key);\n}\n\n/**\n * Initialize multiple scripts at once (called during app bootstrap).\n */\nexport function initScriptLoader(scripts: ScriptProps[]): void {\n for (const script of scripts) {\n handleClientScriptLoad(script);\n }\n}\n\nfunction Script(props: ScriptProps): React.ReactElement | null {\n const {\n src,\n id,\n strategy = \"afterInteractive\",\n onLoad,\n onReady,\n onError,\n children,\n dangerouslySetInnerHTML,\n ...rest\n } = props;\n\n const hasMounted = useRef(false);\n const key = id ?? src ?? \"\";\n\n // Client path: load scripts via useEffect based on strategy.\n // useEffect never runs during SSR, so it's safe to call unconditionally.\n useEffect(() => {\n if (hasMounted.current) return;\n hasMounted.current = true;\n\n // Already loaded — just fire onReady\n if (key && loadedScripts.has(key)) {\n onReady?.();\n return;\n }\n\n const load = () => {\n if (key && loadedScripts.has(key)) {\n onReady?.();\n return;\n }\n\n const el = document.createElement(\"script\");\n if (src) el.src = src;\n if (id) el.id = id;\n\n for (const [attr, value] of Object.entries(rest)) {\n if (attr === \"className\") {\n el.setAttribute(\"class\", String(value));\n } else if (typeof value === \"string\") {\n el.setAttribute(attr, value);\n } else if (typeof value === \"boolean\" && value) {\n el.setAttribute(attr, \"\");\n }\n }\n\n if (strategy === \"worker\") {\n el.setAttribute(\"type\", \"text/partytown\");\n }\n\n if (dangerouslySetInnerHTML?.__html) {\n el.innerHTML = dangerouslySetInnerHTML.__html as string;\n } else if (children && typeof children === \"string\") {\n el.textContent = children;\n }\n\n el.addEventListener(\"load\", (e) => {\n if (key) loadedScripts.add(key);\n onLoad?.(e);\n onReady?.();\n });\n\n if (onError) {\n el.addEventListener(\"error\", onError);\n }\n\n document.body.appendChild(el);\n };\n\n if (strategy === \"lazyOnload\") {\n // Wait for window load, then use idle callback\n if (document.readyState === \"complete\") {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(load);\n } else {\n setTimeout(load, 1);\n }\n } else {\n window.addEventListener(\"load\", () => {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(load);\n } else {\n setTimeout(load, 1);\n }\n });\n }\n } else {\n // \"afterInteractive\" (default), \"beforeInteractive\" (client re-mount), \"worker\"\n load();\n }\n }, [src, id, strategy, onLoad, onReady, onError, children, dangerouslySetInnerHTML, key, rest]);\n\n // SSR path: only \"beforeInteractive\" renders a <script> tag server-side\n if (typeof window === \"undefined\") {\n if (strategy === \"beforeInteractive\") {\n const scriptProps: Record<string, unknown> = { ...rest };\n if (src) scriptProps.src = src;\n if (id) scriptProps.id = id;\n if (dangerouslySetInnerHTML) {\n // Escape closing </script> sequences in inline content so the HTML\n // parser doesn't prematurely terminate the element during SSR.\n const raw = dangerouslySetInnerHTML.__html;\n scriptProps.dangerouslySetInnerHTML = {\n __html: escapeInlineContent(raw, \"script\"),\n };\n }\n return React.createElement(\"script\", scriptProps, children);\n }\n // Other strategies don't render during SSR\n return null;\n }\n\n // The component itself renders nothing — scripts are injected imperatively\n return null;\n}\n\nexport default Script;\n"],"mappings":"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"}
@@ -1,19 +1 @@
1
- /**
2
- * Shim for the `server-only` package.
3
- *
4
- * The real `server-only` npm package uses the `react-server` export
5
- * condition: it's a no-op when resolved with react-server conditions
6
- * (RSC environment), and throws when imported in a client bundle.
7
- *
8
- * In Vite with @vitejs/plugin-rsc, the RSC environment already uses
9
- * react-server conditions, so if the real package is installed it works
10
- * automatically. This shim exists as a fallback so users don't need to
11
- * install `server-only` as a separate dependency — importing it just
12
- * works.
13
- *
14
- * Build-time enforcement (preventing server code from leaking into
15
- * client bundles) is handled by the RSC plugin's environment system
16
- * and "use client" / "use server" directives, not by this module.
17
- */
18
- export {};
19
- //# sourceMappingURL=server-only.d.ts.map
1
+ export { };
@@ -1,19 +1 @@
1
- /**
2
- * Shim for the `server-only` package.
3
- *
4
- * The real `server-only` npm package uses the `react-server` export
5
- * condition: it's a no-op when resolved with react-server conditions
6
- * (RSC environment), and throws when imported in a client bundle.
7
- *
8
- * In Vite with @vitejs/plugin-rsc, the RSC environment already uses
9
- * react-server conditions, so if the real package is installed it works
10
- * automatically. This shim exists as a fallback so users don't need to
11
- * install `server-only` as a separate dependency — importing it just
12
- * works.
13
- *
14
- * Build-time enforcement (preventing server code from leaking into
15
- * client bundles) is handled by the RSC plugin's environment system
16
- * and "use client" / "use server" directives, not by this module.
17
- */
18
1
  export {};
19
- //# sourceMappingURL=server-only.js.map