veryfront 0.1.128 → 0.1.129

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 (382) hide show
  1. package/esm/cli/router.d.ts +0 -5
  2. package/esm/cli/router.d.ts.map +1 -1
  3. package/esm/cli/router.js +30 -2
  4. package/esm/cli/shared/update-check.d.ts +4 -0
  5. package/esm/cli/shared/update-check.d.ts.map +1 -0
  6. package/esm/cli/shared/update-check.js +97 -0
  7. package/esm/deno.d.ts +5 -0
  8. package/esm/deno.js +13 -8
  9. package/esm/src/channels/control-plane.d.ts.map +1 -1
  10. package/esm/src/channels/control-plane.js +5 -5
  11. package/esm/src/channels/invoke.d.ts +1 -1
  12. package/esm/src/channels/invoke.d.ts.map +1 -1
  13. package/esm/src/channels/invoke.js +6 -6
  14. package/esm/src/chat/index.d.ts +12 -24
  15. package/esm/src/chat/index.d.ts.map +1 -1
  16. package/esm/src/chat/index.js +5 -25
  17. package/esm/src/config/env.d.ts.map +1 -1
  18. package/esm/src/config/env.js +18 -10
  19. package/esm/src/data/static-data-fetcher.d.ts +3 -0
  20. package/esm/src/data/static-data-fetcher.d.ts.map +1 -1
  21. package/esm/src/data/static-data-fetcher.js +29 -25
  22. package/esm/src/data/static-paths-fetcher.d.ts.map +1 -1
  23. package/esm/src/data/static-paths-fetcher.js +3 -2
  24. package/esm/src/errors/logging.d.ts.map +1 -1
  25. package/esm/src/errors/logging.js +16 -7
  26. package/esm/src/errors/user-friendly/error-formatter.d.ts.map +1 -1
  27. package/esm/src/errors/user-friendly/error-formatter.js +9 -25
  28. package/esm/src/fs/index.d.ts +11 -12
  29. package/esm/src/fs/index.d.ts.map +1 -1
  30. package/esm/src/fs/index.js +11 -24
  31. package/esm/src/html/dev-scripts.d.ts.map +1 -1
  32. package/esm/src/html/dev-scripts.js +5 -8
  33. package/esm/src/html/html-escape.d.ts +1 -0
  34. package/esm/src/html/html-escape.d.ts.map +1 -1
  35. package/esm/src/html/html-escape.js +3 -0
  36. package/esm/src/html/html-injection.js +2 -2
  37. package/esm/src/html/html-shell-generator.d.ts +5 -2
  38. package/esm/src/html/html-shell-generator.d.ts.map +1 -1
  39. package/esm/src/html/html-shell-generator.js +41 -30
  40. package/esm/src/html/hydration-script-builder/dev-client-renderer.js +2 -2
  41. package/esm/src/html/hydration-script-builder/dev-component-manifest.js +2 -2
  42. package/esm/src/html/hydration-script-builder/dev-error-logger.d.ts.map +1 -1
  43. package/esm/src/html/hydration-script-builder/dev-error-logger.js +2 -6
  44. package/esm/src/html/hydration-script-builder/dev-scripts.js +2 -2
  45. package/esm/src/html/hydration-script-builder/hydration-data-generator.d.ts +3 -1
  46. package/esm/src/html/hydration-script-builder/hydration-data-generator.d.ts.map +1 -1
  47. package/esm/src/html/hydration-script-builder/hydration-data-generator.js +2 -2
  48. package/esm/src/html/hydration-script-builder/index.d.ts +1 -1
  49. package/esm/src/html/hydration-script-builder/index.d.ts.map +1 -1
  50. package/esm/src/html/hydration-script-builder/index.js +1 -1
  51. package/esm/src/html/hydration-script-builder/prod-hydration.js +2 -2
  52. package/esm/src/html/hydration-script-builder/prod-scripts.d.ts +2 -0
  53. package/esm/src/html/hydration-script-builder/prod-scripts.d.ts.map +1 -1
  54. package/esm/src/html/hydration-script-builder/prod-scripts.js +14 -14
  55. package/esm/src/html/schemas/html.schema.d.ts +2 -0
  56. package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
  57. package/esm/src/html/schemas/html.schema.js +2 -0
  58. package/esm/src/html/styles-builder/css-pregeneration.d.ts +17 -1
  59. package/esm/src/html/styles-builder/css-pregeneration.d.ts.map +1 -1
  60. package/esm/src/html/styles-builder/css-pregeneration.js +103 -1
  61. package/esm/src/html/styles-builder/dev-styles.js +2 -2
  62. package/esm/src/html/utils.d.ts +2 -0
  63. package/esm/src/html/utils.d.ts.map +1 -1
  64. package/esm/src/html/utils.js +49 -28
  65. package/esm/src/integrations/remote-tools.d.ts.map +1 -1
  66. package/esm/src/integrations/remote-tools.js +32 -39
  67. package/esm/src/internal-agents/ag-ui-sse.d.ts +0 -1
  68. package/esm/src/internal-agents/ag-ui-sse.d.ts.map +1 -1
  69. package/esm/src/internal-agents/ag-ui-sse.js +2 -16
  70. package/esm/src/internal-agents/control-plane-auth.d.ts.map +1 -1
  71. package/esm/src/internal-agents/control-plane-auth.js +5 -3
  72. package/esm/src/internal-agents/request-body.d.ts.map +1 -1
  73. package/esm/src/internal-agents/request-body.js +6 -3
  74. package/esm/src/internal-agents/session-manager.d.ts +1 -0
  75. package/esm/src/internal-agents/session-manager.d.ts.map +1 -1
  76. package/esm/src/internal-agents/session-manager.js +12 -18
  77. package/esm/src/issues/core.d.ts.map +1 -1
  78. package/esm/src/issues/core.js +24 -23
  79. package/esm/src/issues/schemas/issue.schema.d.ts.map +1 -1
  80. package/esm/src/issues/schemas/issue.schema.js +2 -1
  81. package/esm/src/jobs/runtime-env.d.ts.map +1 -1
  82. package/esm/src/jobs/runtime-env.js +21 -44
  83. package/esm/src/markdown/index.d.ts +1 -2
  84. package/esm/src/markdown/index.d.ts.map +1 -1
  85. package/esm/src/markdown/index.js +1 -6
  86. package/esm/src/mcp/server.d.ts +0 -1
  87. package/esm/src/mcp/server.d.ts.map +1 -1
  88. package/esm/src/mcp/server.js +40 -41
  89. package/esm/src/mdx/index.d.ts +3 -2
  90. package/esm/src/mdx/index.d.ts.map +1 -1
  91. package/esm/src/mdx/index.js +3 -5
  92. package/esm/src/middleware/builtin/logger.d.ts.map +1 -1
  93. package/esm/src/middleware/builtin/logger.js +31 -28
  94. package/esm/src/middleware/builtin/security/rate-limit.d.ts.map +1 -1
  95. package/esm/src/middleware/builtin/security/rate-limit.js +17 -12
  96. package/esm/src/middleware/builtin/timeout.d.ts.map +1 -1
  97. package/esm/src/middleware/builtin/timeout.js +17 -10
  98. package/esm/src/modules/import-map/default-import-map.d.ts.map +1 -1
  99. package/esm/src/modules/import-map/default-import-map.js +4 -3
  100. package/esm/src/oauth/handlers/callback-handler.d.ts +0 -5
  101. package/esm/src/oauth/handlers/callback-handler.d.ts.map +1 -1
  102. package/esm/src/oauth/handlers/callback-handler.js +9 -14
  103. package/esm/src/oauth/handlers/index.d.ts +1 -1
  104. package/esm/src/oauth/handlers/index.js +1 -1
  105. package/esm/src/oauth/handlers/init-handler.d.ts.map +1 -1
  106. package/esm/src/oauth/handlers/init-handler.js +32 -20
  107. package/esm/src/oauth/providers/index.d.ts +1 -1
  108. package/esm/src/oauth/providers/index.js +1 -1
  109. package/esm/src/oauth/schemas/index.d.ts +1 -1
  110. package/esm/src/oauth/schemas/index.js +1 -1
  111. package/esm/src/oauth/token-store/index.d.ts +1 -1
  112. package/esm/src/oauth/token-store/index.js +1 -1
  113. package/esm/src/oauth/token-store/memory.d.ts +1 -1
  114. package/esm/src/oauth/token-store/memory.d.ts.map +1 -1
  115. package/esm/src/oauth/token-store/memory.js +8 -8
  116. package/esm/src/observability/request-profiler.d.ts +31 -0
  117. package/esm/src/observability/request-profiler.d.ts.map +1 -0
  118. package/esm/src/observability/request-profiler.js +94 -0
  119. package/esm/src/observability/tracing/otlp-setup.d.ts.map +1 -1
  120. package/esm/src/observability/tracing/otlp-setup.js +16 -21
  121. package/esm/src/prompt/factory.d.ts.map +1 -1
  122. package/esm/src/prompt/factory.js +10 -12
  123. package/esm/src/prompt/registry.d.ts.map +1 -1
  124. package/esm/src/prompt/registry.js +12 -10
  125. package/esm/src/prompt/schemas/prompt.schema.d.ts.map +1 -1
  126. package/esm/src/prompt/schemas/prompt.schema.js +0 -2
  127. package/esm/src/prompt/types.d.ts +1 -1
  128. package/esm/src/prompt/types.d.ts.map +1 -1
  129. package/esm/src/provider/local/ai-sdk-adapter.d.ts.map +1 -1
  130. package/esm/src/provider/local/ai-sdk-adapter.js +3 -8
  131. package/esm/src/provider/local/env.d.ts +4 -6
  132. package/esm/src/provider/local/env.d.ts.map +1 -1
  133. package/esm/src/provider/local/env.js +14 -1
  134. package/esm/src/provider/local/local-engine.d.ts.map +1 -1
  135. package/esm/src/provider/local/local-engine.js +2 -7
  136. package/esm/src/provider/model-registry.d.ts.map +1 -1
  137. package/esm/src/provider/model-registry.js +2 -7
  138. package/esm/src/provider/veryfront-cloud/provider.d.ts.map +1 -1
  139. package/esm/src/provider/veryfront-cloud/provider.js +1 -7
  140. package/esm/src/provider/veryfront-cloud/shared.d.ts.map +1 -1
  141. package/esm/src/provider/veryfront-cloud/shared.js +9 -11
  142. package/esm/src/proxy/handler.d.ts.map +1 -1
  143. package/esm/src/proxy/handler.js +56 -57
  144. package/esm/src/react/compat/hooks-adapter.d.ts +1 -7
  145. package/esm/src/react/compat/hooks-adapter.d.ts.map +1 -1
  146. package/esm/src/react/compat/hooks-adapter.js +35 -40
  147. package/esm/src/react/components/Head.d.ts +1 -26
  148. package/esm/src/react/components/Head.d.ts.map +1 -1
  149. package/esm/src/react/components/Head.js +1 -172
  150. package/esm/src/react/context/index.d.ts +2 -46
  151. package/esm/src/react/context/index.d.ts.map +1 -1
  152. package/esm/src/react/context/index.js +1 -44
  153. package/esm/src/react/head-collector.d.ts +1 -10
  154. package/esm/src/react/head-collector.d.ts.map +1 -1
  155. package/esm/src/react/head-collector.js +4 -0
  156. package/esm/src/react/router/index.d.ts +2 -45
  157. package/esm/src/react/router/index.d.ts.map +1 -1
  158. package/esm/src/react/router/index.js +1 -49
  159. package/esm/src/react/runtime/core.d.ts +49 -0
  160. package/esm/src/react/runtime/core.d.ts.map +1 -0
  161. package/esm/src/react/runtime/core.js +200 -0
  162. package/esm/src/rendering/orchestrator/html.d.ts +2 -0
  163. package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
  164. package/esm/src/rendering/orchestrator/html.js +69 -12
  165. package/esm/src/rendering/orchestrator/ssr-orchestrator.d.ts.map +1 -1
  166. package/esm/src/rendering/orchestrator/ssr-orchestrator.js +4 -0
  167. package/esm/src/rendering/orchestrator/types.d.ts +4 -0
  168. package/esm/src/rendering/orchestrator/types.d.ts.map +1 -1
  169. package/esm/src/repositories/types.d.ts.map +1 -1
  170. package/esm/src/resource/factory.d.ts.map +1 -1
  171. package/esm/src/resource/factory.js +12 -9
  172. package/esm/src/resource/registry.d.ts +3 -3
  173. package/esm/src/resource/registry.d.ts.map +1 -1
  174. package/esm/src/resource/registry.js +7 -7
  175. package/esm/src/schemas/common.d.ts.map +1 -1
  176. package/esm/src/schemas/common.js +7 -4
  177. package/esm/src/security/http/config.d.ts +0 -1
  178. package/esm/src/security/http/config.d.ts.map +1 -1
  179. package/esm/src/security/http/config.js +3 -16
  180. package/esm/src/security/http/response/security-handler.d.ts +1 -0
  181. package/esm/src/security/http/response/security-handler.d.ts.map +1 -1
  182. package/esm/src/security/http/response/security-handler.js +17 -12
  183. package/esm/src/security/index.d.ts +4 -2
  184. package/esm/src/security/index.d.ts.map +1 -1
  185. package/esm/src/security/index.js +3 -1
  186. package/esm/src/server/handlers/dev/styles-css.handler.d.ts.map +1 -1
  187. package/esm/src/server/handlers/dev/styles-css.handler.js +8 -7
  188. package/esm/src/server/handlers/monitoring/metrics.handler.d.ts.map +1 -1
  189. package/esm/src/server/handlers/monitoring/metrics.handler.js +3 -1
  190. package/esm/src/server/handlers/request/module/module-server-handler.d.ts.map +1 -1
  191. package/esm/src/server/handlers/request/module/module-server-handler.js +18 -15
  192. package/esm/src/server/handlers/request/prod-hydration-module.handler.d.ts +8 -0
  193. package/esm/src/server/handlers/request/prod-hydration-module.handler.d.ts.map +1 -0
  194. package/esm/src/server/handlers/request/prod-hydration-module.handler.js +41 -0
  195. package/esm/src/server/handlers/request/ssr/ssr.handler.d.ts.map +1 -1
  196. package/esm/src/server/handlers/request/ssr/ssr.handler.js +3 -0
  197. package/esm/src/server/production-server.d.ts.map +1 -1
  198. package/esm/src/server/production-server.js +65 -0
  199. package/esm/src/server/runtime-handler/handler-context-builder.d.ts +1 -1
  200. package/esm/src/server/runtime-handler/handler-context-builder.d.ts.map +1 -1
  201. package/esm/src/server/runtime-handler/index.d.ts +1 -1
  202. package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
  203. package/esm/src/server/runtime-handler/index.js +36 -11
  204. package/esm/src/server/runtime-handler/request-utils.d.ts +7 -0
  205. package/esm/src/server/runtime-handler/request-utils.d.ts.map +1 -1
  206. package/esm/src/server/runtime-handler/request-utils.js +10 -0
  207. package/esm/src/server/services/rendering/ssr.service.d.ts +1 -0
  208. package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
  209. package/esm/src/server/services/rendering/ssr.service.js +12 -5
  210. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
  211. package/esm/src/skill/allowed-tools.d.ts +3 -8
  212. package/esm/src/skill/allowed-tools.d.ts.map +1 -1
  213. package/esm/src/skill/executor.js +2 -2
  214. package/esm/src/skill/parser.d.ts.map +1 -1
  215. package/esm/src/skill/parser.js +12 -12
  216. package/esm/src/skill/path-safety.js +1 -1
  217. package/esm/src/skill/tools.d.ts.map +1 -1
  218. package/esm/src/skill/tools.js +18 -11
  219. package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
  220. package/esm/src/studio/bridge/bridge-bundle.generated.js +1 -1
  221. package/esm/src/task/discovery.d.ts.map +1 -1
  222. package/esm/src/task/discovery.js +73 -95
  223. package/esm/src/tool/executor.d.ts.map +1 -1
  224. package/esm/src/tool/executor.js +8 -7
  225. package/esm/src/tool/factory.d.ts.map +1 -1
  226. package/esm/src/tool/factory.js +13 -16
  227. package/esm/src/transforms/esm/package-registry.d.ts +4 -0
  228. package/esm/src/transforms/esm/package-registry.d.ts.map +1 -1
  229. package/esm/src/transforms/esm/package-registry.js +34 -17
  230. package/esm/src/transforms/import-rewriter/strategies/veryfront-strategy.d.ts.map +1 -1
  231. package/esm/src/transforms/import-rewriter/strategies/veryfront-strategy.js +2 -1
  232. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts.map +1 -1
  233. package/esm/src/transforms/mdx/esm-module-loader/cache-format.js +26 -1
  234. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts +1 -1
  235. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
  236. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +1 -1
  237. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.d.ts +1 -0
  238. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.d.ts.map +1 -1
  239. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.js +3 -0
  240. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.d.ts +1 -1
  241. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.js +1 -1
  242. package/esm/src/transforms/veryfront-module-urls.d.ts.map +1 -1
  243. package/esm/src/transforms/veryfront-module-urls.js +7 -3
  244. package/esm/src/types/entities/getEntityInfo.d.ts.map +1 -1
  245. package/esm/src/types/entities/getEntityInfo.js +79 -127
  246. package/esm/src/utils/path-utils.d.ts +1 -1
  247. package/esm/src/utils/path-utils.d.ts.map +1 -1
  248. package/esm/src/utils/path-utils.js +16 -7
  249. package/esm/src/utils/version-constant.d.ts +1 -1
  250. package/esm/src/utils/version-constant.js +1 -1
  251. package/esm/src/utils/version.d.ts.map +1 -1
  252. package/esm/src/utils/version.js +0 -1
  253. package/esm/src/workflow/worker/dynamic-job-entrypoint.d.ts.map +1 -1
  254. package/esm/src/workflow/worker/dynamic-job-entrypoint.js +5 -72
  255. package/esm/src/workflow/worker/job-entrypoint.d.ts.map +1 -1
  256. package/esm/src/workflow/worker/job-entrypoint.js +5 -72
  257. package/esm/src/workflow/worker/shared.d.ts +18 -0
  258. package/esm/src/workflow/worker/shared.d.ts.map +1 -0
  259. package/esm/src/workflow/worker/shared.js +77 -0
  260. package/package.json +1 -1
  261. package/src/cli/router.ts +41 -2
  262. package/src/cli/shared/update-check.ts +110 -0
  263. package/src/deno.js +13 -8
  264. package/src/src/channels/control-plane.ts +6 -10
  265. package/src/src/channels/invoke.ts +7 -7
  266. package/src/src/chat/index.ts +96 -132
  267. package/src/src/config/env.ts +24 -11
  268. package/src/src/data/static-data-fetcher.ts +59 -34
  269. package/src/src/data/static-paths-fetcher.ts +4 -2
  270. package/src/src/errors/logging.ts +21 -7
  271. package/src/src/errors/user-friendly/error-formatter.ts +14 -29
  272. package/src/src/fs/index.ts +21 -30
  273. package/src/src/html/dev-scripts.ts +5 -9
  274. package/src/src/html/html-escape.ts +4 -0
  275. package/src/src/html/html-injection.ts +2 -2
  276. package/src/src/html/html-shell-generator.ts +60 -26
  277. package/src/src/html/hydration-script-builder/dev-client-renderer.ts +2 -2
  278. package/src/src/html/hydration-script-builder/dev-component-manifest.ts +2 -2
  279. package/src/src/html/hydration-script-builder/dev-error-logger.ts +2 -8
  280. package/src/src/html/hydration-script-builder/dev-scripts.ts +2 -2
  281. package/src/src/html/hydration-script-builder/hydration-data-generator.ts +2 -1
  282. package/src/src/html/hydration-script-builder/index.ts +5 -1
  283. package/src/src/html/hydration-script-builder/prod-hydration.ts +2 -2
  284. package/src/src/html/hydration-script-builder/prod-scripts.ts +16 -15
  285. package/src/src/html/schemas/html.schema.ts +2 -0
  286. package/src/src/html/styles-builder/css-pregeneration.ts +133 -1
  287. package/src/src/html/styles-builder/dev-styles.ts +2 -2
  288. package/src/src/html/utils.ts +62 -29
  289. package/src/src/integrations/remote-tools.ts +39 -37
  290. package/src/src/internal-agents/ag-ui-sse.ts +2 -17
  291. package/src/src/internal-agents/control-plane-auth.ts +8 -6
  292. package/src/src/internal-agents/request-body.ts +7 -5
  293. package/src/src/internal-agents/session-manager.ts +16 -20
  294. package/src/src/issues/core.ts +24 -27
  295. package/src/src/issues/schemas/issue.schema.ts +3 -1
  296. package/src/src/jobs/runtime-env.ts +24 -50
  297. package/src/src/markdown/index.ts +5 -8
  298. package/src/src/mcp/server.ts +50 -53
  299. package/src/src/mdx/index.ts +7 -8
  300. package/src/src/middleware/builtin/logger.ts +44 -29
  301. package/src/src/middleware/builtin/security/rate-limit.ts +20 -11
  302. package/src/src/middleware/builtin/timeout.ts +22 -13
  303. package/src/src/modules/import-map/default-import-map.ts +4 -3
  304. package/src/src/oauth/handlers/callback-handler.ts +9 -16
  305. package/src/src/oauth/handlers/index.ts +1 -1
  306. package/src/src/oauth/handlers/init-handler.ts +56 -27
  307. package/src/src/oauth/providers/index.ts +1 -1
  308. package/src/src/oauth/schemas/index.ts +1 -1
  309. package/src/src/oauth/token-store/index.ts +1 -1
  310. package/src/src/oauth/token-store/memory.ts +8 -8
  311. package/src/src/observability/request-profiler.ts +140 -0
  312. package/src/src/observability/tracing/otlp-setup.ts +16 -22
  313. package/src/src/prompt/factory.ts +16 -14
  314. package/src/src/prompt/registry.ts +14 -13
  315. package/src/src/prompt/schemas/prompt.schema.ts +0 -4
  316. package/src/src/prompt/types.ts +1 -2
  317. package/src/src/provider/local/ai-sdk-adapter.ts +3 -10
  318. package/src/src/provider/local/env.ts +22 -2
  319. package/src/src/provider/local/local-engine.ts +2 -9
  320. package/src/src/provider/model-registry.ts +2 -9
  321. package/src/src/provider/veryfront-cloud/provider.ts +1 -8
  322. package/src/src/provider/veryfront-cloud/shared.ts +12 -15
  323. package/src/src/proxy/handler.ts +90 -74
  324. package/src/src/react/compat/hooks-adapter.ts +43 -44
  325. package/src/src/react/components/Head.tsx +1 -181
  326. package/src/src/react/context/index.tsx +2 -83
  327. package/src/src/react/head-collector.ts +9 -0
  328. package/src/src/react/router/index.tsx +2 -100
  329. package/src/src/react/runtime/core.ts +303 -0
  330. package/src/src/rendering/orchestrator/html.ts +122 -18
  331. package/src/src/rendering/orchestrator/ssr-orchestrator.ts +8 -0
  332. package/src/src/rendering/orchestrator/types.ts +4 -0
  333. package/src/src/repositories/types.ts +0 -4
  334. package/src/src/resource/factory.ts +15 -11
  335. package/src/src/resource/registry.ts +7 -7
  336. package/src/src/schemas/common.ts +8 -5
  337. package/src/src/security/http/config.ts +3 -19
  338. package/src/src/security/http/response/security-handler.ts +22 -13
  339. package/src/src/security/index.ts +4 -7
  340. package/src/src/server/handlers/dev/styles-css.handler.ts +32 -14
  341. package/src/src/server/handlers/monitoring/metrics.handler.ts +3 -1
  342. package/src/src/server/handlers/request/module/module-server-handler.ts +24 -17
  343. package/src/src/server/handlers/request/prod-hydration-module.handler.ts +61 -0
  344. package/src/src/server/handlers/request/ssr/ssr.handler.ts +3 -0
  345. package/src/src/server/production-server.ts +84 -0
  346. package/src/src/server/runtime-handler/handler-context-builder.ts +1 -1
  347. package/src/src/server/runtime-handler/index.ts +44 -13
  348. package/src/src/server/runtime-handler/request-utils.ts +11 -0
  349. package/src/src/server/services/rendering/ssr.service.ts +31 -18
  350. package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +1 -1
  351. package/src/src/skill/allowed-tools.ts +1 -8
  352. package/src/src/skill/executor.ts +2 -2
  353. package/src/src/skill/parser.ts +13 -20
  354. package/src/src/skill/path-safety.ts +1 -1
  355. package/src/src/skill/tools.ts +27 -20
  356. package/src/src/studio/bridge/bridge-bundle.generated.ts +1 -1
  357. package/src/src/task/discovery.ts +97 -97
  358. package/src/src/tool/executor.ts +10 -8
  359. package/src/src/tool/factory.ts +21 -22
  360. package/src/src/tool/types.ts +0 -17
  361. package/src/src/transforms/esm/package-registry.ts +52 -20
  362. package/src/src/transforms/import-rewriter/strategies/veryfront-strategy.ts +2 -1
  363. package/src/src/transforms/mdx/esm-module-loader/cache-format.ts +34 -1
  364. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts +1 -1
  365. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.ts +4 -0
  366. package/src/src/transforms/pipeline/stages/ssr-vf-modules/index.ts +1 -1
  367. package/src/src/transforms/veryfront-module-urls.ts +6 -2
  368. package/src/src/types/entities/getEntityInfo.ts +131 -152
  369. package/src/src/utils/path-utils.ts +16 -7
  370. package/src/src/utils/version-constant.ts +1 -1
  371. package/src/src/utils/version.ts +0 -1
  372. package/src/src/workflow/worker/dynamic-job-entrypoint.ts +18 -84
  373. package/src/src/workflow/worker/job-entrypoint.ts +18 -85
  374. package/src/src/workflow/worker/shared.ts +127 -0
  375. package/esm/src/prompt/schemas/index.d.ts +0 -7
  376. package/esm/src/prompt/schemas/index.d.ts.map +0 -1
  377. package/esm/src/prompt/schemas/index.js +0 -6
  378. package/esm/src/security/http/handlers-index.d.ts +0 -5
  379. package/esm/src/security/http/handlers-index.d.ts.map +0 -1
  380. package/esm/src/security/http/handlers-index.js +0 -3
  381. package/src/src/prompt/schemas/index.ts +0 -7
  382. package/src/src/security/http/handlers-index.ts +0 -4
@@ -1,10 +1,8 @@
1
1
  /**
2
- * Cross-platform environment helpers for local AI provider.
3
- *
4
- * Abstracts Deno/Node env access so all local-AI checks go through
5
- * a single function — no duplicated `globalThis.Deno?.env` patterns.
6
- *
7
- * @module provider/local
2
+ * Check whether local AI is explicitly disabled via environment variable.
3
+ * Works in Deno, Node, and compiled binaries.
8
4
  */
9
5
  export declare function isLocalAIDisabled(): boolean;
6
+ export declare function createLocalAIDisabledError(): Error;
7
+ export declare function throwIfLocalAIDisabled(): void;
10
8
  //# sourceMappingURL=env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/env.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,wBAAgB,iBAAiB,IAAI,OAAO,CAe3C"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/env.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAe3C;AAED,wBAAgB,0BAA0B,IAAI,KAAK,CAOlD;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C"}
@@ -6,11 +6,13 @@
6
6
  *
7
7
  * @module provider/local
8
8
  */
9
+ import * as dntShim from "../../../_dnt.shims.js";
10
+ import { createError, toError } from "../../errors/veryfront-error.js";
11
+ const LOCAL_AI_DISABLED_MESSAGE = "Local AI disabled via VERYFRONT_DISABLE_LOCAL_AI environment variable.";
9
12
  /**
10
13
  * Check whether local AI is explicitly disabled via environment variable.
11
14
  * Works in Deno, Node, and compiled binaries.
12
15
  */
13
- import * as dntShim from "../../../_dnt.shims.js";
14
16
  export function isLocalAIDisabled() {
15
17
  const denoVal = dntShim.dntGlobalThis.Deno;
16
18
  const denoEnvVal = denoVal?.env?.get?.("VERYFRONT_DISABLE_LOCAL_AI");
@@ -22,3 +24,14 @@ export function isLocalAIDisabled() {
22
24
  }
23
25
  return false;
24
26
  }
27
+ export function createLocalAIDisabledError() {
28
+ return toError(createError({
29
+ type: "no_ai_available",
30
+ message: LOCAL_AI_DISABLED_MESSAGE,
31
+ }));
32
+ }
33
+ export function throwIfLocalAIDisabled() {
34
+ if (isLocalAIDisabled()) {
35
+ throw createLocalAIDisabledError();
36
+ }
37
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"local-engine.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/local-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,eAAe,CAAC;IACrB,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KACvC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,YAAY,EAAE,KACZ,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C,KACE,OAAO,CAAC;CACd;AAyBD;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAqCnE;AAuED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;AAED;;;;GAIG;AACH,wBAAuB,cAAc,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAkEzC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGtD"}
1
+ {"version":3,"file":"local-engine.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/local-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,eAAe,CAAC;IACrB,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KACvC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,YAAY,EAAE,KACZ,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C,KACE,OAAO,CAAC;CACd;AAyBD;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA8BnE;AAuED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;AAED;;;;GAIG;AACH,wBAAuB,cAAc,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAkEzC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGtD"}
@@ -14,7 +14,7 @@ import { serverLogger } from "../../utils/index.js";
14
14
  import { createError, toError } from "../../errors/veryfront-error.js";
15
15
  import { importTransformers } from "../../platform/compat/opaque-deps.js";
16
16
  import { DEFAULT_LOCAL_MODEL, resolveLocalModel } from "./model-catalog.js";
17
- import { isLocalAIDisabled } from "./env.js";
17
+ import { throwIfLocalAIDisabled } from "./env.js";
18
18
  const logger = serverLogger.component("local-llm");
19
19
  /** Default maximum new tokens for local model generation */
20
20
  const DEFAULT_MAX_NEW_TOKENS = 512;
@@ -30,12 +30,7 @@ let transformersModule = null;
30
30
  export async function getTransformers() {
31
31
  if (transformersModule)
32
32
  return transformersModule;
33
- if (isLocalAIDisabled()) {
34
- throw toError(createError({
35
- type: "no_ai_available",
36
- message: "Local AI disabled via VERYFRONT_DISABLE_LOCAL_AI environment variable.",
37
- }));
38
- }
33
+ throwIfLocalAIDisabled();
39
34
  logger.info("Loading @huggingface/transformers...");
40
35
  let mod;
41
36
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/src/provider/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAwBxC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC;AAOtE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAoID;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CASvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAoE/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAGtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
1
+ {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/src/provider/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAwBxC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC;AAOtE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAoID;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CASvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CA6D/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAGtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
@@ -21,7 +21,7 @@ import { ProjectScopedRegistryManager } from "../ai/registry-manager.js";
21
21
  import { serverLogger } from "../utils/index.js";
22
22
  import { DEFAULT_LOCAL_MODEL } from "./local/model-catalog.js";
23
23
  import { createLocalModel } from "./local/ai-sdk-adapter.js";
24
- import { isLocalAIDisabled } from "./local/env.js";
24
+ import { throwIfLocalAIDisabled } from "./local/env.js";
25
25
  import { verifyLocalRuntime } from "./local/local-engine.js";
26
26
  import { getDefaultVeryfrontCloudModel, isVeryfrontCloudEnabled, } from "../platform/cloud/resolver.js";
27
27
  import { createVeryfrontCloudModel } from "./veryfront-cloud/provider.js";
@@ -214,12 +214,7 @@ export function resolveModel(modelString) {
214
214
  providerName !== "local" &&
215
215
  manager.has("local")) {
216
216
  // Check if local AI is explicitly disabled (e.g., for testing)
217
- if (isLocalAIDisabled()) {
218
- throw toError(createError({
219
- type: "no_ai_available",
220
- message: "Local AI disabled via VERYFRONT_DISABLE_LOCAL_AI environment variable.",
221
- }));
222
- }
217
+ throwIfLocalAIDisabled();
223
218
  localLogger.info(`⚡ "${providerName}" unavailable (missing credentials or configuration). ` +
224
219
  "Falling back to local model.");
225
220
  const localFactory = manager.get("local");
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAYxC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAiDxE"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAYxC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA0CxE"}
@@ -16,13 +16,6 @@ export function createVeryfrontCloudModel(modelId) {
16
16
  name: "veryfront-cloud",
17
17
  fetch,
18
18
  })(upstreamModelId);
19
- case "openai":
20
- return createOpenAI({
21
- apiKey: apiToken,
22
- baseURL,
23
- name: "veryfront-cloud",
24
- fetch,
25
- })(upstreamModelId);
26
19
  case "google":
27
20
  return createGoogleGenerativeAI({
28
21
  apiKey: apiToken,
@@ -30,6 +23,7 @@ export function createVeryfrontCloudModel(modelId) {
30
23
  name: "veryfront-cloud",
31
24
  fetch,
32
25
  })(upstreamModelId);
26
+ case "openai":
33
27
  case "moonshotai":
34
28
  return createOpenAI({
35
29
  apiKey: apiToken,
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAIlD,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,CAAC;AAEjB,UAAU,2BAA2B;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAqBD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,2BAA2B,CA2C7B;AAED,wBAAgB,8BAA8B,IAAI;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAmBA;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,OAAO,CAAC,KAAK,CAYhF"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAIlD,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,CAAC;AAEjB,UAAU,2BAA2B;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AA+BD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,2BAA2B,CA+B7B;AAED,wBAAgB,8BAA8B,IAAI;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAmBA;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,OAAO,CAAC,KAAK,CAWhF"}
@@ -17,24 +17,23 @@ const GATEWAY_PATHS = {
17
17
  function joinUrl(base, path) {
18
18
  return `${base.replace(/\/+$/, "")}/${path.replace(/^\/+/, "")}`;
19
19
  }
20
+ function createInvalidModelIdError(modelId) {
21
+ return toError(createError({
22
+ type: "config",
23
+ message: `Invalid veryfront-cloud model string: "${modelId}". Expected ` +
24
+ `"veryfront-cloud/provider/model".`,
25
+ }));
26
+ }
20
27
  export function parseVeryfrontCloudModelId(modelId, kind) {
21
28
  const slashIndex = modelId.indexOf("/");
22
29
  if (slashIndex === -1) {
23
- throw toError(createError({
24
- type: "config",
25
- message: `Invalid veryfront-cloud model string: "${modelId}". Expected ` +
26
- `"veryfront-cloud/provider/model".`,
27
- }));
30
+ throw createInvalidModelIdError(modelId);
28
31
  }
29
32
  const rawProvider = modelId.slice(0, slashIndex);
30
33
  const normalizedProvider = PROVIDER_ALIASES[rawProvider];
31
34
  const upstreamModelId = modelId.slice(slashIndex + 1);
32
35
  if (!normalizedProvider || !upstreamModelId) {
33
- throw toError(createError({
34
- type: "config",
35
- message: `Invalid veryfront-cloud model string: "${modelId}". Expected ` +
36
- `"veryfront-cloud/provider/model".`,
37
- }));
36
+ throw createInvalidModelIdError(modelId);
38
37
  }
39
38
  if (kind === "embedding" && normalizedProvider !== "openai" &&
40
39
  normalizedProvider !== "google") {
@@ -82,7 +81,6 @@ export function createVeryfrontCloudFetch(apiToken) {
82
81
  const headers = new dntShim.Headers(request.headers);
83
82
  headers.delete("x-api-key");
84
83
  headers.delete("x-goog-api-key");
85
- headers.delete("Authorization");
86
84
  headers.set("Authorization", `Bearer ${apiToken}`);
87
85
  return dntShim.fetch(new dntShim.Request(request, { headers }));
88
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,eAAO,MAAM,sBAAsB,0MAYzB,CAAC;AAmIX,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAwFD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB;0BAsM1B,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,YAAY,CAAC;0BA2QvC,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;0BAtZrD,MAAM,EAAE;;EAocpC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAwB7F"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,eAAO,MAAM,sBAAsB,0MAYzB,CAAC;AAmIX,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAwFD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB;0BA2Q1B,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,YAAY,CAAC;0BAwOvC,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;0BAxbrD,MAAM,EAAE;;EAodpC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAwB7F"}
@@ -117,7 +117,7 @@ function extractUserToken(cookieHeader) {
117
117
  const match = cookieHeader.match(/(?:^|;\s*)authToken=([^;]+)/);
118
118
  return match?.[1] ? decodeURIComponent(match[1]) : undefined;
119
119
  }
120
- function getStatusFromError(error) {
120
+ function parseStatusFromError(error) {
121
121
  const message = error instanceof Error ? error.message : String(error);
122
122
  const match = message.match(/failed: (\d+)/);
123
123
  return match ? Number(match[1]) : null;
@@ -262,6 +262,47 @@ export function createProxyHandler(options) {
262
262
  }
263
263
  return `https://veryfront.com/sign-in?from=${encodeURIComponent(returnPath)}`;
264
264
  }
265
+ function makePreviewProjectNotFoundContext(base, token) {
266
+ return makeErrorContext(base, 404, "Preview project not found", token, undefined, "project-not-found");
267
+ }
268
+ async function resolveRequestToken(req, scope, host, projectSlug, options) {
269
+ const userToken = extractUserToken(req.headers.get("cookie") ?? "");
270
+ const useSignedInternalControlPlaneToken = options.allowSignedInternalControlPlaneToken &&
271
+ isSignedInternalControlPlaneRequest(req);
272
+ let token;
273
+ let tokenFetchError;
274
+ if (useSignedInternalControlPlaneToken) {
275
+ token = req.headers.get("x-token") ?? undefined;
276
+ logger?.debug("Using signed control-plane token for internal request", {
277
+ pathname: new URL(req.url).pathname,
278
+ scope,
279
+ });
280
+ }
281
+ else if (scope === "preview" && userToken) {
282
+ token = userToken;
283
+ logger?.debug("Using user auth token for preview");
284
+ }
285
+ if (!token && config.apiClientId && config.apiClientSecret) {
286
+ const customDomain = projectSlug ? undefined : host;
287
+ if (projectSlug || customDomain) {
288
+ try {
289
+ token = await tokenManager.getToken(scope, projectSlug, customDomain);
290
+ }
291
+ catch (error) {
292
+ tokenFetchError = error;
293
+ logger?.error(options.tokenFetchErrorMessage, error, {
294
+ projectSlug,
295
+ customDomain,
296
+ });
297
+ }
298
+ }
299
+ }
300
+ if (!token && config.apiToken) {
301
+ token = config.apiToken;
302
+ logger?.debug("Using static API token fallback");
303
+ }
304
+ return { token, userToken, tokenFetchError };
305
+ }
265
306
  async function checkProtectedAccess(req, matchingEnv, userToken, users, logContext) {
266
307
  if (!matchingEnv?.protected)
267
308
  return null;
@@ -321,12 +362,13 @@ export function createProxyHandler(options) {
321
362
  const host = rawHost.replace(/:\d+$/, "");
322
363
  const parsedDomain = parseProjectDomain(host);
323
364
  const scope = getScope(parsedDomain.environment);
365
+ const base = { scope, host, parsedDomain };
324
366
  let projectSlug = parsedDomain.slug ?? undefined;
325
367
  let projectId;
326
368
  let releaseId;
327
369
  let environmentId;
328
370
  const isCustomDomain = !projectSlug && !parsedDomain.isVeryfrontDomain;
329
- if (!projectSlug && parsedDomain.isVeryfrontDomain && !isCustomDomain) {
371
+ if (!projectSlug && parsedDomain.isVeryfrontDomain) {
330
372
  return {
331
373
  token: undefined,
332
374
  projectSlug: undefined,
@@ -348,48 +390,22 @@ export function createProxyHandler(options) {
348
390
  isLocalProject,
349
391
  isCustomDomain,
350
392
  });
351
- const cookieHeader = req.headers.get("cookie") ?? "";
352
- const userToken = extractUserToken(cookieHeader);
353
- const signedInternalControlPlaneRequest = isSignedInternalControlPlaneRequest(req);
393
+ let userToken;
354
394
  let token;
355
395
  let tokenFetchError;
356
396
  if (isLocalProject) {
357
397
  logger?.debug("Local project, skipping token fetch", { localPath });
358
398
  }
359
399
  else {
360
- if (signedInternalControlPlaneRequest) {
361
- token = req.headers.get("x-token") ?? undefined;
362
- logger?.debug("Using signed control-plane token for internal request", {
363
- pathname: new URL(req.url).pathname,
364
- scope,
365
- });
366
- }
367
- else if (scope === "preview" && userToken) {
368
- token = userToken;
369
- logger?.debug("Using user auth token for preview");
370
- }
371
- if (!token && config.apiClientId && config.apiClientSecret) {
372
- const customDomain = projectSlug ? undefined : host;
373
- if (projectSlug || customDomain) {
374
- try {
375
- token = await tokenManager.getToken(scope, projectSlug, customDomain);
376
- }
377
- catch (error) {
378
- tokenFetchError = error;
379
- logger?.error("Token fetch failed", error, { projectSlug, customDomain });
380
- }
381
- }
382
- }
383
- if (!token && config.apiToken) {
384
- token = config.apiToken;
385
- logger?.debug("Using static API token fallback");
386
- }
387
- const base = { scope, host, parsedDomain };
400
+ ({ token, userToken, tokenFetchError } = await resolveRequestToken(req, scope, host, projectSlug, {
401
+ allowSignedInternalControlPlaneToken: true,
402
+ tokenFetchErrorMessage: "Token fetch failed",
403
+ }));
388
404
  if (projectSlug && scope === "preview" && !token) {
389
- const status = getStatusFromError(tokenFetchError);
405
+ const status = parseStatusFromError(tokenFetchError);
390
406
  if (status === 404) {
391
407
  logger?.info("Preview project not found", { projectSlug, host });
392
- return makeErrorContext(base, 404, "Preview project not found", undefined, undefined, "project-not-found");
408
+ return makePreviewProjectNotFoundContext(base);
393
409
  }
394
410
  logger?.warn("Preview request has no usable token", {
395
411
  projectSlug,
@@ -453,7 +469,7 @@ export function createProxyHandler(options) {
453
469
  }
454
470
  if (!resolved.projectId) {
455
471
  logger?.info("Preview project not found after lookup", { projectSlug, host });
456
- return makeErrorContext(base, 404, "Preview project not found", token, undefined, "project-not-found");
472
+ return makePreviewProjectNotFoundContext(base, token);
457
473
  }
458
474
  projectId = resolved.projectId;
459
475
  environmentId = resolved.environmentId;
@@ -496,27 +512,10 @@ export function createProxyHandler(options) {
496
512
  const parsedDomain = parseProjectDomain(host);
497
513
  const scope = getScope(parsedDomain.environment);
498
514
  const projectSlug = parsedDomain.slug ?? undefined;
499
- if (scope === "preview") {
500
- const cookieHeader = req.headers.get("cookie") ?? "";
501
- const userToken = extractUserToken(cookieHeader);
502
- if (userToken)
503
- return userToken;
504
- }
505
- if (config.apiClientId && config.apiClientSecret) {
506
- const customDomain = projectSlug ? undefined : host;
507
- if (projectSlug || customDomain) {
508
- try {
509
- return await tokenManager.getToken(scope, projectSlug, customDomain);
510
- }
511
- catch (error) {
512
- logger?.error("Token fetch failed for API", error, {
513
- projectSlug,
514
- customDomain,
515
- });
516
- }
517
- }
518
- }
519
- return config.apiToken;
515
+ const { token } = await resolveRequestToken(req, scope, host, projectSlug, {
516
+ tokenFetchErrorMessage: "Token fetch failed for API",
517
+ });
518
+ return token;
520
519
  }
521
520
  async function getStats() {
522
521
  return tokenManager.getStats();
@@ -36,11 +36,5 @@ export declare function useCompatHooks(): CompatHooks;
36
36
  export declare function CompatHooksProvider({ children, }: {
37
37
  children: React.ReactNode;
38
38
  }): React.ReactElement;
39
- export declare const compatHooks: {
40
- readonly useFormStatus: typeof useFormStatusCompat;
41
- readonly useOptimistic: typeof useOptimisticCompat;
42
- readonly useTransition: typeof useTransitionCompat;
43
- readonly useDeferredValue: typeof useDeferredValueCompat;
44
- readonly useId: typeof useIdCompat;
45
- };
39
+ export declare const compatHooks: CompatHooks;
46
40
  //# sourceMappingURL=hooks-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/react/compat/hooks-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC;AAMpF,wBAAgB,iCAAiC,CAC/C,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAC1C;IACD,OAAO,IAAI,IAAI,CAAC;IAChB,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC7C,CAoBA;AAED,wBAAgB,mBAAmB,IAAI,UAAU,CAWhD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,EAChE,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,KAAK,KAAK,GAC1E,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,CA6CnE;AAED,wBAAgB,mBAAmB,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC,aAAa,CAAC,CA6B5E;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAYrD;AAID,wBAAgB,WAAW,IAAI,MAAM,CAapC;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,CAOrB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,gBAAgB,EAAE,OAAO,sBAAsB,CAAC;IAChD,KAAK,EAAE,OAAO,WAAW,CAAC;CAC3B;AAgBD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,CAUrB;AAED,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC"}
1
+ {"version":3,"file":"hooks-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/react/compat/hooks-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC;AAmBpF,wBAAgB,iCAAiC,CAC/C,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAC1C;IACD,OAAO,IAAI,IAAI,CAAC;IAChB,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC7C,CAoBA;AAED,wBAAgB,mBAAmB,IAAI,UAAU,CAWhD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,EAChE,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,KAAK,KAAK,GAC1E,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,CA6CnE;AAED,wBAAgB,mBAAmB,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC,aAAa,CAAC,CA2B5E;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAUrD;AAID,wBAAgB,WAAW,IAAI,MAAM,CAWpC;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,CAOrB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,gBAAgB,EAAE,OAAO,sBAAsB,CAAC;IAChD,KAAK,EAAE,OAAO,WAAW,CAAC;CAC3B;AAkBD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,CAMrB;AAED,eAAO,MAAM,WAAW,aAAqB,CAAC"}
@@ -5,6 +5,16 @@ import { getReactVersionInfo, hasFeature } from "./version-detector/index.js";
5
5
  function hasReactHook(hookName) {
6
6
  return typeof React[hookName] === "function";
7
7
  }
8
+ function createDefaultFormStatus() {
9
+ return { pending: false, data: null, method: null, action: null };
10
+ }
11
+ function supportsConcurrentHooks() {
12
+ const { isReact18, isReact19 } = getReactVersionInfo();
13
+ return isReact18 || isReact19;
14
+ }
15
+ function warnHookFallback(hookName, fallbackDescription) {
16
+ logger.warn(`${hookName} not available, ${fallbackDescription}`);
17
+ }
8
18
  export function createTransitionFallbackScheduler(onPendingChange) {
9
19
  const timers = new Set();
10
20
  return {
@@ -26,14 +36,14 @@ export function createTransitionFallbackScheduler(onPendingChange) {
26
36
  }
27
37
  export function useFormStatusCompat() {
28
38
  if (!hasFeature("useFormStatus") || !hasReactHook("useFormStatus")) {
29
- return { pending: false, data: null, method: null, action: null };
39
+ return createDefaultFormStatus();
30
40
  }
31
41
  try {
32
42
  return React.useFormStatus();
33
43
  }
34
- catch (_) {
35
- logger.warn("useFormStatus not available in current React version");
36
- return { pending: false, data: null, method: null, action: null };
44
+ catch {
45
+ warnHookFallback("useFormStatus", "falling back to the default idle state");
46
+ return createDefaultFormStatus();
37
47
  }
38
48
  }
39
49
  export function useOptimisticCompat(state, updateFn) {
@@ -41,8 +51,8 @@ export function useOptimisticCompat(state, updateFn) {
41
51
  try {
42
52
  return React.useOptimistic(state, updateFn);
43
53
  }
44
- catch (_) {
45
- logger.warn("useOptimistic not available in current React version");
54
+ catch {
55
+ warnHookFallback("useOptimistic", "falling back to React.useState");
46
56
  }
47
57
  }
48
58
  const [optimisticState, setOptimisticState] = React.useState(state);
@@ -66,13 +76,12 @@ export function useOptimisticCompat(state, updateFn) {
66
76
  return [optimisticState, updateOptimisticState];
67
77
  }
68
78
  export function useTransitionCompat() {
69
- const versionInfo = getReactVersionInfo();
70
- if (versionInfo.isReact18 || versionInfo.isReact19) {
79
+ if (supportsConcurrentHooks()) {
71
80
  try {
72
81
  return React.useTransition();
73
82
  }
74
- catch (_) {
75
- logger.warn("useTransition not available, falling back to mock");
83
+ catch {
84
+ warnHookFallback("useTransition", "falling back to the timeout scheduler");
76
85
  }
77
86
  }
78
87
  const [isPending, setIsPending] = React.useState(false);
@@ -87,26 +96,24 @@ export function useTransitionCompat() {
87
96
  return [isPending, startTransition];
88
97
  }
89
98
  export function useDeferredValueCompat(value) {
90
- const versionInfo = getReactVersionInfo();
91
- if (versionInfo.isReact18 || versionInfo.isReact19) {
99
+ if (supportsConcurrentHooks()) {
92
100
  try {
93
101
  return React.useDeferredValue(value);
94
102
  }
95
- catch (_) {
96
- logger.warn("useDeferredValue not available, returning value directly");
103
+ catch {
104
+ warnHookFallback("useDeferredValue", "returning the value directly");
97
105
  }
98
106
  }
99
107
  return value;
100
108
  }
101
109
  let idCounter = 0;
102
110
  export function useIdCompat() {
103
- const versionInfo = getReactVersionInfo();
104
- if (versionInfo.isReact18 || versionInfo.isReact19) {
111
+ if (supportsConcurrentHooks()) {
105
112
  try {
106
113
  return React.useId();
107
114
  }
108
- catch (_) {
109
- logger.warn("useId not available, using fallback");
115
+ catch {
116
+ warnHookFallback("useId", "using the incremental fallback id");
110
117
  }
111
118
  }
112
119
  const [id] = React.useState(() => `:r${idCounter++}:`);
@@ -119,15 +126,16 @@ export function SuspenseCompat({ children, fallback, }) {
119
126
  }
120
127
  return React.createElement(React.Suspense, { fallback }, children);
121
128
  }
129
+ const defaultCompatHooks = {
130
+ useFormStatus: useFormStatusCompat,
131
+ useOptimistic: useOptimisticCompat,
132
+ useTransition: useTransitionCompat,
133
+ useDeferredValue: useDeferredValueCompat,
134
+ useId: useIdCompat,
135
+ };
122
136
  let compatHooksContext = null;
123
137
  function getCompatHooksContext() {
124
- compatHooksContext ??= React.createContext({
125
- useFormStatus: useFormStatusCompat,
126
- useOptimistic: useOptimisticCompat,
127
- useTransition: useTransitionCompat,
128
- useDeferredValue: useDeferredValueCompat,
129
- useId: useIdCompat,
130
- });
138
+ compatHooksContext ??= React.createContext(defaultCompatHooks);
131
139
  return compatHooksContext;
132
140
  }
133
141
  /**
@@ -141,19 +149,6 @@ export function useCompatHooks() {
141
149
  return React.useContext(getCompatHooksContext());
142
150
  }
143
151
  export function CompatHooksProvider({ children, }) {
144
- const hooks = {
145
- useFormStatus: useFormStatusCompat,
146
- useOptimistic: useOptimisticCompat,
147
- useTransition: useTransitionCompat,
148
- useDeferredValue: useDeferredValueCompat,
149
- useId: useIdCompat,
150
- };
151
- return React.createElement(getCompatHooksContext().Provider, { value: hooks }, children);
152
+ return React.createElement(getCompatHooksContext().Provider, { value: defaultCompatHooks }, children);
152
153
  }
153
- export const compatHooks = {
154
- useFormStatus: useFormStatusCompat,
155
- useOptimistic: useOptimisticCompat,
156
- useTransition: useTransitionCompat,
157
- useDeferredValue: useDeferredValueCompat,
158
- useId: useIdCompat,
159
- };
154
+ export const compatHooks = defaultCompatHooks;
@@ -1,28 +1,3 @@
1
- /**
2
- * Declarative `<head>` metadata management.
3
- *
4
- * @module head
5
- *
6
- * @example
7
- * ```tsx
8
- * import { Head } from "veryfront/head";
9
- *
10
- * export default function Page() {
11
- * return (
12
- * <>
13
- * <Head>
14
- * <title>My Page</title>
15
- * <meta name="description" content="Page description" />
16
- * </Head>
17
- * <main>Content</main>
18
- * </>
19
- * );
20
- * }
21
- * ```
22
- */
23
1
  import "../../../_dnt.polyfills.js";
24
- import React from "react";
25
- export declare function Head({ children }: {
26
- children: React.ReactNode;
27
- }): React.ReactElement;
2
+ export { Head } from "../runtime/core.js";
28
3
  //# sourceMappingURL=Head.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Head.d.ts","sourceRoot":"","sources":["../../../../src/src/react/components/Head.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CAwJpF"}
1
+ {"version":3,"file":"Head.d.ts","sourceRoot":"","sources":["../../../../src/src/react/components/Head.tsx"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC"}