veryfront 0.1.324 → 0.1.327

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 (277) hide show
  1. package/esm/cli/commands/extension/init-command.js +2 -2
  2. package/esm/cli/commands/extension/validate-command.js +1 -1
  3. package/esm/deno.d.ts +7 -0
  4. package/esm/deno.js +8 -1
  5. package/esm/deps/esm.sh/react-dom@19.2.4/client.d.ts +2 -0
  6. package/esm/deps/esm.sh/react-dom@19.2.4/client.d.ts.map +1 -0
  7. package/esm/deps/esm.sh/react-dom@19.2.4/client.js +5 -0
  8. package/esm/deps/esm.sh/scheduler@^0.27.0.d.ts +2 -0
  9. package/esm/deps/esm.sh/scheduler@^0.27.0.d.ts.map +1 -0
  10. package/esm/deps/esm.sh/scheduler@^0.27.0.js +3 -0
  11. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.d.ts +30 -0
  12. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.d.ts.map +1 -0
  13. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.js +47 -0
  14. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.d.ts +29 -0
  15. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.js +65 -0
  17. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.d.ts +17 -0
  18. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.js +23 -0
  20. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.d.ts +26 -0
  21. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.js +30 -0
  23. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.d.ts +25 -0
  24. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.js +194 -0
  26. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.d.ts +37 -0
  27. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.js +61 -0
  29. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.d.ts +18 -0
  30. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.js +27 -0
  32. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.d.ts +15 -0
  33. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.js +20 -0
  35. package/esm/deps/jsr.io/@std/assert/1.0.19/false.d.ts +19 -0
  36. package/esm/deps/jsr.io/@std/assert/1.0.19/false.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/assert/1.0.19/false.js +23 -0
  38. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.d.ts +20 -0
  39. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.d.ts.map +1 -0
  40. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.js +29 -0
  41. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.d.ts +20 -0
  42. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.d.ts.map +1 -0
  43. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.js +29 -0
  44. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.d.ts +23 -0
  45. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.d.ts.map +1 -0
  46. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.js +52 -0
  47. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.d.ts +25 -0
  48. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.d.ts.map +1 -0
  49. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.js +53 -0
  50. package/esm/deps/jsr.io/@std/assert/1.0.19/less.d.ts +19 -0
  51. package/esm/deps/jsr.io/@std/assert/1.0.19/less.d.ts.map +1 -0
  52. package/esm/deps/jsr.io/@std/assert/1.0.19/less.js +28 -0
  53. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.d.ts +20 -0
  54. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.d.ts.map +1 -0
  55. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.js +29 -0
  56. package/esm/deps/jsr.io/@std/assert/1.0.19/match.d.ts +18 -0
  57. package/esm/deps/jsr.io/@std/assert/1.0.19/match.d.ts.map +1 -0
  58. package/esm/deps/jsr.io/@std/assert/1.0.19/match.js +26 -0
  59. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.d.ts +44 -0
  60. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.d.ts.map +1 -0
  61. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.js +45 -0
  62. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.d.ts +27 -0
  63. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.d.ts.map +1 -0
  64. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.js +39 -0
  65. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.d.ts +20 -0
  66. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.d.ts.map +1 -0
  67. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.js +29 -0
  68. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.d.ts +18 -0
  69. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.d.ts.map +1 -0
  70. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.js +26 -0
  71. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.d.ts +23 -0
  72. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.d.ts.map +1 -0
  73. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.js +32 -0
  74. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.d.ts +29 -0
  75. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.d.ts.map +1 -0
  76. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.js +177 -0
  77. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.d.ts +42 -0
  78. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.d.ts.map +1 -0
  79. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.js +53 -0
  80. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.d.ts +24 -0
  81. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.d.ts.map +1 -0
  82. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.js +58 -0
  83. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.d.ts +18 -0
  84. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.d.ts.map +1 -0
  85. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.js +26 -0
  86. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.d.ts +45 -0
  87. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.d.ts.map +1 -0
  88. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.js +44 -0
  89. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.d.ts +15 -0
  90. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.d.ts.map +1 -0
  91. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.js +20 -0
  92. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.d.ts +15 -0
  93. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.d.ts.map +1 -0
  94. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.js +20 -0
  95. package/esm/deps/jsr.io/@std/internal/1.0.13/assertion_state.d.ts +150 -0
  96. package/esm/deps/jsr.io/@std/internal/1.0.13/assertion_state.d.ts.map +1 -0
  97. package/esm/deps/jsr.io/@std/internal/1.0.13/assertion_state.js +224 -0
  98. package/esm/deps/jsr.io/@std/internal/1.0.13/build_message.d.ts +80 -0
  99. package/esm/deps/jsr.io/@std/internal/1.0.13/build_message.d.ts.map +1 -0
  100. package/esm/deps/jsr.io/@std/internal/1.0.13/build_message.js +116 -0
  101. package/esm/deps/jsr.io/@std/internal/1.0.13/diff.d.ts +140 -0
  102. package/esm/deps/jsr.io/@std/internal/1.0.13/diff.d.ts.map +1 -0
  103. package/esm/deps/jsr.io/@std/internal/1.0.13/diff.js +276 -0
  104. package/esm/deps/jsr.io/@std/internal/1.0.13/diff_str.d.ts +99 -0
  105. package/esm/deps/jsr.io/@std/internal/1.0.13/diff_str.d.ts.map +1 -0
  106. package/esm/deps/jsr.io/@std/internal/1.0.13/diff_str.js +182 -0
  107. package/esm/deps/jsr.io/@std/internal/1.0.13/format.d.ts +29 -0
  108. package/esm/deps/jsr.io/@std/internal/1.0.13/format.d.ts.map +1 -0
  109. package/esm/deps/jsr.io/@std/internal/1.0.13/format.js +70 -0
  110. package/esm/deps/jsr.io/@std/internal/1.0.13/styles.d.ts +159 -0
  111. package/esm/deps/jsr.io/@std/internal/1.0.13/styles.d.ts.map +1 -0
  112. package/esm/deps/jsr.io/@std/internal/1.0.13/styles.js +207 -0
  113. package/esm/deps/jsr.io/@std/internal/1.0.13/types.d.ts +25 -0
  114. package/esm/deps/jsr.io/@std/internal/1.0.13/types.d.ts.map +1 -0
  115. package/esm/deps/jsr.io/@std/internal/1.0.13/types.js +3 -0
  116. package/esm/deps/jsr.io/@std/testing/1.0.18/_test_suite.d.ts +80 -0
  117. package/esm/deps/jsr.io/@std/testing/1.0.18/_test_suite.d.ts.map +1 -0
  118. package/esm/deps/jsr.io/@std/testing/1.0.18/_test_suite.js +348 -0
  119. package/esm/deps/jsr.io/@std/testing/1.0.18/bdd.d.ts +738 -0
  120. package/esm/deps/jsr.io/@std/testing/1.0.18/bdd.d.ts.map +1 -0
  121. package/esm/deps/jsr.io/@std/testing/1.0.18/bdd.js +656 -0
  122. package/esm/src/agent/fork-runtime-stream.d.ts +143 -0
  123. package/esm/src/agent/fork-runtime-stream.d.ts.map +1 -0
  124. package/esm/src/agent/fork-runtime-stream.js +505 -0
  125. package/esm/src/agent/hosted-child-fork-stream-execution.d.ts +130 -0
  126. package/esm/src/agent/hosted-child-fork-stream-execution.d.ts.map +1 -0
  127. package/esm/src/agent/hosted-child-fork-stream-execution.js +391 -0
  128. package/esm/src/agent/index.d.ts +2 -0
  129. package/esm/src/agent/index.d.ts.map +1 -1
  130. package/esm/src/agent/index.js +2 -0
  131. package/esm/src/chat/conversation.d.ts +5 -5
  132. package/esm/src/chat/final-step-fallback.js +2 -2
  133. package/esm/src/modules/index.d.ts +12 -0
  134. package/esm/src/modules/index.d.ts.map +1 -0
  135. package/esm/src/modules/index.js +10 -0
  136. package/esm/src/modules/module-resolver.d.ts +28 -0
  137. package/esm/src/modules/module-resolver.d.ts.map +1 -0
  138. package/esm/src/modules/module-resolver.js +106 -0
  139. package/esm/src/rendering/cleanup.d.ts +7 -0
  140. package/esm/src/rendering/cleanup.d.ts.map +1 -0
  141. package/esm/src/rendering/cleanup.js +22 -0
  142. package/esm/src/rendering/ssr/index.d.ts +10 -0
  143. package/esm/src/rendering/ssr/index.d.ts.map +1 -0
  144. package/esm/src/rendering/ssr/index.js +8 -0
  145. package/esm/src/rendering/ssr/mdx-module-loader.d.ts +5 -0
  146. package/esm/src/rendering/ssr/mdx-module-loader.d.ts.map +1 -0
  147. package/esm/src/rendering/ssr/mdx-module-loader.js +150 -0
  148. package/esm/src/rendering/ssr/mdx-renderer.d.ts +4 -0
  149. package/esm/src/rendering/ssr/mdx-renderer.d.ts.map +1 -0
  150. package/esm/src/rendering/ssr/mdx-renderer.js +44 -0
  151. package/esm/src/rendering/ssr/types.d.ts +13 -0
  152. package/esm/src/rendering/ssr/types.d.ts.map +1 -0
  153. package/esm/src/rendering/ssr/types.js +1 -0
  154. package/esm/src/sandbox/index.d.ts +1 -0
  155. package/esm/src/sandbox/index.d.ts.map +1 -1
  156. package/esm/src/sandbox/index.js +1 -0
  157. package/esm/src/sandbox/shell-tools.d.ts +39 -0
  158. package/esm/src/sandbox/shell-tools.d.ts.map +1 -0
  159. package/esm/src/sandbox/shell-tools.js +177 -0
  160. package/esm/src/server/shared/index.d.ts +7 -0
  161. package/esm/src/server/shared/index.d.ts.map +1 -0
  162. package/esm/src/server/shared/index.js +6 -0
  163. package/esm/src/testing/assert.d.ts +22 -0
  164. package/esm/src/testing/assert.d.ts.map +1 -0
  165. package/esm/src/testing/assert.js +217 -0
  166. package/esm/src/testing/bdd.d.ts +67 -0
  167. package/esm/src/testing/bdd.d.ts.map +1 -0
  168. package/esm/src/testing/bdd.js +401 -0
  169. package/esm/src/testing/deno-compat.d.ts +26 -0
  170. package/esm/src/testing/deno-compat.d.ts.map +1 -0
  171. package/esm/src/testing/deno-compat.js +146 -0
  172. package/esm/src/testing/index.d.ts +28 -0
  173. package/esm/src/testing/index.d.ts.map +1 -0
  174. package/esm/src/testing/index.js +27 -0
  175. package/esm/src/testing/init.d.ts +2 -0
  176. package/esm/src/testing/init.d.ts.map +1 -0
  177. package/esm/src/testing/init.js +18 -0
  178. package/esm/src/testing/isolation.d.ts +30 -0
  179. package/esm/src/testing/isolation.d.ts.map +1 -0
  180. package/esm/src/testing/isolation.js +151 -0
  181. package/esm/src/testing/timing.d.ts +4 -0
  182. package/esm/src/testing/timing.d.ts.map +1 -0
  183. package/esm/src/testing/timing.js +22 -0
  184. package/esm/src/testing/utils.d.ts +6 -0
  185. package/esm/src/testing/utils.d.ts.map +1 -0
  186. package/esm/src/testing/utils.js +49 -0
  187. package/esm/src/types/global-guards.d.ts +11 -0
  188. package/esm/src/types/global-guards.d.ts.map +1 -0
  189. package/esm/src/types/global-guards.js +12 -0
  190. package/esm/src/utils/cache/keys/namespace.d.ts +3 -0
  191. package/esm/src/utils/cache/keys/namespace.d.ts.map +1 -0
  192. package/esm/src/utils/cache/keys/namespace.js +19 -0
  193. package/esm/src/utils/clsx.d.ts +3 -3
  194. package/esm/src/utils/clsx.d.ts.map +1 -1
  195. package/esm/src/utils/clsx.js +2 -3
  196. package/esm/src/utils/mime-types.d.ts +0 -6
  197. package/esm/src/utils/mime-types.d.ts.map +1 -1
  198. package/esm/src/utils/mime-types.js +0 -1
  199. package/esm/src/utils/version-constant.d.ts +1 -1
  200. package/esm/src/utils/version-constant.js +1 -1
  201. package/package.json +14 -1
  202. package/src/cli/commands/extension/init-command.ts +2 -2
  203. package/src/cli/commands/extension/validate-command.ts +1 -1
  204. package/src/deno.js +8 -1
  205. package/src/deps/esm.sh/@types/react-dom@19.2.3/client.d.ts +105 -0
  206. package/src/deps/esm.sh/@types/react@19.2.14/global.d.ts +166 -0
  207. package/src/deps/esm.sh/@types/react@19.2.14/index.d.ts +4370 -0
  208. package/src/deps/esm.sh/@types/scheduler@0.26.0/index.d.ts +30 -0
  209. package/src/deps/esm.sh/csstype@3.2.3/index.d.ts +22569 -0
  210. package/src/deps/esm.sh/react-dom@19.2.4/client.d.ts +105 -0
  211. package/src/deps/esm.sh/react-dom@19.2.4/client.js +5 -0
  212. package/src/deps/esm.sh/scheduler@^0.27.0.d.ts +30 -0
  213. package/src/deps/esm.sh/scheduler@^0.27.0.js +3 -0
  214. package/src/deps/jsr.io/@std/assert/1.0.19/almost_equals.ts +56 -0
  215. package/src/deps/jsr.io/@std/assert/1.0.19/array_includes.ts +76 -0
  216. package/src/deps/jsr.io/@std/assert/1.0.19/assert.ts +24 -0
  217. package/src/deps/jsr.io/@std/assert/1.0.19/assertion_error.ts +31 -0
  218. package/src/deps/jsr.io/@std/assert/1.0.19/equal.ts +226 -0
  219. package/src/deps/jsr.io/@std/assert/1.0.19/equals.ts +68 -0
  220. package/src/deps/jsr.io/@std/assert/1.0.19/exists.ts +31 -0
  221. package/src/deps/jsr.io/@std/assert/1.0.19/fail.ts +21 -0
  222. package/src/deps/jsr.io/@std/assert/1.0.19/false.ts +27 -0
  223. package/src/deps/jsr.io/@std/assert/1.0.19/greater.ts +30 -0
  224. package/src/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.ts +36 -0
  225. package/src/deps/jsr.io/@std/assert/1.0.19/instance_of.ts +64 -0
  226. package/src/deps/jsr.io/@std/assert/1.0.19/is_error.ts +65 -0
  227. package/src/deps/jsr.io/@std/assert/1.0.19/less.ts +29 -0
  228. package/src/deps/jsr.io/@std/assert/1.0.19/less_or_equal.ts +36 -0
  229. package/src/deps/jsr.io/@std/assert/1.0.19/match.ts +30 -0
  230. package/src/deps/jsr.io/@std/assert/1.0.19/mod.ts +47 -0
  231. package/src/deps/jsr.io/@std/assert/1.0.19/not_equals.ts +43 -0
  232. package/src/deps/jsr.io/@std/assert/1.0.19/not_instance_of.ts +33 -0
  233. package/src/deps/jsr.io/@std/assert/1.0.19/not_match.ts +30 -0
  234. package/src/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.ts +42 -0
  235. package/src/deps/jsr.io/@std/assert/1.0.19/object_match.ts +224 -0
  236. package/src/deps/jsr.io/@std/assert/1.0.19/rejects.ts +123 -0
  237. package/src/deps/jsr.io/@std/assert/1.0.19/strict_equals.ts +68 -0
  238. package/src/deps/jsr.io/@std/assert/1.0.19/string_includes.ts +30 -0
  239. package/src/deps/jsr.io/@std/assert/1.0.19/throws.ts +111 -0
  240. package/src/deps/jsr.io/@std/assert/1.0.19/unimplemented.ts +21 -0
  241. package/src/deps/jsr.io/@std/assert/1.0.19/unreachable.ts +21 -0
  242. package/src/deps/jsr.io/@std/internal/1.0.13/assertion_state.ts +248 -0
  243. package/src/deps/jsr.io/@std/internal/1.0.13/build_message.ts +147 -0
  244. package/src/deps/jsr.io/@std/internal/1.0.13/diff.ts +317 -0
  245. package/src/deps/jsr.io/@std/internal/1.0.13/diff_str.ts +208 -0
  246. package/src/deps/jsr.io/@std/internal/1.0.13/format.ts +89 -0
  247. package/src/deps/jsr.io/@std/internal/1.0.13/styles.ts +233 -0
  248. package/src/deps/jsr.io/@std/internal/1.0.13/types.ts +30 -0
  249. package/src/deps/jsr.io/@std/testing/1.0.18/_test_suite.ts +461 -0
  250. package/src/deps/jsr.io/@std/testing/1.0.18/bdd.ts +1294 -0
  251. package/src/src/agent/fork-runtime-stream.ts +780 -0
  252. package/src/src/agent/hosted-child-fork-stream-execution.ts +579 -0
  253. package/src/src/agent/index.ts +26 -0
  254. package/src/src/chat/final-step-fallback.ts +2 -2
  255. package/src/src/modules/index.ts +43 -0
  256. package/src/src/modules/module-resolver.ts +145 -0
  257. package/src/src/rendering/cleanup.ts +27 -0
  258. package/src/src/rendering/ssr/index.ts +10 -0
  259. package/src/src/rendering/ssr/mdx-module-loader.ts +185 -0
  260. package/src/src/rendering/ssr/mdx-renderer.ts +66 -0
  261. package/src/src/rendering/ssr/types.ts +14 -0
  262. package/src/src/sandbox/index.ts +9 -0
  263. package/src/src/sandbox/shell-tools.ts +242 -0
  264. package/src/src/server/shared/index.ts +12 -0
  265. package/src/src/testing/assert.ts +352 -0
  266. package/src/src/testing/bdd.ts +618 -0
  267. package/src/src/testing/deno-compat.ts +206 -0
  268. package/src/src/testing/index.ts +92 -0
  269. package/src/src/testing/init.ts +21 -0
  270. package/src/src/testing/isolation.ts +177 -0
  271. package/src/src/testing/timing.ts +27 -0
  272. package/src/src/testing/utils.ts +44 -0
  273. package/src/src/types/global-guards.ts +21 -0
  274. package/src/src/utils/cache/keys/namespace.ts +25 -0
  275. package/src/src/utils/clsx.ts +2 -4
  276. package/src/src/utils/mime-types.ts +0 -2
  277. package/src/src/utils/version-constant.ts +1 -1
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Test isolation utilities for cross-runtime execution.
3
+ *
4
+ * Provides default cleanup hooks to reduce cross-test leakage,
5
+ * especially in Bun where module caching and shared globals
6
+ * can cause flakiness.
7
+ *
8
+ * @module
9
+ */
10
+ type CleanupTask = () => void | Promise<void>;
11
+ export declare function registerTestCleanup(task: CleanupTask): void;
12
+ /**
13
+ * Comprehensive reset of ALL test state across the application.
14
+ *
15
+ * This function clears all known caches and singletons that can cause
16
+ * test isolation issues when running tests in parallel. It should be
17
+ * called at the start and end of each test to ensure clean state.
18
+ *
19
+ * Includes:
20
+ * - Config state (_environmentConfig, runtimeConfig, configCache)
21
+ * - Layout discovery cache
22
+ * - SSR module caches
23
+ * - React cache and compat hooks
24
+ * - Snippet cache
25
+ * - API handler state
26
+ * - Reload notifier
27
+ */
28
+ export declare function resetAllTestState(): Promise<void>;
29
+ export {};
30
+ //# sourceMappingURL=isolation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation.d.ts","sourceRoot":"","sources":["../../../src/src/testing/isolation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,KAAK,WAAW,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAQ9C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAE3D;AAwBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkHvD"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Test isolation utilities for cross-runtime execution.
3
+ *
4
+ * Provides default cleanup hooks to reduce cross-test leakage,
5
+ * especially in Bun where module caching and shared globals
6
+ * can cause flakiness.
7
+ *
8
+ * @module
9
+ */
10
+ import { isBun } from "../platform/compat/runtime.js";
11
+ const cleanupTasks = new Set();
12
+ export function registerTestCleanup(task) {
13
+ cleanupTasks.add(task);
14
+ }
15
+ async function runBestEffortCleanups(cleanups) {
16
+ for (const { label, task } of cleanups) {
17
+ try {
18
+ await task();
19
+ }
20
+ catch (error) {
21
+ console.debug(`resetAllTestState ${label} failed`, error);
22
+ }
23
+ }
24
+ }
25
+ async function runRegisteredCleanups() {
26
+ const tasks = Array.from(cleanupTasks);
27
+ cleanupTasks.clear();
28
+ await runBestEffortCleanups(tasks.map((task) => ({
29
+ label: "registered cleanup",
30
+ task,
31
+ })));
32
+ }
33
+ /**
34
+ * Comprehensive reset of ALL test state across the application.
35
+ *
36
+ * This function clears all known caches and singletons that can cause
37
+ * test isolation issues when running tests in parallel. It should be
38
+ * called at the start and end of each test to ensure clean state.
39
+ *
40
+ * Includes:
41
+ * - Config state (_environmentConfig, runtimeConfig, configCache)
42
+ * - Layout discovery cache
43
+ * - SSR module caches
44
+ * - React cache and compat hooks
45
+ * - Snippet cache
46
+ * - API handler state
47
+ * - Reload notifier
48
+ */
49
+ export async function resetAllTestState() {
50
+ await runRegisteredCleanups();
51
+ const cleanupSteps = [
52
+ // Config state - CRITICAL for test isolation
53
+ {
54
+ label: "config cache cleanup",
55
+ task: async () => {
56
+ const { clearConfigCache } = await import("../config/loader.js");
57
+ clearConfigCache();
58
+ },
59
+ },
60
+ {
61
+ label: "environment config cleanup",
62
+ task: async () => {
63
+ const { _resetEnvironmentConfig } = await import("../config/environment-config.js");
64
+ _resetEnvironmentConfig();
65
+ },
66
+ },
67
+ {
68
+ label: "runtime config cleanup",
69
+ task: async () => {
70
+ const { _resetRuntimeConfig } = await import("../config/runtime-config.js");
71
+ _resetRuntimeConfig();
72
+ },
73
+ },
74
+ // Layout discovery cache - prevents stale layouts across tests
75
+ {
76
+ label: "layout discovery cleanup",
77
+ task: async () => {
78
+ const { clearLayoutDiscoveryCache } = await import("../rendering/layouts/utils/discovery.js");
79
+ clearLayoutDiscoveryCache();
80
+ },
81
+ },
82
+ // SSR module caches
83
+ {
84
+ label: "SSR module cache cleanup",
85
+ task: async () => {
86
+ const { clearSSRModuleCache } = await import("../modules/index.js");
87
+ clearSSRModuleCache();
88
+ },
89
+ },
90
+ // React cache and compat hooks
91
+ {
92
+ label: "React cache cleanup",
93
+ task: async () => {
94
+ const { resetReactCache } = await import("../react/compat/ssr-adapter/server-loader.js");
95
+ resetReactCache();
96
+ },
97
+ },
98
+ {
99
+ label: "compat hooks cleanup",
100
+ task: async () => {
101
+ const { resetCompatHooksContext } = await import("../react/compat/hooks-adapter.js");
102
+ resetCompatHooksContext();
103
+ },
104
+ },
105
+ // Snippet cache
106
+ {
107
+ label: "snippet cache cleanup",
108
+ task: async () => {
109
+ const { clearSnippetCache } = await import("../rendering/snippet-renderer.js");
110
+ clearSnippetCache();
111
+ },
112
+ },
113
+ // API handler state
114
+ {
115
+ label: "API handler cleanup",
116
+ task: async () => {
117
+ const { resetApiHandler } = await import("../server/handlers/request/api/index.js");
118
+ await resetApiHandler();
119
+ },
120
+ },
121
+ // Reload notifier
122
+ {
123
+ label: "reload notifier cleanup",
124
+ task: async () => {
125
+ const { ReloadNotifier } = await import("../server/reload-notifier.js");
126
+ ReloadNotifier.reset();
127
+ },
128
+ },
129
+ // HTTP module in-flight fetches - prevents test interference from shared promises
130
+ {
131
+ label: "HTTP in-flight fetch cleanup",
132
+ task: async () => {
133
+ const { __clearInFlightHttpFetches } = await import("../transforms/esm/http-cache.js");
134
+ __clearInFlightHttpFetches();
135
+ },
136
+ },
137
+ ];
138
+ await runBestEffortCleanups(cleanupSteps);
139
+ // Bun-specific cleanup
140
+ if (isBun) {
141
+ await runBestEffortCleanups([
142
+ {
143
+ label: "bundler cleanup",
144
+ task: async () => {
145
+ const { cleanupBundler } = await import("../rendering/cleanup.js");
146
+ await cleanupBundler();
147
+ },
148
+ },
149
+ ]);
150
+ }
151
+ }
@@ -0,0 +1,4 @@
1
+ export declare function getTestTimeScale(): number;
2
+ export declare function scaleMs(ms: number, minMs?: number): number;
3
+ export declare function testDelay(ms: number): Promise<void>;
4
+ //# sourceMappingURL=timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../src/src/testing/timing.ts"],"names":[],"mappings":"AAeA,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAErD;AAGD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnD"}
@@ -0,0 +1,22 @@
1
+ import * as dntShim from "../../_dnt.shims.js";
2
+ import { getEnv } from "../platform/compat/process.js";
3
+ const DEFAULT_SCALE = 1;
4
+ function readScale() {
5
+ const raw = getEnv("VF_TEST_TIME_SCALE");
6
+ if (!raw)
7
+ return DEFAULT_SCALE;
8
+ const parsed = Number(raw);
9
+ if (!Number.isFinite(parsed) || parsed <= 0)
10
+ return DEFAULT_SCALE;
11
+ return parsed;
12
+ }
13
+ export function getTestTimeScale() {
14
+ return readScale();
15
+ }
16
+ export function scaleMs(ms, minMs = 1) {
17
+ return Math.max(minMs, Math.round(ms * readScale()));
18
+ }
19
+ // no cleanup needed: one-shot
20
+ export function testDelay(ms) {
21
+ return new Promise((resolve) => dntShim.setTimeout(resolve, scaleMs(ms)));
22
+ }
@@ -0,0 +1,6 @@
1
+ /***********************
2
+ * Shared utility functions for cross-runtime testing.
3
+ ***********************/
4
+ export declare function deepEquals(a: unknown, b: unknown, seen?: WeakSet<object>): boolean;
5
+ export declare function safeStringify(value: unknown): string;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/testing/utils.ts"],"names":[],"mappings":"AAAA;;yBAEyB;AAEzB,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,OAAO,CAAC,MAAM,CAAiB,GAAG,OAAO,CA0BjG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWpD"}
@@ -0,0 +1,49 @@
1
+ /***********************
2
+ * Shared utility functions for cross-runtime testing.
3
+ ***********************/
4
+ export function deepEquals(a, b, seen = new WeakSet()) {
5
+ if (a === b)
6
+ return true;
7
+ if (a === null || b === null)
8
+ return a === b;
9
+ if (typeof a !== typeof b)
10
+ return false;
11
+ if (typeof a !== "object")
12
+ return a === b;
13
+ if (Array.isArray(a) || Array.isArray(b)) {
14
+ if (!Array.isArray(a) || !Array.isArray(b))
15
+ return false;
16
+ if (a.length !== b.length)
17
+ return false;
18
+ return a.every((val, i) => deepEquals(val, b[i], seen));
19
+ }
20
+ const aObj = a;
21
+ const bObj = b;
22
+ if (seen.has(aObj))
23
+ return true;
24
+ seen.add(aObj);
25
+ const aKeys = Object.keys(aObj);
26
+ const bKeys = Object.keys(bObj);
27
+ if (aKeys.length !== bKeys.length)
28
+ return false;
29
+ const aRec = a;
30
+ const bRec = b;
31
+ return aKeys.every((key) => deepEquals(aRec[key], bRec[key], seen));
32
+ }
33
+ export function safeStringify(value) {
34
+ try {
35
+ return JSON.stringify(value);
36
+ }
37
+ catch (_) {
38
+ /* expected: value may contain circular references or non-serializable types */
39
+ if (value === null)
40
+ return "null";
41
+ if (value === undefined)
42
+ return "undefined";
43
+ if (typeof value === "function")
44
+ return "[Function]";
45
+ if (typeof value === "object")
46
+ return `[${value.constructor?.name ?? "Object"}]`;
47
+ return String(value);
48
+ }
49
+ }
@@ -0,0 +1,11 @@
1
+ export type { GlobalWithBun, GlobalWithDeno, GlobalWithProcess } from "../utils/index.js";
2
+ export { hasBunRuntime, hasDenoRuntime, hasNodeProcess } from "../utils/index.js";
3
+ export interface GlobalWithReactDOM {
4
+ ReactDOM?: typeof import("../../deps/esm.sh/react-dom@19.2.4/client.js");
5
+ }
6
+ export interface GlobalWithVeryFrontCache {
7
+ __VF_CACHE_NAMESPACE__?: string;
8
+ }
9
+ export declare function hasReactDOM(global: unknown): global is GlobalWithReactDOM;
10
+ export declare function hasVeryFrontCache(global: unknown): global is GlobalWithVeryFrontCache;
11
+ //# sourceMappingURL=global-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-guards.d.ts","sourceRoot":"","sources":["../../../src/src/types/global-guards.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAElF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,cAAc,8CAA8C,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,wBAAwB;IACvC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,kBAAkB,CAIzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,wBAAwB,CAGrF"}
@@ -0,0 +1,12 @@
1
+ export { hasBunRuntime, hasDenoRuntime, hasNodeProcess } from "../utils/index.js";
2
+ export function hasReactDOM(global) {
3
+ if (typeof global !== "object" || global === null)
4
+ return false;
5
+ return "ReactDOM" in global &&
6
+ typeof global["ReactDOM"] !== "undefined";
7
+ }
8
+ export function hasVeryFrontCache(global) {
9
+ if (typeof global !== "object" || global === null)
10
+ return false;
11
+ return "__VF_CACHE_NAMESPACE__" in global;
12
+ }
@@ -0,0 +1,3 @@
1
+ export declare function setCacheNamespace(namespace?: string): void;
2
+ export declare function getCacheNamespace(): string | undefined;
3
+ //# sourceMappingURL=namespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../../../src/src/utils/cache/keys/namespace.ts"],"names":[],"mappings":"AAYA,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ1D;AAED,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD"}
@@ -0,0 +1,19 @@
1
+ import * as dntShim from "../../../../_dnt.shims.js";
2
+ import { getEnv } from "../../../platform/compat/process.js";
3
+ import { serverLogger } from "../../logger/logger.js";
4
+ const logger = serverLogger.component("cache");
5
+ const globalCache = dntShim.dntGlobalThis;
6
+ let cacheNamespace = globalCache.__VF_CACHE_NAMESPACE__ ??
7
+ getEnv("VF_CACHE_NAMESPACE");
8
+ export function setCacheNamespace(namespace) {
9
+ cacheNamespace = namespace ?? undefined;
10
+ try {
11
+ globalCache.__VF_CACHE_NAMESPACE__ = cacheNamespace;
12
+ }
13
+ catch (e) {
14
+ logger.debug("setCacheNamespace failed", e);
15
+ }
16
+ }
17
+ export function getCacheNamespace() {
18
+ return cacheNamespace;
19
+ }
@@ -2,13 +2,13 @@
2
2
  * Inline implementation of the `clsx` class-name joining utility.
3
3
  *
4
4
  * API-compatible with the MIT-licensed `clsx` npm package — this is a
5
- * clean-room rewrite against the public API (named `clsx` export, `ClassValue`
6
- * type, default export alias); no source was copied.
5
+ * clean-room rewrite against the public API surface veryfront uses (named
6
+ * `clsx` export and `ClassValue` type); no source was copied.
7
7
  *
8
8
  * Replaces the `clsx` npm dep per spec §8.3 (inline micro-utilities in core).
9
9
  */
10
10
  export type ClassValue = string | number | boolean | null | undefined | Record<string, unknown> | ClassValue[];
11
11
  type Value = ClassValue;
12
12
  export declare function clsx(...args: Value[]): string;
13
- export default clsx;
13
+ export {};
14
14
  //# sourceMappingURL=clsx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clsx.d.ts","sourceRoot":"","sources":["../../../src/src/utils/clsx.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,UAAU,EAAE,CAAC;AAEjB,KAAK,KAAK,GAAG,UAAU,CAAC;AAExB,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAgB7C;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"clsx.d.ts","sourceRoot":"","sources":["../../../src/src/utils/clsx.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,UAAU,EAAE,CAAC;AAEjB,KAAK,KAAK,GAAG,UAAU,CAAC;AAExB,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAgB7C"}
@@ -2,8 +2,8 @@
2
2
  * Inline implementation of the `clsx` class-name joining utility.
3
3
  *
4
4
  * API-compatible with the MIT-licensed `clsx` npm package — this is a
5
- * clean-room rewrite against the public API (named `clsx` export, `ClassValue`
6
- * type, default export alias); no source was copied.
5
+ * clean-room rewrite against the public API surface veryfront uses (named
6
+ * `clsx` export and `ClassValue` type); no source was copied.
7
7
  *
8
8
  * Replaces the `clsx` npm dep per spec §8.3 (inline micro-utilities in core).
9
9
  */
@@ -29,4 +29,3 @@ export function clsx(...args) {
29
29
  }
30
30
  return out.join(" ");
31
31
  }
32
- export default clsx;
@@ -33,10 +33,4 @@ export declare function charset(mime: string): string | false;
33
33
  * the same reason `lookup()` does (avoid prototype-property leaks).
34
34
  */
35
35
  export declare function extension(mime: string): string | false;
36
- declare const _default: {
37
- lookup: typeof lookup;
38
- charset: typeof charset;
39
- extension: typeof extension;
40
- };
41
- export default _default;
42
36
  //# sourceMappingURL=mime-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mime-types.d.ts","sourceRoot":"","sources":["../../../src/src/utils/mime-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsGH;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAInD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CASpD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAEtD;;;;;;AAED,wBAA8C"}
1
+ {"version":3,"file":"mime-types.d.ts","sourceRoot":"","sources":["../../../src/src/utils/mime-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsGH;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAInD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CASpD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAEtD"}
@@ -145,4 +145,3 @@ export function charset(mime) {
145
145
  export function extension(mime) {
146
146
  return Object.hasOwn(EXT_BY_MIME, mime) ? EXT_BY_MIME[mime] : false;
147
147
  }
148
- export default { lookup, charset, extension };
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.324";
1
+ export declare const VERSION = "0.1.327";
2
2
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
- export const VERSION = "0.1.324";
3
+ export const VERSION = "0.1.327";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.324",
3
+ "version": "0.1.327",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",
@@ -173,6 +173,18 @@
173
173
  "import": "./esm/src/extensions/interfaces/index.js",
174
174
  "types": "./esm/src/extensions/interfaces/index.d.ts"
175
175
  },
176
+ "./testing": {
177
+ "import": "./esm/src/testing/index.js",
178
+ "types": "./esm/src/testing/index.d.ts"
179
+ },
180
+ "./testing/assert": {
181
+ "import": "./esm/src/testing/assert.js",
182
+ "types": "./esm/src/testing/assert.d.ts"
183
+ },
184
+ "./testing/bdd": {
185
+ "import": "./esm/src/testing/bdd.js",
186
+ "types": "./esm/src/testing/bdd.d.ts"
187
+ },
176
188
  "./cli": {
177
189
  "import": "./esm/cli/main.js",
178
190
  "types": "./esm/cli/main.d.ts"
@@ -239,6 +251,7 @@
239
251
  "remark-gfm": "4.0.1",
240
252
  "remark-parse": "11.0.0",
241
253
  "remark-rehype": "11.1.2",
254
+ "scheduler": "0.27.0",
242
255
  "tailwind-merge": "3.5.0",
243
256
  "tailwindcss": "4.2.2",
244
257
  "unified": "11.0.5",
@@ -72,8 +72,8 @@ export default ${camelCase(name)};
72
72
  * @module extensions/${name}/test
73
73
  */
74
74
 
75
- import { assertEquals } from "#veryfront/testing/assert.ts";
76
- import { describe, it } from "#veryfront/testing/bdd.ts";
75
+ import { assertEquals } from "veryfront/testing/assert";
76
+ import { describe, it } from "veryfront/testing/bdd";
77
77
  import factory from "./index.ts";
78
78
 
79
79
  describe("${name} extension", () => {
@@ -6,7 +6,7 @@
6
6
  import * as dntShim from "../../../_dnt.shims.js";
7
7
 
8
8
 
9
- import { validateExtension } from "../../../src/extensions/validation.js";
9
+ import { validateExtension } from "../../../src/extensions/index.js";
10
10
 
11
11
  export interface ValidationReport {
12
12
  valid: boolean;
package/src/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.324",
3
+ "version": "0.1.327",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "workspace": [
@@ -63,6 +63,9 @@ export default {
63
63
  "./embedding": "./src/embedding/index.ts",
64
64
  "./extensions": "./src/extensions/index.ts",
65
65
  "./extensions/interfaces": "./src/extensions/interfaces/index.ts",
66
+ "./testing": "./src/testing/index.ts",
67
+ "./testing/assert": "./src/testing/assert.ts",
68
+ "./testing/bdd": "./src/testing/bdd.ts",
66
69
  "./cli": "./cli/main.ts",
67
70
  "./chat/conversation": "./src/chat/conversation.ts",
68
71
  "./chat/message-prep": "./src/chat/message-prep.ts",
@@ -137,6 +140,9 @@ export default {
137
140
  "veryfront/tool/schema": "./src/tool/schema/index.ts",
138
141
  "veryfront/agent/composition": "./src/agent/composition/index.ts",
139
142
  "veryfront/extensions": "./src/extensions/index.ts",
143
+ "veryfront/testing": "./src/testing/index.ts",
144
+ "veryfront/testing/assert": "./src/testing/assert.ts",
145
+ "veryfront/testing/bdd": "./src/testing/bdd.ts",
140
146
  "#veryfront": "./src/index.ts",
141
147
  "#veryfront/agent": "./src/agent/index.ts",
142
148
  "#veryfront/agent/react": "./src/agent/react/index.ts",
@@ -255,6 +261,7 @@ export default {
255
261
  "react/jsx-dev-runtime": "https://esm.sh/react@19.2.4/jsx-dev-runtime?external=react&target=es2022&deps=csstype@3.2.3",
256
262
  "@mdx-js/mdx": "npm:@mdx-js/mdx@3.1.1",
257
263
  "@mdx-js/react": "npm:@mdx-js/react@3.1.1",
264
+ "@babel/parser": "npm:@babel/parser@7.29.2",
258
265
  "unist-util-visit": "npm:unist-util-visit@5.1.0",
259
266
  "mdast-util-to-string": "npm:mdast-util-to-string@4.0.0",
260
267
  "github-slugger": "npm:github-slugger@2.0.0",
@@ -0,0 +1,105 @@
1
+ /**
2
+ * WARNING: This entrypoint is only available starting with `react-dom@18.0.0-rc.1`
3
+ */
4
+
5
+ // See https://github.com/facebook/react/blob/main/packages/react-dom/client.js to see how the exports are declared,
6
+
7
+ import React = require("https://esm.sh/@types/react@19.2.14/index.d.ts");
8
+
9
+ export {};
10
+
11
+ declare const REACT_FORM_STATE_SIGIL: unique symbol;
12
+ export interface ReactFormState {
13
+ [REACT_FORM_STATE_SIGIL]: never;
14
+ }
15
+
16
+ export interface HydrationOptions {
17
+ formState?: ReactFormState | null;
18
+ /**
19
+ * Prefix for `useId`.
20
+ */
21
+ identifierPrefix?: string;
22
+ onUncaughtError?:
23
+ | ((error: unknown, errorInfo: { componentStack?: string | undefined }) => void)
24
+ | undefined;
25
+ onRecoverableError?: (error: unknown, errorInfo: ErrorInfo) => void;
26
+ onCaughtError?:
27
+ | ((
28
+ error: unknown,
29
+ errorInfo: {
30
+ componentStack?: string | undefined;
31
+ errorBoundary?: React.Component<unknown> | undefined;
32
+ },
33
+ ) => void)
34
+ | undefined;
35
+ }
36
+
37
+ export interface RootOptions {
38
+ /**
39
+ * Prefix for `useId`.
40
+ */
41
+ identifierPrefix?: string;
42
+ onUncaughtError?:
43
+ | ((error: unknown, errorInfo: { componentStack?: string | undefined }) => void)
44
+ | undefined;
45
+ onRecoverableError?: (error: unknown, errorInfo: ErrorInfo) => void;
46
+ onCaughtError?:
47
+ | ((
48
+ error: unknown,
49
+ errorInfo: {
50
+ componentStack?: string | undefined;
51
+ errorBoundary?: React.Component<unknown> | undefined;
52
+ },
53
+ ) => void)
54
+ | undefined;
55
+ }
56
+
57
+ export interface ErrorInfo {
58
+ componentStack?: string;
59
+ }
60
+
61
+ export interface Root {
62
+ render(children: React.ReactNode): void;
63
+ unmount(): void;
64
+ }
65
+
66
+ /**
67
+ * Different release channels declare additional types of ReactNode this particular release channel accepts.
68
+ * App or library types should never augment this interface.
69
+ */
70
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
71
+ export interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS {}
72
+
73
+ export type Container =
74
+ | Element
75
+ | DocumentFragment
76
+ | Document
77
+ | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS[
78
+ keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS
79
+ ];
80
+
81
+ /**
82
+ * createRoot lets you create a root to display React components inside a browser DOM node.
83
+ *
84
+ * @see {@link https://react.dev/reference/react-dom/client/createRoot API Reference for `createRoot`}
85
+ */
86
+ export function createRoot(container: Container, options?: RootOptions): Root;
87
+
88
+ /**
89
+ * Same as `createRoot()`, but is used to hydrate a container whose HTML contents were rendered by ReactDOMServer.
90
+ *
91
+ * React will attempt to attach event listeners to the existing markup.
92
+ *
93
+ * **Example Usage**
94
+ *
95
+ * ```jsx
96
+ * hydrateRoot(document.querySelector('#root'), <App />)
97
+ * ```
98
+ *
99
+ * @see https://react.dev/reference/react-dom/client/hydrateRoot
100
+ */
101
+ export function hydrateRoot(
102
+ container: Element | Document,
103
+ initialChildren: React.ReactNode,
104
+ options?: HydrationOptions,
105
+ ): Root;