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,14 +1,15 @@
1
1
  import { resolveRelativePath } from "../modules/react-loader/path-resolver.js";
2
2
  import { withSpan } from "../observability/tracing/otlp-setup.js";
3
3
  import { SpanNames } from "../observability/tracing/span-names.js";
4
+ import { profilePhase } from "../observability/request-profiler.js";
4
5
  import { serverLogger } from "../utils/logger/logger.js";
5
6
  import { isMarkdownPreview as checkMarkdownPreview } from "../transforms/md/utils.js";
6
7
  import { generateModulePreloadHintsFromManifest, getRouteManifest, } from "../modules/manifest/route-module-manifest.js";
7
- import { escapeHTML } from "./html-escape.js";
8
- import { generateHydrationData, getDevScripts, getProdScripts, } from "./hydration-script-builder/index.js";
8
+ import { buildNonceAttribute, escapeHTML } from "./html-escape.js";
9
+ import { generateHydrationData, getDevScripts, getProdScripts, PROD_HYDRATION_MODULE_PATH, } from "./hydration-script-builder/index.js";
9
10
  import { getPreviewStylesheetLink, getStudioScripts } from "./dev-scripts.js";
10
11
  import { processMetadata } from "./metadata-builder.js";
11
- import { extractCandidates, getDevStyles, getProjectCSS } from "./styles-builder/index.js";
12
+ import { extractCandidates, getDevStyles as getErrorOverlayStyles, getProjectCSS, } from "./styles-builder/index.js";
12
13
  import { buildImportMapJson, buildRootAttributes, shouldDisableLayout } from "./utils.js";
13
14
  function pathToModuleUrl(path, studioEmbed) {
14
15
  if (!path)
@@ -27,6 +28,9 @@ function getRelativePagePath(fullPath, projectDir) {
27
28
  return normalized.replace(/^\//, "");
28
29
  return resolveRelativePath(normalized, projectDir);
29
30
  }
31
+ function resolveProjectCSSScope(options, metaSlug) {
32
+ return options.projectSlug || options.projectId || metaSlug || "default";
33
+ }
30
34
  function generateModulePreloadHints(options) {
31
35
  const hints = [];
32
36
  const addedUrls = new Set();
@@ -55,7 +59,7 @@ function generateModulePreloadHints(options) {
55
59
  if (studioEmbed || options.environment === "preview") {
56
60
  return hints.join("\n ");
57
61
  }
58
- const projectSlug = options.projectId;
62
+ const projectSlug = options.projectSlug ?? options.projectId;
59
63
  const route = options.pagePath
60
64
  ? getRelativePagePath(options.pagePath, projectDir)
61
65
  .replace(/\.(tsx|ts|jsx|mdx)$/, "")
@@ -73,15 +77,15 @@ function generateModulePreloadHints(options) {
73
77
  }
74
78
  return hints.join("\n ");
75
79
  }
76
- export function generateHTMLShellParts(meta, options, params, props, contentForTailwind) {
77
- return withSpan(SpanNames.HTML_GENERATE_SHELL_PARTS, () => generateHTMLShellPartsImpl(meta, options, params, props, contentForTailwind), {
80
+ export function generateHTMLShellParts(meta, options, params, props, contentForTailwind, projectCSSPromise) {
81
+ return withSpan(SpanNames.HTML_GENERATE_SHELL_PARTS, () => generateHTMLShellPartsImpl(meta, options, params, props, contentForTailwind, projectCSSPromise), {
78
82
  "html.slug": meta.slug || "",
79
83
  "html.has_content": !!contentForTailwind,
80
84
  "html.mode": options.mode || "production",
81
85
  "html.is_local_project": options.isLocalProject ?? false,
82
86
  });
83
87
  }
84
- async function generateHTMLShellPartsImpl(meta, options, params, props, contentForTailwind) {
88
+ async function generateHTMLShellPartsImpl(meta, options, params, props, contentForTailwind, prefetchedProjectCSSPromise) {
85
89
  const stylesheetContent = options.globalCSS;
86
90
  const isLocalProject = options.isLocalProject ?? false;
87
91
  const isPreviewMode = options.environment === "preview";
@@ -92,40 +96,41 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
92
96
  for (const cls of extractCandidates(contentForTailwind))
93
97
  candidates.add(cls);
94
98
  }
95
- const projectSlug = options.projectId || meta.slug || "default";
96
- let cssHash = "";
97
- // Only generate CSS for production mode (dev/preview uses link tag to StylesCSSHandler)
98
- if (useProductionCSS && projectSlug !== "default") {
99
- const projectCSS = await getProjectCSS(projectSlug, stylesheetContent, candidates, {
100
- minify: true,
101
- environment: options.environment,
102
- buildMode: options.mode,
103
- });
104
- cssHash = projectCSS.hash;
105
- }
99
+ const projectSlug = resolveProjectCSSScope(options, meta.slug);
100
+ const projectCSSPromise = prefetchedProjectCSSPromise ??
101
+ (useProductionCSS && projectSlug !== "default"
102
+ ? getProjectCSS(projectSlug, stylesheetContent, candidates, {
103
+ minify: true,
104
+ environment: options.environment,
105
+ buildMode: options.mode,
106
+ })
107
+ : Promise.resolve(null));
106
108
  const { effectiveTitle, metaTags, linkTags, scriptTags, styleTags, lang, bodyClass, } = processMetadata(meta);
107
109
  const noLayout = shouldDisableLayout(meta.frontmatter);
108
110
  const rootAttributes = buildRootAttributes(meta.slug || "", options.mode || "production", noLayout, meta.ssrHash);
109
- const importMapJson = await buildImportMapJson({
111
+ const skipDevHMR = isPreviewMode || options.noHmr;
112
+ // Error logger endpoint only enabled in local dev (returns 404 in preview/prod)
113
+ const skipErrorLogger = isPreviewMode;
114
+ // Enable dev scripts for local dev OR preview mode (for HMR support in Studio),
115
+ // unless a caller explicitly forces production client scripts for fair benchmarking.
116
+ const useDevScripts = !options.forceProductionScripts && (isLocalProject || isPreviewMode);
117
+ const importMapJsonPromise = buildImportMapJson({
110
118
  projectDir: options.projectDir,
111
119
  config: options.config,
112
120
  customImports: options.importMap,
121
+ pretty: useDevScripts,
113
122
  });
114
- const hydrationDataJson = generateHydrationData(meta.slug || "", params ?? {}, props ?? {}, options);
123
+ const hydrationDataJson = generateHydrationData(meta.slug || "", params ?? {}, props ?? {}, options, { pretty: useDevScripts });
115
124
  const nonce = options.nonce ?? "";
116
- const skipDevHMR = isPreviewMode || options.noHmr;
117
- // Error logger endpoint only enabled in local dev (returns 404 in preview/prod)
118
- const skipErrorLogger = isPreviewMode;
119
- // Enable dev scripts for local dev OR preview mode (for HMR support in Studio)
120
- const useDevScripts = isLocalProject || isPreviewMode;
121
125
  const modeScripts = useDevScripts
122
126
  ? getDevScripts(meta.slug || "", options.config, params, props, nonce, {
123
127
  skipDevHMR,
124
128
  skipErrorLogger,
125
129
  })
126
130
  : getProdScripts(meta.slug || "", params, props, nonce);
127
- const modeStyles = useDevScripts ? getDevStyles(nonce) : "";
131
+ const modeStyles = useDevScripts ? getErrorOverlayStyles(nonce) : "";
128
132
  const modulePreloadHints = generateModulePreloadHints(options);
133
+ const importMapJson = await profilePhase("html.import_map", () => importMapJsonPromise);
129
134
  // Preload critical React dependencies to avoid waterfall delays.
130
135
  // jsx-runtime is discovered late (only when modules execute), adding ~500ms latency.
131
136
  const importMapData = JSON.parse(importMapJson);
@@ -133,7 +138,10 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
133
138
  const criticalDepsPreload = jsxRuntimeUrl
134
139
  ? `<link rel="modulepreload" href="${jsxRuntimeUrl}">`
135
140
  : "";
136
- const nonceAttr = nonce ? ` nonce="${escapeHTML(nonce)}"` : "";
141
+ const prodHydrationModulePreload = useDevScripts
142
+ ? ""
143
+ : `<link rel="modulepreload" href="${PROD_HYDRATION_MODULE_PATH}">`;
144
+ const nonceAttr = buildNonceAttribute(nonce);
137
145
  // Expose project slug for runtime error overlay "Fix in Veryfront" button
138
146
  const overlaySlug = options.projectId || meta.slug;
139
147
  const slugForOverlay = useDevScripts && overlaySlug
@@ -176,6 +184,8 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
176
184
  : "";
177
185
  let tailwindCSSBlock = "";
178
186
  if (useProductionCSS) {
187
+ const projectCSS = await profilePhase("html.project_css", () => projectCSSPromise);
188
+ const cssHash = projectCSS?.hash ?? "";
179
189
  if (cssHash) {
180
190
  tailwindCSSBlock = `<link rel="stylesheet" href="/_vf/css/${cssHash}.css">`;
181
191
  }
@@ -216,6 +226,7 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
216
226
  <!-- Modulepreload hints for faster cold start -->
217
227
  ${modulePreloadHints}
218
228
  ${criticalDepsPreload}
229
+ ${prodHydrationModulePreload}
219
230
 
220
231
  <!-- Tailwind CSS: Server-side JIT compiled -->
221
232
  ${tailwindCSSBlock}
@@ -238,7 +249,7 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
238
249
  sourceHash: options.sourceHash,
239
250
  })
240
251
  : "";
241
- const previewHMRScript = isPreviewMode
252
+ const previewHMRScript = isPreviewMode && !options.forceProductionScripts
242
253
  ? `<script src="/_veryfront/preview-hmr.js"${nonceAttr}></script>`
243
254
  : "";
244
255
  const mermaidScript = isMarkdownPreview
@@ -275,10 +286,10 @@ mermaid.run();
275
286
  </html>`;
276
287
  return { start, end };
277
288
  }
278
- export function wrapInHTMLShell(content, meta, options, params, props) {
289
+ export function wrapInHTMLShell(content, meta, options, params, props, projectCSSPromise) {
279
290
  return withSpan(SpanNames.HTML_WRAP_IN_SHELL, async () => {
280
291
  const cleanedContent = content.trim();
281
- const { start, end } = await generateHTMLShellParts(meta, options, params, props, cleanedContent);
292
+ const { start, end } = await generateHTMLShellParts(meta, options, params, props, cleanedContent, projectCSSPromise);
282
293
  return `${start}${cleanedContent}${end}`;
283
294
  }, {
284
295
  "html.slug": meta.slug || "",
@@ -1,7 +1,7 @@
1
1
  import { getLoaderScript, getRendererScript, getRouterScript } from "./templates/index.js";
2
- import { escapeHtml } from "../html-escape.js";
2
+ import { buildNonceAttribute } from "../html-escape.js";
3
3
  export function generateDevClientRendererScript(nonce) {
4
- const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
4
+ const nonceAttr = buildNonceAttribute(nonce);
5
5
  return `
6
6
  <script type="module"${nonceAttr}>
7
7
  import * as React from 'react';
@@ -1,6 +1,6 @@
1
- import { escapeHtml } from "../html-escape.js";
1
+ import { buildNonceAttribute } from "../html-escape.js";
2
2
  export function generateDevComponentManifestScript(config, nonce) {
3
- const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
3
+ const nonceAttr = buildNonceAttribute(nonce);
4
4
  const components = config.dev?.components ?? [];
5
5
  return `
6
6
  <script${nonceAttr}>
@@ -1 +1 @@
1
- {"version":3,"file":"dev-error-logger.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-error-logger.ts"],"names":[],"mappings":"AAMA,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAyDnE"}
1
+ {"version":3,"file":"dev-error-logger.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-error-logger.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAuDnE"}
@@ -1,12 +1,8 @@
1
- import { escapeHtml } from "../html-escape.js";
2
- function getOpenScriptTag(nonce) {
3
- return nonce ? `<script nonce="${escapeHtml(nonce)}">` : "<script>";
4
- }
1
+ import { buildNonceAttribute } from "../html-escape.js";
5
2
  export function generateDevErrorLoggerScript(nonce) {
6
- const openScriptTag = getOpenScriptTag(nonce);
7
3
  return `
8
4
  <!-- Client-side error logger -->
9
- ${openScriptTag}
5
+ <script${buildNonceAttribute(nonce)}>
10
6
  (function() {
11
7
  const logToServer = (level, message, details) => {
12
8
  try {
@@ -1,4 +1,4 @@
1
- import { escapeHtml } from "../html-escape.js";
1
+ import { buildNonceAttribute } from "../html-escape.js";
2
2
  import { generateDevErrorLoggerScript } from "./dev-error-logger.js";
3
3
  import { generateDevComponentManifestScript } from "./dev-component-manifest.js";
4
4
  import { generateDevClientRendererScript } from "./dev-client-renderer.js";
@@ -6,7 +6,7 @@ function generateHMRScript(config, nonce, skipDevHMR) {
6
6
  // Skip dev HMR script when preview-hmr.js will be used instead
7
7
  if (skipDevHMR || !config.dev?.hmr)
8
8
  return "";
9
- const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
9
+ const nonceAttr = buildNonceAttribute(nonce);
10
10
  return `<script type="module" src="/_veryfront/hmr.js"${nonceAttr}></script>`;
11
11
  }
12
12
  export function getDevScripts(_slug, config, _params, _props, nonce, options) {
@@ -1,4 +1,6 @@
1
1
  import type { ComponentProps } from "../../types/index.js";
2
2
  import type { HTMLGenerationOptions } from "../types.js";
3
- export declare function generateHydrationData(slug: string, params: Record<string, string | string[]>, props: ComponentProps, options: HTMLGenerationOptions): string;
3
+ export declare function generateHydrationData(slug: string, params: Record<string, string | string[]>, props: ComponentProps, options: HTMLGenerationOptions, serializeOptions?: {
4
+ pretty?: boolean;
5
+ }): string;
4
6
  //# sourceMappingURL=hydration-data-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hydration-data-generator.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/hydration-data-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAyBzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACzC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,qBAAqB,GAC7B,MAAM,CA2CR"}
1
+ {"version":3,"file":"hydration-data-generator.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/hydration-data-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAyBzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACzC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,qBAAqB,EAC9B,gBAAgB,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC,MAAM,CA2CR"}
@@ -18,7 +18,7 @@ function inferPageType(pagePath) {
18
18
  return undefined;
19
19
  return PAGE_TYPE_EXTENSIONS.has(ext) ? ext : undefined;
20
20
  }
21
- export function generateHydrationData(slug, params, props, options) {
21
+ export function generateHydrationData(slug, params, props, options, serializeOptions) {
22
22
  const layouts = (options.nestedLayouts ?? [])
23
23
  .map((layout) => {
24
24
  const path = toProjectRelativePath(layout.path ?? layout.componentPath ?? "", options.projectDir);
@@ -54,5 +54,5 @@ export function generateHydrationData(slug, params, props, options) {
54
54
  headings: options.headings,
55
55
  studioEmbed: options.studioEmbed,
56
56
  };
57
- return JSON.stringify(data, null, 2);
57
+ return JSON.stringify(data, null, serializeOptions?.pretty ?? true ? 2 : undefined);
58
58
  }
@@ -9,6 +9,6 @@ export { getDevScripts } from "./dev-scripts.js";
9
9
  export { generateDevErrorLoggerScript } from "./dev-error-logger.js";
10
10
  export { generateDevComponentManifestScript } from "./dev-component-manifest.js";
11
11
  export { generateDevClientRendererScript } from "./dev-client-renderer.js";
12
- export { getProdScripts } from "./prod-scripts.js";
12
+ export { generateProdHydrationModule, getProdScripts, PROD_HYDRATION_MODULE_PATH, } from "./prod-scripts.js";
13
13
  export { generateProdHydrationScript } from "./prod-hydration.js";
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC"}
@@ -8,5 +8,5 @@ export { getDevScripts } from "./dev-scripts.js";
8
8
  export { generateDevErrorLoggerScript } from "./dev-error-logger.js";
9
9
  export { generateDevComponentManifestScript } from "./dev-component-manifest.js";
10
10
  export { generateDevClientRendererScript } from "./dev-client-renderer.js";
11
- export { getProdScripts } from "./prod-scripts.js";
11
+ export { generateProdHydrationModule, getProdScripts, PROD_HYDRATION_MODULE_PATH, } from "./prod-scripts.js";
12
12
  export { generateProdHydrationScript } from "./prod-hydration.js";
@@ -1,6 +1,6 @@
1
- import { escapeHtml } from "../html-escape.js";
1
+ import { buildNonceAttribute } from "../html-escape.js";
2
2
  export function generateProdHydrationScript(slug, _params, props, nonce) {
3
- const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
3
+ const nonceAttr = buildNonceAttribute(nonce);
4
4
  const pageProps = JSON.stringify(props ?? {});
5
5
  return `
6
6
  <script type="module"${nonceAttr}>
@@ -1,2 +1,4 @@
1
+ export declare const PROD_HYDRATION_MODULE_PATH = "/_veryfront/hydration-runtime.js";
2
+ export declare function generateProdHydrationModule(): string;
1
3
  export declare function getProdScripts(_slug: string, _params?: Record<string, string | string[]>, _props?: Record<string, unknown>, nonce?: string): string;
2
4
  //# sourceMappingURL=prod-scripts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prod-scripts.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/prod-scripts.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAeR"}
1
+ {"version":3,"file":"prod-scripts.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/prod-scripts.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,qCAAqC,CAAC;AAE7E,wBAAgB,2BAA2B,IAAI,MAAM,CASpD;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAGR"}
@@ -1,17 +1,17 @@
1
1
  import { getLoaderScript, getRendererScript, getRouterScript } from "./templates/index.js";
2
- import { escapeHtml } from "../html-escape.js";
2
+ import { buildNonceAttribute } from "../html-escape.js";
3
+ export const PROD_HYDRATION_MODULE_PATH = "/_veryfront/hydration-runtime.js";
4
+ export function generateProdHydrationModule() {
5
+ return [
6
+ `import * as React from 'react';`,
7
+ `import { RouterProvider, useRouter as useRouterFromModule } from 'veryfront/router';`,
8
+ `import { PageContextProvider } from 'veryfront/context';`,
9
+ getRouterScript().trim(),
10
+ getLoaderScript().trim(),
11
+ getRendererScript().trim(),
12
+ ].join("\n\n");
13
+ }
3
14
  export function getProdScripts(_slug, _params, _props, nonce) {
4
- const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
5
- return `
6
- <script type="module"${nonceAttr}>
7
- import * as React from 'react';
8
- import { RouterProvider, useRouter as useRouterFromModule } from 'veryfront/router';
9
- import { PageContextProvider } from 'veryfront/context';
10
-
11
- ${getRouterScript()}
12
-
13
- ${getLoaderScript()}
14
-
15
- ${getRendererScript()}
16
- </script>`;
15
+ const nonceAttr = buildNonceAttribute(nonce);
16
+ return `\n <script type="module" src="${PROD_HYDRATION_MODULE_PATH}"${nonceAttr}></script>`;
17
17
  }
@@ -48,6 +48,7 @@ export declare const HTMLGenerationOptionsSchema: z.ZodObject<{
48
48
  layoutProps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
49
49
  studioEmbed: z.ZodOptional<z.ZodBoolean>;
50
50
  projectId: z.ZodOptional<z.ZodString>;
51
+ projectSlug: z.ZodOptional<z.ZodString>;
51
52
  pageId: z.ZodOptional<z.ZodString>;
52
53
  sourceHash: z.ZodOptional<z.ZodString>;
53
54
  colorScheme: z.ZodOptional<z.ZodEnum<{
@@ -68,6 +69,7 @@ export declare const HTMLGenerationOptionsSchema: z.ZodObject<{
68
69
  projectClasses: z.ZodOptional<z.ZodSet<z.ZodString>>;
69
70
  isLocalProject: z.ZodOptional<z.ZodBoolean>;
70
71
  noHmr: z.ZodOptional<z.ZodBoolean>;
72
+ forceProductionScripts: z.ZodOptional<z.ZodBoolean>;
71
73
  }, z.core.$strip>;
72
74
  export declare const HydrationDataSchema: z.ZodObject<{
73
75
  slug: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"html.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/html/schemas/html.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;EAA4B,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;EAAoC,CAAC;AAEnE,eAAO,MAAM,cAAc;;;;;;;EAAkD,CAAC;AAC9E,eAAO,MAAM,0BAA0B;;;EAA+B,CAAC;AAEvE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyCtC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAa9B,CAAC;AAGH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"html.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/html/schemas/html.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;EAA4B,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;EAAoC,CAAC;AAEnE,eAAO,MAAM,cAAc;;;;;;;EAAkD,CAAC;AAC9E,eAAO,MAAM,0BAA0B;;;EAA+B,CAAC;AAEvE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2CtC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAa9B,CAAC;AAGH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -24,6 +24,7 @@ export const HTMLGenerationOptionsSchema = z.object({
24
24
  layoutProps: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),
25
25
  studioEmbed: z.boolean().optional(),
26
26
  projectId: z.string().optional(),
27
+ projectSlug: z.string().optional(),
27
28
  pageId: z.string().optional(),
28
29
  sourceHash: z.string().optional(),
29
30
  colorScheme: colorSchemeSchema.optional(),
@@ -40,6 +41,7 @@ export const HTMLGenerationOptionsSchema = z.object({
40
41
  projectClasses: z.set(z.string()).optional(),
41
42
  isLocalProject: z.boolean().optional(),
42
43
  noHmr: z.boolean().optional(),
44
+ forceProductionScripts: z.boolean().optional(),
43
45
  });
44
46
  export const HydrationDataSchema = z.object({
45
47
  slug: z.string(),
@@ -5,8 +5,9 @@
5
5
  * until HTML shell generation during SSR. This runs in parallel with other
6
6
  * initialization work, reducing first-request latency by ~2-3 seconds.
7
7
  */
8
+ import { type FileSystem } from "../../platform/compat/fs.js";
8
9
  import { createPreparedProjectCSSContext } from "./prepared-project-css-cache.js";
9
- import type { StyleScopeProfile } from "./style-scope-profile.js";
10
+ import { type StyleScopeProfile } from "./style-scope-profile.js";
10
11
  interface CSSPregenerationOptions {
11
12
  /** Project slug for cache keying */
12
13
  projectSlug: string;
@@ -39,7 +40,22 @@ export interface PreparedCSSArtifactBuildResult {
39
40
  fromCache: boolean;
40
41
  context: ReturnType<typeof createPreparedProjectCSSContext>;
41
42
  }
43
+ interface LocalProjectSourceFilesOptions {
44
+ projectDir: string;
45
+ styleProfile: StyleScopeProfile;
46
+ fs?: FileSystem;
47
+ }
42
48
  export declare function buildPreparedCSSArtifactFromFiles(options: CSSPregenerationOptions): Promise<PreparedCSSArtifactBuildResult>;
49
+ export declare function collectLocalProjectSourceFiles(options: LocalProjectSourceFilesOptions): Promise<Array<{
50
+ path: string;
51
+ content?: string;
52
+ }>>;
53
+ export declare function readLocalProjectStylesheet(projectDir: string, stylesheetPath?: string, fs?: FileSystem): Promise<string | undefined>;
54
+ /**
55
+ * Trigger prepared CSS generation in the background when the artifact is not
56
+ * already cached or currently being built.
57
+ */
58
+ export declare function warmPreparedCSSArtifactFromFiles(options: CSSPregenerationOptions): Promise<boolean>;
43
59
  /**
44
60
  * Pre-generate and cache CSS from file list.
45
61
  *
@@ -1 +1 @@
1
- {"version":3,"file":"css-pregeneration.d.ts","sourceRoot":"","sources":["../../../../src/src/html/styles-builder/css-pregeneration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,+BAA+B,EAEhC,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,UAAU,uBAAuB;IAC/B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,yDAAyD;IACzD,YAAY,EAAE,iBAAiB,CAAC;IAChC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC;CAC7D;AAED,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,8BAA8B,CAAC,CA0CzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/C,MAAM,GAAG,SAAS,CAgBpB"}
1
+ {"version":3,"file":"css-pregeneration.d.ts","sourceRoot":"","sources":["../../../../src/src/html/styles-builder/css-pregeneration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EACL,+BAA+B,EAGhC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAMlC,UAAU,uBAAuB;IAC/B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,yDAAyD;IACzD,YAAY,EAAE,iBAAiB,CAAC;IAChC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC;CAC7D;AAED,UAAU,8BAA8B;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,EAAE,CAAC,EAAE,UAAU,CAAC;CACjB;AAED,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,8BAA8B,CAAC,CA0CzC;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAuCpD;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,EAAE,GAAE,UAA+B,GAClC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoB7B;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAwClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/C,MAAM,GAAG,SAAS,CAgBpB"}
@@ -6,9 +6,14 @@
6
6
  * initialization work, reducing first-request latency by ~2-3 seconds.
7
7
  */
8
8
  import { serverLogger } from "../../utils/index.js";
9
+ import { join } from "../../platform/compat/path/index.js";
10
+ import { createFileSystem } from "../../platform/compat/fs.js";
9
11
  import { extractCandidatesFromFiles, getProjectCSS } from "./tailwind-compiler.js";
10
- import { createPreparedProjectCSSContext, storePreparedProjectCSS, } from "./prepared-project-css-cache.js";
12
+ import { createPreparedProjectCSSContext, storePreparedProjectCSS, tryGetPreparedProjectCSS, } from "./prepared-project-css-cache.js";
13
+ import { shouldIncludeStylePath, shouldTraverseStyleDirectory, } from "./style-scope-profile.js";
11
14
  const logger = serverLogger.component("css-pregeneration");
15
+ const inFlightPreparedCSSBuilds = new Map();
16
+ const SOURCE_EXTENSIONS = [".tsx", ".jsx", ".mdx", ".ts", ".js"];
12
17
  export async function buildPreparedCSSArtifactFromFiles(options) {
13
18
  const { projectSlug, projectVersion, projectDir, files, styleProfile, stylesheet, stylesheetPath, minify = true, environment = "preview", buildMode = "production", } = options;
14
19
  const resolvedStylesheet = stylesheet ?? findStylesheetFromFiles(files, stylesheetPath);
@@ -31,6 +36,103 @@ export async function buildPreparedCSSArtifactFromFiles(options) {
31
36
  context,
32
37
  };
33
38
  }
39
+ export async function collectLocalProjectSourceFiles(options) {
40
+ const fs = options.fs ?? createFileSystem();
41
+ const files = [];
42
+ const scanDir = async (directoryPath) => {
43
+ let entries;
44
+ try {
45
+ entries = fs.readDir(directoryPath);
46
+ }
47
+ catch {
48
+ return;
49
+ }
50
+ for await (const entry of entries) {
51
+ const fullPath = join(directoryPath, entry.name);
52
+ if (entry.isDirectory) {
53
+ if (shouldTraverseStyleDirectory(options.styleProfile, fullPath, options.projectDir)) {
54
+ await scanDir(fullPath);
55
+ }
56
+ continue;
57
+ }
58
+ if (!entry.isFile)
59
+ continue;
60
+ if (!shouldIncludeStylePath(options.styleProfile, fullPath, options.projectDir))
61
+ continue;
62
+ if (!SOURCE_EXTENSIONS.some((extension) => entry.name.endsWith(extension)))
63
+ continue;
64
+ try {
65
+ files.push({
66
+ path: fullPath,
67
+ content: await fs.readTextFile(fullPath),
68
+ });
69
+ }
70
+ catch {
71
+ // ignore unreadable files during warmup
72
+ }
73
+ }
74
+ };
75
+ await scanDir(options.projectDir);
76
+ return files;
77
+ }
78
+ export async function readLocalProjectStylesheet(projectDir, stylesheetPath, fs = createFileSystem()) {
79
+ const candidatePaths = stylesheetPath ? [stylesheetPath.replace(/^\/+/, "")] : [
80
+ "globals.css",
81
+ "global.css",
82
+ "styles/globals.css",
83
+ "app/globals.css",
84
+ "src/globals.css",
85
+ "src/styles/globals.css",
86
+ ];
87
+ for (const relativePath of candidatePaths) {
88
+ const absolutePath = join(projectDir, relativePath);
89
+ try {
90
+ return await fs.readTextFile(absolutePath);
91
+ }
92
+ catch {
93
+ // keep searching
94
+ }
95
+ }
96
+ return undefined;
97
+ }
98
+ /**
99
+ * Trigger prepared CSS generation in the background when the artifact is not
100
+ * already cached or currently being built.
101
+ */
102
+ export async function warmPreparedCSSArtifactFromFiles(options) {
103
+ const stylesheet = options.stylesheet ??
104
+ findStylesheetFromFiles(options.files, options.stylesheetPath);
105
+ const context = createPreparedProjectCSSContext(options.projectSlug, options.projectVersion, stylesheet, options.styleProfile.hash, {
106
+ minify: options.minify ?? true,
107
+ environment: options.environment ?? "preview",
108
+ buildMode: options.buildMode ?? "production",
109
+ });
110
+ if (await tryGetPreparedProjectCSS(context))
111
+ return false;
112
+ if (inFlightPreparedCSSBuilds.has(context.cacheKey))
113
+ return false;
114
+ const task = buildPreparedCSSArtifactFromFiles({
115
+ ...options,
116
+ stylesheet,
117
+ }).then(() => {
118
+ logger.debug("Warm prepared CSS complete", {
119
+ projectSlug: options.projectSlug,
120
+ projectVersion: options.projectVersion,
121
+ cacheKey: context.cacheKey,
122
+ });
123
+ }).catch((error) => {
124
+ logger.debug("Warm prepared CSS failed", {
125
+ projectSlug: options.projectSlug,
126
+ projectVersion: options.projectVersion,
127
+ cacheKey: context.cacheKey,
128
+ error: error instanceof Error ? error.message : String(error),
129
+ });
130
+ }).finally(() => {
131
+ inFlightPreparedCSSBuilds.delete(context.cacheKey);
132
+ });
133
+ inFlightPreparedCSSBuilds.set(context.cacheKey, task);
134
+ return true;
135
+ }
34
136
  /**
35
137
  * Pre-generate and cache CSS from file list.
36
138
  *
@@ -1,7 +1,7 @@
1
1
  import { Z_INDEX_ERROR_OVERLAY } from "../../utils/index.js";
2
- import { escapeHtml } from "../html-escape.js";
2
+ import { buildNonceAttribute } from "../html-escape.js";
3
3
  export function getDevStyles(nonce) {
4
- const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
4
+ const nonceAttr = buildNonceAttribute(nonce);
5
5
  return `
6
6
  <style${nonceAttr}>
7
7
  #veryfront-error-overlay {
@@ -4,8 +4,10 @@ interface BuildImportMapOptions {
4
4
  projectDir?: string;
5
5
  config?: VeryfrontConfig;
6
6
  customImports?: Record<string, string>;
7
+ pretty?: boolean;
7
8
  }
8
9
  export declare function buildImportMapJson(options?: BuildImportMapOptions | Record<string, string>): Promise<string>;
10
+ export declare function clearImportMapCache(): void;
9
11
  export declare function shouldDisableLayout(frontmatter?: Record<string, unknown>): boolean;
10
12
  export {};
11
13
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAa1D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAQR;AA6MD,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAQD,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAElF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc1D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAQR;AAiND,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,MAAM,CAAC,CA4DjB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAElF"}