@frontmcp/ui 0.5.1 → 0.6.1

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 (805) hide show
  1. package/README.md +140 -362
  2. package/bridge/adapters/base-adapter.d.ts +104 -0
  3. package/bridge/adapters/base-adapter.d.ts.map +1 -0
  4. package/bridge/adapters/claude.adapter.d.ts +67 -0
  5. package/bridge/adapters/claude.adapter.d.ts.map +1 -0
  6. package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  7. package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  8. package/bridge/adapters/gemini.adapter.d.ts +64 -0
  9. package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  10. package/bridge/adapters/generic.adapter.d.ts +56 -0
  11. package/bridge/adapters/generic.adapter.d.ts.map +1 -0
  12. package/bridge/adapters/index.d.ts +26 -0
  13. package/bridge/adapters/index.d.ts.map +1 -0
  14. package/bridge/adapters/openai.adapter.d.ts +65 -0
  15. package/bridge/adapters/openai.adapter.d.ts.map +1 -0
  16. package/bridge/core/adapter-registry.d.ts +122 -0
  17. package/bridge/core/adapter-registry.d.ts.map +1 -0
  18. package/bridge/core/bridge-factory.d.ts +199 -0
  19. package/bridge/core/bridge-factory.d.ts.map +1 -0
  20. package/bridge/core/index.d.ts +10 -0
  21. package/bridge/core/index.d.ts.map +1 -0
  22. package/bridge/index.d.ts +62 -0
  23. package/bridge/index.d.ts.map +1 -0
  24. package/bridge/index.js +2540 -0
  25. package/bridge/runtime/iife-generator.d.ts +62 -0
  26. package/bridge/runtime/iife-generator.d.ts.map +1 -0
  27. package/bridge/runtime/index.d.ts +10 -0
  28. package/bridge/runtime/index.d.ts.map +1 -0
  29. package/bridge/types.d.ts +386 -0
  30. package/bridge/types.d.ts.map +1 -0
  31. package/bundler/bundler.d.ts +208 -0
  32. package/bundler/bundler.d.ts.map +1 -0
  33. package/bundler/cache.d.ts +173 -0
  34. package/bundler/cache.d.ts.map +1 -0
  35. package/bundler/file-cache/component-builder.d.ts +167 -0
  36. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  37. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  38. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  39. package/bundler/file-cache/index.d.ts +12 -0
  40. package/bundler/file-cache/index.d.ts.map +1 -0
  41. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  42. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  43. package/bundler/file-cache/storage/index.d.ts +11 -0
  44. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  45. package/bundler/file-cache/storage/interface.d.ts +152 -0
  46. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  47. package/bundler/file-cache/storage/redis.d.ts +139 -0
  48. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  49. package/bundler/index.d.ts +43 -0
  50. package/bundler/index.d.ts.map +1 -0
  51. package/bundler/index.js +3707 -0
  52. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  53. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  54. package/bundler/sandbox/executor.d.ts +14 -0
  55. package/bundler/sandbox/executor.d.ts.map +1 -0
  56. package/bundler/sandbox/policy.d.ts +62 -0
  57. package/bundler/sandbox/policy.d.ts.map +1 -0
  58. package/bundler/types.d.ts +702 -0
  59. package/bundler/types.d.ts.map +1 -0
  60. package/components/alert.d.ts +66 -0
  61. package/components/alert.d.ts.map +1 -0
  62. package/components/alert.schema.d.ts +98 -0
  63. package/components/alert.schema.d.ts.map +1 -0
  64. package/components/avatar.d.ts +77 -0
  65. package/components/avatar.d.ts.map +1 -0
  66. package/components/avatar.schema.d.ts +170 -0
  67. package/components/avatar.schema.d.ts.map +1 -0
  68. package/components/badge.d.ts +64 -0
  69. package/components/badge.d.ts.map +1 -0
  70. package/components/badge.schema.d.ts +91 -0
  71. package/components/badge.schema.d.ts.map +1 -0
  72. package/components/button.d.ts +100 -0
  73. package/components/button.d.ts.map +1 -0
  74. package/components/button.schema.d.ts +120 -0
  75. package/components/button.schema.d.ts.map +1 -0
  76. package/components/card.d.ts +53 -0
  77. package/components/card.d.ts.map +1 -0
  78. package/components/card.schema.d.ts +93 -0
  79. package/components/card.schema.d.ts.map +1 -0
  80. package/components/form.d.ts +212 -0
  81. package/components/form.d.ts.map +1 -0
  82. package/components/form.schema.d.ts +365 -0
  83. package/components/form.schema.d.ts.map +1 -0
  84. package/components/index.d.ts +29 -0
  85. package/components/index.d.ts.map +1 -0
  86. package/components/index.js +2525 -0
  87. package/components/list.d.ts +121 -0
  88. package/components/list.d.ts.map +1 -0
  89. package/components/list.schema.d.ts +129 -0
  90. package/components/list.schema.d.ts.map +1 -0
  91. package/components/modal.d.ts +100 -0
  92. package/components/modal.d.ts.map +1 -0
  93. package/components/modal.schema.d.ts +151 -0
  94. package/components/modal.schema.d.ts.map +1 -0
  95. package/components/table.d.ts +91 -0
  96. package/components/table.d.ts.map +1 -0
  97. package/components/table.schema.d.ts +123 -0
  98. package/components/table.schema.d.ts.map +1 -0
  99. package/esm/bridge/adapters/base-adapter.d.ts +104 -0
  100. package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
  101. package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
  102. package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
  103. package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  104. package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  105. package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
  106. package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  107. package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
  108. package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
  109. package/esm/bridge/adapters/index.d.ts +26 -0
  110. package/esm/bridge/adapters/index.d.ts.map +1 -0
  111. package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
  112. package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
  113. package/esm/bridge/core/adapter-registry.d.ts +122 -0
  114. package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
  115. package/esm/bridge/core/bridge-factory.d.ts +199 -0
  116. package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
  117. package/esm/bridge/core/index.d.ts +10 -0
  118. package/esm/bridge/core/index.d.ts.map +1 -0
  119. package/esm/bridge/index.d.ts +62 -0
  120. package/esm/bridge/index.d.ts.map +1 -0
  121. package/esm/bridge/index.js +2487 -0
  122. package/esm/bridge/runtime/iife-generator.d.ts +62 -0
  123. package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
  124. package/esm/bridge/runtime/index.d.ts +10 -0
  125. package/esm/bridge/runtime/index.d.ts.map +1 -0
  126. package/esm/bridge/types.d.ts +386 -0
  127. package/esm/bridge/types.d.ts.map +1 -0
  128. package/esm/bundler/bundler.d.ts +208 -0
  129. package/esm/bundler/bundler.d.ts.map +1 -0
  130. package/esm/bundler/cache.d.ts +173 -0
  131. package/esm/bundler/cache.d.ts.map +1 -0
  132. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  133. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  134. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  135. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  136. package/esm/bundler/file-cache/index.d.ts +12 -0
  137. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  138. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  139. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  140. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  141. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  142. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  143. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  144. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  145. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  146. package/esm/bundler/index.d.ts +43 -0
  147. package/esm/bundler/index.d.ts.map +1 -0
  148. package/esm/bundler/index.js +3640 -0
  149. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  150. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  151. package/esm/bundler/sandbox/executor.d.ts +14 -0
  152. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  153. package/esm/bundler/sandbox/policy.d.ts +62 -0
  154. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  155. package/esm/bundler/types.d.ts +702 -0
  156. package/esm/bundler/types.d.ts.map +1 -0
  157. package/esm/components/alert.d.ts +66 -0
  158. package/esm/components/alert.d.ts.map +1 -0
  159. package/esm/components/alert.schema.d.ts +98 -0
  160. package/esm/components/alert.schema.d.ts.map +1 -0
  161. package/esm/components/avatar.d.ts +77 -0
  162. package/esm/components/avatar.d.ts.map +1 -0
  163. package/esm/components/avatar.schema.d.ts +170 -0
  164. package/esm/components/avatar.schema.d.ts.map +1 -0
  165. package/esm/components/badge.d.ts +64 -0
  166. package/esm/components/badge.d.ts.map +1 -0
  167. package/esm/components/badge.schema.d.ts +91 -0
  168. package/esm/components/badge.schema.d.ts.map +1 -0
  169. package/esm/components/button.d.ts +100 -0
  170. package/esm/components/button.d.ts.map +1 -0
  171. package/esm/components/button.schema.d.ts +120 -0
  172. package/esm/components/button.schema.d.ts.map +1 -0
  173. package/esm/components/card.d.ts +53 -0
  174. package/esm/components/card.d.ts.map +1 -0
  175. package/esm/components/card.schema.d.ts +93 -0
  176. package/esm/components/card.schema.d.ts.map +1 -0
  177. package/esm/components/form.d.ts +212 -0
  178. package/esm/components/form.d.ts.map +1 -0
  179. package/esm/components/form.schema.d.ts +365 -0
  180. package/esm/components/form.schema.d.ts.map +1 -0
  181. package/esm/components/index.d.ts +29 -0
  182. package/esm/components/index.d.ts.map +1 -0
  183. package/esm/components/index.js +2396 -0
  184. package/esm/components/list.d.ts +121 -0
  185. package/esm/components/list.d.ts.map +1 -0
  186. package/esm/components/list.schema.d.ts +129 -0
  187. package/esm/components/list.schema.d.ts.map +1 -0
  188. package/esm/components/modal.d.ts +100 -0
  189. package/esm/components/modal.d.ts.map +1 -0
  190. package/esm/components/modal.schema.d.ts +151 -0
  191. package/esm/components/modal.schema.d.ts.map +1 -0
  192. package/esm/components/table.d.ts +91 -0
  193. package/esm/components/table.d.ts.map +1 -0
  194. package/esm/components/table.schema.d.ts +123 -0
  195. package/esm/components/table.schema.d.ts.map +1 -0
  196. package/esm/index.d.ts +40 -0
  197. package/esm/index.d.ts.map +1 -0
  198. package/esm/index.js +8326 -0
  199. package/esm/layouts/base.d.ts +86 -0
  200. package/esm/layouts/base.d.ts.map +1 -0
  201. package/esm/layouts/index.d.ts +8 -0
  202. package/esm/layouts/index.d.ts.map +1 -0
  203. package/esm/layouts/index.js +409 -0
  204. package/esm/layouts/presets.d.ts +134 -0
  205. package/esm/layouts/presets.d.ts.map +1 -0
  206. package/esm/package.json +72 -0
  207. package/esm/pages/consent.d.ts +117 -0
  208. package/esm/pages/consent.d.ts.map +1 -0
  209. package/esm/pages/error.d.ts +101 -0
  210. package/esm/pages/error.d.ts.map +1 -0
  211. package/esm/pages/index.d.ts +9 -0
  212. package/esm/pages/index.d.ts.map +1 -0
  213. package/esm/pages/index.js +1036 -0
  214. package/esm/react/Alert.d.ts +101 -0
  215. package/esm/react/Alert.d.ts.map +1 -0
  216. package/esm/react/Badge.d.ts +100 -0
  217. package/esm/react/Badge.d.ts.map +1 -0
  218. package/esm/react/Button.d.ts +108 -0
  219. package/esm/react/Button.d.ts.map +1 -0
  220. package/esm/react/Card.d.ts +103 -0
  221. package/esm/react/Card.d.ts.map +1 -0
  222. package/esm/react/hooks/context.d.ts +179 -0
  223. package/esm/react/hooks/context.d.ts.map +1 -0
  224. package/esm/react/hooks/index.d.ts +42 -0
  225. package/esm/react/hooks/index.d.ts.map +1 -0
  226. package/esm/react/hooks/tools.d.ts +284 -0
  227. package/esm/react/hooks/tools.d.ts.map +1 -0
  228. package/esm/react/index.d.ts +80 -0
  229. package/esm/react/index.d.ts.map +1 -0
  230. package/esm/react/index.js +3124 -0
  231. package/esm/react/types.d.ts +105 -0
  232. package/esm/react/types.d.ts.map +1 -0
  233. package/esm/react/utils.d.ts +43 -0
  234. package/esm/react/utils.d.ts.map +1 -0
  235. package/esm/render/index.d.ts +8 -0
  236. package/esm/render/index.d.ts.map +1 -0
  237. package/esm/render/index.js +45 -0
  238. package/esm/render/prerender.d.ts +57 -0
  239. package/esm/render/prerender.d.ts.map +1 -0
  240. package/esm/renderers/index.d.ts +21 -0
  241. package/esm/renderers/index.d.ts.map +1 -0
  242. package/esm/renderers/index.js +381 -0
  243. package/esm/renderers/react.adapter.d.ts +70 -0
  244. package/esm/renderers/react.adapter.d.ts.map +1 -0
  245. package/esm/renderers/react.renderer.d.ts +96 -0
  246. package/esm/renderers/react.renderer.d.ts.map +1 -0
  247. package/esm/universal/UniversalApp.d.ts +108 -0
  248. package/esm/universal/UniversalApp.d.ts.map +1 -0
  249. package/esm/universal/cached-runtime.d.ts +115 -0
  250. package/esm/universal/cached-runtime.d.ts.map +1 -0
  251. package/esm/universal/context.d.ts +122 -0
  252. package/esm/universal/context.d.ts.map +1 -0
  253. package/esm/universal/index.d.ts +57 -0
  254. package/esm/universal/index.d.ts.map +1 -0
  255. package/esm/universal/index.js +1755 -0
  256. package/esm/universal/renderers/html.renderer.d.ts +37 -0
  257. package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
  258. package/esm/universal/renderers/index.d.ts +112 -0
  259. package/esm/universal/renderers/index.d.ts.map +1 -0
  260. package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
  261. package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
  262. package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
  263. package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
  264. package/esm/universal/renderers/react.renderer.d.ts +46 -0
  265. package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
  266. package/esm/universal/runtime-builder.d.ts +33 -0
  267. package/esm/universal/runtime-builder.d.ts.map +1 -0
  268. package/esm/universal/store.d.ts +135 -0
  269. package/esm/universal/store.d.ts.map +1 -0
  270. package/esm/universal/types.d.ts +199 -0
  271. package/esm/universal/types.d.ts.map +1 -0
  272. package/esm/web-components/core/attribute-parser.d.ts +82 -0
  273. package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
  274. package/esm/web-components/core/base-element.d.ts +197 -0
  275. package/esm/web-components/core/base-element.d.ts.map +1 -0
  276. package/esm/web-components/core/index.d.ts +9 -0
  277. package/esm/web-components/core/index.d.ts.map +1 -0
  278. package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
  279. package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
  280. package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
  281. package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
  282. package/esm/web-components/elements/fmcp-button.d.ts +117 -0
  283. package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
  284. package/esm/web-components/elements/fmcp-card.d.ts +53 -0
  285. package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
  286. package/esm/web-components/elements/fmcp-input.d.ts +96 -0
  287. package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
  288. package/esm/web-components/elements/fmcp-select.d.ts +100 -0
  289. package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
  290. package/esm/web-components/elements/index.d.ts +13 -0
  291. package/esm/web-components/elements/index.d.ts.map +1 -0
  292. package/esm/web-components/index.d.ts +50 -0
  293. package/esm/web-components/index.d.ts.map +1 -0
  294. package/esm/web-components/index.js +1993 -0
  295. package/esm/web-components/register.d.ts +57 -0
  296. package/esm/web-components/register.d.ts.map +1 -0
  297. package/esm/web-components/types.d.ts +122 -0
  298. package/esm/web-components/types.d.ts.map +1 -0
  299. package/esm/widgets/index.d.ts +8 -0
  300. package/esm/widgets/index.d.ts.map +1 -0
  301. package/esm/widgets/index.js +883 -0
  302. package/esm/widgets/progress.d.ts +133 -0
  303. package/esm/widgets/progress.d.ts.map +1 -0
  304. package/esm/widgets/resource.d.ts +163 -0
  305. package/esm/widgets/resource.d.ts.map +1 -0
  306. package/index.d.ts +40 -0
  307. package/index.d.ts.map +1 -0
  308. package/index.js +8526 -0
  309. package/layouts/base.d.ts +86 -0
  310. package/layouts/base.d.ts.map +1 -0
  311. package/layouts/index.d.ts +8 -0
  312. package/layouts/index.d.ts.map +1 -0
  313. package/layouts/index.js +437 -0
  314. package/layouts/presets.d.ts +134 -0
  315. package/layouts/presets.d.ts.map +1 -0
  316. package/package.json +33 -110
  317. package/pages/consent.d.ts +117 -0
  318. package/pages/consent.d.ts.map +1 -0
  319. package/pages/error.d.ts +101 -0
  320. package/pages/error.d.ts.map +1 -0
  321. package/pages/index.d.ts +9 -0
  322. package/pages/index.d.ts.map +1 -0
  323. package/pages/index.js +1065 -0
  324. package/react/Alert.d.ts +101 -0
  325. package/react/Alert.d.ts.map +1 -0
  326. package/react/Badge.d.ts +100 -0
  327. package/react/Badge.d.ts.map +1 -0
  328. package/react/Button.d.ts +108 -0
  329. package/react/Button.d.ts.map +1 -0
  330. package/react/Card.d.ts +103 -0
  331. package/react/Card.d.ts.map +1 -0
  332. package/react/hooks/context.d.ts +179 -0
  333. package/react/hooks/context.d.ts.map +1 -0
  334. package/react/hooks/index.d.ts +42 -0
  335. package/react/hooks/index.d.ts.map +1 -0
  336. package/react/hooks/tools.d.ts +284 -0
  337. package/react/hooks/tools.d.ts.map +1 -0
  338. package/react/index.d.ts +80 -0
  339. package/react/index.d.ts.map +1 -0
  340. package/react/index.js +3160 -0
  341. package/react/types.d.ts +105 -0
  342. package/react/types.d.ts.map +1 -0
  343. package/react/utils.d.ts +43 -0
  344. package/react/utils.d.ts.map +1 -0
  345. package/render/index.d.ts +8 -0
  346. package/render/index.d.ts.map +1 -0
  347. package/render/index.js +77 -0
  348. package/render/prerender.d.ts +57 -0
  349. package/render/prerender.d.ts.map +1 -0
  350. package/renderers/index.d.ts +21 -0
  351. package/renderers/index.d.ts.map +1 -0
  352. package/renderers/index.js +416 -0
  353. package/renderers/react.adapter.d.ts +70 -0
  354. package/renderers/react.adapter.d.ts.map +1 -0
  355. package/renderers/react.renderer.d.ts +96 -0
  356. package/renderers/react.renderer.d.ts.map +1 -0
  357. package/universal/UniversalApp.d.ts +108 -0
  358. package/universal/UniversalApp.d.ts.map +1 -0
  359. package/universal/cached-runtime.d.ts +115 -0
  360. package/universal/cached-runtime.d.ts.map +1 -0
  361. package/universal/context.d.ts +122 -0
  362. package/universal/context.d.ts.map +1 -0
  363. package/universal/index.d.ts +57 -0
  364. package/universal/index.d.ts.map +1 -0
  365. package/universal/index.js +1841 -0
  366. package/universal/renderers/html.renderer.d.ts +37 -0
  367. package/universal/renderers/html.renderer.d.ts.map +1 -0
  368. package/universal/renderers/index.d.ts +112 -0
  369. package/universal/renderers/index.d.ts.map +1 -0
  370. package/universal/renderers/markdown.renderer.d.ts +33 -0
  371. package/universal/renderers/markdown.renderer.d.ts.map +1 -0
  372. package/universal/renderers/mdx.renderer.d.ts +38 -0
  373. package/universal/renderers/mdx.renderer.d.ts.map +1 -0
  374. package/universal/renderers/react.renderer.d.ts +46 -0
  375. package/universal/renderers/react.renderer.d.ts.map +1 -0
  376. package/universal/runtime-builder.d.ts +33 -0
  377. package/universal/runtime-builder.d.ts.map +1 -0
  378. package/universal/store.d.ts +135 -0
  379. package/universal/store.d.ts.map +1 -0
  380. package/universal/types.d.ts +199 -0
  381. package/universal/types.d.ts.map +1 -0
  382. package/web-components/core/attribute-parser.d.ts +82 -0
  383. package/web-components/core/attribute-parser.d.ts.map +1 -0
  384. package/web-components/core/base-element.d.ts +197 -0
  385. package/web-components/core/base-element.d.ts.map +1 -0
  386. package/web-components/core/index.d.ts +9 -0
  387. package/web-components/core/index.d.ts.map +1 -0
  388. package/web-components/elements/fmcp-alert.d.ts +46 -0
  389. package/web-components/elements/fmcp-alert.d.ts.map +1 -0
  390. package/web-components/elements/fmcp-badge.d.ts +47 -0
  391. package/web-components/elements/fmcp-badge.d.ts.map +1 -0
  392. package/web-components/elements/fmcp-button.d.ts +117 -0
  393. package/web-components/elements/fmcp-button.d.ts.map +1 -0
  394. package/web-components/elements/fmcp-card.d.ts +53 -0
  395. package/web-components/elements/fmcp-card.d.ts.map +1 -0
  396. package/web-components/elements/fmcp-input.d.ts +96 -0
  397. package/web-components/elements/fmcp-input.d.ts.map +1 -0
  398. package/web-components/elements/fmcp-select.d.ts +100 -0
  399. package/web-components/elements/fmcp-select.d.ts.map +1 -0
  400. package/web-components/elements/index.d.ts +13 -0
  401. package/web-components/elements/index.d.ts.map +1 -0
  402. package/web-components/index.d.ts +50 -0
  403. package/web-components/index.d.ts.map +1 -0
  404. package/web-components/index.js +2028 -0
  405. package/web-components/register.d.ts +57 -0
  406. package/web-components/register.d.ts.map +1 -0
  407. package/web-components/types.d.ts +122 -0
  408. package/web-components/types.d.ts.map +1 -0
  409. package/widgets/index.d.ts +8 -0
  410. package/widgets/index.d.ts.map +1 -0
  411. package/widgets/index.js +910 -0
  412. package/widgets/progress.d.ts +133 -0
  413. package/widgets/progress.d.ts.map +1 -0
  414. package/widgets/resource.d.ts +163 -0
  415. package/widgets/resource.d.ts.map +1 -0
  416. package/src/adapters/index.d.ts +0 -10
  417. package/src/adapters/index.js +0 -18
  418. package/src/adapters/index.js.map +0 -1
  419. package/src/adapters/platform-meta.d.ts +0 -165
  420. package/src/adapters/platform-meta.js +0 -310
  421. package/src/adapters/platform-meta.js.map +0 -1
  422. package/src/base-template/bridge.d.ts +0 -89
  423. package/src/base-template/bridge.js +0 -452
  424. package/src/base-template/bridge.js.map +0 -1
  425. package/src/base-template/default-base-template.d.ts +0 -91
  426. package/src/base-template/default-base-template.js +0 -435
  427. package/src/base-template/default-base-template.js.map +0 -1
  428. package/src/base-template/index.d.ts +0 -14
  429. package/src/base-template/index.js +0 -30
  430. package/src/base-template/index.js.map +0 -1
  431. package/src/base-template/polyfills.d.ts +0 -30
  432. package/src/base-template/polyfills.js +0 -190
  433. package/src/base-template/polyfills.js.map +0 -1
  434. package/src/base-template/theme-styles.d.ts +0 -73
  435. package/src/base-template/theme-styles.js +0 -95
  436. package/src/base-template/theme-styles.js.map +0 -1
  437. package/src/bridge/adapters/base-adapter.d.ts +0 -103
  438. package/src/bridge/adapters/base-adapter.js +0 -314
  439. package/src/bridge/adapters/base-adapter.js.map +0 -1
  440. package/src/bridge/adapters/claude.adapter.d.ts +0 -66
  441. package/src/bridge/adapters/claude.adapter.js +0 -145
  442. package/src/bridge/adapters/claude.adapter.js.map +0 -1
  443. package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
  444. package/src/bridge/adapters/ext-apps.adapter.js +0 -416
  445. package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
  446. package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
  447. package/src/bridge/adapters/gemini.adapter.js +0 -160
  448. package/src/bridge/adapters/gemini.adapter.js.map +0 -1
  449. package/src/bridge/adapters/generic.adapter.d.ts +0 -55
  450. package/src/bridge/adapters/generic.adapter.js +0 -108
  451. package/src/bridge/adapters/generic.adapter.js.map +0 -1
  452. package/src/bridge/adapters/index.d.ts +0 -25
  453. package/src/bridge/adapters/index.js +0 -65
  454. package/src/bridge/adapters/index.js.map +0 -1
  455. package/src/bridge/adapters/openai.adapter.d.ts +0 -64
  456. package/src/bridge/adapters/openai.adapter.js +0 -194
  457. package/src/bridge/adapters/openai.adapter.js.map +0 -1
  458. package/src/bridge/core/adapter-registry.d.ts +0 -121
  459. package/src/bridge/core/adapter-registry.js +0 -271
  460. package/src/bridge/core/adapter-registry.js.map +0 -1
  461. package/src/bridge/core/bridge-factory.d.ts +0 -198
  462. package/src/bridge/core/bridge-factory.js +0 -428
  463. package/src/bridge/core/bridge-factory.js.map +0 -1
  464. package/src/bridge/core/index.d.ts +0 -9
  465. package/src/bridge/core/index.js +0 -22
  466. package/src/bridge/core/index.js.map +0 -1
  467. package/src/bridge/index.d.ts +0 -61
  468. package/src/bridge/index.js +0 -94
  469. package/src/bridge/index.js.map +0 -1
  470. package/src/bridge/runtime/iife-generator.d.ts +0 -61
  471. package/src/bridge/runtime/iife-generator.js +0 -940
  472. package/src/bridge/runtime/iife-generator.js.map +0 -1
  473. package/src/bridge/runtime/index.d.ts +0 -8
  474. package/src/bridge/runtime/index.js +0 -16
  475. package/src/bridge/runtime/index.js.map +0 -1
  476. package/src/bridge/types.d.ts +0 -385
  477. package/src/bridge/types.js +0 -11
  478. package/src/bridge/types.js.map +0 -1
  479. package/src/build/cdn-resources.d.ts +0 -140
  480. package/src/build/cdn-resources.js +0 -314
  481. package/src/build/cdn-resources.js.map +0 -1
  482. package/src/build/index.d.ts +0 -294
  483. package/src/build/index.js +0 -325
  484. package/src/build/index.js.map +0 -1
  485. package/src/build/widget-manifest.d.ts +0 -212
  486. package/src/build/widget-manifest.js +0 -652
  487. package/src/build/widget-manifest.js.map +0 -1
  488. package/src/bundler/bundler.d.ts +0 -110
  489. package/src/bundler/bundler.js +0 -432
  490. package/src/bundler/bundler.js.map +0 -1
  491. package/src/bundler/cache.d.ts +0 -172
  492. package/src/bundler/cache.js +0 -250
  493. package/src/bundler/cache.js.map +0 -1
  494. package/src/bundler/index.d.ts +0 -41
  495. package/src/bundler/index.js +0 -73
  496. package/src/bundler/index.js.map +0 -1
  497. package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
  498. package/src/bundler/sandbox/enclave-adapter.js +0 -339
  499. package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
  500. package/src/bundler/sandbox/executor.d.ts +0 -13
  501. package/src/bundler/sandbox/executor.js +0 -22
  502. package/src/bundler/sandbox/executor.js.map +0 -1
  503. package/src/bundler/sandbox/policy.d.ts +0 -61
  504. package/src/bundler/sandbox/policy.js +0 -238
  505. package/src/bundler/sandbox/policy.js.map +0 -1
  506. package/src/bundler/types.d.ts +0 -347
  507. package/src/bundler/types.js +0 -132
  508. package/src/bundler/types.js.map +0 -1
  509. package/src/components/alert.d.ts +0 -71
  510. package/src/components/alert.js +0 -189
  511. package/src/components/alert.js.map +0 -1
  512. package/src/components/alert.schema.d.ts +0 -114
  513. package/src/components/alert.schema.js +0 -105
  514. package/src/components/alert.schema.js.map +0 -1
  515. package/src/components/avatar.d.ts +0 -76
  516. package/src/components/avatar.js +0 -176
  517. package/src/components/avatar.js.map +0 -1
  518. package/src/components/avatar.schema.d.ts +0 -169
  519. package/src/components/avatar.schema.js +0 -103
  520. package/src/components/avatar.schema.js.map +0 -1
  521. package/src/components/badge.d.ts +0 -70
  522. package/src/components/badge.js +0 -149
  523. package/src/components/badge.js.map +0 -1
  524. package/src/components/badge.schema.d.ts +0 -109
  525. package/src/components/badge.schema.js +0 -96
  526. package/src/components/badge.schema.js.map +0 -1
  527. package/src/components/button.d.ts +0 -111
  528. package/src/components/button.js +0 -336
  529. package/src/components/button.js.map +0 -1
  530. package/src/components/button.schema.d.ts +0 -148
  531. package/src/components/button.schema.js +0 -121
  532. package/src/components/button.schema.js.map +0 -1
  533. package/src/components/card.d.ts +0 -60
  534. package/src/components/card.js +0 -117
  535. package/src/components/card.js.map +0 -1
  536. package/src/components/card.schema.d.ts +0 -113
  537. package/src/components/card.schema.js +0 -98
  538. package/src/components/card.schema.js.map +0 -1
  539. package/src/components/form.d.ts +0 -239
  540. package/src/components/form.js +0 -420
  541. package/src/components/form.js.map +0 -1
  542. package/src/components/form.schema.d.ts +0 -441
  543. package/src/components/form.schema.js +0 -406
  544. package/src/components/form.schema.js.map +0 -1
  545. package/src/components/index.d.ts +0 -29
  546. package/src/components/index.js +0 -98
  547. package/src/components/index.js.map +0 -1
  548. package/src/components/list.d.ts +0 -127
  549. package/src/components/list.js +0 -279
  550. package/src/components/list.js.map +0 -1
  551. package/src/components/list.schema.d.ts +0 -134
  552. package/src/components/list.schema.js +0 -168
  553. package/src/components/list.schema.js.map +0 -1
  554. package/src/components/modal.d.ts +0 -111
  555. package/src/components/modal.js +0 -260
  556. package/src/components/modal.js.map +0 -1
  557. package/src/components/modal.schema.d.ts +0 -186
  558. package/src/components/modal.schema.js +0 -167
  559. package/src/components/modal.schema.js.map +0 -1
  560. package/src/components/table.d.ts +0 -105
  561. package/src/components/table.js +0 -283
  562. package/src/components/table.js.map +0 -1
  563. package/src/components/table.schema.d.ts +0 -159
  564. package/src/components/table.schema.js +0 -173
  565. package/src/components/table.schema.js.map +0 -1
  566. package/src/handlebars/helpers.d.ts +0 -348
  567. package/src/handlebars/helpers.js +0 -605
  568. package/src/handlebars/helpers.js.map +0 -1
  569. package/src/handlebars/index.d.ts +0 -193
  570. package/src/handlebars/index.js +0 -350
  571. package/src/handlebars/index.js.map +0 -1
  572. package/src/index.d.ts +0 -50
  573. package/src/index.js +0 -192
  574. package/src/index.js.map +0 -1
  575. package/src/layouts/base.d.ts +0 -88
  576. package/src/layouts/base.js +0 -227
  577. package/src/layouts/base.js.map +0 -1
  578. package/src/layouts/index.d.ts +0 -7
  579. package/src/layouts/index.js +0 -25
  580. package/src/layouts/index.js.map +0 -1
  581. package/src/layouts/presets.d.ts +0 -133
  582. package/src/layouts/presets.js +0 -277
  583. package/src/layouts/presets.js.map +0 -1
  584. package/src/pages/consent.d.ts +0 -116
  585. package/src/pages/consent.js +0 -218
  586. package/src/pages/consent.js.map +0 -1
  587. package/src/pages/error.d.ts +0 -100
  588. package/src/pages/error.js +0 -263
  589. package/src/pages/error.js.map +0 -1
  590. package/src/pages/index.d.ts +0 -8
  591. package/src/pages/index.js +0 -27
  592. package/src/pages/index.js.map +0 -1
  593. package/src/react/Alert.d.ts +0 -101
  594. package/src/react/Alert.js +0 -51
  595. package/src/react/Alert.js.map +0 -1
  596. package/src/react/Badge.d.ts +0 -100
  597. package/src/react/Badge.js +0 -55
  598. package/src/react/Badge.js.map +0 -1
  599. package/src/react/Button.d.ts +0 -108
  600. package/src/react/Button.js +0 -52
  601. package/src/react/Button.js.map +0 -1
  602. package/src/react/Card.d.ts +0 -103
  603. package/src/react/Card.js +0 -55
  604. package/src/react/Card.js.map +0 -1
  605. package/src/react/hooks/context.d.ts +0 -178
  606. package/src/react/hooks/context.js +0 -287
  607. package/src/react/hooks/context.js.map +0 -1
  608. package/src/react/hooks/index.d.ts +0 -41
  609. package/src/react/hooks/index.js +0 -61
  610. package/src/react/hooks/index.js.map +0 -1
  611. package/src/react/hooks/tools.d.ts +0 -283
  612. package/src/react/hooks/tools.js +0 -465
  613. package/src/react/hooks/tools.js.map +0 -1
  614. package/src/react/index.d.ts +0 -80
  615. package/src/react/index.js +0 -113
  616. package/src/react/index.js.map +0 -1
  617. package/src/react/types.d.ts +0 -105
  618. package/src/react/types.js +0 -12
  619. package/src/react/types.js.map +0 -1
  620. package/src/react/utils.d.ts +0 -42
  621. package/src/react/utils.js +0 -99
  622. package/src/react/utils.js.map +0 -1
  623. package/src/registry/index.d.ts +0 -45
  624. package/src/registry/index.js +0 -67
  625. package/src/registry/index.js.map +0 -1
  626. package/src/registry/render-template.d.ts +0 -86
  627. package/src/registry/render-template.js +0 -239
  628. package/src/registry/render-template.js.map +0 -1
  629. package/src/registry/tool-ui.registry.d.ts +0 -260
  630. package/src/registry/tool-ui.registry.js +0 -438
  631. package/src/registry/tool-ui.registry.js.map +0 -1
  632. package/src/registry/uri-utils.d.ts +0 -55
  633. package/src/registry/uri-utils.js +0 -97
  634. package/src/registry/uri-utils.js.map +0 -1
  635. package/src/render/index.d.ts +0 -7
  636. package/src/render/index.js +0 -14
  637. package/src/render/index.js.map +0 -1
  638. package/src/render/prerender.d.ts +0 -56
  639. package/src/render/prerender.js +0 -98
  640. package/src/render/prerender.js.map +0 -1
  641. package/src/renderers/cache.d.ts +0 -144
  642. package/src/renderers/cache.js +0 -240
  643. package/src/renderers/cache.js.map +0 -1
  644. package/src/renderers/html.renderer.d.ts +0 -122
  645. package/src/renderers/html.renderer.js +0 -204
  646. package/src/renderers/html.renderer.js.map +0 -1
  647. package/src/renderers/index.d.ts +0 -35
  648. package/src/renderers/index.js +0 -70
  649. package/src/renderers/index.js.map +0 -1
  650. package/src/renderers/mdx.renderer.d.ts +0 -119
  651. package/src/renderers/mdx.renderer.js +0 -305
  652. package/src/renderers/mdx.renderer.js.map +0 -1
  653. package/src/renderers/react.renderer.d.ts +0 -95
  654. package/src/renderers/react.renderer.js +0 -260
  655. package/src/renderers/react.renderer.js.map +0 -1
  656. package/src/renderers/registry.d.ts +0 -133
  657. package/src/renderers/registry.js +0 -232
  658. package/src/renderers/registry.js.map +0 -1
  659. package/src/renderers/types.d.ts +0 -341
  660. package/src/renderers/types.js +0 -9
  661. package/src/renderers/types.js.map +0 -1
  662. package/src/renderers/utils/detect.d.ts +0 -106
  663. package/src/renderers/utils/detect.js +0 -267
  664. package/src/renderers/utils/detect.js.map +0 -1
  665. package/src/renderers/utils/hash.d.ts +0 -39
  666. package/src/renderers/utils/hash.js +0 -75
  667. package/src/renderers/utils/hash.js.map +0 -1
  668. package/src/renderers/utils/index.d.ts +0 -8
  669. package/src/renderers/utils/index.js +0 -28
  670. package/src/renderers/utils/index.js.map +0 -1
  671. package/src/renderers/utils/transpiler.d.ts +0 -88
  672. package/src/renderers/utils/transpiler.js +0 -215
  673. package/src/renderers/utils/transpiler.js.map +0 -1
  674. package/src/runtime/adapters/html.adapter.d.ts +0 -58
  675. package/src/runtime/adapters/html.adapter.js +0 -131
  676. package/src/runtime/adapters/html.adapter.js.map +0 -1
  677. package/src/runtime/adapters/index.d.ts +0 -25
  678. package/src/runtime/adapters/index.js +0 -54
  679. package/src/runtime/adapters/index.js.map +0 -1
  680. package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
  681. package/src/runtime/adapters/mdx.adapter.js +0 -241
  682. package/src/runtime/adapters/mdx.adapter.js.map +0 -1
  683. package/src/runtime/adapters/react.adapter.d.ts +0 -69
  684. package/src/runtime/adapters/react.adapter.js +0 -245
  685. package/src/runtime/adapters/react.adapter.js.map +0 -1
  686. package/src/runtime/adapters/types.d.ts +0 -94
  687. package/src/runtime/adapters/types.js +0 -11
  688. package/src/runtime/adapters/types.js.map +0 -1
  689. package/src/runtime/csp.d.ts +0 -37
  690. package/src/runtime/csp.js +0 -140
  691. package/src/runtime/csp.js.map +0 -1
  692. package/src/runtime/index.d.ts +0 -16
  693. package/src/runtime/index.js +0 -72
  694. package/src/runtime/index.js.map +0 -1
  695. package/src/runtime/mcp-bridge.d.ts +0 -100
  696. package/src/runtime/mcp-bridge.js +0 -581
  697. package/src/runtime/mcp-bridge.js.map +0 -1
  698. package/src/runtime/renderer-runtime.d.ts +0 -132
  699. package/src/runtime/renderer-runtime.js +0 -389
  700. package/src/runtime/renderer-runtime.js.map +0 -1
  701. package/src/runtime/sanitizer.d.ts +0 -171
  702. package/src/runtime/sanitizer.js +0 -318
  703. package/src/runtime/sanitizer.js.map +0 -1
  704. package/src/runtime/types.d.ts +0 -414
  705. package/src/runtime/types.js +0 -12
  706. package/src/runtime/types.js.map +0 -1
  707. package/src/runtime/wrapper.d.ts +0 -375
  708. package/src/runtime/wrapper.js +0 -1793
  709. package/src/runtime/wrapper.js.map +0 -1
  710. package/src/styles/index.d.ts +0 -7
  711. package/src/styles/index.js +0 -11
  712. package/src/styles/index.js.map +0 -1
  713. package/src/styles/variants.d.ts +0 -50
  714. package/src/styles/variants.js +0 -175
  715. package/src/styles/variants.js.map +0 -1
  716. package/src/theme/cdn.d.ts +0 -194
  717. package/src/theme/cdn.js +0 -375
  718. package/src/theme/cdn.js.map +0 -1
  719. package/src/theme/index.d.ts +0 -17
  720. package/src/theme/index.js +0 -57
  721. package/src/theme/index.js.map +0 -1
  722. package/src/theme/platforms.d.ts +0 -106
  723. package/src/theme/platforms.js +0 -161
  724. package/src/theme/platforms.js.map +0 -1
  725. package/src/theme/presets/github-openai.d.ts +0 -49
  726. package/src/theme/presets/github-openai.js +0 -189
  727. package/src/theme/presets/github-openai.js.map +0 -1
  728. package/src/theme/presets/index.d.ts +0 -10
  729. package/src/theme/presets/index.js +0 -17
  730. package/src/theme/presets/index.js.map +0 -1
  731. package/src/theme/theme.d.ts +0 -395
  732. package/src/theme/theme.js +0 -332
  733. package/src/theme/theme.js.map +0 -1
  734. package/src/tool-template/builder.d.ts +0 -212
  735. package/src/tool-template/builder.js +0 -397
  736. package/src/tool-template/builder.js.map +0 -1
  737. package/src/tool-template/index.d.ts +0 -15
  738. package/src/tool-template/index.js +0 -38
  739. package/src/tool-template/index.js.map +0 -1
  740. package/src/types/index.d.ts +0 -13
  741. package/src/types/index.js +0 -26
  742. package/src/types/index.js.map +0 -1
  743. package/src/types/ui-config.d.ts +0 -357
  744. package/src/types/ui-config.js +0 -12
  745. package/src/types/ui-config.js.map +0 -1
  746. package/src/types/ui-runtime.d.ts +0 -965
  747. package/src/types/ui-runtime.js +0 -117
  748. package/src/types/ui-runtime.js.map +0 -1
  749. package/src/validation/error-box.d.ts +0 -55
  750. package/src/validation/error-box.js +0 -75
  751. package/src/validation/error-box.js.map +0 -1
  752. package/src/validation/index.d.ts +0 -12
  753. package/src/validation/index.js +0 -21
  754. package/src/validation/index.js.map +0 -1
  755. package/src/validation/wrapper.d.ts +0 -96
  756. package/src/validation/wrapper.js +0 -117
  757. package/src/validation/wrapper.js.map +0 -1
  758. package/src/web-components/core/attribute-parser.d.ts +0 -85
  759. package/src/web-components/core/attribute-parser.js +0 -189
  760. package/src/web-components/core/attribute-parser.js.map +0 -1
  761. package/src/web-components/core/base-element.d.ts +0 -197
  762. package/src/web-components/core/base-element.js +0 -289
  763. package/src/web-components/core/base-element.js.map +0 -1
  764. package/src/web-components/core/index.d.ts +0 -8
  765. package/src/web-components/core/index.js +0 -18
  766. package/src/web-components/core/index.js.map +0 -1
  767. package/src/web-components/elements/fmcp-alert.d.ts +0 -45
  768. package/src/web-components/elements/fmcp-alert.js +0 -93
  769. package/src/web-components/elements/fmcp-alert.js.map +0 -1
  770. package/src/web-components/elements/fmcp-badge.d.ts +0 -46
  771. package/src/web-components/elements/fmcp-badge.js +0 -99
  772. package/src/web-components/elements/fmcp-badge.js.map +0 -1
  773. package/src/web-components/elements/fmcp-button.d.ts +0 -124
  774. package/src/web-components/elements/fmcp-button.js +0 -233
  775. package/src/web-components/elements/fmcp-button.js.map +0 -1
  776. package/src/web-components/elements/fmcp-card.d.ts +0 -52
  777. package/src/web-components/elements/fmcp-card.js +0 -115
  778. package/src/web-components/elements/fmcp-card.js.map +0 -1
  779. package/src/web-components/elements/fmcp-input.d.ts +0 -95
  780. package/src/web-components/elements/fmcp-input.js +0 -248
  781. package/src/web-components/elements/fmcp-input.js.map +0 -1
  782. package/src/web-components/elements/fmcp-select.d.ts +0 -99
  783. package/src/web-components/elements/fmcp-select.js +0 -243
  784. package/src/web-components/elements/fmcp-select.js.map +0 -1
  785. package/src/web-components/elements/index.d.ts +0 -12
  786. package/src/web-components/elements/index.js +0 -34
  787. package/src/web-components/elements/index.js.map +0 -1
  788. package/src/web-components/index.d.ts +0 -49
  789. package/src/web-components/index.js +0 -75
  790. package/src/web-components/index.js.map +0 -1
  791. package/src/web-components/register.d.ts +0 -56
  792. package/src/web-components/register.js +0 -80
  793. package/src/web-components/register.js.map +0 -1
  794. package/src/web-components/types.d.ts +0 -121
  795. package/src/web-components/types.js +0 -25
  796. package/src/web-components/types.js.map +0 -1
  797. package/src/widgets/index.d.ts +0 -7
  798. package/src/widgets/index.js +0 -24
  799. package/src/widgets/index.js.map +0 -1
  800. package/src/widgets/progress.d.ts +0 -132
  801. package/src/widgets/progress.js +0 -303
  802. package/src/widgets/progress.js.map +0 -1
  803. package/src/widgets/resource.d.ts +0 -162
  804. package/src/widgets/resource.js +0 -340
  805. package/src/widgets/resource.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget-manifest.js","sourceRoot":"","sources":["../../../src/build/widget-manifest.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Widget Manifest Builder\n *\n * Builds static widget wrappers with embedded manifests for tool UIs.\n * Produces complete HTML documents with FrontMCP Bridge runtime.\n *\n * @packageDocumentation\n */\n\nimport type {\n UIType,\n BundlingMode,\n DisplayMode,\n ResourceMode,\n OutputMode,\n CSPDirectives,\n RendererAssets,\n WidgetManifest,\n WidgetConfig,\n BuildManifestResult,\n BuildManifestOptions,\n UIMetaFields,\n OpenAIMetaFields,\n ToolResponseMeta,\n} from '../types/ui-runtime';\nimport {\n DEFAULT_CSP_BY_TYPE,\n DEFAULT_RENDERER_ASSETS,\n isUIType,\n isResourceMode,\n} from '../types/ui-runtime';\nimport { getDefaultAssets, buildScriptsForUIType } from './cdn-resources';\nimport type { ThemeConfig } from '../theme';\nimport { wrapToolUIUniversal } from '../runtime/wrapper';\nimport { rendererRegistry } from '../renderers/registry';\nimport { detectTemplateType, reactRenderer, mdxRenderer } from '../renderers';\n\n// ============================================\n// UI Type Detection\n// ============================================\n\n/**\n * Detect the UI type from a template.\n *\n * @param template - Widget template\n * @returns Detected UI type\n */\nexport function detectUIType(template: WidgetConfig['template']): UIType {\n const detection = detectTemplateType(template);\n\n switch (detection.type) {\n case 'react':\n return 'react';\n case 'mdx':\n return 'mdx';\n case 'jsx-string':\n return 'react'; // JSX strings are rendered as React\n case 'html-string':\n case 'html-function':\n return 'html';\n default:\n return 'auto';\n }\n}\n\n// ============================================\n// CSP Building\n// ============================================\n\n/**\n * Build CSP directives for a UI type.\n *\n * @param uiType - UI renderer type\n * @param userCsp - User-provided CSP overrides\n * @returns Complete CSP directives\n */\nexport function buildCSPForType(\n uiType: UIType,\n userCsp?: Partial<CSPDirectives>\n): CSPDirectives {\n const baseCsp = DEFAULT_CSP_BY_TYPE[uiType] ?? DEFAULT_CSP_BY_TYPE['auto'];\n\n if (!userCsp) {\n return { ...baseCsp };\n }\n\n // Merge user CSP with base CSP\n return {\n scriptSrc: mergeCspArray(baseCsp.scriptSrc, userCsp.scriptSrc),\n styleSrc: mergeCspArray(baseCsp.styleSrc, userCsp.styleSrc),\n connectSrc: mergeCspArray(baseCsp.connectSrc, userCsp.connectSrc),\n imgSrc: userCsp.imgSrc ?? baseCsp.imgSrc,\n fontSrc: userCsp.fontSrc ?? baseCsp.fontSrc,\n defaultSrc: userCsp.defaultSrc ?? baseCsp.defaultSrc,\n frameSrc: userCsp.frameSrc ?? baseCsp.frameSrc,\n objectSrc: userCsp.objectSrc ?? baseCsp.objectSrc,\n };\n}\n\n/**\n * Merge CSP arrays, preserving uniqueness.\n */\nfunction mergeCspArray(base: string[], override?: string[]): string[] {\n if (!override) return [...base];\n const merged = new Set([...base, ...override]);\n return Array.from(merged);\n}\n\n/**\n * Build CSP meta tag content.\n */\nexport function buildCSPMetaContent(csp: CSPDirectives): string {\n const directives: string[] = [];\n\n if (csp.defaultSrc?.length) {\n directives.push(`default-src ${csp.defaultSrc.join(' ')}`);\n }\n if (csp.scriptSrc.length) {\n directives.push(`script-src ${csp.scriptSrc.join(' ')}`);\n }\n if (csp.styleSrc.length) {\n directives.push(`style-src ${csp.styleSrc.join(' ')}`);\n }\n if (csp.connectSrc.length) {\n directives.push(`connect-src ${csp.connectSrc.join(' ')}`);\n }\n if (csp.imgSrc?.length) {\n directives.push(`img-src ${csp.imgSrc.join(' ')}`);\n }\n if (csp.fontSrc?.length) {\n directives.push(`font-src ${csp.fontSrc.join(' ')}`);\n }\n if (csp.frameSrc?.length) {\n directives.push(`frame-src ${csp.frameSrc.join(' ')}`);\n }\n if (csp.objectSrc?.length) {\n directives.push(`object-src ${csp.objectSrc.join(' ')}`);\n }\n\n return directives.join('; ');\n}\n\n// ============================================\n// Renderer Assets\n// ============================================\n\n/**\n * Get renderer assets for a UI type.\n *\n * @param uiType - UI renderer type\n * @param resourceMode - Resource loading mode (cdn or inline)\n * @returns Required renderer assets with CDN URLs or inline placeholders\n *\n * @example\n * ```typescript\n * // Get CDN-based assets for React\n * const assets = getRendererAssets('react', 'cdn');\n * console.log(assets.react?.url);\n * // \"https://unpkg.com/react@18/umd/react.production.min.js\"\n *\n * // Get inline-mode assets\n * const inlineAssets = getRendererAssets('react', 'inline');\n * // inlineAssets.mode === 'inline'\n * ```\n */\nexport function getRendererAssets(uiType: UIType, resourceMode: ResourceMode = 'cdn'): RendererAssets {\n // Use the CDN resources helper which provides proper CDN URLs\n return getDefaultAssets(uiType, resourceMode);\n}\n\n// ============================================\n// Hash Generation\n// ============================================\n\n/**\n * Generate a hash for content.\n */\nasync function generateHash(content: string): Promise<string> {\n // Use Web Crypto API if available\n if (typeof crypto !== 'undefined' && crypto.subtle) {\n const encoder = new TextEncoder();\n const data = encoder.encode(content);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\n }\n\n // Fallback: simple hash\n let hash = 0;\n for (let i = 0; i < content.length; i++) {\n const char = content.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return Math.abs(hash).toString(16).padStart(8, '0');\n}\n\n// ============================================\n// Main Builder\n// ============================================\n\n/**\n * Build a widget manifest for a tool.\n *\n * Creates a static widget wrapper with embedded manifest.\n * The widget can be cached and reused across tool invocations.\n *\n * @param options - Build options\n * @returns Build result with HTML, manifest, and metadata\n *\n * @example\n * ```typescript\n * import { buildToolWidgetManifest } from '@frontmcp/ui/build';\n *\n * const result = await buildToolWidgetManifest({\n * toolName: 'weather.get',\n * uiConfig: {\n * template: WeatherWidget,\n * uiType: 'react',\n * displayMode: 'inline',\n * widgetAccessible: true,\n * },\n * schema: { type: 'object', properties: { ... } },\n * });\n *\n * // Cache the HTML\n * cache.set(`ui://widget/${result.manifest.tool}.html`, result.html);\n * ```\n */\nexport async function buildToolWidgetManifest<\n Input = Record<string, unknown>,\n Output = unknown,\n>(options: BuildManifestOptions<Input, Output>): Promise<BuildManifestResult> {\n const { toolName, uiConfig, schema, theme, sampleInput, sampleOutput } = options;\n\n // Resolve UI type\n // Use type assertion to handle complex generic template types\n const uiType: UIType = isUIType(uiConfig.uiType)\n ? uiConfig.uiType\n : detectUIType(uiConfig.template as WidgetConfig['template']);\n\n // Resolve display mode\n const displayMode: DisplayMode = uiConfig.displayMode ?? 'inline';\n\n // Resolve bundling mode\n const bundlingMode: BundlingMode = uiConfig.bundlingMode ?? 'static';\n\n // Resolve resource mode (cdn or inline)\n const resourceMode: ResourceMode = isResourceMode(uiConfig.resourceMode)\n ? uiConfig.resourceMode\n : 'cdn';\n\n // Build CSP\n const csp = buildCSPForType(uiType, uiConfig.csp);\n\n // Get renderer assets based on resource mode\n const rendererAssets = getRendererAssets(uiType, resourceMode);\n\n // Render the template to get initial content\n // Cast to generic type to avoid complex type inference issues\n const templateConfig = uiConfig as WidgetConfig<Record<string, unknown>, unknown>;\n const content = await renderTemplate(templateConfig, {\n input: (sampleInput ?? {}) as Record<string, unknown>,\n output: (sampleOutput ?? {}) as unknown,\n uiType,\n });\n\n // Generate component code for client-side rendering (React/MDX only)\n const componentCode = (uiType === 'react' || uiType === 'mdx')\n ? buildComponentCode(uiConfig.template, toolName)\n : undefined;\n\n // Build manifest\n // Note: We intentionally omit 'uri' since we're not using resource-based serving.\n // The content/html is returned directly in the tool response.\n const manifestBase: Omit<WidgetManifest, 'hash'> = {\n tool: toolName,\n uiType,\n bundlingMode,\n displayMode,\n widgetAccessible: uiConfig.widgetAccessible ?? false,\n schema: schema ?? {},\n csp,\n rendererAssets,\n createdAt: new Date().toISOString(),\n description: uiConfig.widgetDescription,\n };\n\n // Convert CSPDirectives to UIContentSecurityPolicy for wrapper\n const wrapperCsp = uiConfig.csp ? {\n connectDomains: uiConfig.csp.connectSrc,\n resourceDomains: [\n ...(uiConfig.csp.scriptSrc ?? []),\n ...(uiConfig.csp.styleSrc ?? []),\n ...(uiConfig.csp.imgSrc ?? []),\n ].filter((d) => d !== \"'self'\" && d !== \"'unsafe-inline'\"),\n } : undefined;\n\n // Build manifest script to embed in the page\n const manifestScript = buildManifestScript(manifestBase);\n\n // Prepend manifest script to content so it's available before the UI renders\n const contentWithManifest = manifestScript + '\\n' + content;\n\n // Build the complete HTML with manifest embedded\n // Use inlineScripts when resourceMode is 'inline' (for blocked-network environments)\n const html = wrapToolUIUniversal({\n content: contentWithManifest,\n toolName,\n input: (sampleInput ?? {}) as Record<string, unknown>,\n output: sampleOutput as unknown,\n csp: wrapperCsp,\n widgetAccessible: uiConfig.widgetAccessible,\n includeBridge: true,\n rendererType: uiType,\n inlineScripts: resourceMode === 'inline',\n resourceMode, // Pass resource mode for CDN script generation\n });\n\n // Generate hash based on tool name + content (for cache invalidation)\n // Including toolName ensures different tools have different hashes even if content is similar\n const hash = await generateHash(`${toolName}:${content}`);\n\n // Complete manifest with hash\n const manifest: WidgetManifest = {\n ...manifestBase,\n hash: `sha256-${hash}`,\n };\n\n // Calculate sizes\n const contentSize = new TextEncoder().encode(content).length;\n const htmlSize = new TextEncoder().encode(html).length;\n const gzipSize = Math.round(htmlSize * 0.25); // Rough estimate\n\n return {\n // Transpiled content only (for capable clients like OpenAI)\n content,\n // Full HTML document (for limited/unknown MCP clients)\n html,\n manifest,\n hash,\n rendererType: uiType,\n // Component code for client-side rendering (React/MDX only)\n componentCode,\n contentSize,\n htmlSize,\n gzipSize,\n // Deprecated, kept for backwards compatibility\n size: htmlSize,\n };\n}\n\n/**\n * Build the manifest script tag for embedding in HTML.\n */\nfunction buildManifestScript(manifest: Omit<WidgetManifest, 'hash'>): string {\n // Escape for embedding in script tag\n const json = JSON.stringify(manifest)\n .replace(/</g, '\\\\u003c')\n .replace(/>/g, '\\\\u003e')\n .replace(/&/g, '\\\\u0026');\n\n return `\n<script type=\"application/json\" id=\"frontmcp-widget-manifest\">\n${json}\n</script>\n<script>\n(function() {\n try {\n var manifest = JSON.parse(document.getElementById('frontmcp-widget-manifest').textContent);\n window.__frontmcp = window.__frontmcp || {};\n window.__frontmcp.widget = window.__frontmcp.widget || {};\n window.__frontmcp.widget.manifest = manifest;\n } catch (e) {\n console.error('[FrontMCP] Failed to parse widget manifest:', e);\n }\n})();\n</script>\n `.trim();\n}\n\n// ============================================\n// Component Code Builder (for Client-Side Rendering)\n// ============================================\n\n/**\n * Build client-side component code for React templates.\n *\n * This converts the server-side React component into a string that can be\n * embedded in the widget HTML for client-side rendering when tool output\n * becomes available.\n *\n * @param template - The React component or template\n * @param toolName - Tool name for naming the component\n * @returns JavaScript code string that defines the component\n */\nfunction buildComponentCode(template: unknown, toolName: string): string | undefined {\n if (typeof template !== 'function') {\n return undefined;\n }\n\n // Get the component function as a string\n const componentSource = template.toString();\n\n // Sanitize tool name for JavaScript variable name\n const safeName = toolName.replace(/[^a-zA-Z0-9_]/g, '_');\n\n // Build the component code that will be embedded in the HTML\n // The component is registered on window.__frontmcp_component for the render script\n return `\n// FrontMCP Widget Component: ${toolName}\n(function() {\n // The component function\n var ${safeName} = ${componentSource};\n\n // Register component globally for client-side rendering\n window.__frontmcp_component = ${safeName};\n\n // Also register in __frontmcp_components for multiple components\n window.__frontmcp_components = window.__frontmcp_components || {};\n window.__frontmcp_components['${toolName}'] = ${safeName};\n})();\n`.trim();\n}\n\n/**\n * Ensure renderers are registered before use.\n * This is called once and ensures React/MDX renderers are available.\n */\nlet renderersInitialized = false;\n\nfunction ensureRenderersRegistered(): void {\n if (renderersInitialized) {\n return;\n }\n\n // Register React renderer if not already registered\n if (!rendererRegistry.has('react')) {\n rendererRegistry.register(reactRenderer);\n }\n\n // Register MDX renderer if not already registered\n if (!rendererRegistry.has('mdx')) {\n rendererRegistry.register(mdxRenderer);\n }\n\n renderersInitialized = true;\n}\n\n/**\n * Render template content.\n */\nasync function renderTemplate(\n uiConfig: WidgetConfig,\n options: {\n input: Record<string, unknown>;\n output: unknown;\n uiType: UIType;\n }\n): Promise<string> {\n const { input, output, uiType } = options;\n const template = uiConfig.template;\n\n // Ensure renderers are available\n ensureRenderersRegistered();\n\n // Build context for template\n const context = {\n input: input as Record<string, unknown>,\n output,\n structuredContent: undefined,\n helpers: {\n escapeHtml: (str: string) => str.replace(/[&<>\"']/g, (c) => ({\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n })[c] ?? c),\n formatDate: (date: Date | string) => new Date(date).toLocaleDateString(),\n formatCurrency: (amount: number, currency = 'USD') =>\n new Intl.NumberFormat('en-US', { style: 'currency', currency }).format(amount),\n uniqueId: (prefix = 'id') => `${prefix}-${Math.random().toString(36).slice(2, 9)}`,\n jsonEmbed: (data: unknown) => JSON.stringify(data).replace(/</g, '\\\\u003c').replace(/>/g, '\\\\u003e'),\n },\n };\n\n // Try to render using the registry\n try {\n // Use the detected uiType to render with the correct renderer\n if (uiType === 'react' && rendererRegistry.has('react')) {\n const result = await rendererRegistry.renderWith('react', template, context, {\n mdxComponents: uiConfig.mdxComponents,\n });\n return result.html;\n }\n\n if (uiType === 'mdx' && rendererRegistry.has('mdx')) {\n const result = await rendererRegistry.renderWith('mdx', template, context, {\n mdxComponents: uiConfig.mdxComponents,\n });\n return result.html;\n }\n\n // Auto-detect and render\n const result = await rendererRegistry.render(template, context, {\n mdxComponents: uiConfig.mdxComponents,\n });\n return result.html;\n } catch (error) {\n // Fallback: simple rendering\n if (typeof template === 'string') {\n return template;\n }\n if (typeof template === 'function') {\n // Check if it's a React component (has prototype or is class)\n const isReact = template.prototype?.isReactComponent ||\n (template as { $$typeof?: symbol }).$$typeof !== undefined;\n\n if (!isReact) {\n // It's a template builder function\n return (template as (ctx: typeof context) => string)(context);\n }\n }\n // Log the error for debugging\n console.warn('[FrontMCP] Template rendering failed:', error);\n return `<div class=\"error\">Template rendering failed</div>`;\n }\n}\n\n// ============================================\n// Batch Building\n// ============================================\n\n/**\n * Options for batch building multiple widgets.\n */\nexport interface BatchBuildOptions {\n /**\n * Array of tool configurations to build.\n */\n tools: Array<{\n toolName: string;\n uiConfig: WidgetConfig;\n schema?: object;\n }>;\n\n /**\n * Theme configuration to apply to all widgets.\n */\n theme?: ThemeConfig;\n\n /**\n * Enable parallel building.\n * @default true\n */\n parallel?: boolean;\n}\n\n/**\n * Result of batch building.\n */\nexport interface BatchBuildResult {\n /**\n * Individual build results keyed by tool name.\n */\n results: Map<string, BuildManifestResult>;\n\n /**\n * Total build time in ms.\n */\n totalTime: number;\n\n /**\n * Number of successful builds.\n */\n successCount: number;\n\n /**\n * Errors encountered (keyed by tool name).\n */\n errors: Map<string, Error>;\n}\n\n/**\n * Build multiple widget manifests in batch.\n *\n * @param options - Batch build options\n * @returns Batch build results\n *\n * @example\n * ```typescript\n * const { results, errors } = await batchBuildWidgets({\n * tools: [\n * { toolName: 'weather.get', uiConfig: weatherConfig },\n * { toolName: 'stock.quote', uiConfig: stockConfig },\n * ],\n * });\n *\n * for (const [name, result] of results) {\n * cache.set(result.manifest.uri, result.html);\n * }\n * ```\n */\nexport async function batchBuildWidgets(options: BatchBuildOptions): Promise<BatchBuildResult> {\n const startTime = performance.now();\n const results = new Map<string, BuildManifestResult>();\n const errors = new Map<string, Error>();\n\n const { tools, theme, parallel = true } = options;\n\n if (parallel) {\n // Build in parallel\n const promises = tools.map(async (tool) => {\n try {\n const result = await buildToolWidgetManifest({\n toolName: tool.toolName,\n uiConfig: tool.uiConfig,\n schema: tool.schema,\n theme,\n });\n return { toolName: tool.toolName, result, error: null };\n } catch (error) {\n return {\n toolName: tool.toolName,\n result: null,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n });\n\n const outcomes = await Promise.all(promises);\n\n for (const outcome of outcomes) {\n if (outcome.result) {\n results.set(outcome.toolName, outcome.result);\n } else if (outcome.error) {\n errors.set(outcome.toolName, outcome.error);\n }\n }\n } else {\n // Build sequentially\n for (const tool of tools) {\n try {\n const result = await buildToolWidgetManifest({\n toolName: tool.toolName,\n uiConfig: tool.uiConfig,\n schema: tool.schema,\n theme,\n });\n results.set(tool.toolName, result);\n } catch (error) {\n errors.set(\n tool.toolName,\n error instanceof Error ? error : new Error(String(error))\n );\n }\n }\n }\n\n return {\n results,\n totalTime: performance.now() - startTime,\n successCount: results.size,\n errors,\n };\n}\n\n// ============================================\n// _meta Field Builders\n// ============================================\n\n/**\n * Options for building tool response _meta fields.\n */\nexport interface BuildMetaOptions {\n /**\n * Build result from buildToolWidgetManifest.\n */\n buildResult: BuildManifestResult;\n\n /**\n * Output mode - determines which content to include.\n * - 'code-only': Include ui/content (transpiled code only)\n * - 'full-ssr': Include ui/html (complete HTML document)\n *\n * @default 'code-only'\n */\n outputMode?: OutputMode;\n\n /**\n * Include OpenAI-specific meta fields.\n * @default true\n */\n includeOpenAI?: boolean;\n}\n\n/**\n * Build _meta fields for a tool response.\n *\n * This function generates the proper _meta structure for UI widgets.\n * All UI-related data goes in _meta, NOT in the content array.\n *\n * @param options - Build options\n * @returns _meta fields object to spread into tool response\n *\n * @example\n * ```typescript\n * const buildResult = await buildToolWidgetManifest({...});\n *\n * // For OpenAI (code-only mode)\n * const meta = buildToolResponseMeta({\n * buildResult,\n * outputMode: 'code-only',\n * });\n *\n * return {\n * content: [{ type: 'text', text: 'Weather retrieved' }],\n * _meta: meta,\n * };\n *\n * // For unknown clients (full-ssr mode)\n * const meta = buildToolResponseMeta({\n * buildResult,\n * outputMode: 'full-ssr',\n * });\n * ```\n */\nexport function buildToolResponseMeta(options: BuildMetaOptions): ToolResponseMeta {\n const { buildResult, outputMode = 'code-only', includeOpenAI = true } = options;\n const { manifest, content, html, hash, rendererType } = buildResult;\n\n // Base UI meta fields\n const meta: ToolResponseMeta = {\n 'ui/type': rendererType,\n 'ui/hash': hash,\n };\n\n // Add content based on output mode\n if (outputMode === 'code-only') {\n meta['ui/content'] = content;\n } else {\n meta['ui/html'] = html;\n }\n\n // Add optional fields from manifest\n if (manifest.displayMode && manifest.displayMode !== 'inline') {\n meta['ui/displayMode'] = manifest.displayMode;\n }\n\n if (manifest.widgetAccessible) {\n meta['ui/widgetAccessible'] = true;\n }\n\n if (manifest.description) {\n meta['ui/description'] = manifest.description;\n }\n\n // Add resource mode if not default\n if (manifest.rendererAssets?.mode && manifest.rendererAssets.mode !== 'cdn') {\n meta['ui/resourceMode'] = manifest.rendererAssets.mode;\n }\n\n // Add OpenAI-specific fields\n if (includeOpenAI) {\n if (manifest.widgetAccessible) {\n meta['openai/widgetAccessible'] = true;\n }\n\n if (manifest.description) {\n meta['openai/widgetDescription'] = manifest.description;\n }\n\n if (manifest.displayMode && manifest.displayMode !== 'inline') {\n meta['openai/displayMode'] = manifest.displayMode;\n }\n\n // Build OpenAI CSP from manifest CSP\n const csp = manifest.csp;\n if (csp) {\n const openaiCsp: OpenAIMetaFields['openai/widgetCSP'] = {};\n\n if (csp.connectSrc && csp.connectSrc.length > 0) {\n openaiCsp.connect_domains = csp.connectSrc.filter(\n (d) => d !== \"'self'\" && d !== \"'none'\"\n );\n }\n\n const resourceDomains = [\n ...(csp.scriptSrc || []),\n ...(csp.styleSrc || []),\n ...(csp.imgSrc || []),\n ].filter((d) => d !== \"'self'\" && d !== \"'unsafe-inline'\" && d !== \"'none'\");\n\n if (resourceDomains.length > 0) {\n openaiCsp.resource_domains = [...new Set(resourceDomains)];\n }\n\n if (openaiCsp.connect_domains?.length || openaiCsp.resource_domains?.length) {\n meta['openai/widgetCSP'] = openaiCsp;\n }\n }\n }\n\n return meta;\n}\n\n/**\n * Determine the appropriate output mode based on client info.\n *\n * @param clientInfo - MCP client information\n * @returns Recommended output mode\n *\n * @example\n * ```typescript\n * const outputMode = getOutputModeForClient(request.clientInfo);\n * const meta = buildToolResponseMeta({ buildResult, outputMode });\n * ```\n */\nexport function getOutputModeForClient(clientInfo?: {\n name?: string;\n version?: string;\n}): OutputMode {\n if (!clientInfo?.name) {\n // Unknown client - use full SSR for safety\n return 'full-ssr';\n }\n\n const name = clientInfo.name.toLowerCase();\n\n // Capable clients that provide their own runtime\n if (\n name.includes('openai') ||\n name.includes('chatgpt') ||\n name.includes('cursor') ||\n name.includes('claude') // Claude Desktop might support code-only in future\n ) {\n return 'code-only';\n }\n\n // Default to full SSR for unknown clients\n return 'full-ssr';\n}\n"]}
@@ -1,110 +0,0 @@
1
- /**
2
- * In-Memory Bundler
3
- *
4
- * Fast, secure bundler for JSX/TSX/MDX sources using esbuild.
5
- * Provides caching, security validation, and SSR support.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { BundleOptions, BundleResult, SSRBundleOptions, SSRResult, BundlerOptions } from './types';
10
- /**
11
- * In-memory bundler for JSX/TSX/MDX sources.
12
- *
13
- * Features:
14
- * - Fast transformation using esbuild (fallback to SWC)
15
- * - Content-addressable caching
16
- * - Security validation (blocked imports, eval, etc.)
17
- * - SSR support for React components
18
- *
19
- * @example
20
- * ```typescript
21
- * const bundler = new InMemoryBundler();
22
- *
23
- * // Bundle JSX source
24
- * const result = await bundler.bundle({
25
- * source: 'const App = () => <div>Hello</div>; export default App;',
26
- * sourceType: 'jsx',
27
- * });
28
- *
29
- * console.log(result.code); // Bundled JavaScript
30
- * console.log(result.cached); // Whether from cache
31
- *
32
- * // SSR rendering
33
- * const ssrResult = await bundler.bundleSSR({
34
- * source: 'export default ({ data }) => <div>{data.message}</div>',
35
- * sourceType: 'jsx',
36
- * context: { data: { message: 'Hello' } },
37
- * });
38
- *
39
- * console.log(ssrResult.html); // Rendered HTML
40
- * ```
41
- */
42
- export declare class InMemoryBundler {
43
- private readonly cache;
44
- private readonly options;
45
- private readonly defaultSecurity;
46
- constructor(options?: BundlerOptions);
47
- /**
48
- * Bundle source code.
49
- *
50
- * @param options - Bundle options
51
- * @returns Bundle result
52
- */
53
- bundle(options: BundleOptions): Promise<BundleResult>;
54
- /**
55
- * Bundle and execute for SSR.
56
- *
57
- * @param options - SSR bundle options
58
- * @returns SSR result with rendered HTML
59
- */
60
- bundleSSR(options: SSRBundleOptions): Promise<SSRResult>;
61
- /**
62
- * Bundle and execute code, returning the exports.
63
- *
64
- * @param options - Bundle options
65
- * @param context - Execution context
66
- * @returns Exported value
67
- */
68
- bundleAndExecute<T = unknown>(options: BundleOptions, context?: Record<string, unknown>): Promise<T>;
69
- /**
70
- * Get cache statistics.
71
- */
72
- getCacheStats(): import("./cache").CacheStats;
73
- /**
74
- * Clear the cache.
75
- */
76
- clearCache(): void;
77
- /**
78
- * Clean up expired cache entries.
79
- */
80
- cleanupCache(): number;
81
- /**
82
- * Transform source code using esbuild/SWC.
83
- */
84
- private transform;
85
- /**
86
- * Get esbuild loader for source type.
87
- */
88
- private getLoader;
89
- /**
90
- * Detect source type from content.
91
- */
92
- private detectSourceType;
93
- /**
94
- * Merge bundle options with defaults.
95
- */
96
- private mergeOptions;
97
- /**
98
- * Build hydration script for client-side React.
99
- */
100
- private buildHydrationScript;
101
- }
102
- /**
103
- * Create a bundler instance with default options.
104
- *
105
- * @param options - Bundler configuration
106
- * @returns New bundler instance
107
- */
108
- export declare function createBundler(options?: BundlerOptions): InMemoryBundler;
109
- export { SecurityError } from './sandbox/policy';
110
- export { ExecutionError } from './sandbox/executor';
@@ -1,432 +0,0 @@
1
- "use strict";
2
- /**
3
- * In-Memory Bundler
4
- *
5
- * Fast, secure bundler for JSX/TSX/MDX sources using esbuild.
6
- * Provides caching, security validation, and SSR support.
7
- *
8
- * @packageDocumentation
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.ExecutionError = exports.SecurityError = exports.InMemoryBundler = void 0;
12
- exports.createBundler = createBundler;
13
- const types_1 = require("./types");
14
- const cache_1 = require("./cache");
15
- const policy_1 = require("./sandbox/policy");
16
- const executor_1 = require("./sandbox/executor");
17
- /**
18
- * Lazy-loaded esbuild transform function.
19
- */
20
- let esbuildTransform = null;
21
- /**
22
- * Load esbuild transform function.
23
- */
24
- async function loadEsbuild() {
25
- if (esbuildTransform !== null) {
26
- return esbuildTransform;
27
- }
28
- try {
29
- const esbuild = await import('esbuild');
30
- esbuildTransform = esbuild.transform;
31
- return esbuildTransform;
32
- }
33
- catch {
34
- // Fallback: try @swc/core
35
- try {
36
- const swc = await import('@swc/core');
37
- esbuildTransform = async (source, options) => {
38
- const opts = options;
39
- const result = await swc.transform(source, {
40
- jsc: {
41
- parser: {
42
- syntax: 'typescript',
43
- tsx: opts.loader === 'tsx' || opts.loader === 'jsx',
44
- },
45
- transform: {
46
- react: {
47
- runtime: 'automatic',
48
- development: false,
49
- },
50
- },
51
- target: 'es2020',
52
- minify: opts.minify ? { compress: true, mangle: true } : undefined,
53
- },
54
- module: {
55
- type: 'commonjs',
56
- },
57
- sourceMaps: opts.sourcemap ? true : false,
58
- });
59
- return { code: result.code, map: result.map };
60
- };
61
- return esbuildTransform;
62
- }
63
- catch {
64
- console.warn('[@frontmcp/ui/bundler] Neither esbuild nor @swc/core available. ' +
65
- 'Install esbuild for best performance: npm install esbuild');
66
- return null;
67
- }
68
- }
69
- }
70
- /**
71
- * In-memory bundler for JSX/TSX/MDX sources.
72
- *
73
- * Features:
74
- * - Fast transformation using esbuild (fallback to SWC)
75
- * - Content-addressable caching
76
- * - Security validation (blocked imports, eval, etc.)
77
- * - SSR support for React components
78
- *
79
- * @example
80
- * ```typescript
81
- * const bundler = new InMemoryBundler();
82
- *
83
- * // Bundle JSX source
84
- * const result = await bundler.bundle({
85
- * source: 'const App = () => <div>Hello</div>; export default App;',
86
- * sourceType: 'jsx',
87
- * });
88
- *
89
- * console.log(result.code); // Bundled JavaScript
90
- * console.log(result.cached); // Whether from cache
91
- *
92
- * // SSR rendering
93
- * const ssrResult = await bundler.bundleSSR({
94
- * source: 'export default ({ data }) => <div>{data.message}</div>',
95
- * sourceType: 'jsx',
96
- * context: { data: { message: 'Hello' } },
97
- * });
98
- *
99
- * console.log(ssrResult.html); // Rendered HTML
100
- * ```
101
- */
102
- class InMemoryBundler {
103
- cache;
104
- options;
105
- defaultSecurity;
106
- constructor(options = {}) {
107
- this.options = {
108
- ...types_1.DEFAULT_BUNDLER_OPTIONS,
109
- ...options,
110
- cache: {
111
- ...types_1.DEFAULT_BUNDLER_OPTIONS.cache,
112
- ...options.cache,
113
- },
114
- };
115
- this.cache = new cache_1.BundlerCache({
116
- maxSize: this.options.cache.maxSize,
117
- ttl: this.options.cache.ttl,
118
- });
119
- this.defaultSecurity = (0, policy_1.mergePolicy)(options.defaultSecurity);
120
- }
121
- /**
122
- * Bundle source code.
123
- *
124
- * @param options - Bundle options
125
- * @returns Bundle result
126
- */
127
- async bundle(options) {
128
- const startTime = performance.now();
129
- // Merge options with defaults
130
- const opts = this.mergeOptions(options);
131
- // Check cache first
132
- if (!opts.skipCache && !this.options.cache.disabled) {
133
- const cacheKey = options.cacheKey ?? (0, cache_1.createCacheKey)(options.source, opts);
134
- const cached = this.cache.get(cacheKey);
135
- if (cached) {
136
- return {
137
- ...cached,
138
- cached: true,
139
- metrics: {
140
- ...cached.metrics,
141
- cacheTime: performance.now() - startTime,
142
- },
143
- };
144
- }
145
- }
146
- // Validate security
147
- const security = (0, policy_1.mergePolicy)(options.security ?? this.defaultSecurity);
148
- const violations = (0, policy_1.validateSource)(options.source, security);
149
- (0, policy_1.throwOnViolations)(violations);
150
- // Detect source type
151
- const sourceType = opts.sourceType === 'auto' ? this.detectSourceType(options.source) : opts.sourceType;
152
- // Transform
153
- const transformStart = performance.now();
154
- const transformed = await this.transform(options.source, sourceType, opts);
155
- const transformTime = performance.now() - transformStart;
156
- // Validate size
157
- const sizeViolation = (0, policy_1.validateSize)(transformed.code.length, security);
158
- if (sizeViolation) {
159
- (0, policy_1.throwOnViolations)([sizeViolation]);
160
- }
161
- // Build result
162
- const hash = (0, cache_1.hashContent)(transformed.code);
163
- const result = {
164
- code: transformed.code,
165
- hash,
166
- cached: false,
167
- size: transformed.code.length,
168
- map: transformed.map,
169
- metrics: {
170
- transformTime,
171
- bundleTime: 0, // No separate bundle step for transform-only
172
- totalTime: performance.now() - startTime,
173
- },
174
- sourceType,
175
- format: opts.format,
176
- };
177
- // Cache result
178
- if (!this.options.cache.disabled) {
179
- const cacheKey = options.cacheKey ?? (0, cache_1.createCacheKey)(options.source, opts);
180
- this.cache.set(cacheKey, result);
181
- }
182
- return result;
183
- }
184
- /**
185
- * Bundle and execute for SSR.
186
- *
187
- * @param options - SSR bundle options
188
- * @returns SSR result with rendered HTML
189
- */
190
- async bundleSSR(options) {
191
- const startTime = performance.now();
192
- // First, bundle the source
193
- const bundleResult = await this.bundle({
194
- ...options,
195
- format: 'cjs', // CommonJS for execution
196
- });
197
- // Load React for SSR
198
- let React;
199
- let ReactDOMServer;
200
- try {
201
- React = await import('react');
202
- ReactDOMServer = await import('react-dom/server');
203
- }
204
- catch {
205
- throw new Error('React and react-dom/server are required for SSR. Install them: npm install react react-dom');
206
- }
207
- // Execute the bundled code
208
- const renderStart = performance.now();
209
- const Component = await (0, executor_1.executeDefault)(bundleResult.code, {
210
- React,
211
- security: (0, policy_1.mergePolicy)(options.security ?? this.defaultSecurity),
212
- });
213
- // Render to HTML
214
- let html;
215
- try {
216
- const element = React.createElement(Component, options.context ?? {});
217
- html = ReactDOMServer.renderToString(element);
218
- }
219
- catch (error) {
220
- throw new executor_1.ExecutionError(`SSR rendering failed: ${error instanceof Error ? error.message : String(error)}`, error);
221
- }
222
- const renderTime = performance.now() - renderStart;
223
- // Build hydration script if requested
224
- let hydrationScript;
225
- if (options.includeHydration) {
226
- hydrationScript = this.buildHydrationScript(bundleResult.code, options.context);
227
- }
228
- return {
229
- ...bundleResult,
230
- html,
231
- hydrationScript,
232
- metrics: {
233
- ...bundleResult.metrics,
234
- totalTime: performance.now() - startTime,
235
- },
236
- ssrMetrics: {
237
- renderTime,
238
- },
239
- };
240
- }
241
- /**
242
- * Bundle and execute code, returning the exports.
243
- *
244
- * @param options - Bundle options
245
- * @param context - Execution context
246
- * @returns Exported value
247
- */
248
- async bundleAndExecute(options, context) {
249
- // Bundle first
250
- const result = await this.bundle({
251
- ...options,
252
- format: 'cjs', // CommonJS for execution
253
- });
254
- // Load React if available
255
- let React;
256
- try {
257
- React = await import('react');
258
- }
259
- catch {
260
- // React not available, that's okay
261
- }
262
- // Execute
263
- return (0, executor_1.executeDefault)(result.code, {
264
- React,
265
- globals: context,
266
- security: (0, policy_1.mergePolicy)(options.security ?? this.defaultSecurity),
267
- });
268
- }
269
- /**
270
- * Get cache statistics.
271
- */
272
- getCacheStats() {
273
- return this.cache.getStats();
274
- }
275
- /**
276
- * Clear the cache.
277
- */
278
- clearCache() {
279
- this.cache.clear();
280
- }
281
- /**
282
- * Clean up expired cache entries.
283
- */
284
- cleanupCache() {
285
- return this.cache.cleanup();
286
- }
287
- /**
288
- * Transform source code using esbuild/SWC.
289
- */
290
- async transform(source, sourceType, options) {
291
- const transform = await loadEsbuild();
292
- if (!transform) {
293
- throw new Error('No bundler available. Install esbuild or @swc/core: npm install esbuild');
294
- }
295
- // Map source type to loader
296
- const loader = this.getLoader(sourceType);
297
- // Build esbuild options
298
- const esbuildOptions = {
299
- loader,
300
- minify: options.minify,
301
- sourcemap: options.sourceMaps,
302
- target: options.target,
303
- format: options.format === 'cjs' ? 'cjs' : options.format === 'esm' ? 'esm' : 'iife',
304
- jsx: 'automatic',
305
- jsxImportSource: options.jsx.importSource,
306
- };
307
- try {
308
- const result = await transform(source, esbuildOptions);
309
- return {
310
- code: result.code,
311
- map: result.map,
312
- };
313
- }
314
- catch (error) {
315
- throw new Error(`Transform failed: ${error instanceof Error ? error.message : String(error)}`);
316
- }
317
- }
318
- /**
319
- * Get esbuild loader for source type.
320
- */
321
- getLoader(sourceType) {
322
- switch (sourceType) {
323
- case 'jsx':
324
- return 'jsx';
325
- case 'tsx':
326
- return 'tsx';
327
- case 'mdx':
328
- return 'tsx'; // MDX compiles to JSX/TSX
329
- case 'html':
330
- return 'text';
331
- default:
332
- return 'tsx';
333
- }
334
- }
335
- /**
336
- * Detect source type from content.
337
- */
338
- detectSourceType(source) {
339
- // Check for TypeScript types
340
- const hasTypeScript = /:\s*(string|number|boolean|any|unknown|void|never|object)\b/.test(source) ||
341
- /interface\s+\w+/.test(source) ||
342
- /type\s+\w+\s*=/.test(source) ||
343
- /<\w+>/.test(source); // Generic syntax
344
- // Check for JSX
345
- const hasJSX = /<[A-Z][a-zA-Z]*/.test(source) || // Component tags
346
- /<[a-z]+\s/.test(source) || // HTML tags with attributes
347
- /<[a-z]+>/.test(source) || // Self-closing HTML tags
348
- /<\/[a-z]+>/.test(source); // Closing tags
349
- // Check for MDX
350
- const hasMDX = /^#\s+/.test(source) || // Markdown heading
351
- /^-\s+/.test(source) || // Markdown list
352
- /\*\*\w+\*\*/.test(source) || // Bold
353
- /```\w*\n/.test(source); // Code block
354
- if (hasMDX && hasJSX) {
355
- return 'mdx';
356
- }
357
- if (hasTypeScript && hasJSX) {
358
- return 'tsx';
359
- }
360
- if (hasJSX) {
361
- return 'jsx';
362
- }
363
- if (hasTypeScript) {
364
- return 'tsx';
365
- }
366
- return 'jsx';
367
- }
368
- /**
369
- * Merge bundle options with defaults.
370
- */
371
- mergeOptions(options) {
372
- return {
373
- sourceType: options.sourceType ?? types_1.DEFAULT_BUNDLE_OPTIONS.sourceType,
374
- format: options.format ?? types_1.DEFAULT_BUNDLE_OPTIONS.format,
375
- minify: options.minify ?? types_1.DEFAULT_BUNDLE_OPTIONS.minify,
376
- sourceMaps: options.sourceMaps ?? types_1.DEFAULT_BUNDLE_OPTIONS.sourceMaps,
377
- externals: options.externals ?? types_1.DEFAULT_BUNDLE_OPTIONS.externals,
378
- jsx: {
379
- ...types_1.DEFAULT_BUNDLE_OPTIONS.jsx,
380
- ...options.jsx,
381
- },
382
- target: options.target ?? types_1.DEFAULT_BUNDLE_OPTIONS.target,
383
- globalName: options.globalName ?? types_1.DEFAULT_BUNDLE_OPTIONS.globalName,
384
- skipCache: options.skipCache ?? types_1.DEFAULT_BUNDLE_OPTIONS.skipCache,
385
- };
386
- }
387
- /**
388
- * Build hydration script for client-side React.
389
- */
390
- buildHydrationScript(bundledCode, context) {
391
- const contextJson = context ? JSON.stringify(context) : '{}';
392
- return `
393
- (function() {
394
- var context = ${contextJson};
395
- var exports = {};
396
- var module = { exports: exports };
397
-
398
- // Execute bundled code
399
- (function(exports, module) {
400
- ${bundledCode}
401
- })(exports, module);
402
-
403
- // Get component
404
- var Component = module.exports.default || module.exports;
405
-
406
- // Hydrate
407
- if (typeof ReactDOM !== 'undefined' && ReactDOM.hydrateRoot) {
408
- var container = document.getElementById('root') || document.body.firstElementChild;
409
- if (container) {
410
- ReactDOM.hydrateRoot(container, React.createElement(Component, context));
411
- }
412
- }
413
- })();
414
- `.trim();
415
- }
416
- }
417
- exports.InMemoryBundler = InMemoryBundler;
418
- /**
419
- * Create a bundler instance with default options.
420
- *
421
- * @param options - Bundler configuration
422
- * @returns New bundler instance
423
- */
424
- function createBundler(options) {
425
- return new InMemoryBundler(options);
426
- }
427
- // Re-export errors for convenience
428
- var policy_2 = require("./sandbox/policy");
429
- Object.defineProperty(exports, "SecurityError", { enumerable: true, get: function () { return policy_2.SecurityError; } });
430
- var executor_2 = require("./sandbox/executor");
431
- Object.defineProperty(exports, "ExecutionError", { enumerable: true, get: function () { return executor_2.ExecutionError; } });
432
- //# sourceMappingURL=bundler.js.map