veryfront 0.0.86 → 0.0.88

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 (416) hide show
  1. package/esm/deno.d.ts +0 -1
  2. package/esm/deno.js +8 -9
  3. package/esm/deps/esm.sh/react-dom@19.1.1/client.d.ts +2 -0
  4. package/esm/deps/esm.sh/react-dom@19.1.1/client.d.ts.map +1 -0
  5. package/esm/deps/esm.sh/react-dom@19.1.1/client.js +5 -0
  6. package/esm/deps/esm.sh/react-dom@19.1.1/server.d.ts +2 -0
  7. package/esm/deps/esm.sh/react-dom@19.1.1/server.d.ts.map +1 -0
  8. package/esm/deps/esm.sh/react-dom@19.1.1/server.js +5 -0
  9. package/esm/deps/esm.sh/react@19.1.1/jsx-runtime.d.ts +2 -0
  10. package/esm/deps/esm.sh/react@19.1.1/jsx-runtime.d.ts.map +1 -0
  11. package/esm/deps/esm.sh/react@19.1.1/jsx-runtime.js +3 -0
  12. package/esm/deps/esm.sh/react@19.1.1.d.ts +2 -0
  13. package/esm/deps/esm.sh/react@19.1.1.d.ts.map +1 -0
  14. package/esm/deps/esm.sh/react@19.1.1.js +3 -0
  15. package/esm/deps/esm.sh/scheduler@^0.26.0.d.ts +2 -0
  16. package/esm/deps/esm.sh/scheduler@^0.26.0.d.ts.map +1 -0
  17. package/esm/deps/esm.sh/scheduler@^0.26.0.js +3 -0
  18. package/esm/proxy/main.d.ts +2 -0
  19. package/esm/proxy/main.d.ts.map +1 -0
  20. package/esm/proxy/main.js +400 -0
  21. package/esm/src/agent/react/use-agent.js +1 -1
  22. package/esm/src/agent/react/use-chat/use-chat.js +1 -1
  23. package/esm/src/agent/react/use-completion.js +1 -1
  24. package/esm/src/agent/react/use-streaming.js +1 -1
  25. package/esm/src/agent/react/use-voice-input.js +1 -1
  26. package/esm/src/cli/commands/init/config-generator.js +1 -1
  27. package/esm/src/cli/index/arg-parser.d.ts.map +1 -1
  28. package/esm/src/cli/index/arg-parser.js +1 -0
  29. package/esm/src/cli/index/command-router.d.ts.map +1 -1
  30. package/esm/src/cli/index/command-router.js +54 -39
  31. package/esm/src/cli/index/types.d.ts +4 -0
  32. package/esm/src/cli/index/types.d.ts.map +1 -1
  33. package/esm/src/cli/mcp/advanced-tools.d.ts +2 -2
  34. package/esm/src/config/loader.d.ts.map +1 -1
  35. package/esm/src/config/loader.js +5 -4
  36. package/esm/src/html/utils.js +2 -2
  37. package/esm/src/modules/component-registry/registry.d.ts +1 -1
  38. package/esm/src/modules/component-registry/registry.d.ts.map +1 -1
  39. package/esm/src/modules/import-map/default-import-map.d.ts +1 -11
  40. package/esm/src/modules/import-map/default-import-map.d.ts.map +1 -1
  41. package/esm/src/modules/import-map/default-import-map.js +3 -20
  42. package/esm/src/modules/import-map/loader.d.ts.map +1 -1
  43. package/esm/src/modules/import-map/loader.js +7 -22
  44. package/esm/src/modules/import-map/resolver.d.ts.map +1 -1
  45. package/esm/src/modules/import-map/resolver.js +12 -8
  46. package/esm/src/modules/react-loader/component-loader.d.ts +1 -1
  47. package/esm/src/modules/react-loader/component-loader.d.ts.map +1 -1
  48. package/esm/src/modules/react-loader/component-loader.js +2 -0
  49. package/esm/src/modules/react-loader/extract-component.d.ts +1 -1
  50. package/esm/src/modules/react-loader/extract-component.d.ts.map +1 -1
  51. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts +2 -7
  52. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  53. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +40 -32
  54. package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts +2 -0
  55. package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts.map +1 -1
  56. package/esm/src/modules/react-loader/types.d.ts +3 -1
  57. package/esm/src/modules/react-loader/types.d.ts.map +1 -1
  58. package/esm/src/modules/react-loader/unified-loader.d.ts.map +1 -1
  59. package/esm/src/modules/react-loader/unified-loader.js +7 -4
  60. package/esm/src/modules/server/module-batch-handler.d.ts +2 -0
  61. package/esm/src/modules/server/module-batch-handler.d.ts.map +1 -1
  62. package/esm/src/modules/server/module-batch-handler.js +3 -1
  63. package/esm/src/modules/server/module-server.d.ts +2 -0
  64. package/esm/src/modules/server/module-server.d.ts.map +1 -1
  65. package/esm/src/modules/server/module-server.js +4 -2
  66. package/esm/src/modules/server/ssr-import-rewriter.d.ts.map +1 -1
  67. package/esm/src/modules/server/ssr-import-rewriter.js +9 -17
  68. package/esm/src/react/compat/hooks-adapter.d.ts +1 -1
  69. package/esm/src/react/compat/hooks-adapter.d.ts.map +1 -1
  70. package/esm/src/react/compat/hooks-adapter.js +1 -1
  71. package/esm/src/react/compat/ssr-adapter/response-builder.d.ts +1 -1
  72. package/esm/src/react/compat/ssr-adapter/response-builder.d.ts.map +1 -1
  73. package/esm/src/react/compat/ssr-adapter/server-loader.d.ts +5 -5
  74. package/esm/src/react/compat/ssr-adapter/server-loader.d.ts.map +1 -1
  75. package/esm/src/react/compat/ssr-adapter/server-loader.js +2 -2
  76. package/esm/src/react/compat/ssr-adapter/stream-renderer.d.ts +1 -1
  77. package/esm/src/react/compat/ssr-adapter/stream-renderer.d.ts.map +1 -1
  78. package/esm/src/react/compat/ssr-adapter/string-renderer.d.ts +1 -1
  79. package/esm/src/react/compat/ssr-adapter/string-renderer.d.ts.map +1 -1
  80. package/esm/src/react/compat/ssr-adapter/string-renderer.js +1 -1
  81. package/esm/src/react/compat/version-detector/feature-detector.js +1 -1
  82. package/esm/src/react/components/AppWrapper.d.ts +1 -1
  83. package/esm/src/react/components/AppWrapper.d.ts.map +1 -1
  84. package/esm/src/react/components/AppWrapper.js +1 -1
  85. package/esm/src/react/components/Head.d.ts +1 -1
  86. package/esm/src/react/components/Head.d.ts.map +1 -1
  87. package/esm/src/react/components/Head.js +7 -3
  88. package/esm/src/react/components/LayoutComponent.d.ts +1 -1
  89. package/esm/src/react/components/LayoutComponent.d.ts.map +1 -1
  90. package/esm/src/react/components/LayoutComponent.js +1 -1
  91. package/esm/src/react/components/Link.d.ts +1 -1
  92. package/esm/src/react/components/Link.d.ts.map +1 -1
  93. package/esm/src/react/components/Link.js +1 -1
  94. package/esm/src/react/components/MDXProvider.d.ts +1 -1
  95. package/esm/src/react/components/MDXProvider.d.ts.map +1 -1
  96. package/esm/src/react/components/MDXProvider.js +2 -2
  97. package/esm/src/react/components/ProviderComponent.d.ts +1 -1
  98. package/esm/src/react/components/ProviderComponent.d.ts.map +1 -1
  99. package/esm/src/react/components/ProviderComponent.js +1 -1
  100. package/esm/src/react/components/ai/agent-card.d.ts +2 -2
  101. package/esm/src/react/components/ai/agent-card.d.ts.map +1 -1
  102. package/esm/src/react/components/ai/agent-card.js +1 -1
  103. package/esm/src/react/components/ai/chat/components/animations.d.ts +1 -1
  104. package/esm/src/react/components/ai/chat/components/animations.d.ts.map +1 -1
  105. package/esm/src/react/components/ai/chat/components/animations.js +1 -1
  106. package/esm/src/react/components/ai/chat/components/empty-state.d.ts +1 -1
  107. package/esm/src/react/components/ai/chat/components/empty-state.d.ts.map +1 -1
  108. package/esm/src/react/components/ai/chat/components/empty-state.js +1 -1
  109. package/esm/src/react/components/ai/chat/components/message-actions.d.ts +1 -1
  110. package/esm/src/react/components/ai/chat/components/message-actions.d.ts.map +1 -1
  111. package/esm/src/react/components/ai/chat/components/message-actions.js +1 -1
  112. package/esm/src/react/components/ai/chat/components/reasoning.d.ts +1 -1
  113. package/esm/src/react/components/ai/chat/components/reasoning.d.ts.map +1 -1
  114. package/esm/src/react/components/ai/chat/components/reasoning.js +1 -1
  115. package/esm/src/react/components/ai/chat/components/tool-ui.d.ts +1 -1
  116. package/esm/src/react/components/ai/chat/components/tool-ui.d.ts.map +1 -1
  117. package/esm/src/react/components/ai/chat/components/tool-ui.js +1 -1
  118. package/esm/src/react/components/ai/chat/composition/api.d.ts +5 -4
  119. package/esm/src/react/components/ai/chat/composition/api.d.ts.map +1 -1
  120. package/esm/src/react/components/ai/chat/composition/api.js +1 -1
  121. package/esm/src/react/components/ai/chat/index.d.ts +8 -3
  122. package/esm/src/react/components/ai/chat/index.d.ts.map +1 -1
  123. package/esm/src/react/components/ai/chat/index.js +1 -1
  124. package/esm/src/react/components/ai/error-boundary.d.ts +1 -1
  125. package/esm/src/react/components/ai/error-boundary.d.ts.map +1 -1
  126. package/esm/src/react/components/ai/error-boundary.js +1 -1
  127. package/esm/src/react/components/ai/icons/index.d.ts +1 -1
  128. package/esm/src/react/components/ai/icons/index.d.ts.map +1 -1
  129. package/esm/src/react/components/ai/icons/index.js +1 -1
  130. package/esm/src/react/components/ai/markdown.d.ts +1 -1
  131. package/esm/src/react/components/ai/markdown.d.ts.map +1 -1
  132. package/esm/src/react/components/ai/markdown.js +1 -1
  133. package/esm/src/react/components/ai/message.d.ts +3 -3
  134. package/esm/src/react/components/ai/message.d.ts.map +1 -1
  135. package/esm/src/react/components/ai/message.js +1 -1
  136. package/esm/src/react/components/optimized-image/OptimizedBackgroundImage.d.ts +1 -1
  137. package/esm/src/react/components/optimized-image/OptimizedBackgroundImage.d.ts.map +1 -1
  138. package/esm/src/react/components/optimized-image/OptimizedBackgroundImage.js +1 -1
  139. package/esm/src/react/components/optimized-image/OptimizedImage.d.ts +1 -1
  140. package/esm/src/react/components/optimized-image/OptimizedImage.d.ts.map +1 -1
  141. package/esm/src/react/components/optimized-image/OptimizedImage.js +1 -1
  142. package/esm/src/react/components/optimized-image/SimpleOptimizedImage.d.ts +1 -1
  143. package/esm/src/react/components/optimized-image/SimpleOptimizedImage.d.ts.map +1 -1
  144. package/esm/src/react/components/optimized-image/utils.d.ts +1 -1
  145. package/esm/src/react/components/optimized-image/utils.d.ts.map +1 -1
  146. package/esm/src/react/components/optimized-image/utils.js +1 -1
  147. package/esm/src/react/context/index.d.ts +1 -1
  148. package/esm/src/react/context/index.d.ts.map +1 -1
  149. package/esm/src/react/context/index.js +1 -1
  150. package/esm/src/react/fonts/index.d.ts +1 -1
  151. package/esm/src/react/fonts/index.d.ts.map +1 -1
  152. package/esm/src/react/fonts/index.js +1 -1
  153. package/esm/src/react/primitives/agent-primitives.d.ts +4 -4
  154. package/esm/src/react/primitives/agent-primitives.d.ts.map +1 -1
  155. package/esm/src/react/primitives/agent-primitives.js +1 -1
  156. package/esm/src/react/primitives/chat-container.d.ts +2 -2
  157. package/esm/src/react/primitives/chat-container.d.ts.map +1 -1
  158. package/esm/src/react/primitives/chat-container.js +1 -1
  159. package/esm/src/react/primitives/input-box.d.ts +4 -4
  160. package/esm/src/react/primitives/input-box.d.ts.map +1 -1
  161. package/esm/src/react/primitives/input-box.js +7 -3
  162. package/esm/src/react/primitives/message-list.d.ts +5 -5
  163. package/esm/src/react/primitives/message-list.d.ts.map +1 -1
  164. package/esm/src/react/primitives/message-list.js +1 -1
  165. package/esm/src/react/primitives/tool-primitives.d.ts +4 -4
  166. package/esm/src/react/primitives/tool-primitives.d.ts.map +1 -1
  167. package/esm/src/react/primitives/tool-primitives.js +1 -1
  168. package/esm/src/react/router/index.d.ts +1 -1
  169. package/esm/src/react/router/index.d.ts.map +1 -1
  170. package/esm/src/react/router/index.js +1 -1
  171. package/esm/src/rendering/app-reserved.d.ts +1 -1
  172. package/esm/src/rendering/app-reserved.d.ts.map +1 -1
  173. package/esm/src/rendering/app-reserved.js +1 -1
  174. package/esm/src/rendering/client/router.js +1 -1
  175. package/esm/src/rendering/client/state-bridge.d.ts +1 -1
  176. package/esm/src/rendering/client/state-bridge.d.ts.map +1 -1
  177. package/esm/src/rendering/client/state-bridge.js +1 -1
  178. package/esm/src/rendering/component-handling.d.ts +3 -1
  179. package/esm/src/rendering/component-handling.d.ts.map +1 -1
  180. package/esm/src/rendering/component-handling.js +4 -2
  181. package/esm/src/rendering/element-validator/element-normalizer.d.ts +1 -1
  182. package/esm/src/rendering/element-validator/element-normalizer.d.ts.map +1 -1
  183. package/esm/src/rendering/element-validator/element-normalizer.js +1 -1
  184. package/esm/src/rendering/element-validator/primitive-checks.d.ts +1 -1
  185. package/esm/src/rendering/element-validator/primitive-checks.d.ts.map +1 -1
  186. package/esm/src/rendering/element-validator/primitive-checks.js +1 -1
  187. package/esm/src/rendering/element-validator/validator-core.d.ts +1 -1
  188. package/esm/src/rendering/element-validator/validator-core.d.ts.map +1 -1
  189. package/esm/src/rendering/layouts/layout-applicator.d.ts +1 -1
  190. package/esm/src/rendering/layouts/layout-applicator.d.ts.map +1 -1
  191. package/esm/src/rendering/layouts/layout-applicator.js +2 -0
  192. package/esm/src/rendering/layouts/utils/applicator.d.ts +1 -1
  193. package/esm/src/rendering/layouts/utils/applicator.d.ts.map +1 -1
  194. package/esm/src/rendering/layouts/utils/component-loader.d.ts +1 -1
  195. package/esm/src/rendering/layouts/utils/component-loader.d.ts.map +1 -1
  196. package/esm/src/rendering/layouts/utils/ensure-valid-child.d.ts +1 -1
  197. package/esm/src/rendering/layouts/utils/ensure-valid-child.d.ts.map +1 -1
  198. package/esm/src/rendering/orchestrator/layout.d.ts +1 -1
  199. package/esm/src/rendering/orchestrator/layout.d.ts.map +1 -1
  200. package/esm/src/rendering/orchestrator/module-loader/index.d.ts +3 -0
  201. package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
  202. package/esm/src/rendering/orchestrator/module-loader/index.js +74 -19
  203. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  204. package/esm/src/rendering/orchestrator/pipeline.js +2 -0
  205. package/esm/src/rendering/orchestrator/ssr-orchestrator.d.ts +1 -1
  206. package/esm/src/rendering/orchestrator/ssr-orchestrator.d.ts.map +1 -1
  207. package/esm/src/rendering/page-renderer.d.ts +1 -1
  208. package/esm/src/rendering/page-renderer.d.ts.map +1 -1
  209. package/esm/src/rendering/page-rendering.d.ts +1 -1
  210. package/esm/src/rendering/page-rendering.d.ts.map +1 -1
  211. package/esm/src/rendering/rsc/server-renderer/component-detector.d.ts +1 -1
  212. package/esm/src/rendering/rsc/server-renderer/component-detector.d.ts.map +1 -1
  213. package/esm/src/rendering/rsc/server-renderer/rsc-renderer.d.ts +1 -1
  214. package/esm/src/rendering/rsc/server-renderer/rsc-renderer.d.ts.map +1 -1
  215. package/esm/src/rendering/rsc/server-renderer/tree-processor.d.ts +1 -1
  216. package/esm/src/rendering/rsc/server-renderer/tree-processor.d.ts.map +1 -1
  217. package/esm/src/rendering/rsc/server-renderer/tree-processor.js +4 -2
  218. package/esm/src/rendering/snippet-renderer.js +2 -2
  219. package/esm/src/rendering/ssr/component-registry.d.ts +1 -1
  220. package/esm/src/rendering/ssr/component-registry.d.ts.map +1 -1
  221. package/esm/src/rendering/ssr/component-registry.js +1 -1
  222. package/esm/src/rendering/ssr-renderer.d.ts +1 -1
  223. package/esm/src/rendering/ssr-renderer.d.ts.map +1 -1
  224. package/esm/src/rendering/utils/react-helpers.d.ts +1 -1
  225. package/esm/src/rendering/utils/react-helpers.d.ts.map +1 -1
  226. package/esm/src/rendering/utils/react-helpers.js +1 -1
  227. package/esm/src/server/handlers/request/ssr/error-page-fallback.js +1 -1
  228. package/esm/src/server/handlers/request/ssr/not-found-fallback.js +1 -1
  229. package/esm/src/transforms/esm/http-bundler.d.ts +15 -4
  230. package/esm/src/transforms/esm/http-bundler.d.ts.map +1 -1
  231. package/esm/src/transforms/esm/http-bundler.js +105 -12
  232. package/esm/src/transforms/esm/http-cache.d.ts.map +1 -1
  233. package/esm/src/transforms/esm/http-cache.js +26 -27
  234. package/esm/src/transforms/esm/import-rewriter.d.ts.map +1 -1
  235. package/esm/src/transforms/esm/import-rewriter.js +3 -3
  236. package/esm/src/transforms/esm/package-registry.d.ts +15 -13
  237. package/esm/src/transforms/esm/package-registry.d.ts.map +1 -1
  238. package/esm/src/transforms/esm/package-registry.js +45 -32
  239. package/esm/src/transforms/esm/react-imports.d.ts.map +1 -1
  240. package/esm/src/transforms/esm/react-imports.js +3 -7
  241. package/esm/src/transforms/esm/types.d.ts +2 -0
  242. package/esm/src/transforms/esm/types.d.ts.map +1 -1
  243. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts +14 -0
  244. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts.map +1 -1
  245. package/esm/src/transforms/mdx/esm-module-loader/cache/index.js +67 -0
  246. package/esm/src/transforms/mdx/esm-module-loader/loader.d.ts.map +1 -1
  247. package/esm/src/transforms/mdx/esm-module-loader/loader.js +1 -1
  248. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts +1 -0
  249. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
  250. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +1 -0
  251. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts +4 -0
  252. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts.map +1 -1
  253. package/esm/src/transforms/mdx/index.d.ts +1 -1
  254. package/esm/src/transforms/mdx/index.d.ts.map +1 -1
  255. package/esm/src/transforms/mdx/index.js +1 -1
  256. package/esm/src/transforms/mdx/mdx-cache-adapter.js +1 -1
  257. package/esm/src/transforms/mdx/module-loader/types.d.ts +1 -1
  258. package/esm/src/transforms/mdx/module-loader/types.d.ts.map +1 -1
  259. package/esm/src/transforms/mdx/types.d.ts +2 -2
  260. package/esm/src/transforms/mdx/types.d.ts.map +1 -1
  261. package/esm/src/transforms/pipeline/context.d.ts.map +1 -1
  262. package/esm/src/transforms/pipeline/context.js +7 -15
  263. package/esm/src/transforms/pipeline/stages/finalize.d.ts.map +1 -1
  264. package/esm/src/transforms/pipeline/stages/finalize.js +1 -1
  265. package/esm/src/types/app.d.ts +1 -1
  266. package/esm/src/types/app.d.ts.map +1 -1
  267. package/esm/src/types/global-guards.d.ts +1 -1
  268. package/esm/src/types/global-guards.d.ts.map +1 -1
  269. package/esm/src/types/index.d.ts +1 -1
  270. package/esm/src/types/index.d.ts.map +1 -1
  271. package/esm/src/utils/constants/cdn.d.ts.map +1 -1
  272. package/esm/src/utils/constants/cdn.js +22 -11
  273. package/esm/src/utils/hash-utils.d.ts +2 -0
  274. package/esm/src/utils/hash-utils.d.ts.map +1 -1
  275. package/esm/src/utils/hash-utils.js +4 -0
  276. package/esm/src/workflow/react/use-approval.js +1 -1
  277. package/esm/src/workflow/react/use-workflow-list.js +1 -1
  278. package/esm/src/workflow/react/use-workflow-start.js +1 -1
  279. package/esm/src/workflow/react/use-workflow.js +1 -1
  280. package/package.json +2 -1
  281. package/src/deno.js +8 -9
  282. package/src/deps/esm.sh/@types/react-dom@19.1.11/X-ZGNzc3R5cGVAMy4yLjMKZXJlYWN0/client.d.ts +105 -0
  283. package/src/deps/esm.sh/@types/react-dom@19.1.11/X-ZGNzc3R5cGVAMy4yLjMKZXJlYWN0/server.d.ts +162 -0
  284. package/src/deps/esm.sh/@types/react@19.1.17/X-ZGNzc3R5cGVAMy4yLjM/global.d.ts +165 -0
  285. package/src/deps/esm.sh/@types/react@19.1.17/X-ZGNzc3R5cGVAMy4yLjM/index.d.ts +4267 -0
  286. package/src/deps/esm.sh/@types/react@19.1.17/X-ZGNzc3R5cGVAMy4yLjMKZXJlYWN0/global.d.ts +165 -0
  287. package/src/deps/esm.sh/@types/react@19.1.17/X-ZGNzc3R5cGVAMy4yLjMKZXJlYWN0/index.d.ts +4267 -0
  288. package/src/deps/esm.sh/@types/react@19.1.17/X-ZGNzc3R5cGVAMy4yLjMKZXJlYWN0/jsx-runtime.d.ts +36 -0
  289. package/src/deps/esm.sh/@types/scheduler@0.26.0/index.d.ts +30 -0
  290. package/src/deps/esm.sh/csstype@3.2.3/index.d.ts +22569 -0
  291. package/src/deps/esm.sh/react-dom@19.1.1/client.d.ts +105 -0
  292. package/src/deps/esm.sh/react-dom@19.1.1/client.js +5 -0
  293. package/src/deps/esm.sh/react-dom@19.1.1/server.d.ts +162 -0
  294. package/src/deps/esm.sh/react-dom@19.1.1/server.js +5 -0
  295. package/src/deps/esm.sh/react@19.1.1/jsx-runtime.d.ts +36 -0
  296. package/src/deps/esm.sh/react@19.1.1/jsx-runtime.js +3 -0
  297. package/src/deps/esm.sh/react@19.1.1.d.ts +4267 -0
  298. package/src/deps/esm.sh/react@19.1.1.js +3 -0
  299. package/src/deps/esm.sh/scheduler@^0.26.0.d.ts +30 -0
  300. package/src/deps/esm.sh/scheduler@^0.26.0.js +3 -0
  301. package/src/proxy/main.ts +471 -0
  302. package/src/src/agent/react/use-agent.ts +1 -1
  303. package/src/src/agent/react/use-chat/use-chat.ts +1 -1
  304. package/src/src/agent/react/use-completion.ts +1 -1
  305. package/src/src/agent/react/use-streaming.ts +1 -1
  306. package/src/src/agent/react/use-voice-input.ts +1 -1
  307. package/src/src/cli/commands/init/config-generator.ts +1 -1
  308. package/src/src/cli/index/arg-parser.ts +1 -0
  309. package/src/src/cli/index/command-router.ts +57 -40
  310. package/src/src/cli/index/types.ts +5 -0
  311. package/src/src/config/loader.ts +5 -4
  312. package/src/src/html/utils.ts +2 -2
  313. package/src/src/modules/component-registry/registry.ts +1 -1
  314. package/src/src/modules/import-map/default-import-map.ts +3 -25
  315. package/src/src/modules/import-map/loader.ts +7 -23
  316. package/src/src/modules/import-map/resolver.ts +13 -8
  317. package/src/src/modules/react-loader/component-loader.ts +3 -1
  318. package/src/src/modules/react-loader/extract-component.ts +1 -1
  319. package/src/src/modules/react-loader/ssr-module-loader/loader.ts +52 -38
  320. package/src/src/modules/react-loader/ssr-module-loader/types.ts +2 -0
  321. package/src/src/modules/react-loader/types.ts +3 -1
  322. package/src/src/modules/react-loader/unified-loader.ts +7 -4
  323. package/src/src/modules/server/module-batch-handler.ts +7 -0
  324. package/src/src/modules/server/module-server.ts +6 -1
  325. package/src/src/modules/server/ssr-import-rewriter.ts +9 -17
  326. package/src/src/react/compat/hooks-adapter.ts +1 -1
  327. package/src/src/react/compat/ssr-adapter/response-builder.ts +1 -1
  328. package/src/src/react/compat/ssr-adapter/server-loader.ts +10 -10
  329. package/src/src/react/compat/ssr-adapter/stream-renderer.ts +2 -2
  330. package/src/src/react/compat/ssr-adapter/string-renderer.ts +3 -3
  331. package/src/src/react/compat/version-detector/feature-detector.ts +1 -1
  332. package/src/src/react/components/AppWrapper.tsx +1 -1
  333. package/src/src/react/components/Head.tsx +7 -3
  334. package/src/src/react/components/LayoutComponent.tsx +2 -2
  335. package/src/src/react/components/Link.tsx +1 -1
  336. package/src/src/react/components/MDXProvider.tsx +2 -2
  337. package/src/src/react/components/ProviderComponent.tsx +2 -2
  338. package/src/src/react/components/ai/agent-card.tsx +1 -1
  339. package/src/src/react/components/ai/chat/components/animations.tsx +1 -1
  340. package/src/src/react/components/ai/chat/components/empty-state.tsx +1 -1
  341. package/src/src/react/components/ai/chat/components/message-actions.tsx +1 -1
  342. package/src/src/react/components/ai/chat/components/reasoning.tsx +1 -1
  343. package/src/src/react/components/ai/chat/components/tool-ui.tsx +1 -1
  344. package/src/src/react/components/ai/chat/composition/api.tsx +1 -1
  345. package/src/src/react/components/ai/chat/index.tsx +1 -1
  346. package/src/src/react/components/ai/error-boundary.tsx +1 -1
  347. package/src/src/react/components/ai/icons/index.ts +1 -1
  348. package/src/src/react/components/ai/markdown.tsx +1 -1
  349. package/src/src/react/components/ai/message.tsx +1 -1
  350. package/src/src/react/components/optimized-image/OptimizedBackgroundImage.tsx +1 -1
  351. package/src/src/react/components/optimized-image/OptimizedImage.tsx +1 -1
  352. package/src/src/react/components/optimized-image/SimpleOptimizedImage.tsx +1 -1
  353. package/src/src/react/components/optimized-image/utils.tsx +1 -1
  354. package/src/src/react/context/index.ts +1 -1
  355. package/src/src/react/fonts/index.ts +1 -1
  356. package/src/src/react/primitives/agent-primitives.tsx +1 -1
  357. package/src/src/react/primitives/chat-container.tsx +1 -1
  358. package/src/src/react/primitives/input-box.tsx +5 -3
  359. package/src/src/react/primitives/message-list.tsx +1 -1
  360. package/src/src/react/primitives/tool-primitives.tsx +1 -1
  361. package/src/src/react/router/index.ts +1 -1
  362. package/src/src/rendering/app-reserved.ts +1 -1
  363. package/src/src/rendering/client/router.ts +2 -2
  364. package/src/src/rendering/client/state-bridge.ts +2 -2
  365. package/src/src/rendering/component-handling.ts +7 -1
  366. package/src/src/rendering/element-validator/element-inspector.ts +1 -1
  367. package/src/src/rendering/element-validator/element-normalizer.ts +1 -1
  368. package/src/src/rendering/element-validator/primitive-checks.ts +1 -1
  369. package/src/src/rendering/element-validator/validator-core.ts +1 -1
  370. package/src/src/rendering/layouts/layout-applicator.ts +5 -6
  371. package/src/src/rendering/layouts/utils/applicator.ts +1 -1
  372. package/src/src/rendering/layouts/utils/component-loader.ts +1 -1
  373. package/src/src/rendering/layouts/utils/ensure-valid-child.ts +1 -1
  374. package/src/src/rendering/orchestrator/layout.ts +1 -1
  375. package/src/src/rendering/orchestrator/module-loader/index.ts +91 -20
  376. package/src/src/rendering/orchestrator/pipeline.ts +2 -0
  377. package/src/src/rendering/orchestrator/ssr-orchestrator.ts +2 -2
  378. package/src/src/rendering/page-renderer.ts +1 -1
  379. package/src/src/rendering/page-rendering.ts +1 -1
  380. package/src/src/rendering/rsc/server-renderer/component-detector.ts +1 -1
  381. package/src/src/rendering/rsc/server-renderer/rsc-renderer.ts +1 -1
  382. package/src/src/rendering/rsc/server-renderer/tree-processor.ts +14 -4
  383. package/src/src/rendering/snippet-renderer.ts +2 -2
  384. package/src/src/rendering/ssr/component-registry.ts +1 -1
  385. package/src/src/rendering/ssr-renderer.ts +1 -1
  386. package/src/src/rendering/utils/react-helpers.ts +1 -1
  387. package/src/src/server/build-app-route-renderer.ts +2 -2
  388. package/src/src/server/handlers/request/rsc/handlers/render-handler.ts +1 -1
  389. package/src/src/server/handlers/request/ssr/error-page-fallback.ts +2 -2
  390. package/src/src/server/handlers/request/ssr/not-found-fallback.ts +1 -1
  391. package/src/src/transforms/esm/http-bundler.ts +101 -11
  392. package/src/src/transforms/esm/http-cache.ts +27 -28
  393. package/src/src/transforms/esm/import-rewriter.ts +5 -3
  394. package/src/src/transforms/esm/package-registry.ts +46 -32
  395. package/src/src/transforms/esm/react-imports.ts +3 -7
  396. package/src/src/transforms/esm/types.ts +2 -0
  397. package/src/src/transforms/mdx/esm-module-loader/cache/index.ts +84 -0
  398. package/src/src/transforms/mdx/esm-module-loader/loader.ts +2 -1
  399. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts +2 -1
  400. package/src/src/transforms/mdx/esm-module-loader/types.ts +4 -0
  401. package/src/src/transforms/mdx/index.ts +1 -1
  402. package/src/src/transforms/mdx/mdx-cache-adapter.ts +1 -1
  403. package/src/src/transforms/mdx/module-loader/types.ts +1 -1
  404. package/src/src/transforms/mdx/types.ts +2 -2
  405. package/src/src/transforms/pipeline/context.ts +7 -18
  406. package/src/src/transforms/pipeline/stages/finalize.ts +6 -1
  407. package/src/src/transforms/plugins/babel-node-positions.ts +2 -2
  408. package/src/src/types/app.ts +1 -1
  409. package/src/src/types/global-guards.ts +1 -1
  410. package/src/src/types/index.ts +1 -1
  411. package/src/src/utils/constants/cdn.ts +21 -12
  412. package/src/src/utils/hash-utils.ts +5 -0
  413. package/src/src/workflow/react/use-approval.ts +1 -1
  414. package/src/src/workflow/react/use-workflow-list.ts +1 -1
  415. package/src/src/workflow/react/use-workflow-start.ts +1 -1
  416. package/src/src/workflow/react/use-workflow.ts +1 -1
@@ -170,47 +170,62 @@ export async function routeCommand(args) {
170
170
  break;
171
171
  case "preview":
172
172
  case "serve": {
173
- showLogo();
174
- const { runtime } = await import("../../platform/adapters/detect.js");
175
- const adapter = await runtime.get();
176
- const { startUniversalServer } = await import("../../server/production-server.js");
177
- const projectDir = cwd();
173
+ const mode = (args.mode || args.m || "renderer");
178
174
  const port = args.port ?? DEFAULT_DEV_SERVER_PORT;
179
175
  const bindAddress = String(args.hostname || args.host || "0.0.0.0");
180
- const debug = Boolean(args.debug);
181
- const shutdownController = new AbortController();
182
- const server = await startUniversalServer({
183
- projectDir,
184
- port,
185
- bindAddress,
186
- debug,
187
- adapter,
188
- signal: shutdownController.signal,
189
- });
190
- await server.ready;
191
- let shuttingDown = false;
192
- const shutdown = async (signal) => {
193
- if (shuttingDown)
194
- return;
195
- shuttingDown = true;
196
- cliLogger.info(`Received ${signal}, shutting down production server...`);
197
- try {
198
- shutdownController.abort();
199
- await server.stop();
200
- }
201
- catch (error) {
202
- cliLogger.warn("Error while shutting down production server:", error);
203
- }
204
- finally {
205
- exitProcess(0);
206
- }
207
- };
208
- registerTerminationSignals((signal) => {
209
- void shutdown(signal);
210
- });
211
- await new Promise(() => {
212
- /* never resolve */
213
- });
176
+ if (mode === "proxy") {
177
+ // Proxy-only mode: run OAuth token proxy
178
+ showLogo();
179
+ cliLogger.info(`Starting proxy server on ${bindAddress}:${port}`);
180
+ // Set environment variables for proxy
181
+ const { setEnv } = await import("../../platform/compat/process.js");
182
+ setEnv("PORT", String(port));
183
+ setEnv("HOST", bindAddress);
184
+ // Import and run proxy main
185
+ await import("../../../proxy/main.js");
186
+ }
187
+ else if (mode === "renderer" || mode === "combined") {
188
+ // Renderer mode: run SSR production server
189
+ showLogo();
190
+ const { runtime } = await import("../../platform/adapters/detect.js");
191
+ const adapter = await runtime.get();
192
+ const { startUniversalServer } = await import("../../server/production-server.js");
193
+ const projectDir = cwd();
194
+ const debug = Boolean(args.debug);
195
+ const shutdownController = new AbortController();
196
+ const server = await startUniversalServer({
197
+ projectDir,
198
+ port,
199
+ bindAddress,
200
+ debug,
201
+ adapter,
202
+ signal: shutdownController.signal,
203
+ });
204
+ await server.ready;
205
+ let shuttingDown = false;
206
+ const shutdown = async (signal) => {
207
+ if (shuttingDown)
208
+ return;
209
+ shuttingDown = true;
210
+ cliLogger.info(`Received ${signal}, shutting down production server...`);
211
+ try {
212
+ shutdownController.abort();
213
+ await server.stop();
214
+ }
215
+ catch (error) {
216
+ cliLogger.warn("Error while shutting down production server:", error);
217
+ }
218
+ finally {
219
+ exitProcess(0);
220
+ }
221
+ };
222
+ registerTerminationSignals((signal) => {
223
+ void shutdown(signal);
224
+ });
225
+ await new Promise(() => {
226
+ /* never resolve */
227
+ });
228
+ }
214
229
  break;
215
230
  }
216
231
  case "doctor":
@@ -16,6 +16,7 @@ export interface BuildCommandArgs {
16
16
  export interface GenerateCommandArgs {
17
17
  _: (string | number)[];
18
18
  }
19
+ export type ServerMode = "combined" | "proxy" | "renderer";
19
20
  export interface ParsedArgs {
20
21
  _: (string | number)[];
21
22
  port?: number;
@@ -39,6 +40,9 @@ export interface ParsedArgs {
39
40
  j?: boolean;
40
41
  with?: string[];
41
42
  w?: string[];
43
+ /** Server mode: combined (default), proxy, or renderer */
44
+ mode?: ServerMode;
45
+ m?: ServerMode;
42
46
  [key: string]: unknown;
43
47
  }
44
48
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/cli/index/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/cli/index/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACb,0DAA0D;IAC1D,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,CAAC,CAAC,EAAE,UAAU,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
@@ -303,13 +303,13 @@ declare const createProjectInput: z.ZodObject<{
303
303
  }, "strip", z.ZodTypeAny, {
304
304
  name: string;
305
305
  template: "app" | "docs" | "ai" | "blog" | "minimal";
306
- integrations?: string[] | undefined;
307
306
  directory?: string | undefined;
307
+ integrations?: string[] | undefined;
308
308
  }, {
309
309
  name: string;
310
310
  template?: "app" | "docs" | "ai" | "blog" | "minimal" | undefined;
311
- integrations?: string[] | undefined;
312
311
  directory?: string | undefined;
312
+ integrations?: string[] | undefined;
313
313
  }>;
314
314
  type CreateProjectInput = z.infer<typeof createProjectInput>;
315
315
  interface CreateProjectResult {
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/src/config/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAenE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqSlD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAsE1B;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAI9E"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/src/config/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAgBnE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqSlD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAsE1B;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAI9E"}
@@ -6,7 +6,8 @@ import { isBun } from "../platform/compat/runtime.js";
6
6
  import { serverLogger } from "../utils/logger/logger.js";
7
7
  import { getReactImportMap, REACT_DEFAULT_VERSION } from "../utils/constants/cdn.js";
8
8
  import { DEFAULT_CACHE_DIR } from "../utils/constants/server.js";
9
- import { setReactVersion } from "../transforms/esm/package-registry.js";
9
+ // React version is now passed per-request via TransformOptions.reactVersion
10
+ // No longer using global singleton: import { setReactVersion } from "#veryfront/transforms/esm/package-registry.ts";
10
11
  import { buildConfigCacheKey } from "../cache/keys.js";
11
12
  import { DEFAULT_PORT } from "./defaults.js";
12
13
  import { createFileSystem } from "../platform/compat/fs.js";
@@ -174,10 +175,10 @@ function validateAndCacheConfig(userConfig, cacheKey) {
174
175
  validateCorsConfig(userConfig);
175
176
  validateConfigShape(userConfig);
176
177
  const merged = mergeConfigs(userConfig);
177
- // Apply React version from config (sets global default for transforms)
178
+ // React version is now passed per-request via TransformOptions.reactVersion
179
+ // Config stores it at merged.react.version, accessed wherever needed
178
180
  if (merged.react?.version) {
179
- setReactVersion(merged.react.version);
180
- serverLogger.debug("[CONFIG] React version set from config", { version: merged.react.version });
181
+ serverLogger.debug("[CONFIG] React version from config", { version: merged.react.version });
181
182
  }
182
183
  configCacheByProject.set(cacheKey, { revision: cacheRevision, config: merged });
183
184
  return merged;
@@ -62,8 +62,8 @@ const PLATFORM_UTILITIES = {
62
62
  const CDN_URL_TEMPLATES = {
63
63
  "esm.sh": {
64
64
  react: (v) => `https://esm.sh/react@${v}?target=es2022`,
65
- reactDom: (v) => `https://esm.sh/react-dom@${v}?target=es2022`,
66
- reactDomClient: (v) => `https://esm.sh/react-dom@${v}/client?target=es2022`,
65
+ reactDom: (v) => `https://esm.sh/react-dom@${v}?external=react&target=es2022`,
66
+ reactDomClient: (v) => `https://esm.sh/react-dom@${v}/client?external=react&target=es2022`,
67
67
  jsxRuntime: (v) => `https://esm.sh/react@${v}/jsx-runtime?target=es2022`,
68
68
  jsxDevRuntime: (v) => `https://esm.sh/react@${v}/jsx-dev-runtime?target=es2022`,
69
69
  veryfrontAgentReact: (v) => `https://esm.sh/veryfront@${v}/agent/react?external=react,react-dom&target=es2022`,
@@ -1,5 +1,5 @@
1
1
  import type { RuntimeAdapter } from "../../platform/adapters/base.js";
2
- import type * as React from "react";
2
+ import type * as React from "../../../deps/esm.sh/react@19.1.1.js";
3
3
  export interface ComponentExports {
4
4
  default?: unknown;
5
5
  [key: string]: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/component-registry/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,qBAAa,iBAAiB;IAOhB,OAAO,CAAC,OAAO;IAN3B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAS;gBAER,OAAO,EAAE,wBAAwB;IAUrD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAcX,iBAAiB;YAsBjB,aAAa;IAmC3B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA4B1D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI5C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAIpC;;OAEG;IACH,SAAS,IAAI,eAAe,GAAG,SAAS;IAIxC;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAWlE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAUrD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B,KAAK,IAAI,IAAI;IAMb,iBAAiB,IAAI,MAAM,EAAE;IAIvB,cAAc,IAAI,OAAO,CAC7B,KAAK,CAAC;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CACH;CA8BF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/component-registry/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,KAAK,KAAK,MAAM,sCAAsC,CAAC;AAGnE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,qBAAa,iBAAiB;IAOhB,OAAO,CAAC,OAAO;IAN3B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAS;gBAER,OAAO,EAAE,wBAAwB;IAUrD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAcX,iBAAiB;YAsBjB,aAAa;IAmC3B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA4B1D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI5C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAIpC;;OAEG;IACH,SAAS,IAAI,eAAe,GAAG,SAAS;IAIxC;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAWlE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAUrD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B,KAAK,IAAI,IAAI;IAMb,iBAAiB,IAAI,MAAM,EAAE;IAIvB,cAAc,IAAI,OAAO,CAC7B,KAAK,CAAC;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CACH;CA8BF"}
@@ -1,17 +1,7 @@
1
1
  import type { ImportMapConfig } from "./types.js";
2
- /**
3
- * Get React import map for SSR in Deno.
4
- * Uses npm: specifiers which Deno handles natively with automatic deduplication.
5
- * See: https://deno.com/blog/not-using-npm-specifiers-doing-it-wrong
6
- *
7
- * This replaces the previous shared-*.ts approach which required manual re-exports.
8
- */
9
- export declare function getDenoReactImportMap(): Record<string, string>;
10
2
  /**
11
3
  * Get the default import map for SSR transforms.
12
- *
13
- * For Deno SSR: Uses npm: specifiers with automatic deduplication.
14
- * For other runtimes: Uses esm.sh URLs with external=react.
4
+ * Uses esm.sh URLs consistently (NO npm: specifiers per plan requirements).
15
5
  */
16
6
  export declare function getDefaultImportMap(): ImportMapConfig;
17
7
  //# sourceMappingURL=default-import-map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-import-map.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/import-map/default-import-map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8ClD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAYrD"}
1
+ {"version":3,"file":"default-import-map.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/import-map/default-import-map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA0ClD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAOrD"}
@@ -1,6 +1,5 @@
1
1
  import * as dntShim from "../../../_dnt.shims.js";
2
- import { isDeno } from "../../platform/compat/runtime.js";
3
- import { getDenoNpmReactMap, getReactImportMap, } from "../../transforms/esm/package-registry.js";
2
+ import { getReactImportMap } from "../../transforms/esm/package-registry.js";
4
3
  function ensureTrailingSlash(path) {
5
4
  return path.endsWith("/") ? path : `${path}/`;
6
5
  }
@@ -34,30 +33,14 @@ function getVeryfrontSsrImportMap() {
34
33
  "veryfront/react/fonts": fonts,
35
34
  };
36
35
  }
37
- /**
38
- * Get React import map for SSR in Deno.
39
- * Uses npm: specifiers which Deno handles natively with automatic deduplication.
40
- * See: https://deno.com/blog/not-using-npm-specifiers-doing-it-wrong
41
- *
42
- * This replaces the previous shared-*.ts approach which required manual re-exports.
43
- */
44
- export function getDenoReactImportMap() {
45
- return getDenoNpmReactMap();
46
- }
47
36
  /**
48
37
  * Get the default import map for SSR transforms.
49
- *
50
- * For Deno SSR: Uses npm: specifiers with automatic deduplication.
51
- * For other runtimes: Uses esm.sh URLs with external=react.
38
+ * Uses esm.sh URLs consistently (NO npm: specifiers per plan requirements).
52
39
  */
53
40
  export function getDefaultImportMap() {
54
- const reactMap = isDeno ? getDenoReactImportMap() : getReactImportMap();
41
+ const reactMap = getReactImportMap();
55
42
  const veryfrontMap = getVeryfrontSsrImportMap();
56
- // For Deno SSR, add scopes so that esm.sh modules with external=react
57
- // resolve their bare `react` imports to npm: specifiers.
58
- const scopes = isDeno ? { "https://esm.sh/": getDenoReactImportMap() } : undefined;
59
43
  return {
60
44
  imports: { ...veryfrontMap, ...reactMap },
61
- scopes,
62
45
  };
63
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/import-map/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqElD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,CAAC,CA+C1B"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/import-map/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqDlD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,CAAC,CA+C1B"}
@@ -1,14 +1,15 @@
1
1
  import { rendererLogger as logger } from "../../utils/index.js";
2
2
  import { dirname, join } from "../../platform/compat/path/index.js";
3
3
  import { getConfig } from "../../config/index.js";
4
- import { getDefaultImportMap, getDenoReactImportMap } from "./default-import-map.js";
4
+ import { getDefaultImportMap } from "./default-import-map.js";
5
5
  import { mergeImportMaps } from "./merger.js";
6
6
  import { withSpan } from "../../observability/tracing/otlp-setup.js";
7
- import { isDeno } from "../../platform/compat/runtime.js";
7
+ import { getReactImportMap } from "../../transforms/esm/package-registry.js";
8
8
  function normalizeImportMapForRuntime(importMap) {
9
9
  const normalizeValue = (value) => {
10
10
  if (!value.startsWith("npm:"))
11
11
  return value;
12
+ // Convert npm: specifiers to esm.sh URLs (should not happen with new code)
12
13
  const spec = value.slice(4);
13
14
  const [base, query] = spec.split("?");
14
15
  const url = `https://esm.sh/${base}`;
@@ -17,35 +18,19 @@ function normalizeImportMapForRuntime(importMap) {
17
18
  let imports = importMap.imports
18
19
  ? Object.fromEntries(Object.entries(importMap.imports).map(([k, v]) => [k, normalizeValue(v)]))
19
20
  : undefined;
20
- let scopes = importMap.scopes
21
+ const scopes = importMap.scopes
21
22
  ? Object.fromEntries(Object.entries(importMap.scopes).map(([scope, mappings]) => [
22
23
  scope,
23
24
  Object.fromEntries(Object.entries(mappings).map(([k, v]) => [k, normalizeValue(v)])),
24
25
  ]))
25
26
  : undefined;
26
- // CRITICAL: For Deno SSR, always use shared-*.ts files for React.
27
- // Project configs may have esm.sh URLs which would create multiple React instances.
28
27
  // Override React mappings AFTER all other processing to ensure single instance.
29
- // Also remove any "react/" prefix match since we have explicit mappings.
30
- if (isDeno && imports) {
31
- const reactMap = getDenoReactImportMap();
32
- // Remove any esm.sh "react/" prefix mapping that would break subpath resolution
28
+ // Remove any "react/" prefix match since we have explicit mappings.
29
+ if (imports) {
30
+ const reactMap = getReactImportMap();
33
31
  delete imports["react/"];
34
32
  imports = { ...imports, ...reactMap };
35
33
  }
36
- // For Deno SSR, ensure esm.sh scope has React mappings to shared-*.ts files.
37
- // This is critical because esm.sh modules with external=react have bare `react`
38
- // imports that need to resolve to our shared React instance.
39
- if (isDeno) {
40
- const reactMap = getDenoReactImportMap();
41
- const esmShScope = scopes?.["https://esm.sh/"] ?? {};
42
- // Remove any "react/" prefix match from scope as well
43
- delete esmShScope["react/"];
44
- scopes = {
45
- ...scopes,
46
- "https://esm.sh/": { ...esmShScope, ...reactMap },
47
- };
48
- }
49
34
  return { imports, scopes };
50
35
  }
51
36
  function mergeWithDefault(importMap) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/import-map/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8ClD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,eAAe,EAC1B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAkDR"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/import-map/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8ClD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,eAAe,EAC1B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAuDR"}
@@ -46,21 +46,25 @@ export function resolveImport(specifier, importMap, scope) {
46
46
  if (isEsmShUrl(specifier)) {
47
47
  const esmShPackage = extractEsmShPackage(specifier);
48
48
  if (esmShPackage) {
49
+ const subpath = extractEsmShSubpath(specifier);
50
+ // Always check for explicit subpath mapping first (e.g., "react/jsx-runtime")
51
+ // This takes priority over appending subpath to base package mapping
52
+ if (subpath) {
53
+ const fullKey = esmShPackage + subpath; // e.g., "react/jsx-runtime"
54
+ const subpathMapping = scopedImports?.[fullKey] ?? importMap.imports?.[fullKey];
55
+ if (subpathMapping)
56
+ return subpathMapping;
57
+ }
49
58
  const mapping = scopedImports?.[esmShPackage] ?? importMap.imports?.[esmShPackage];
50
59
  if (mapping) {
51
- const subpath = extractEsmShSubpath(specifier);
52
60
  if (!subpath)
53
61
  return mapping;
54
- // If mapping target is a file path (not HTTP URL or npm: specifier), look for explicit subpath mapping
55
- // e.g., "react" local file but "react/jsx-runtime" different local file
56
- // npm: specifiers are URL-like and should have subpaths appended
62
+ // If mapping target is a file path (not HTTP URL or npm: specifier),
63
+ // fall back to base mapping since explicit subpath wasn't found above
57
64
  const isFilePath = !mapping.startsWith("http://") && !mapping.startsWith("https://") &&
58
65
  !mapping.startsWith("npm:");
59
66
  if (isFilePath) {
60
- const fullKey = esmShPackage + subpath; // e.g., "react/jsx-runtime"
61
- const subpathMapping = scopedImports?.[fullKey] ?? importMap.imports?.[fullKey];
62
- // Use explicit subpath mapping if available, otherwise fall back to base mapping
63
- return subpathMapping ?? mapping;
67
+ return mapping;
64
68
  }
65
69
  return mapping + subpath;
66
70
  }
@@ -1,4 +1,4 @@
1
- import type * as React from "react";
1
+ import type * as React from "../../../deps/esm.sh/react@19.1.1.js";
2
2
  import type { RuntimeAdapter } from "../../platform/adapters/base.js";
3
3
  import type { LoadComponentOptions } from "./types.js";
4
4
  export declare function loadComponentFromSource(source: string, filePath: string, projectDir: string, adapter: RuntimeAdapter, options?: LoadComponentOptions): Promise<React.ComponentType<Record<string, unknown>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"component-loader.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/react-loader/component-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAKtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMvD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAwDvD"}
1
+ {"version":3,"file":"component-loader.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/react-loader/component-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,sCAAsC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAKtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMvD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CA0DvD"}
@@ -19,6 +19,7 @@ export function loadComponentFromSource(source, filePath, projectDir, adapter, o
19
19
  adapter,
20
20
  dev,
21
21
  contentSourceId: options?.contentSourceId,
22
+ reactVersion: options?.reactVersion,
22
23
  });
23
24
  return loader.loadModule(filePath, source);
24
25
  }
@@ -28,6 +29,7 @@ export function loadComponentFromSource(source, filePath, projectDir, adapter, o
28
29
  moduleServerUrl: options?.moduleServerUrl ?? "/_vf_modules",
29
30
  vendorBundleHash: options?.vendorBundleHash,
30
31
  ssr: false,
32
+ reactVersion: options?.reactVersion,
31
33
  };
32
34
  const transformedCode = await transformToESM(source, filePath, projectDir, adapter, transformOpts);
33
35
  const tmpDir = await getProjectTmpDir(projectId);
@@ -1,3 +1,3 @@
1
- import type * as React from "react";
1
+ import type * as React from "../../../deps/esm.sh/react@19.1.1.js";
2
2
  export declare function extractComponent(mod: unknown, filePath: string): React.ComponentType<Record<string, unknown>>;
3
3
  //# sourceMappingURL=extract-component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract-component.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/react-loader/extract-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAgB9C"}
1
+ {"version":3,"file":"extract-component.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/react-loader/extract-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,sCAAsC,CAAC;AAGnE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAgB9C"}
@@ -1,4 +1,4 @@
1
- import type * as React from "react";
1
+ import type * as React from "../../../../deps/esm.sh/react@19.1.1.js";
2
2
  import type { SSRModuleLoaderOptions } from "./types.js";
3
3
  /**
4
4
  * SSR Module Loader with Redis Support.
@@ -53,14 +53,9 @@ export declare class SSRModuleLoader {
53
53
  */
54
54
  private toJsExtension;
55
55
  private ensureDependenciesExist;
56
- /**
57
- * Fast sync hash for small strings (project IDs, etc.)
58
- * Use hashContentAsync for large file content.
59
- */
60
- private hashCode;
61
56
  /**
62
57
  * Async hash for large content using Web Crypto API.
63
- * Doesn't block event loop for large files.
58
+ * Falls back to sync hash for small files.
64
59
  */
65
60
  private hashContentAsync;
66
61
  private getTempPath;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/src/modules/react-loader/ssr-module-loader/loader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAsCpC,OAAO,KAAK,EAAoB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAgC3E;;;;;GAKG;AACH,qBAAa,eAAe;IAId,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,EAAE,CAAsB;IAChC,OAAO,CAAC,mBAAmB,CAAuB;gBAE9B,OAAO,EAAE,sBAAsB;IAEnD;;OAEG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAsGxD,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;YACW,2BAA2B;IAkGzC,OAAO,CAAC,yBAAyB;YAiBnB,2BAA2B;IA6RzC;;;OAGG;YACW,mBAAmB;IA2CjC,OAAO,CAAC,yBAAyB;IAYjC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,2BAA2B;IAiBnC,OAAO,CAAC,2BAA2B;IAWnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,aAAa;YAIP,uBAAuB;IAyCrC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAUhB;;;OAGG;YACW,gBAAgB;YAgBhB,WAAW;YAeX,YAAY;CAiC3B"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/src/modules/react-loader/ssr-module-loader/loader.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,KAAK,MAAM,yCAAyC,CAAC;AAuCtE,OAAO,KAAK,EAAoB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAiC3E;;;;;GAKG;AACH,qBAAa,eAAe;IAId,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,EAAE,CAAsB;IAChC,OAAO,CAAC,mBAAmB,CAAuB;gBAE9B,OAAO,EAAE,sBAAsB;IAEnD;;OAEG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAsGxD,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;YACW,2BAA2B;IAmGzC,OAAO,CAAC,yBAAyB;YAiBnB,2BAA2B;IA0TzC;;;OAGG;YACW,mBAAmB;IA2CjC,OAAO,CAAC,yBAAyB;IAYjC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,2BAA2B;IAiBnC,OAAO,CAAC,2BAA2B;IAWnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,aAAa;YAIP,uBAAuB;IAyCrC;;;OAGG;YACW,gBAAgB;YAgBhB,WAAW;YAeX,YAAY;CA4B3B"}
@@ -6,15 +6,15 @@
6
6
  * @module module-system/react-loader/ssr-module-loader/loader
7
7
  */
8
8
  import * as dntShim from "../../../../_dnt.shims.js";
9
- import { isAbsolute, join } from "../../../platform/compat/path/index.js";
10
- import { cwd } from "../../../platform/compat/process.js";
9
+ import { join } from "../../../platform/compat/path/index.js";
11
10
  import { transformToESM } from "../../../transforms/esm/index.js";
12
11
  import { TRANSFORM_CACHE_VERSION } from "../../../transforms/esm/package-registry.js";
13
- import { buildSSRModuleCacheKey, buildSSRModuleProjectKey } from "../../../cache/keys.js";
12
+ import { buildSSRModuleCacheKey } from "../../../cache/keys.js";
14
13
  import { parseLocalImports, } from "../../../transforms/esm/import-parser.js";
15
14
  import { createFileSystem } from "../../../platform/compat/fs.js";
16
15
  import { createError, toError } from "../../../errors/veryfront-error.js";
17
16
  import { rendererLogger as logger } from "../../../utils/index.js";
17
+ import { hashCodeHex } from "../../../utils/hash-utils.js";
18
18
  import { getApiBaseUrlEnv } from "../../../config/env.js";
19
19
  import { injectContext, withSpan } from "../../../observability/tracing/otlp-setup.js";
20
20
  import { SpanNames } from "../../../observability/tracing/span-names.js";
@@ -22,7 +22,8 @@ import { extractComponent } from "../extract-component.js";
22
22
  import { CIRCUIT_BREAKER_RESET_MS, CIRCUIT_BREAKER_THRESHOLD, IN_PROGRESS_WAIT_TIMEOUT_MS, MAX_CONCURRENT_TRANSFORMS, MAX_TRANSFORM_DEPTH, TRANSFORM_ACQUIRE_TIMEOUT_MS, TRANSFORM_BATCH_SIZE, } from "./constants.js";
23
23
  import { withTimeoutThrow } from "../../../rendering/utils/stream-utils.js";
24
24
  import { failedComponents, getFromRedis, globalCrossProjectCache, globalInProgress, globalModuleCache, globalTmpDirs, isSSRDistributedCacheEnabled, setInRedis, transformSemaphore, } from "./cache/index.js";
25
- import { getCacheBaseDir, getHttpBundleCacheDir } from "../../../utils/cache-dir.js";
25
+ import { getHttpBundleCacheDir, getMdxEsmCacheDir } from "../../../utils/cache-dir.js";
26
+ import { lookupMdxEsmCache } from "../../../transforms/mdx/esm-module-loader/cache/index.js";
26
27
  import { ensureHttpBundlesExist } from "../../../transforms/esm/http-cache.js";
27
28
  import { LRUCache } from "../../../utils/lru-wrapper.js";
28
29
  /** Pattern to match HTTP bundle file:// paths in transformed code */
@@ -190,7 +191,9 @@ export class SSRModuleLoader {
190
191
  if (!this.options.contentSourceId) {
191
192
  throw new Error(`Missing contentSourceId for SSR module cache (project: ${this.options.projectId}, file: ${filePath})`);
192
193
  }
193
- return buildSSRModuleCacheKey(TRANSFORM_CACHE_VERSION, this.options.projectId, `${this.options.contentSourceId}:${filePath}`);
194
+ // Include reactVersion in cache key to ensure different versions don't share cached modules
195
+ const reactVersion = this.options.reactVersion ?? "default";
196
+ return buildSSRModuleCacheKey(TRANSFORM_CACHE_VERSION, this.options.projectId, `${this.options.contentSourceId}:${reactVersion}:${filePath}`);
194
197
  }
195
198
  isProductionContentSource() {
196
199
  const sourceId = this.options.contentSourceId;
@@ -259,6 +262,7 @@ export class SSRModuleLoader {
259
262
  dev: this.options.dev,
260
263
  ssr: true,
261
264
  apiBaseUrl: this.options.apiBaseUrl,
265
+ reactVersion: this.options.reactVersion,
262
266
  };
263
267
  const filePathWithExt = syntheticFilePath.endsWith(ext)
264
268
  ? syntheticFilePath
@@ -397,6 +401,25 @@ export class SSRModuleLoader {
397
401
  // Fall through to re-transform, which will create HTTP bundles locally
398
402
  }
399
403
  }
404
+ // Check MDX-ESM cache to share modules with MDX loader and avoid duplicate React contexts
405
+ if (this.options.projectId && this.options.contentSourceId) {
406
+ const baseCacheDir = getMdxEsmCacheDir();
407
+ const projectKey = hashCodeHex(this.options.projectId);
408
+ const sourceKey = hashCodeHex(this.options.contentSourceId);
409
+ const mdxCacheDir = join(baseCacheDir, projectKey, sourceKey);
410
+ const mdxCachedPath = await lookupMdxEsmCache(filePath, mdxCacheDir, this.options.projectDir, contentHash);
411
+ if (mdxCachedPath) {
412
+ const entry = { tempPath: mdxCachedPath, contentHash };
413
+ globalModuleCache.set(contentCacheKey, entry);
414
+ globalModuleCache.set(filePathCacheKey, entry);
415
+ logger.debug("[SSR-MODULE-LOADER] Reusing MDX-ESM cache", {
416
+ file: filePath.slice(-40),
417
+ cachedPath: mdxCachedPath.slice(-60),
418
+ });
419
+ await this.ensureDependenciesExist(code, filePath, depth);
420
+ return;
421
+ }
422
+ }
400
423
  const existingTransform = globalInProgress.get(inProgressKey);
401
424
  if (existingTransform) {
402
425
  try {
@@ -459,6 +482,7 @@ export class SSRModuleLoader {
459
482
  dev: this.options.dev,
460
483
  ssr: true,
461
484
  apiBaseUrl: this.options.apiBaseUrl,
485
+ reactVersion: this.options.reactVersion,
462
486
  };
463
487
  let transformed = await withSpan(SpanNames.SSR_TRANSFORM_SINGLE, () => transformToESM(code, filePath, this.options.projectDir, this.options.adapter, transformOpts), { "ssr.file": filePath.split("/").pop() || filePath });
464
488
  for (const [specifier, tempPath] of crossProjectPaths.entries()) {
@@ -683,26 +707,13 @@ export class SSRModuleLoader {
683
707
  }));
684
708
  }
685
709
  }
686
- /**
687
- * Fast sync hash for small strings (project IDs, etc.)
688
- * Use hashContentAsync for large file content.
689
- */
690
- hashCode(str) {
691
- let hash = 0;
692
- for (let i = 0; i < str.length; i++) {
693
- const char = str.charCodeAt(i);
694
- hash = (hash << 5) - hash + char;
695
- hash = hash & hash;
696
- }
697
- return Math.abs(hash).toString(16);
698
- }
699
710
  /**
700
711
  * Async hash for large content using Web Crypto API.
701
- * Doesn't block event loop for large files.
712
+ * Falls back to sync hash for small files.
702
713
  */
703
714
  async hashContentAsync(content) {
704
715
  if (content.length < 10000)
705
- return this.hashCode(content);
716
+ return hashCodeHex(content);
706
717
  try {
707
718
  const data = new TextEncoder().encode(content);
708
719
  const hashBuffer = await dntShim.crypto.subtle.digest("SHA-256", data);
@@ -713,7 +724,7 @@ export class SSRModuleLoader {
713
724
  .join("");
714
725
  }
715
726
  catch {
716
- return this.hashCode(content);
727
+ return hashCodeHex(content);
717
728
  }
718
729
  }
719
730
  async getTempPath(filePath, contentHash) {
@@ -729,26 +740,23 @@ export class SSRModuleLoader {
729
740
  return join(tmpDir, jsPath);
730
741
  }
731
742
  async ensureTmpDir() {
732
- let projectDir = this.options.projectDir;
733
743
  const { projectId, contentSourceId } = this.options;
734
744
  if (!projectId) {
735
- throw new Error(`Missing projectId for SSR temp directory (projectDir: ${projectDir})`);
745
+ throw new Error(`Missing projectId for SSR temp directory (projectDir: ${this.options.projectDir})`);
736
746
  }
737
747
  if (!contentSourceId) {
738
748
  throw new Error(`Missing contentSourceId for SSR temp directory (project: ${projectId})`);
739
749
  }
740
- if (!projectDir.startsWith("/")) {
741
- projectDir = join(cwd(), projectDir);
742
- }
743
- const cacheBaseDir = getCacheBaseDir();
744
- const baseDir = isAbsolute(cacheBaseDir) ? cacheBaseDir : join(cwd(), cacheBaseDir);
745
- const cacheKey = `${baseDir}|${buildSSRModuleProjectKey(projectDir, projectId)}|${contentSourceId}`;
750
+ // Use the same cache directory as MDX-ESM loader to share module instances.
751
+ // This prevents issues like React context being created twice in separate files.
752
+ const baseCacheDir = getMdxEsmCacheDir();
753
+ const projectKey = hashCodeHex(projectId);
754
+ const sourceKey = hashCodeHex(contentSourceId);
755
+ const cacheKey = `${baseCacheDir}|${projectKey}|${sourceKey}`;
746
756
  const existingDir = globalTmpDirs.get(cacheKey);
747
757
  if (existingDir)
748
758
  return existingDir;
749
- const projectKey = this.hashCode(projectId);
750
- const sourceKey = this.hashCode(contentSourceId);
751
- const tmpDir = join(baseDir, "veryfront-ssr", projectKey, sourceKey);
759
+ const tmpDir = join(baseCacheDir, projectKey, sourceKey);
752
760
  await this.fs.mkdir(tmpDir, { recursive: true });
753
761
  globalTmpDirs.set(cacheKey, tmpDir);
754
762
  return tmpDir;
@@ -14,6 +14,8 @@ export interface SSRModuleLoaderOptions {
14
14
  apiBaseUrl?: string;
15
15
  /** Content source ID for cache isolation (branch name or release ID) */
16
16
  contentSourceId?: string;
17
+ /** React version for transforms (defaults to DEFAULT_REACT_VERSION) */
18
+ reactVersion?: string;
17
19
  }
18
20
  export interface ModuleCacheEntry {
19
21
  tempPath: string;