veryfront 0.1.111 → 0.1.113

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 (322) hide show
  1. package/esm/cli/auth/login.d.ts.map +1 -1
  2. package/esm/cli/auth/login.js +13 -0
  3. package/esm/cli/commands/analyze-chunks/command-help.d.ts.map +1 -1
  4. package/esm/cli/commands/analyze-chunks/command-help.js +1 -0
  5. package/esm/cli/commands/build/command-help.d.ts.map +1 -1
  6. package/esm/cli/commands/build/command-help.js +1 -0
  7. package/esm/cli/commands/build/command.d.ts.map +1 -1
  8. package/esm/cli/commands/build/command.js +47 -2
  9. package/esm/cli/commands/clean/command-help.d.ts.map +1 -1
  10. package/esm/cli/commands/clean/command-help.js +1 -0
  11. package/esm/cli/commands/completions/command-help.d.ts +3 -0
  12. package/esm/cli/commands/completions/command-help.d.ts.map +1 -0
  13. package/esm/cli/commands/completions/command-help.js +13 -0
  14. package/esm/cli/commands/completions/command.d.ts +28 -0
  15. package/esm/cli/commands/completions/command.d.ts.map +1 -0
  16. package/esm/cli/commands/completions/command.js +133 -0
  17. package/esm/cli/commands/completions/handler.d.ts +3 -0
  18. package/esm/cli/commands/completions/handler.d.ts.map +1 -0
  19. package/esm/cli/commands/completions/handler.js +20 -0
  20. package/esm/cli/commands/demo/command-help.d.ts.map +1 -1
  21. package/esm/cli/commands/demo/command-help.js +1 -0
  22. package/esm/cli/commands/deploy/command-help.d.ts.map +1 -1
  23. package/esm/cli/commands/deploy/command-help.js +1 -0
  24. package/esm/cli/commands/deploy/command.d.ts.map +1 -1
  25. package/esm/cli/commands/deploy/command.js +73 -1
  26. package/esm/cli/commands/dev/command-help.d.ts.map +1 -1
  27. package/esm/cli/commands/dev/command-help.js +1 -0
  28. package/esm/cli/commands/doctor/command-help.d.ts.map +1 -1
  29. package/esm/cli/commands/doctor/command-help.js +1 -0
  30. package/esm/cli/commands/files/command-help.d.ts.map +1 -1
  31. package/esm/cli/commands/files/command-help.js +1 -0
  32. package/esm/cli/commands/generate/command-help.d.ts.map +1 -1
  33. package/esm/cli/commands/generate/command-help.js +1 -0
  34. package/esm/cli/commands/init/command-help.d.ts.map +1 -1
  35. package/esm/cli/commands/init/command-help.js +1 -0
  36. package/esm/cli/commands/install/command-help.d.ts.map +1 -1
  37. package/esm/cli/commands/install/command-help.js +2 -0
  38. package/esm/cli/commands/issues/command-help.d.ts.map +1 -1
  39. package/esm/cli/commands/issues/command-help.js +1 -0
  40. package/esm/cli/commands/knowledge/command-help.d.ts.map +1 -1
  41. package/esm/cli/commands/knowledge/command-help.js +1 -0
  42. package/esm/cli/commands/lint/command-help.d.ts +3 -0
  43. package/esm/cli/commands/lint/command-help.d.ts.map +1 -0
  44. package/esm/cli/commands/lint/command-help.js +13 -0
  45. package/esm/cli/commands/lint/command.d.ts +24 -0
  46. package/esm/cli/commands/lint/command.d.ts.map +1 -0
  47. package/esm/cli/commands/lint/command.js +34 -0
  48. package/esm/cli/commands/lint/handler.d.ts +3 -0
  49. package/esm/cli/commands/lint/handler.d.ts.map +1 -0
  50. package/esm/cli/commands/lint/handler.js +33 -0
  51. package/esm/cli/commands/lock/command-help.d.ts.map +1 -1
  52. package/esm/cli/commands/lock/command-help.js +1 -0
  53. package/esm/cli/commands/login/command-help.d.ts.map +1 -1
  54. package/esm/cli/commands/login/command-help.js +1 -0
  55. package/esm/cli/commands/logout/command-help.d.ts.map +1 -1
  56. package/esm/cli/commands/logout/command-help.js +1 -0
  57. package/esm/cli/commands/mcp/command-help.d.ts.map +1 -1
  58. package/esm/cli/commands/mcp/command-help.js +1 -0
  59. package/esm/cli/commands/merge/command-help.d.ts.map +1 -1
  60. package/esm/cli/commands/merge/command-help.js +1 -0
  61. package/esm/cli/commands/pull/command-help.d.ts.map +1 -1
  62. package/esm/cli/commands/pull/command-help.js +1 -0
  63. package/esm/cli/commands/push/command-help.d.ts.map +1 -1
  64. package/esm/cli/commands/push/command-help.js +1 -0
  65. package/esm/cli/commands/routes/command-help.d.ts.map +1 -1
  66. package/esm/cli/commands/routes/command-help.js +1 -0
  67. package/esm/cli/commands/schema/command-help.d.ts +3 -0
  68. package/esm/cli/commands/schema/command-help.d.ts.map +1 -0
  69. package/esm/cli/commands/schema/command-help.js +15 -0
  70. package/esm/cli/commands/schema/command.d.ts +30 -0
  71. package/esm/cli/commands/schema/command.d.ts.map +1 -0
  72. package/esm/cli/commands/schema/command.js +39 -0
  73. package/esm/cli/commands/schema/handler.d.ts +3 -0
  74. package/esm/cli/commands/schema/handler.d.ts.map +1 -0
  75. package/esm/cli/commands/schema/handler.js +25 -0
  76. package/esm/cli/commands/serve/command-help.d.ts.map +1 -1
  77. package/esm/cli/commands/serve/command-help.js +1 -0
  78. package/esm/cli/commands/skills/command-help.d.ts +3 -0
  79. package/esm/cli/commands/skills/command-help.d.ts.map +1 -0
  80. package/esm/cli/commands/skills/command-help.js +21 -0
  81. package/esm/cli/commands/skills/command.d.ts +9 -0
  82. package/esm/cli/commands/skills/command.d.ts.map +1 -0
  83. package/esm/cli/commands/skills/command.js +17 -0
  84. package/esm/cli/commands/skills/create.d.ts +3 -0
  85. package/esm/cli/commands/skills/create.d.ts.map +1 -0
  86. package/esm/cli/commands/skills/create.js +65 -0
  87. package/esm/cli/commands/skills/handler.d.ts +3 -0
  88. package/esm/cli/commands/skills/handler.d.ts.map +1 -0
  89. package/esm/cli/commands/skills/handler.js +82 -0
  90. package/esm/cli/commands/skills/validate.d.ts +3 -0
  91. package/esm/cli/commands/skills/validate.d.ts.map +1 -0
  92. package/esm/cli/commands/skills/validate.js +91 -0
  93. package/esm/cli/commands/start/command-help.d.ts.map +1 -1
  94. package/esm/cli/commands/start/command-help.js +1 -0
  95. package/esm/cli/commands/studio/command-help.d.ts.map +1 -1
  96. package/esm/cli/commands/studio/command-help.js +1 -0
  97. package/esm/cli/commands/styles/command-help.d.ts.map +1 -1
  98. package/esm/cli/commands/styles/command-help.js +1 -0
  99. package/esm/cli/commands/task/command-help.d.ts.map +1 -1
  100. package/esm/cli/commands/task/command-help.js +1 -0
  101. package/esm/cli/commands/test/command-help.d.ts +3 -0
  102. package/esm/cli/commands/test/command-help.d.ts.map +1 -0
  103. package/esm/cli/commands/test/command-help.js +16 -0
  104. package/esm/cli/commands/test/command.d.ts +25 -0
  105. package/esm/cli/commands/test/command.d.ts.map +1 -0
  106. package/esm/cli/commands/test/command.js +68 -0
  107. package/esm/cli/commands/test/handler.d.ts +3 -0
  108. package/esm/cli/commands/test/handler.d.ts.map +1 -0
  109. package/esm/cli/commands/test/handler.js +61 -0
  110. package/esm/cli/commands/up/command-help.d.ts.map +1 -1
  111. package/esm/cli/commands/up/command-help.js +1 -0
  112. package/esm/cli/commands/uploads/command-help.d.ts.map +1 -1
  113. package/esm/cli/commands/uploads/command-help.js +1 -0
  114. package/esm/cli/commands/whoami/command-help.d.ts.map +1 -1
  115. package/esm/cli/commands/whoami/command-help.js +1 -0
  116. package/esm/cli/commands/workflow/command-help.d.ts.map +1 -1
  117. package/esm/cli/commands/workflow/command-help.js +1 -0
  118. package/esm/cli/help/command-definitions.d.ts.map +1 -1
  119. package/esm/cli/help/command-definitions.js +10 -0
  120. package/esm/cli/help/main-help.d.ts.map +1 -1
  121. package/esm/cli/help/main-help.js +38 -5
  122. package/esm/cli/help/types.d.ts +2 -0
  123. package/esm/cli/help/types.d.ts.map +1 -1
  124. package/esm/cli/mcp/advanced-tools.d.ts.map +1 -1
  125. package/esm/cli/mcp/advanced-tools.js +4 -0
  126. package/esm/cli/mcp/server.d.ts.map +1 -1
  127. package/esm/cli/mcp/server.js +68 -0
  128. package/esm/cli/mcp/standalone.d.ts +2 -0
  129. package/esm/cli/mcp/standalone.d.ts.map +1 -1
  130. package/esm/cli/mcp/standalone.js +117 -2
  131. package/esm/cli/mcp/tools/cicd-tools.d.ts +3 -0
  132. package/esm/cli/mcp/tools/cicd-tools.d.ts.map +1 -0
  133. package/esm/cli/mcp/tools/cicd-tools.js +75 -0
  134. package/esm/cli/mcp/tools/introspection-tools.d.ts +3 -0
  135. package/esm/cli/mcp/tools/introspection-tools.d.ts.map +1 -0
  136. package/esm/cli/mcp/tools/introspection-tools.js +38 -0
  137. package/esm/cli/router.d.ts.map +1 -1
  138. package/esm/cli/router.js +35 -1
  139. package/esm/cli/shared/args.d.ts +4 -0
  140. package/esm/cli/shared/args.d.ts.map +1 -1
  141. package/esm/cli/shared/args.js +2 -0
  142. package/esm/cli/shared/interactive.d.ts +13 -0
  143. package/esm/cli/shared/interactive.d.ts.map +1 -0
  144. package/esm/cli/shared/interactive.js +26 -0
  145. package/esm/cli/shared/json-output.d.ts +52 -0
  146. package/esm/cli/shared/json-output.d.ts.map +1 -0
  147. package/esm/cli/shared/json-output.js +58 -0
  148. package/esm/cli/shared/suggest.d.ts +8 -0
  149. package/esm/cli/shared/suggest.d.ts.map +1 -0
  150. package/esm/cli/shared/suggest.js +25 -0
  151. package/esm/cli/skills/core-skills.d.ts +9 -0
  152. package/esm/cli/skills/core-skills.d.ts.map +1 -0
  153. package/esm/cli/skills/core-skills.js +230 -0
  154. package/esm/cli/skills/loader.d.ts +13 -0
  155. package/esm/cli/skills/loader.d.ts.map +1 -0
  156. package/esm/cli/skills/loader.js +87 -0
  157. package/esm/cli/skills/types.d.ts +29 -0
  158. package/esm/cli/skills/types.d.ts.map +1 -0
  159. package/esm/cli/skills/types.js +25 -0
  160. package/esm/cli/utils/index.d.ts.map +1 -1
  161. package/esm/cli/utils/index.js +3 -0
  162. package/esm/deno.d.ts +2 -0
  163. package/esm/deno.js +3 -1
  164. package/esm/src/html/dev-scripts.d.ts.map +1 -1
  165. package/esm/src/html/dev-scripts.js +3 -2
  166. package/esm/src/html/html-injection.d.ts.map +1 -1
  167. package/esm/src/html/html-injection.js +2 -1
  168. package/esm/src/html/html-shell-generator.js +1 -1
  169. package/esm/src/html/hydration-script-builder/dev-client-renderer.d.ts.map +1 -1
  170. package/esm/src/html/hydration-script-builder/dev-client-renderer.js +2 -1
  171. package/esm/src/html/hydration-script-builder/dev-component-manifest.d.ts.map +1 -1
  172. package/esm/src/html/hydration-script-builder/dev-component-manifest.js +2 -1
  173. package/esm/src/html/hydration-script-builder/dev-error-logger.d.ts.map +1 -1
  174. package/esm/src/html/hydration-script-builder/dev-error-logger.js +2 -1
  175. package/esm/src/html/hydration-script-builder/dev-scripts.d.ts.map +1 -1
  176. package/esm/src/html/hydration-script-builder/dev-scripts.js +2 -1
  177. package/esm/src/html/hydration-script-builder/prod-hydration.d.ts.map +1 -1
  178. package/esm/src/html/hydration-script-builder/prod-hydration.js +2 -1
  179. package/esm/src/html/hydration-script-builder/prod-scripts.d.ts.map +1 -1
  180. package/esm/src/html/hydration-script-builder/prod-scripts.js +2 -1
  181. package/esm/src/html/styles-builder/dev-styles.d.ts.map +1 -1
  182. package/esm/src/html/styles-builder/dev-styles.js +2 -1
  183. package/esm/src/modules/react-loader/ssr-module-loader/http-bundle-helpers.d.ts +10 -0
  184. package/esm/src/modules/react-loader/ssr-module-loader/http-bundle-helpers.d.ts.map +1 -1
  185. package/esm/src/modules/react-loader/ssr-module-loader/http-bundle-helpers.js +53 -26
  186. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  187. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +1 -1
  188. package/esm/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.js +3 -3
  189. package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
  190. package/esm/src/rendering/orchestrator/html.js +94 -5
  191. package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
  192. package/esm/src/rendering/orchestrator/module-loader/index.js +2 -2
  193. package/esm/src/rendering/rsc/client-boot.ts +30 -4
  194. package/esm/src/rendering/snippet-renderer.js +1 -1
  195. package/esm/src/security/http/response/security-handler.d.ts.map +1 -1
  196. package/esm/src/security/http/response/security-handler.js +3 -2
  197. package/esm/src/server/dev-server/error-overlay/html-template.d.ts +1 -1
  198. package/esm/src/server/dev-server/error-overlay/html-template.d.ts.map +1 -1
  199. package/esm/src/server/dev-server/error-overlay/html-template.js +4 -3
  200. package/esm/src/server/dev-server/error-overlay/overlay-renderer.d.ts +1 -1
  201. package/esm/src/server/dev-server/error-overlay/overlay-renderer.d.ts.map +1 -1
  202. package/esm/src/server/dev-server/error-overlay/overlay-renderer.js +2 -2
  203. package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
  204. package/esm/src/server/services/rendering/ssr.service.js +3 -3
  205. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
  206. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
  207. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts +1 -1
  208. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts.map +1 -1
  209. package/esm/src/transforms/mdx/esm-module-loader/cache/index.js +10 -5
  210. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts +2 -2
  211. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts.map +1 -1
  212. package/esm/src/transforms/mdx/esm-module-loader/cache-format.js +13 -10
  213. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.d.ts +2 -2
  214. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.d.ts.map +1 -1
  215. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.js +4 -4
  216. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.d.ts +2 -3
  217. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.d.ts.map +1 -1
  218. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.js +71 -50
  219. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
  220. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +7 -5
  221. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.d.ts +1 -1
  222. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.d.ts.map +1 -1
  223. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.js +3 -2
  224. package/esm/src/utils/version.d.ts +1 -1
  225. package/esm/src/utils/version.js +1 -1
  226. package/package.json +1 -1
  227. package/src/cli/auth/login.ts +14 -0
  228. package/src/cli/commands/analyze-chunks/command-help.ts +1 -0
  229. package/src/cli/commands/build/command-help.ts +1 -0
  230. package/src/cli/commands/build/command.ts +47 -2
  231. package/src/cli/commands/clean/command-help.ts +1 -0
  232. package/src/cli/commands/completions/command-help.ts +15 -0
  233. package/src/cli/commands/completions/command.ts +163 -0
  234. package/src/cli/commands/completions/handler.ts +29 -0
  235. package/src/cli/commands/demo/command-help.ts +1 -0
  236. package/src/cli/commands/deploy/command-help.ts +1 -0
  237. package/src/cli/commands/deploy/command.ts +82 -1
  238. package/src/cli/commands/dev/command-help.ts +1 -0
  239. package/src/cli/commands/doctor/command-help.ts +1 -0
  240. package/src/cli/commands/files/command-help.ts +1 -0
  241. package/src/cli/commands/generate/command-help.ts +1 -0
  242. package/src/cli/commands/init/command-help.ts +1 -0
  243. package/src/cli/commands/install/command-help.ts +2 -0
  244. package/src/cli/commands/issues/command-help.ts +1 -0
  245. package/src/cli/commands/knowledge/command-help.ts +1 -0
  246. package/src/cli/commands/lint/command-help.ts +15 -0
  247. package/src/cli/commands/lint/command.ts +59 -0
  248. package/src/cli/commands/lint/handler.ts +36 -0
  249. package/src/cli/commands/lock/command-help.ts +1 -0
  250. package/src/cli/commands/login/command-help.ts +1 -0
  251. package/src/cli/commands/logout/command-help.ts +1 -0
  252. package/src/cli/commands/mcp/command-help.ts +1 -0
  253. package/src/cli/commands/merge/command-help.ts +1 -0
  254. package/src/cli/commands/pull/command-help.ts +1 -0
  255. package/src/cli/commands/push/command-help.ts +1 -0
  256. package/src/cli/commands/routes/command-help.ts +1 -0
  257. package/src/cli/commands/schema/command-help.ts +17 -0
  258. package/src/cli/commands/schema/command.ts +64 -0
  259. package/src/cli/commands/schema/handler.ts +32 -0
  260. package/src/cli/commands/serve/command-help.ts +1 -0
  261. package/src/cli/commands/skills/command-help.ts +23 -0
  262. package/src/cli/commands/skills/command.ts +23 -0
  263. package/src/cli/commands/skills/create.ts +87 -0
  264. package/src/cli/commands/skills/handler.ts +106 -0
  265. package/src/cli/commands/skills/validate.ts +110 -0
  266. package/src/cli/commands/start/command-help.ts +1 -0
  267. package/src/cli/commands/studio/command-help.ts +1 -0
  268. package/src/cli/commands/styles/command-help.ts +1 -0
  269. package/src/cli/commands/task/command-help.ts +1 -0
  270. package/src/cli/commands/test/command-help.ts +18 -0
  271. package/src/cli/commands/test/command.ts +90 -0
  272. package/src/cli/commands/test/handler.ts +70 -0
  273. package/src/cli/commands/up/command-help.ts +1 -0
  274. package/src/cli/commands/uploads/command-help.ts +1 -0
  275. package/src/cli/commands/whoami/command-help.ts +1 -0
  276. package/src/cli/commands/workflow/command-help.ts +1 -0
  277. package/src/cli/help/command-definitions.ts +10 -0
  278. package/src/cli/help/main-help.ts +48 -5
  279. package/src/cli/help/types.ts +9 -0
  280. package/src/cli/mcp/advanced-tools.ts +4 -0
  281. package/src/cli/mcp/server.ts +72 -0
  282. package/src/cli/mcp/standalone.ts +133 -1
  283. package/src/cli/mcp/tools/cicd-tools.ts +86 -0
  284. package/src/cli/mcp/tools/introspection-tools.ts +46 -0
  285. package/src/cli/router.ts +32 -1
  286. package/src/cli/shared/args.ts +2 -0
  287. package/src/cli/shared/interactive.ts +33 -0
  288. package/src/cli/shared/json-output.ts +96 -0
  289. package/src/cli/shared/suggest.ts +33 -0
  290. package/src/cli/skills/core-skills.ts +233 -0
  291. package/src/cli/skills/loader.ts +98 -0
  292. package/src/cli/skills/types.ts +39 -0
  293. package/src/cli/utils/index.ts +2 -0
  294. package/src/deno.js +3 -1
  295. package/src/src/html/dev-scripts.ts +4 -2
  296. package/src/src/html/html-injection.ts +2 -1
  297. package/src/src/html/html-shell-generator.ts +1 -1
  298. package/src/src/html/hydration-script-builder/dev-client-renderer.ts +2 -1
  299. package/src/src/html/hydration-script-builder/dev-component-manifest.ts +2 -1
  300. package/src/src/html/hydration-script-builder/dev-error-logger.ts +3 -1
  301. package/src/src/html/hydration-script-builder/dev-scripts.ts +2 -1
  302. package/src/src/html/hydration-script-builder/prod-hydration.ts +2 -1
  303. package/src/src/html/hydration-script-builder/prod-scripts.ts +2 -1
  304. package/src/src/html/styles-builder/dev-styles.ts +2 -1
  305. package/src/src/modules/react-loader/ssr-module-loader/http-bundle-helpers.ts +65 -31
  306. package/src/src/modules/react-loader/ssr-module-loader/loader.ts +1 -0
  307. package/src/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.ts +4 -4
  308. package/src/src/rendering/orchestrator/html.ts +113 -4
  309. package/src/src/rendering/orchestrator/module-loader/index.ts +2 -1
  310. package/src/src/rendering/snippet-renderer.ts +1 -1
  311. package/src/src/security/http/response/security-handler.ts +3 -2
  312. package/src/src/server/dev-server/error-overlay/html-template.ts +4 -2
  313. package/src/src/server/dev-server/error-overlay/overlay-renderer.ts +2 -1
  314. package/src/src/server/services/rendering/ssr.service.ts +12 -7
  315. package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +1 -1
  316. package/src/src/transforms/mdx/esm-module-loader/cache/index.ts +15 -4
  317. package/src/src/transforms/mdx/esm-module-loader/cache-format.ts +24 -6
  318. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.ts +10 -3
  319. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.ts +98 -51
  320. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts +20 -4
  321. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.ts +3 -1
  322. package/src/src/utils/version.ts +1 -1
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Core skills embedded as data for compiled binary support.
3
+ *
4
+ * When running from source, the loader reads from cli/mcp/skills/.
5
+ * When compiled, this module provides the same data without filesystem access.
6
+ */
7
+ export const CORE_SKILLS = [
8
+ {
9
+ manifest: {
10
+ name: "scaffold-app",
11
+ version: "1.0.0",
12
+ description: "Scaffold a new Veryfront app with the right structure, config, and conventions",
13
+ requires: {
14
+ cli: ["init", "dev", "doctor"],
15
+ mcp: ["vf_list_templates", "vf_create_project"],
16
+ },
17
+ inputs: {
18
+ name: { type: "string", description: "Project name" },
19
+ template: {
20
+ type: "string",
21
+ default: "minimal",
22
+ description: "Template to use",
23
+ },
24
+ },
25
+ },
26
+ skillMd: `# Scaffold App
27
+
28
+ Create a new Veryfront application with proper structure and conventions.
29
+
30
+ ## Steps
31
+
32
+ 1. **Discover templates**
33
+ \`\`\`bash
34
+ veryfront schema --json | jq '.commands[] | select(.name == "init")'
35
+ \`\`\`
36
+
37
+ 2. **Create project**
38
+ \`\`\`bash
39
+ veryfront init <name> --template <template> --yes --json
40
+ \`\`\`
41
+ Expected: \`{ "success": true, "command": "init", "data": { "projectDir": "..." } }\`
42
+
43
+ 3. **Verify project health**
44
+ \`\`\`bash
45
+ cd <name>
46
+ veryfront doctor --json
47
+ \`\`\`
48
+
49
+ 4. **Start dev server**
50
+ \`\`\`bash
51
+ veryfront dev
52
+ \`\`\`
53
+
54
+ ## Error Recovery
55
+
56
+ - **init fails**: Check template name, retry with --force
57
+ - **doctor fails**: Fix missing dependencies
58
+ - **dev fails**: Run veryfront clean, then retry`,
59
+ directory: "core:scaffold-app",
60
+ },
61
+ {
62
+ manifest: {
63
+ name: "scaffold-ai-app",
64
+ version: "1.0.0",
65
+ description: "Scaffold a Veryfront app with AI tools, agent definitions, and knowledge base",
66
+ requires: {
67
+ cli: ["init", "dev", "doctor", "workflow"],
68
+ mcp: ["vf_list_templates", "vf_create_project", "vf_scaffold"],
69
+ },
70
+ inputs: {
71
+ name: { type: "string", description: "Project name" },
72
+ provider: {
73
+ type: "string",
74
+ default: "anthropic",
75
+ description: "AI provider to configure",
76
+ },
77
+ },
78
+ },
79
+ skillMd: `# Scaffold AI App
80
+
81
+ Create a Veryfront app with AI capabilities.
82
+
83
+ ## Steps
84
+
85
+ 1. \`veryfront init <name> --template ai --yes --json\`
86
+ 2. \`veryfront install --with ai --yes --json\`
87
+ 3. Use vf_scaffold to generate AI components
88
+ 4. Configure provider API key in .env
89
+ 5. \`veryfront doctor --json\` then \`veryfront dev\`
90
+
91
+ ## Error Recovery
92
+
93
+ - **Missing API key**: Set provider key in .env
94
+ - **Tool generation fails**: Use vf_get_conventions, scaffold manually`,
95
+ directory: "core:scaffold-ai-app",
96
+ },
97
+ {
98
+ manifest: {
99
+ name: "deploy-safely",
100
+ version: "1.0.0",
101
+ description: "Build, test, deploy, and verify — with automatic rollback on failure",
102
+ requires: {
103
+ cli: ["build", "test", "deploy"],
104
+ mcp: ["vf_get_errors"],
105
+ },
106
+ inputs: {
107
+ environment: {
108
+ type: "string",
109
+ default: "production",
110
+ description: "Target environment",
111
+ },
112
+ branch: {
113
+ type: "string",
114
+ default: "main",
115
+ description: "Branch to deploy",
116
+ },
117
+ },
118
+ },
119
+ skillMd: `# Deploy Safely
120
+
121
+ Build, test, deploy, and verify — with rollback on failure.
122
+
123
+ ## Steps
124
+
125
+ 1. \`veryfront build --json\` — abort if success: false
126
+ 2. \`veryfront test --json\` — abort if any test fails
127
+ 3. \`veryfront deploy --env <environment> --branch <branch> --yes --json\`
128
+ 4. Use vf_get_errors to verify no runtime errors after deploy
129
+ 5. If errors: redeploy previous version
130
+
131
+ ## Error Recovery
132
+
133
+ - **Build fails**: Check vf_get_errors, fix and retry
134
+ - **Tests fail**: Read JSON output, fix failing tests
135
+ - **Deploy fails**: Check environment, auth, branch
136
+ - **Post-deploy errors**: Redeploy previous release`,
137
+ directory: "core:deploy-safely",
138
+ },
139
+ {
140
+ manifest: {
141
+ name: "debug-build",
142
+ version: "1.0.0",
143
+ description: "Diagnose and fix build failures using structured error output",
144
+ requires: {
145
+ cli: ["build", "doctor"],
146
+ mcp: ["vf_get_errors", "vf_get_debug_context"],
147
+ },
148
+ },
149
+ skillMd: `# Debug Build
150
+
151
+ Diagnose and fix build failures.
152
+
153
+ ## Steps
154
+
155
+ 1. \`veryfront build --json\` — capture error envelope
156
+ 2. Use vf_get_errors and vf_get_debug_context for details
157
+ 3. Common issues: import resolution, type errors, config errors
158
+ 4. Apply fix, rebuild: \`veryfront build --json\`
159
+ 5. \`veryfront doctor --json\` to verify health
160
+
161
+ ## Error Recovery
162
+
163
+ - **Module not found**: Check deno.json imports map
164
+ - **Type errors**: Run deno check for diagnostics
165
+ - **Config invalid**: Compare against fresh veryfront init`,
166
+ directory: "core:debug-build",
167
+ },
168
+ {
169
+ manifest: {
170
+ name: "debug-runtime",
171
+ version: "1.0.0",
172
+ description: "Diagnose runtime errors by connecting to dev server via MCP",
173
+ requires: {
174
+ cli: ["dev"],
175
+ mcp: ["vf_get_errors", "vf_get_debug_context"],
176
+ },
177
+ },
178
+ skillMd: `# Debug Runtime
179
+
180
+ Diagnose runtime errors via MCP.
181
+
182
+ ## Steps
183
+
184
+ 1. Ensure \`veryfront dev\` is running (MCP on port 9999)
185
+ 2. Use vf_get_errors for current runtime errors
186
+ 3. Use vf_get_debug_context for stack traces
187
+ 4. Read veryfront://logs resource for server logs
188
+ 5. Identify failing route/component, fix source
189
+ 6. HMR auto-reloads; use vf_get_errors to confirm fix
190
+
191
+ ## Error Recovery
192
+
193
+ - **Dev server not running**: Start with veryfront dev
194
+ - **MCP not responding**: Check port 9999, restart
195
+ - **Error persists**: veryfront clean, restart dev`,
196
+ directory: "core:debug-runtime",
197
+ },
198
+ {
199
+ manifest: {
200
+ name: "contribute",
201
+ version: "1.0.0",
202
+ description: "Onboard to veryfront-code — architecture, testing, conventions, PR process",
203
+ requires: {
204
+ cli: ["test", "lint", "schema"],
205
+ mcp: ["vf_get_conventions"],
206
+ },
207
+ },
208
+ skillMd: `# Contribute
209
+
210
+ Onboard to the veryfront-code repository.
211
+
212
+ ## Steps
213
+
214
+ 1. Read AGENTS.md and cli/AGENTS.md for conventions
215
+ 2. Use vf_get_conventions for coding patterns
216
+ 3. \`veryfront schema --json\` to understand available commands
217
+ 4. Follow patterns: hash imports, defineError(), createArgParser()
218
+ 5. \`veryfront test --json\` to run tests
219
+ 6. \`veryfront lint --json\` to lint
220
+ 7. \`deno fmt\` to format
221
+
222
+ ## PR Checklist
223
+
224
+ - Tests pass (veryfront test)
225
+ - Lint clean (veryfront lint)
226
+ - Formatted (deno fmt --check)
227
+ - Commands registered in router.ts AND command-definitions.ts`,
228
+ directory: "core:contribute",
229
+ },
230
+ ];
@@ -0,0 +1,13 @@
1
+ import { type LoadedSkill } from "./types.js";
2
+ export declare function loadSkill(directory: string): Promise<LoadedSkill | null>;
3
+ export declare function listCoreSkills(): Promise<LoadedSkill[]>;
4
+ /**
5
+ * Scan the current working directory for local skill directories.
6
+ * A local skill is any subdirectory containing a skill.json file.
7
+ */
8
+ export declare function listLocalSkills(): Promise<LoadedSkill[]>;
9
+ /**
10
+ * List all skills: core (built-in) + local (in cwd).
11
+ */
12
+ export declare function listAllSkills(): Promise<LoadedSkill[]>;
13
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/cli/skills/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,YAAY,CAAC;AAO9D,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAe7B;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAqB7D;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAgB9D;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAqB5D"}
@@ -0,0 +1,87 @@
1
+ import { createFileSystem } from "../../src/platform/index.js";
2
+ import { cwd } from "../../src/platform/index.js";
3
+ import { parseSkillJson } from "./types.js";
4
+ import { CORE_SKILLS } from "./core-skills.js";
5
+ function getCoreSkillsDir() {
6
+ return new URL("../mcp/skills", globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url).pathname;
7
+ }
8
+ export async function loadSkill(directory) {
9
+ const fs = createFileSystem();
10
+ try {
11
+ const manifestRaw = await fs.readTextFile(`${directory}/skill.json`);
12
+ const manifest = parseSkillJson(JSON.parse(manifestRaw));
13
+ if (!manifest.success)
14
+ return null;
15
+ const skillMd = await fs.readTextFile(`${directory}/SKILL.md`).catch(() => "");
16
+ return { manifest: manifest.data, skillMd, directory };
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ export async function listCoreSkills() {
23
+ const fs = createFileSystem();
24
+ const skills = [];
25
+ const skillsDir = getCoreSkillsDir();
26
+ try {
27
+ for await (const entry of fs.readDir(skillsDir)) {
28
+ if (!entry.isDirectory)
29
+ continue;
30
+ const skill = await loadSkill(`${skillsDir}/${entry.name}`);
31
+ if (skill)
32
+ skills.push(skill);
33
+ }
34
+ }
35
+ catch {
36
+ // Filesystem skills not available (compiled binary) — use embedded
37
+ }
38
+ // Fall back to embedded core skills if none loaded from filesystem
39
+ if (skills.length === 0) {
40
+ return CORE_SKILLS;
41
+ }
42
+ return skills;
43
+ }
44
+ /**
45
+ * Scan the current working directory for local skill directories.
46
+ * A local skill is any subdirectory containing a skill.json file.
47
+ */
48
+ export async function listLocalSkills() {
49
+ const fs = createFileSystem();
50
+ const skills = [];
51
+ const dir = cwd();
52
+ try {
53
+ for await (const entry of fs.readDir(dir)) {
54
+ if (!entry.isDirectory)
55
+ continue;
56
+ const skill = await loadSkill(`${dir}/${entry.name}`);
57
+ if (skill)
58
+ skills.push(skill);
59
+ }
60
+ }
61
+ catch {
62
+ // cwd not readable
63
+ }
64
+ return skills;
65
+ }
66
+ /**
67
+ * List all skills: core (built-in) + local (in cwd).
68
+ */
69
+ export async function listAllSkills() {
70
+ const [core, local] = await Promise.all([
71
+ listCoreSkills(),
72
+ listLocalSkills(),
73
+ ]);
74
+ // Deduplicate by name, local skills override core
75
+ const seen = new Set();
76
+ const result = [];
77
+ for (const skill of local) {
78
+ seen.add(skill.manifest.name);
79
+ result.push(skill);
80
+ }
81
+ for (const skill of core) {
82
+ if (!seen.has(skill.manifest.name)) {
83
+ result.push(skill);
84
+ }
85
+ }
86
+ return result;
87
+ }
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ export declare const SkillManifestSchema: z.ZodObject<{
3
+ name: z.ZodString;
4
+ version: z.ZodString;
5
+ description: z.ZodString;
6
+ requires: z.ZodOptional<z.ZodObject<{
7
+ cli: z.ZodOptional<z.ZodArray<z.ZodString>>;
8
+ mcp: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ }, z.core.$strip>>;
10
+ inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
11
+ type: z.ZodString;
12
+ default: z.ZodOptional<z.ZodUnknown>;
13
+ description: z.ZodOptional<z.ZodString>;
14
+ }, z.core.$strip>>>;
15
+ }, z.core.$strip>;
16
+ export type SkillManifest = z.infer<typeof SkillManifestSchema>;
17
+ export declare function parseSkillJson(raw: unknown): {
18
+ success: true;
19
+ data: SkillManifest;
20
+ } | {
21
+ success: false;
22
+ error: string;
23
+ };
24
+ export interface LoadedSkill {
25
+ manifest: SkillManifest;
26
+ skillMd: string;
27
+ directory: string;
28
+ }
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/skills/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;iBAoB9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,GACX;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAI5E;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ export const SkillManifestSchema = z.object({
3
+ name: z.string(),
4
+ version: z.string(),
5
+ description: z.string(),
6
+ requires: z
7
+ .object({
8
+ cli: z.array(z.string()).optional(),
9
+ mcp: z.array(z.string()).optional(),
10
+ })
11
+ .optional(),
12
+ inputs: z
13
+ .record(z.string(), z.object({
14
+ type: z.string(),
15
+ default: z.unknown().optional(),
16
+ description: z.string().optional(),
17
+ }))
18
+ .optional(),
19
+ });
20
+ export function parseSkillJson(raw) {
21
+ const result = SkillManifestSchema.safeParse(raw);
22
+ if (result.success)
23
+ return { success: true, data: result.data };
24
+ return { success: false, error: result.error.message };
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/index.ts"],"names":[],"mappings":"AAuBA,KAAK,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAMjD,eAAO,MAAM,SAAS,EAAE;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,SAAS,CAAC;IAC/D,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,SAAS,CAAC;CAYhD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAwE,CAAC;AAC7F,eAAO,MAAM,uBAAuB,OAAmB,CAAC;AAExD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqBjD;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAa/B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC9D,IAAI,CAmBN;AAKD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGrD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGnD;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG3D;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuCtD;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,YAAY,UAAQ,GACnB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/index.ts"],"names":[],"mappings":"AAuBA,KAAK,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAMjD,eAAO,MAAM,SAAS,EAAE;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,SAAS,CAAC;IAC/D,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,SAAS,CAAC;CAYhD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAwE,CAAC;AAC7F,eAAO,MAAM,uBAAuB,OAAmB,CAAC;AAExD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqBjD;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAa/B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC9D,IAAI,CAmBN;AAKD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGrD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGnD;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG3D;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuCtD;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,YAAY,UAAQ,GACnB,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C"}
@@ -153,6 +153,9 @@ export function promptPassword(message) {
153
153
  return chars.join("");
154
154
  }
155
155
  export async function confirmPrompt(message, defaultValue = false) {
156
+ const { isInteractive } = await import("../shared/interactive.js");
157
+ if (!isInteractive())
158
+ return true;
156
159
  if (!isTTY())
157
160
  return defaultValue;
158
161
  const hint = defaultValue ? "[Y/n]" : "[y/N]";
package/esm/deno.d.ts CHANGED
@@ -102,6 +102,8 @@ declare namespace _default {
102
102
  "#veryfront/build": string;
103
103
  "#veryfront/cache": string;
104
104
  "#cli/shared/args": string;
105
+ "#cli/shared/json-output": string;
106
+ "#cli/shared/interactive": string;
105
107
  "#cli/shared/types": string;
106
108
  "#cli/shared/constants": string;
107
109
  "#cli/shared/config": string;
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.111",
3
+ "version": "0.1.113",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "exclude": [
@@ -112,6 +112,8 @@ export default {
112
112
  "#veryfront/build": "./src/build/index.ts",
113
113
  "#veryfront/cache": "./src/cache/index.ts",
114
114
  "#cli/shared/args": "./cli/shared/args.ts",
115
+ "#cli/shared/json-output": "./cli/shared/json-output.ts",
116
+ "#cli/shared/interactive": "./cli/shared/interactive.ts",
115
117
  "#cli/shared/types": "./cli/shared/types.ts",
116
118
  "#cli/shared/constants": "./cli/shared/constants.ts",
117
119
  "#cli/shared/config": "./cli/shared/config.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"dev-scripts.d.ts","sourceRoot":"","sources":["../../../src/src/html/dev-scripts.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CA+BnD;AAMD,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAOnE;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAwBrE"}
1
+ {"version":3,"file":"dev-scripts.d.ts","sourceRoot":"","sources":["../../../src/src/html/dev-scripts.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CA+BnD;AAMD,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAOnE;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAwBrE"}
@@ -1,5 +1,6 @@
1
+ import { escapeHtml } from "./html-escape.js";
1
2
  export function getDevStyles(nonce) {
2
- const nonceAttr = nonce ? ` nonce="${nonce}"` : "";
3
+ const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
3
4
  return `
4
5
  <style${nonceAttr}>
5
6
  .dev-indicator {
@@ -30,7 +31,7 @@ export function getDevStyles(nonce) {
30
31
  </style>`;
31
32
  }
32
33
  function getNonceAttr(nonce) {
33
- return nonce ? ` nonce="${nonce}"` : "";
34
+ return nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
34
35
  }
35
36
  export function getDevScripts(_hmrPort, nonce) {
36
37
  const nonceAttr = getNonceAttr(nonce);
@@ -1 +1 @@
1
- {"version":3,"file":"html-injection.d.ts","sourceRoot":"","sources":["../../../src/src/html/html-injection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAS/D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,wBAAwB,GAChC,MAAM,CAoFR"}
1
+ {"version":3,"file":"html-injection.d.ts","sourceRoot":"","sources":["../../../src/src/html/html-injection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAU/D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,wBAAwB,GAChC,MAAM,CAoFR"}
@@ -1,4 +1,5 @@
1
1
  import { generateLinkTags, generateMetaTags, generateScriptTags, generateStyleTags, } from "./tag-generators.js";
2
+ import { escapeHtml } from "./html-escape.js";
2
3
  import { getDevScripts, getDevStyles, getProdScripts, getStudioScripts } from "./dev-scripts.js";
3
4
  export function injectHTMLContent(template, content, metadata, options) {
4
5
  let html = template;
@@ -19,7 +20,7 @@ export function injectHTMLContent(template, content, metadata, options) {
19
20
  }
20
21
  // Inject import map into <head> for ESM module resolution (must be before any module scripts)
21
22
  if (options.importMapJson && /<\/head>/i.test(html)) {
22
- const nonceAttr = options.nonce ? ` nonce="${options.nonce}"` : "";
23
+ const nonceAttr = options.nonce ? ` nonce="${escapeHtml(options.nonce)}"` : "";
23
24
  const importMapTag = `<script type="importmap"${nonceAttr}>\n${options.importMapJson}\n</script>`;
24
25
  html = html.replace(/<\/head>/i, `${importMapTag}\n</head>`);
25
26
  }
@@ -133,7 +133,7 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
133
133
  const criticalDepsPreload = jsxRuntimeUrl
134
134
  ? `<link rel="modulepreload" href="${jsxRuntimeUrl}">`
135
135
  : "";
136
- const nonceAttr = nonce ? ` nonce="${nonce}"` : "";
136
+ const nonceAttr = nonce ? ` nonce="${escapeHTML(nonce)}"` : "";
137
137
  // Expose project slug for runtime error overlay "Fix in Veryfront" button
138
138
  const overlaySlug = options.projectId || meta.slug;
139
139
  const slugForOverlay = useDevScripts && overlaySlug
@@ -1 +1 @@
1
- {"version":3,"file":"dev-client-renderer.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-client-renderer.ts"],"names":[],"mappings":"AAEA,wBAAgB,+BAA+B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CActE"}
1
+ {"version":3,"file":"dev-client-renderer.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-client-renderer.ts"],"names":[],"mappings":"AAGA,wBAAgB,+BAA+B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CActE"}
@@ -1,6 +1,7 @@
1
1
  import { getLoaderScript, getRendererScript, getRouterScript } from "./templates/index.js";
2
+ import { escapeHtml } from "../html-escape.js";
2
3
  export function generateDevClientRendererScript(nonce) {
3
- const nonceAttr = nonce ? ` nonce="${nonce}"` : "";
4
+ const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
4
5
  return `
5
6
  <script type="module"${nonceAttr}>
6
7
  import * as React from 'react';
@@ -1 +1 @@
1
- {"version":3,"file":"dev-component-manifest.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-component-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,eAAe,EACvB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAQR"}
1
+ {"version":3,"file":"dev-component-manifest.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-component-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,eAAe,EACvB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAQR"}
@@ -1,5 +1,6 @@
1
+ import { escapeHtml } from "../html-escape.js";
1
2
  export function generateDevComponentManifestScript(config, nonce) {
2
- const nonceAttr = nonce ? ` nonce="${nonce}"` : "";
3
+ const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
3
4
  const components = config.dev?.components ?? [];
4
5
  return `
5
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":"AAIA,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":"AAMA,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAyDnE"}
@@ -1,5 +1,6 @@
1
+ import { escapeHtml } from "../html-escape.js";
1
2
  function getOpenScriptTag(nonce) {
2
- return nonce ? `<script nonce="${nonce}">` : "<script>";
3
+ return nonce ? `<script nonce="${escapeHtml(nonce)}">` : "<script>";
3
4
  }
4
5
  export function generateDevErrorLoggerScript(nonce) {
5
6
  const openScriptTag = getOpenScriptTag(nonce);
@@ -1 +1 @@
1
- {"version":3,"file":"dev-scripts.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAiB7D,UAAU,iBAAiB;IACzB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAC3C,MAAM,CAAC,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,CAaR"}
1
+ {"version":3,"file":"dev-scripts.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAkB7D,UAAU,iBAAiB;IACzB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAC3C,MAAM,CAAC,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,CAaR"}
@@ -1,3 +1,4 @@
1
+ import { escapeHtml } from "../html-escape.js";
1
2
  import { generateDevErrorLoggerScript } from "./dev-error-logger.js";
2
3
  import { generateDevComponentManifestScript } from "./dev-component-manifest.js";
3
4
  import { generateDevClientRendererScript } from "./dev-client-renderer.js";
@@ -5,7 +6,7 @@ function generateHMRScript(config, nonce, skipDevHMR) {
5
6
  // Skip dev HMR script when preview-hmr.js will be used instead
6
7
  if (skipDevHMR || !config.dev?.hmr)
7
8
  return "";
8
- const nonceAttr = nonce ? ` nonce="${nonce}"` : "";
9
+ const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
9
10
  return `<script type="module" src="/_veryfront/hmr.js"${nonceAttr}></script>`;
10
11
  }
11
12
  export function getDevScripts(_slug, config, _params, _props, nonce, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"prod-hydration.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/prod-hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAC3C,KAAK,CAAC,EAAE,cAAc,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAgCR"}
1
+ {"version":3,"file":"prod-hydration.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/prod-hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAC3C,KAAK,CAAC,EAAE,cAAc,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAgCR"}
@@ -1,5 +1,6 @@
1
+ import { escapeHtml } from "../html-escape.js";
1
2
  export function generateProdHydrationScript(slug, _params, props, nonce) {
2
- const nonceAttr = nonce ? ` nonce="${nonce}"` : "";
3
+ const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
3
4
  const pageProps = JSON.stringify(props ?? {});
4
5
  return `
5
6
  <script type="module"${nonceAttr}>
@@ -1 +1 @@
1
- {"version":3,"file":"prod-scripts.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/prod-scripts.ts"],"names":[],"mappings":"AAEA,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,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,6 +1,7 @@
1
1
  import { getLoaderScript, getRendererScript, getRouterScript } from "./templates/index.js";
2
+ import { escapeHtml } from "../html-escape.js";
2
3
  export function getProdScripts(_slug, _params, _props, nonce) {
3
- const nonceAttr = nonce ? ` nonce="${nonce}"` : "";
4
+ const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
4
5
  return `
5
6
  <script type="module"${nonceAttr}>
6
7
  import * as React from 'react';
@@ -1 +1 @@
1
- {"version":3,"file":"dev-styles.d.ts","sourceRoot":"","sources":["../../../../src/src/html/styles-builder/dev-styles.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBnD"}
1
+ {"version":3,"file":"dev-styles.d.ts","sourceRoot":"","sources":["../../../../src/src/html/styles-builder/dev-styles.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBnD"}
@@ -1,6 +1,7 @@
1
1
  import { Z_INDEX_ERROR_OVERLAY } from "../../utils/index.js";
2
+ import { escapeHtml } from "../html-escape.js";
2
3
  export function getDevStyles(nonce) {
3
- const nonceAttr = nonce ? ` nonce="${nonce}"` : "";
4
+ const nonceAttr = nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
4
5
  return `
5
6
  <style${nonceAttr}>
6
7
  #veryfront-error-overlay {
@@ -7,6 +7,11 @@
7
7
  * @module module-system/react-loader/ssr-module-loader/http-bundle-helpers
8
8
  */
9
9
  import { LRUCache } from "../../../utils/lru-wrapper.js";
10
+ /**
11
+ * Visit VF module code blocks imported by the given module, including nested VF modules.
12
+ * The visitor receives both the module code and the absolute vfmod file path.
13
+ */
14
+ export declare function visitImportedVfModules(code: string, visitor: (vfModuleCode: string, vfModulePath?: string) => void | Promise<void>): Promise<void>;
10
15
  /**
11
16
  * Recursively extract all HTTP bundle paths from code and any VF modules it imports.
12
17
  * This ensures transitive HTTP bundle dependencies through VF modules are discovered.
@@ -27,6 +32,11 @@ export declare function extractHttpBundlePaths(code: string): Array<{
27
32
  * other pods with different temp directories.
28
33
  */
29
34
  export declare function extractAllFilePaths(code: string): string[];
35
+ /**
36
+ * Extract all file:// paths from cached code and any transitively imported VF modules.
37
+ * This catches stale pod-local paths that only appear in nested vfmod dependencies.
38
+ */
39
+ export declare function extractAllFilePathsRecursive(code: string): Promise<string[]>;
30
40
  /**
31
41
  * Track modules whose HTTP bundles have been verified, keyed by tempPath:contentHash.
32
42
  * Bounded LRU to prevent unbounded memory growth in long-running pods.
@@ -1 +1 @@
1
- {"version":3,"file":"http-bundle-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/src/modules/react-loader/ssr-module-loader/http-bundle-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AA2BzD;;;GAGG;AACH,wBAAsB,kCAAkC,CACtD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAmDhD;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B1F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB1D;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,wBAElC,CAAC"}
1
+ {"version":3,"file":"http-bundle-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/src/modules/react-loader/ssr-module-loader/http-bundle-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AA2BzD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC7E,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;;GAGG;AACH,wBAAsB,kCAAkC,CACtD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAyBhD;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B1F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB1D;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBlF;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,wBAElC,CAAC"}