@frontmcp/ui 0.6.0 → 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 (445) hide show
  1. package/README.md +140 -362
  2. package/bridge/runtime/index.d.ts +2 -1
  3. package/bridge/runtime/index.d.ts.map +1 -1
  4. package/bundler/file-cache/component-builder.d.ts +1 -1
  5. package/bundler/file-cache/component-builder.d.ts.map +1 -1
  6. package/bundler/file-cache/hash-calculator.d.ts +1 -1
  7. package/bundler/file-cache/hash-calculator.d.ts.map +1 -1
  8. package/bundler/file-cache/storage/filesystem.d.ts +1 -1
  9. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -1
  10. package/bundler/file-cache/storage/interface.d.ts +1 -1
  11. package/bundler/file-cache/storage/interface.d.ts.map +1 -1
  12. package/bundler/file-cache/storage/redis.d.ts +1 -1
  13. package/bundler/file-cache/storage/redis.d.ts.map +1 -1
  14. package/bundler/index.js +10 -1057
  15. package/components/alert.schema.d.ts +6 -6
  16. package/components/avatar.schema.d.ts +9 -9
  17. package/components/badge.schema.d.ts +9 -9
  18. package/components/button.schema.d.ts +9 -9
  19. package/components/card.schema.d.ts +7 -7
  20. package/components/form.schema.d.ts +24 -24
  21. package/components/index.js +128 -198
  22. package/components/modal.schema.d.ts +8 -8
  23. package/components/table.schema.d.ts +6 -6
  24. package/esm/bridge/runtime/index.d.ts +2 -1
  25. package/esm/bridge/runtime/index.d.ts.map +1 -1
  26. package/esm/bundler/file-cache/component-builder.d.ts +1 -1
  27. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -1
  28. package/esm/bundler/file-cache/hash-calculator.d.ts +1 -1
  29. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -1
  30. package/esm/bundler/file-cache/storage/filesystem.d.ts +1 -1
  31. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -1
  32. package/esm/bundler/file-cache/storage/interface.d.ts +1 -1
  33. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -1
  34. package/esm/bundler/file-cache/storage/redis.d.ts +1 -1
  35. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -1
  36. package/esm/bundler/index.js +3 -1050
  37. package/esm/components/alert.schema.d.ts +6 -6
  38. package/esm/components/avatar.schema.d.ts +9 -9
  39. package/esm/components/badge.schema.d.ts +9 -9
  40. package/esm/components/button.schema.d.ts +9 -9
  41. package/esm/components/card.schema.d.ts +7 -7
  42. package/esm/components/form.schema.d.ts +24 -24
  43. package/esm/components/index.js +136 -196
  44. package/esm/components/modal.schema.d.ts +8 -8
  45. package/esm/components/table.schema.d.ts +6 -6
  46. package/esm/index.d.ts +23 -39
  47. package/esm/index.d.ts.map +1 -1
  48. package/esm/index.js +4256 -16441
  49. package/esm/layouts/base.d.ts +2 -2
  50. package/esm/layouts/base.d.ts.map +1 -1
  51. package/esm/layouts/index.js +33 -516
  52. package/esm/package.json +8 -26
  53. package/esm/pages/index.js +100 -627
  54. package/esm/react/Alert.d.ts +1 -2
  55. package/esm/react/Alert.d.ts.map +1 -1
  56. package/esm/react/Badge.d.ts +1 -2
  57. package/esm/react/Badge.d.ts.map +1 -1
  58. package/esm/react/Button.d.ts +1 -2
  59. package/esm/react/Button.d.ts.map +1 -1
  60. package/esm/react/Card.d.ts +1 -2
  61. package/esm/react/Card.d.ts.map +1 -1
  62. package/esm/react/hooks/context.d.ts +1 -1
  63. package/esm/react/hooks/context.d.ts.map +1 -1
  64. package/esm/react/index.d.ts +5 -6
  65. package/esm/react/index.d.ts.map +1 -1
  66. package/esm/react/index.js +2074 -322
  67. package/esm/react/types.d.ts +1 -2
  68. package/esm/react/types.d.ts.map +1 -1
  69. package/esm/renderers/index.d.ts +10 -25
  70. package/esm/renderers/index.d.ts.map +1 -1
  71. package/esm/renderers/index.js +171 -1617
  72. package/esm/{runtime/adapters → renderers}/react.adapter.d.ts +2 -2
  73. package/esm/renderers/react.adapter.d.ts.map +1 -0
  74. package/esm/renderers/react.renderer.d.ts +3 -3
  75. package/esm/renderers/react.renderer.d.ts.map +1 -1
  76. package/esm/universal/index.js +1755 -0
  77. package/esm/web-components/index.js +232 -287
  78. package/esm/widgets/index.js +89 -147
  79. package/index.d.ts +23 -39
  80. package/index.d.ts.map +1 -1
  81. package/index.js +6123 -18539
  82. package/layouts/base.d.ts +2 -2
  83. package/layouts/base.d.ts.map +1 -1
  84. package/layouts/index.js +43 -536
  85. package/package.json +8 -26
  86. package/pages/index.js +111 -648
  87. package/react/Alert.d.ts +1 -2
  88. package/react/Alert.d.ts.map +1 -1
  89. package/react/Badge.d.ts +1 -2
  90. package/react/Badge.d.ts.map +1 -1
  91. package/react/Button.d.ts +1 -2
  92. package/react/Button.d.ts.map +1 -1
  93. package/react/Card.d.ts +1 -2
  94. package/react/Card.d.ts.map +1 -1
  95. package/react/hooks/context.d.ts +1 -1
  96. package/react/hooks/context.d.ts.map +1 -1
  97. package/react/index.d.ts +5 -6
  98. package/react/index.d.ts.map +1 -1
  99. package/react/index.js +2065 -335
  100. package/react/types.d.ts +1 -2
  101. package/react/types.d.ts.map +1 -1
  102. package/renderers/index.d.ts +10 -25
  103. package/renderers/index.d.ts.map +1 -1
  104. package/renderers/index.js +175 -1641
  105. package/{runtime/adapters → renderers}/react.adapter.d.ts +2 -2
  106. package/renderers/react.adapter.d.ts.map +1 -0
  107. package/renderers/react.renderer.d.ts +3 -3
  108. package/renderers/react.renderer.d.ts.map +1 -1
  109. package/universal/index.js +1841 -0
  110. package/web-components/index.js +224 -289
  111. package/widgets/index.js +80 -148
  112. package/adapters/index.d.ts +0 -13
  113. package/adapters/index.d.ts.map +0 -1
  114. package/adapters/index.js +0 -462
  115. package/adapters/platform-meta.d.ts +0 -166
  116. package/adapters/platform-meta.d.ts.map +0 -1
  117. package/adapters/response-builder.d.ts +0 -108
  118. package/adapters/response-builder.d.ts.map +0 -1
  119. package/adapters/serving-mode.d.ts +0 -107
  120. package/adapters/serving-mode.d.ts.map +0 -1
  121. package/base-template/bridge.d.ts +0 -90
  122. package/base-template/bridge.d.ts.map +0 -1
  123. package/base-template/default-base-template.d.ts +0 -92
  124. package/base-template/default-base-template.d.ts.map +0 -1
  125. package/base-template/index.d.ts +0 -15
  126. package/base-template/index.d.ts.map +0 -1
  127. package/base-template/index.js +0 -1398
  128. package/base-template/polyfills.d.ts +0 -31
  129. package/base-template/polyfills.d.ts.map +0 -1
  130. package/base-template/theme-styles.d.ts +0 -74
  131. package/base-template/theme-styles.d.ts.map +0 -1
  132. package/build/cdn-resources.d.ts +0 -243
  133. package/build/cdn-resources.d.ts.map +0 -1
  134. package/build/index.d.ts +0 -295
  135. package/build/index.d.ts.map +0 -1
  136. package/build/index.js +0 -7096
  137. package/build/widget-manifest.d.ts +0 -362
  138. package/build/widget-manifest.d.ts.map +0 -1
  139. package/dependency/cdn-registry.d.ts +0 -98
  140. package/dependency/cdn-registry.d.ts.map +0 -1
  141. package/dependency/import-map.d.ts +0 -186
  142. package/dependency/import-map.d.ts.map +0 -1
  143. package/dependency/import-parser.d.ts +0 -82
  144. package/dependency/import-parser.d.ts.map +0 -1
  145. package/dependency/index.d.ts +0 -17
  146. package/dependency/index.d.ts.map +0 -1
  147. package/dependency/resolver.d.ts +0 -164
  148. package/dependency/resolver.d.ts.map +0 -1
  149. package/dependency/schemas.d.ts +0 -486
  150. package/dependency/schemas.d.ts.map +0 -1
  151. package/dependency/template-loader.d.ts +0 -204
  152. package/dependency/template-loader.d.ts.map +0 -1
  153. package/dependency/template-processor.d.ts +0 -118
  154. package/dependency/template-processor.d.ts.map +0 -1
  155. package/dependency/types.d.ts +0 -739
  156. package/dependency/types.d.ts.map +0 -1
  157. package/esm/adapters/index.d.ts +0 -13
  158. package/esm/adapters/index.d.ts.map +0 -1
  159. package/esm/adapters/index.js +0 -427
  160. package/esm/adapters/platform-meta.d.ts +0 -166
  161. package/esm/adapters/platform-meta.d.ts.map +0 -1
  162. package/esm/adapters/response-builder.d.ts +0 -108
  163. package/esm/adapters/response-builder.d.ts.map +0 -1
  164. package/esm/adapters/serving-mode.d.ts +0 -107
  165. package/esm/adapters/serving-mode.d.ts.map +0 -1
  166. package/esm/base-template/bridge.d.ts +0 -90
  167. package/esm/base-template/bridge.d.ts.map +0 -1
  168. package/esm/base-template/default-base-template.d.ts +0 -92
  169. package/esm/base-template/default-base-template.d.ts.map +0 -1
  170. package/esm/base-template/index.d.ts +0 -15
  171. package/esm/base-template/index.d.ts.map +0 -1
  172. package/esm/base-template/index.js +0 -1364
  173. package/esm/base-template/polyfills.d.ts +0 -31
  174. package/esm/base-template/polyfills.d.ts.map +0 -1
  175. package/esm/base-template/theme-styles.d.ts +0 -74
  176. package/esm/base-template/theme-styles.d.ts.map +0 -1
  177. package/esm/build/cdn-resources.d.ts +0 -243
  178. package/esm/build/cdn-resources.d.ts.map +0 -1
  179. package/esm/build/index.d.ts +0 -295
  180. package/esm/build/index.d.ts.map +0 -1
  181. package/esm/build/index.js +0 -7021
  182. package/esm/build/widget-manifest.d.ts +0 -362
  183. package/esm/build/widget-manifest.d.ts.map +0 -1
  184. package/esm/dependency/cdn-registry.d.ts +0 -98
  185. package/esm/dependency/cdn-registry.d.ts.map +0 -1
  186. package/esm/dependency/import-map.d.ts +0 -186
  187. package/esm/dependency/import-map.d.ts.map +0 -1
  188. package/esm/dependency/import-parser.d.ts +0 -82
  189. package/esm/dependency/import-parser.d.ts.map +0 -1
  190. package/esm/dependency/index.d.ts +0 -17
  191. package/esm/dependency/index.d.ts.map +0 -1
  192. package/esm/dependency/resolver.d.ts +0 -164
  193. package/esm/dependency/resolver.d.ts.map +0 -1
  194. package/esm/dependency/schemas.d.ts +0 -486
  195. package/esm/dependency/schemas.d.ts.map +0 -1
  196. package/esm/dependency/template-loader.d.ts +0 -204
  197. package/esm/dependency/template-loader.d.ts.map +0 -1
  198. package/esm/dependency/template-processor.d.ts +0 -118
  199. package/esm/dependency/template-processor.d.ts.map +0 -1
  200. package/esm/dependency/types.d.ts +0 -739
  201. package/esm/dependency/types.d.ts.map +0 -1
  202. package/esm/handlebars/expression-extractor.d.ts +0 -147
  203. package/esm/handlebars/expression-extractor.d.ts.map +0 -1
  204. package/esm/handlebars/helpers.d.ts +0 -339
  205. package/esm/handlebars/helpers.d.ts.map +0 -1
  206. package/esm/handlebars/index.d.ts +0 -195
  207. package/esm/handlebars/index.d.ts.map +0 -1
  208. package/esm/handlebars/index.js +0 -587
  209. package/esm/registry/index.d.ts +0 -46
  210. package/esm/registry/index.d.ts.map +0 -1
  211. package/esm/registry/index.js +0 -6422
  212. package/esm/registry/render-template.d.ts +0 -91
  213. package/esm/registry/render-template.d.ts.map +0 -1
  214. package/esm/registry/tool-ui.registry.d.ts +0 -294
  215. package/esm/registry/tool-ui.registry.d.ts.map +0 -1
  216. package/esm/registry/uri-utils.d.ts +0 -56
  217. package/esm/registry/uri-utils.d.ts.map +0 -1
  218. package/esm/renderers/cache.d.ts +0 -145
  219. package/esm/renderers/cache.d.ts.map +0 -1
  220. package/esm/renderers/html.renderer.d.ts +0 -123
  221. package/esm/renderers/html.renderer.d.ts.map +0 -1
  222. package/esm/renderers/mdx.renderer.d.ts +0 -120
  223. package/esm/renderers/mdx.renderer.d.ts.map +0 -1
  224. package/esm/renderers/registry.d.ts +0 -134
  225. package/esm/renderers/registry.d.ts.map +0 -1
  226. package/esm/renderers/types.d.ts +0 -342
  227. package/esm/renderers/types.d.ts.map +0 -1
  228. package/esm/renderers/utils/detect.d.ts +0 -107
  229. package/esm/renderers/utils/detect.d.ts.map +0 -1
  230. package/esm/renderers/utils/hash.d.ts +0 -40
  231. package/esm/renderers/utils/hash.d.ts.map +0 -1
  232. package/esm/renderers/utils/index.d.ts +0 -9
  233. package/esm/renderers/utils/index.d.ts.map +0 -1
  234. package/esm/renderers/utils/transpiler.d.ts +0 -89
  235. package/esm/renderers/utils/transpiler.d.ts.map +0 -1
  236. package/esm/runtime/adapters/html.adapter.d.ts +0 -59
  237. package/esm/runtime/adapters/html.adapter.d.ts.map +0 -1
  238. package/esm/runtime/adapters/index.d.ts +0 -26
  239. package/esm/runtime/adapters/index.d.ts.map +0 -1
  240. package/esm/runtime/adapters/mdx.adapter.d.ts +0 -73
  241. package/esm/runtime/adapters/mdx.adapter.d.ts.map +0 -1
  242. package/esm/runtime/adapters/react.adapter.d.ts.map +0 -1
  243. package/esm/runtime/adapters/types.d.ts +0 -95
  244. package/esm/runtime/adapters/types.d.ts.map +0 -1
  245. package/esm/runtime/csp.d.ts +0 -48
  246. package/esm/runtime/csp.d.ts.map +0 -1
  247. package/esm/runtime/index.d.ts +0 -17
  248. package/esm/runtime/index.d.ts.map +0 -1
  249. package/esm/runtime/index.js +0 -5186
  250. package/esm/runtime/mcp-bridge.d.ts +0 -101
  251. package/esm/runtime/mcp-bridge.d.ts.map +0 -1
  252. package/esm/runtime/renderer-runtime.d.ts +0 -133
  253. package/esm/runtime/renderer-runtime.d.ts.map +0 -1
  254. package/esm/runtime/sanitizer.d.ts +0 -172
  255. package/esm/runtime/sanitizer.d.ts.map +0 -1
  256. package/esm/runtime/types.d.ts +0 -415
  257. package/esm/runtime/types.d.ts.map +0 -1
  258. package/esm/runtime/wrapper.d.ts +0 -421
  259. package/esm/runtime/wrapper.d.ts.map +0 -1
  260. package/esm/styles/index.d.ts +0 -8
  261. package/esm/styles/index.d.ts.map +0 -1
  262. package/esm/styles/index.js +0 -171
  263. package/esm/styles/variants.d.ts +0 -51
  264. package/esm/styles/variants.d.ts.map +0 -1
  265. package/esm/theme/cdn.d.ts +0 -195
  266. package/esm/theme/cdn.d.ts.map +0 -1
  267. package/esm/theme/index.d.ts +0 -18
  268. package/esm/theme/index.d.ts.map +0 -1
  269. package/esm/theme/index.js +0 -700
  270. package/esm/theme/platforms.d.ts +0 -107
  271. package/esm/theme/platforms.d.ts.map +0 -1
  272. package/esm/theme/presets/github-openai.d.ts +0 -50
  273. package/esm/theme/presets/github-openai.d.ts.map +0 -1
  274. package/esm/theme/presets/index.d.ts +0 -11
  275. package/esm/theme/presets/index.d.ts.map +0 -1
  276. package/esm/theme/theme.d.ts +0 -396
  277. package/esm/theme/theme.d.ts.map +0 -1
  278. package/esm/tool-template/builder.d.ts +0 -213
  279. package/esm/tool-template/builder.d.ts.map +0 -1
  280. package/esm/tool-template/index.d.ts +0 -16
  281. package/esm/tool-template/index.d.ts.map +0 -1
  282. package/esm/tool-template/index.js +0 -3515
  283. package/esm/types/index.d.ts +0 -14
  284. package/esm/types/index.d.ts.map +0 -1
  285. package/esm/types/index.js +0 -75
  286. package/esm/types/ui-config.d.ts +0 -639
  287. package/esm/types/ui-config.d.ts.map +0 -1
  288. package/esm/types/ui-runtime.d.ts +0 -1007
  289. package/esm/types/ui-runtime.d.ts.map +0 -1
  290. package/esm/typings/cache/cache-adapter.d.ts +0 -125
  291. package/esm/typings/cache/cache-adapter.d.ts.map +0 -1
  292. package/esm/typings/cache/index.d.ts +0 -10
  293. package/esm/typings/cache/index.d.ts.map +0 -1
  294. package/esm/typings/cache/memory-cache.d.ts +0 -92
  295. package/esm/typings/cache/memory-cache.d.ts.map +0 -1
  296. package/esm/typings/dts-parser.d.ts +0 -90
  297. package/esm/typings/dts-parser.d.ts.map +0 -1
  298. package/esm/typings/index.d.ts +0 -48
  299. package/esm/typings/index.d.ts.map +0 -1
  300. package/esm/typings/schemas.d.ts +0 -232
  301. package/esm/typings/schemas.d.ts.map +0 -1
  302. package/esm/typings/type-fetcher.d.ts +0 -89
  303. package/esm/typings/type-fetcher.d.ts.map +0 -1
  304. package/esm/typings/types.d.ts +0 -320
  305. package/esm/typings/types.d.ts.map +0 -1
  306. package/esm/utils/escape-html.d.ts +0 -58
  307. package/esm/utils/escape-html.d.ts.map +0 -1
  308. package/esm/utils/index.d.ts +0 -10
  309. package/esm/utils/index.d.ts.map +0 -1
  310. package/esm/utils/index.js +0 -40
  311. package/esm/utils/safe-stringify.d.ts +0 -30
  312. package/esm/utils/safe-stringify.d.ts.map +0 -1
  313. package/esm/validation/error-box.d.ts +0 -56
  314. package/esm/validation/error-box.d.ts.map +0 -1
  315. package/esm/validation/index.d.ts +0 -13
  316. package/esm/validation/index.d.ts.map +0 -1
  317. package/esm/validation/index.js +0 -562
  318. package/esm/validation/schema-paths.d.ts +0 -118
  319. package/esm/validation/schema-paths.d.ts.map +0 -1
  320. package/esm/validation/template-validator.d.ts +0 -143
  321. package/esm/validation/template-validator.d.ts.map +0 -1
  322. package/esm/validation/wrapper.d.ts +0 -97
  323. package/esm/validation/wrapper.d.ts.map +0 -1
  324. package/handlebars/expression-extractor.d.ts +0 -147
  325. package/handlebars/expression-extractor.d.ts.map +0 -1
  326. package/handlebars/helpers.d.ts +0 -339
  327. package/handlebars/helpers.d.ts.map +0 -1
  328. package/handlebars/index.d.ts +0 -195
  329. package/handlebars/index.d.ts.map +0 -1
  330. package/handlebars/index.js +0 -666
  331. package/registry/index.d.ts +0 -46
  332. package/registry/index.d.ts.map +0 -1
  333. package/registry/index.js +0 -6465
  334. package/registry/render-template.d.ts +0 -91
  335. package/registry/render-template.d.ts.map +0 -1
  336. package/registry/tool-ui.registry.d.ts +0 -294
  337. package/registry/tool-ui.registry.d.ts.map +0 -1
  338. package/registry/uri-utils.d.ts +0 -56
  339. package/registry/uri-utils.d.ts.map +0 -1
  340. package/renderers/cache.d.ts +0 -145
  341. package/renderers/cache.d.ts.map +0 -1
  342. package/renderers/html.renderer.d.ts +0 -123
  343. package/renderers/html.renderer.d.ts.map +0 -1
  344. package/renderers/mdx.renderer.d.ts +0 -120
  345. package/renderers/mdx.renderer.d.ts.map +0 -1
  346. package/renderers/registry.d.ts +0 -134
  347. package/renderers/registry.d.ts.map +0 -1
  348. package/renderers/types.d.ts +0 -342
  349. package/renderers/types.d.ts.map +0 -1
  350. package/renderers/utils/detect.d.ts +0 -107
  351. package/renderers/utils/detect.d.ts.map +0 -1
  352. package/renderers/utils/hash.d.ts +0 -40
  353. package/renderers/utils/hash.d.ts.map +0 -1
  354. package/renderers/utils/index.d.ts +0 -9
  355. package/renderers/utils/index.d.ts.map +0 -1
  356. package/renderers/utils/transpiler.d.ts +0 -89
  357. package/renderers/utils/transpiler.d.ts.map +0 -1
  358. package/runtime/adapters/html.adapter.d.ts +0 -59
  359. package/runtime/adapters/html.adapter.d.ts.map +0 -1
  360. package/runtime/adapters/index.d.ts +0 -26
  361. package/runtime/adapters/index.d.ts.map +0 -1
  362. package/runtime/adapters/mdx.adapter.d.ts +0 -73
  363. package/runtime/adapters/mdx.adapter.d.ts.map +0 -1
  364. package/runtime/adapters/react.adapter.d.ts.map +0 -1
  365. package/runtime/adapters/types.d.ts +0 -95
  366. package/runtime/adapters/types.d.ts.map +0 -1
  367. package/runtime/csp.d.ts +0 -48
  368. package/runtime/csp.d.ts.map +0 -1
  369. package/runtime/index.d.ts +0 -17
  370. package/runtime/index.d.ts.map +0 -1
  371. package/runtime/index.js +0 -5264
  372. package/runtime/mcp-bridge.d.ts +0 -101
  373. package/runtime/mcp-bridge.d.ts.map +0 -1
  374. package/runtime/renderer-runtime.d.ts +0 -133
  375. package/runtime/renderer-runtime.d.ts.map +0 -1
  376. package/runtime/sanitizer.d.ts +0 -172
  377. package/runtime/sanitizer.d.ts.map +0 -1
  378. package/runtime/types.d.ts +0 -415
  379. package/runtime/types.d.ts.map +0 -1
  380. package/runtime/wrapper.d.ts +0 -421
  381. package/runtime/wrapper.d.ts.map +0 -1
  382. package/styles/index.d.ts +0 -8
  383. package/styles/index.d.ts.map +0 -1
  384. package/styles/index.js +0 -222
  385. package/styles/variants.d.ts +0 -51
  386. package/styles/variants.d.ts.map +0 -1
  387. package/theme/cdn.d.ts +0 -195
  388. package/theme/cdn.d.ts.map +0 -1
  389. package/theme/index.d.ts +0 -18
  390. package/theme/index.d.ts.map +0 -1
  391. package/theme/index.js +0 -757
  392. package/theme/platforms.d.ts +0 -107
  393. package/theme/platforms.d.ts.map +0 -1
  394. package/theme/presets/github-openai.d.ts +0 -50
  395. package/theme/presets/github-openai.d.ts.map +0 -1
  396. package/theme/presets/index.d.ts +0 -11
  397. package/theme/presets/index.d.ts.map +0 -1
  398. package/theme/theme.d.ts +0 -396
  399. package/theme/theme.d.ts.map +0 -1
  400. package/tool-template/builder.d.ts +0 -213
  401. package/tool-template/builder.d.ts.map +0 -1
  402. package/tool-template/index.d.ts +0 -16
  403. package/tool-template/index.d.ts.map +0 -1
  404. package/tool-template/index.js +0 -3559
  405. package/types/index.d.ts +0 -14
  406. package/types/index.d.ts.map +0 -1
  407. package/types/index.js +0 -108
  408. package/types/ui-config.d.ts +0 -639
  409. package/types/ui-config.d.ts.map +0 -1
  410. package/types/ui-runtime.d.ts +0 -1007
  411. package/types/ui-runtime.d.ts.map +0 -1
  412. package/typings/cache/cache-adapter.d.ts +0 -125
  413. package/typings/cache/cache-adapter.d.ts.map +0 -1
  414. package/typings/cache/index.d.ts +0 -10
  415. package/typings/cache/index.d.ts.map +0 -1
  416. package/typings/cache/memory-cache.d.ts +0 -92
  417. package/typings/cache/memory-cache.d.ts.map +0 -1
  418. package/typings/dts-parser.d.ts +0 -90
  419. package/typings/dts-parser.d.ts.map +0 -1
  420. package/typings/index.d.ts +0 -48
  421. package/typings/index.d.ts.map +0 -1
  422. package/typings/schemas.d.ts +0 -232
  423. package/typings/schemas.d.ts.map +0 -1
  424. package/typings/type-fetcher.d.ts +0 -89
  425. package/typings/type-fetcher.d.ts.map +0 -1
  426. package/typings/types.d.ts +0 -320
  427. package/typings/types.d.ts.map +0 -1
  428. package/utils/escape-html.d.ts +0 -58
  429. package/utils/escape-html.d.ts.map +0 -1
  430. package/utils/index.d.ts +0 -10
  431. package/utils/index.d.ts.map +0 -1
  432. package/utils/index.js +0 -70
  433. package/utils/safe-stringify.d.ts +0 -30
  434. package/utils/safe-stringify.d.ts.map +0 -1
  435. package/validation/error-box.d.ts +0 -56
  436. package/validation/error-box.d.ts.map +0 -1
  437. package/validation/index.d.ts +0 -13
  438. package/validation/index.d.ts.map +0 -1
  439. package/validation/index.js +0 -603
  440. package/validation/schema-paths.d.ts +0 -118
  441. package/validation/schema-paths.d.ts.map +0 -1
  442. package/validation/template-validator.d.ts +0 -143
  443. package/validation/template-validator.d.ts.map +0 -1
  444. package/validation/wrapper.d.ts +0 -97
  445. package/validation/wrapper.d.ts.map +0 -1
@@ -1391,17 +1391,8 @@ function isExecutionError(error) {
1391
1391
  return error instanceof ExecutionError;
1392
1392
  }
1393
1393
 
1394
- // libs/ui/src/utils/escape-html.ts
1395
- function escapeHtml(str) {
1396
- if (str === null || str === void 0) {
1397
- return "";
1398
- }
1399
- const s = String(str);
1400
- return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
1401
- }
1402
- function escapeHtmlAttr(str) {
1403
- return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;");
1404
- }
1394
+ // libs/ui/src/bundler/bundler.ts
1395
+ import { escapeHtml } from "@frontmcp/uipack/utils";
1405
1396
 
1406
1397
  // libs/ui/src/universal/types.ts
1407
1398
  var UNIVERSAL_CDN = {
@@ -3356,1045 +3347,7 @@ import { readFile as readFile3 } from "fs/promises";
3356
3347
  import { existsSync as existsSync3 } from "fs";
3357
3348
  import { resolve as resolve2, extname } from "path";
3358
3349
  import { randomUUID } from "crypto";
3359
-
3360
- // libs/ui/src/dependency/cdn-registry.ts
3361
- var DEFAULT_CDN_REGISTRY = {
3362
- // ============================================
3363
- // React Ecosystem
3364
- // ============================================
3365
- react: {
3366
- packageName: "react",
3367
- defaultVersion: "18.3.1",
3368
- providers: {
3369
- cloudflare: {
3370
- url: "https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.production.min.js",
3371
- integrity: "sha512-Qp8J4Xr8LBZ5CXNJQc/HmLqFrpXz6lNkbzMYkYHKzQx5p1q1yOqPQHntXKoYgPPE/n9m0QF1OkJdXa2ePpO4fw==",
3372
- global: "React",
3373
- crossorigin: "anonymous"
3374
- },
3375
- jsdelivr: {
3376
- url: "https://cdn.jsdelivr.net/npm/react@18.3.1/umd/react.production.min.js",
3377
- global: "React",
3378
- crossorigin: "anonymous"
3379
- },
3380
- unpkg: {
3381
- url: "https://unpkg.com/react@18.3.1/umd/react.production.min.js",
3382
- global: "React",
3383
- crossorigin: "anonymous"
3384
- },
3385
- "esm.sh": {
3386
- url: "https://esm.sh/react@18.3.1",
3387
- esm: true,
3388
- crossorigin: "anonymous"
3389
- }
3390
- },
3391
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
3392
- metadata: {
3393
- description: "A JavaScript library for building user interfaces",
3394
- homepage: "https://react.dev",
3395
- license: "MIT"
3396
- }
3397
- },
3398
- "react-dom": {
3399
- packageName: "react-dom",
3400
- defaultVersion: "18.3.1",
3401
- providers: {
3402
- cloudflare: {
3403
- url: "https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.3.1/umd/react-dom.production.min.js",
3404
- integrity: "sha512-6s2gVRdS3aT+FDdZTRJSzKlzIPqDXWyYl/5hPQb6hSgzKPGFcQyZhbqjbWVxGrs2dYNrINFXb0k0UD3d+CKPJA==",
3405
- global: "ReactDOM",
3406
- crossorigin: "anonymous",
3407
- peerDependencies: ["react"]
3408
- },
3409
- jsdelivr: {
3410
- url: "https://cdn.jsdelivr.net/npm/react-dom@18.3.1/umd/react-dom.production.min.js",
3411
- global: "ReactDOM",
3412
- crossorigin: "anonymous",
3413
- peerDependencies: ["react"]
3414
- },
3415
- unpkg: {
3416
- url: "https://unpkg.com/react-dom@18.3.1/umd/react-dom.production.min.js",
3417
- global: "ReactDOM",
3418
- crossorigin: "anonymous",
3419
- peerDependencies: ["react"]
3420
- },
3421
- "esm.sh": {
3422
- url: "https://esm.sh/react-dom@18.3.1",
3423
- esm: true,
3424
- crossorigin: "anonymous",
3425
- peerDependencies: ["react"]
3426
- }
3427
- },
3428
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
3429
- metadata: {
3430
- description: "React package for working with the DOM",
3431
- homepage: "https://react.dev",
3432
- license: "MIT"
3433
- }
3434
- },
3435
- // ============================================
3436
- // Charting Libraries
3437
- // ============================================
3438
- "chart.js": {
3439
- packageName: "chart.js",
3440
- defaultVersion: "4.4.7",
3441
- providers: {
3442
- cloudflare: {
3443
- url: "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.7/chart.umd.min.js",
3444
- integrity: "sha512-dMDjIoZjJD6gs0KPBhFYjLQrH3kIohSEn6HzWs6Y6GiO0+L9kk/bM3cR5KNEDK1KvMNpTIZG6pHK9SZfCJHRpQ==",
3445
- global: "Chart",
3446
- crossorigin: "anonymous"
3447
- },
3448
- jsdelivr: {
3449
- url: "https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js",
3450
- global: "Chart",
3451
- crossorigin: "anonymous"
3452
- },
3453
- unpkg: {
3454
- url: "https://unpkg.com/chart.js@4.4.7/dist/chart.umd.min.js",
3455
- global: "Chart",
3456
- crossorigin: "anonymous"
3457
- }
3458
- },
3459
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3460
- metadata: {
3461
- description: "Simple yet flexible JavaScript charting library",
3462
- homepage: "https://www.chartjs.org",
3463
- license: "MIT"
3464
- }
3465
- },
3466
- "react-chartjs-2": {
3467
- packageName: "react-chartjs-2",
3468
- defaultVersion: "5.3.0",
3469
- providers: {
3470
- cloudflare: {
3471
- url: "https://cdnjs.cloudflare.com/ajax/libs/react-chartjs-2/5.3.0/react-chartjs-2.min.js",
3472
- global: "ReactChartjs2",
3473
- crossorigin: "anonymous",
3474
- peerDependencies: ["react", "chart.js"]
3475
- },
3476
- jsdelivr: {
3477
- url: "https://cdn.jsdelivr.net/npm/react-chartjs-2@5.3.0/dist/index.umd.js",
3478
- global: "ReactChartjs2",
3479
- crossorigin: "anonymous",
3480
- peerDependencies: ["react", "chart.js"]
3481
- },
3482
- "esm.sh": {
3483
- url: "https://esm.sh/react-chartjs-2@5.3.0",
3484
- esm: true,
3485
- crossorigin: "anonymous",
3486
- peerDependencies: ["react", "chart.js"]
3487
- }
3488
- },
3489
- preferredProviders: ["cloudflare", "jsdelivr", "esm.sh"],
3490
- metadata: {
3491
- description: "React components for Chart.js",
3492
- homepage: "https://react-chartjs-2.js.org",
3493
- license: "MIT"
3494
- }
3495
- },
3496
- // ============================================
3497
- // D3.js
3498
- // ============================================
3499
- d3: {
3500
- packageName: "d3",
3501
- defaultVersion: "7.9.0",
3502
- providers: {
3503
- cloudflare: {
3504
- url: "https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js",
3505
- integrity: "sha512-vc58qvvBdrDR4etbxMdlTt4GBQk1qjvyORR2nrsPsFPyrs+/u5c3+1Ct6upOgdZoIl7eq6k3a1UPDSNAQi/32A==",
3506
- global: "d3",
3507
- crossorigin: "anonymous"
3508
- },
3509
- jsdelivr: {
3510
- url: "https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",
3511
- global: "d3",
3512
- crossorigin: "anonymous"
3513
- },
3514
- unpkg: {
3515
- url: "https://unpkg.com/d3@7.9.0/dist/d3.min.js",
3516
- global: "d3",
3517
- crossorigin: "anonymous"
3518
- }
3519
- },
3520
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3521
- metadata: {
3522
- description: "Data-Driven Documents",
3523
- homepage: "https://d3js.org",
3524
- license: "ISC"
3525
- }
3526
- },
3527
- // ============================================
3528
- // Utility Libraries
3529
- // ============================================
3530
- lodash: {
3531
- packageName: "lodash",
3532
- defaultVersion: "4.17.21",
3533
- providers: {
3534
- cloudflare: {
3535
- url: "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js",
3536
- integrity: "sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==",
3537
- global: "_",
3538
- crossorigin: "anonymous"
3539
- },
3540
- jsdelivr: {
3541
- url: "https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js",
3542
- global: "_",
3543
- crossorigin: "anonymous"
3544
- },
3545
- unpkg: {
3546
- url: "https://unpkg.com/lodash@4.17.21/lodash.min.js",
3547
- global: "_",
3548
- crossorigin: "anonymous"
3549
- }
3550
- },
3551
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3552
- metadata: {
3553
- description: "A modern JavaScript utility library",
3554
- homepage: "https://lodash.com",
3555
- license: "MIT"
3556
- }
3557
- },
3558
- "lodash-es": {
3559
- packageName: "lodash-es",
3560
- defaultVersion: "4.17.21",
3561
- providers: {
3562
- "esm.sh": {
3563
- url: "https://esm.sh/lodash-es@4.17.21",
3564
- esm: true,
3565
- crossorigin: "anonymous"
3566
- },
3567
- jsdelivr: {
3568
- url: "https://cdn.jsdelivr.net/npm/lodash-es@4.17.21/+esm",
3569
- esm: true,
3570
- crossorigin: "anonymous"
3571
- }
3572
- },
3573
- preferredProviders: ["esm.sh", "jsdelivr"],
3574
- metadata: {
3575
- description: "Lodash exported as ES modules",
3576
- homepage: "https://lodash.com",
3577
- license: "MIT"
3578
- }
3579
- },
3580
- dayjs: {
3581
- packageName: "dayjs",
3582
- defaultVersion: "1.11.13",
3583
- providers: {
3584
- cloudflare: {
3585
- url: "https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.13/dayjs.min.js",
3586
- integrity: "sha512-Ot7ArUEhJDU0cwoBNNnWe487kjL5wAOsIYig8llY/l0P2TUFwgsAHVmrZMHsT8NGo+HwkjTJsNErS6QqIkBxDw==",
3587
- global: "dayjs",
3588
- crossorigin: "anonymous"
3589
- },
3590
- jsdelivr: {
3591
- url: "https://cdn.jsdelivr.net/npm/dayjs@1.11.13/dayjs.min.js",
3592
- global: "dayjs",
3593
- crossorigin: "anonymous"
3594
- },
3595
- unpkg: {
3596
- url: "https://unpkg.com/dayjs@1.11.13/dayjs.min.js",
3597
- global: "dayjs",
3598
- crossorigin: "anonymous"
3599
- }
3600
- },
3601
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3602
- metadata: {
3603
- description: "Fast 2kB alternative to Moment.js with the same modern API",
3604
- homepage: "https://day.js.org",
3605
- license: "MIT"
3606
- }
3607
- },
3608
- "date-fns": {
3609
- packageName: "date-fns",
3610
- defaultVersion: "4.1.0",
3611
- providers: {
3612
- "esm.sh": {
3613
- url: "https://esm.sh/date-fns@4.1.0",
3614
- esm: true,
3615
- crossorigin: "anonymous"
3616
- },
3617
- jsdelivr: {
3618
- url: "https://cdn.jsdelivr.net/npm/date-fns@4.1.0/+esm",
3619
- esm: true,
3620
- crossorigin: "anonymous"
3621
- }
3622
- },
3623
- preferredProviders: ["esm.sh", "jsdelivr"],
3624
- metadata: {
3625
- description: "Modern JavaScript date utility library",
3626
- homepage: "https://date-fns.org",
3627
- license: "MIT"
3628
- }
3629
- },
3630
- // ============================================
3631
- // Animation Libraries
3632
- // ============================================
3633
- "framer-motion": {
3634
- packageName: "framer-motion",
3635
- defaultVersion: "11.15.0",
3636
- providers: {
3637
- "esm.sh": {
3638
- url: "https://esm.sh/framer-motion@11.15.0",
3639
- esm: true,
3640
- crossorigin: "anonymous",
3641
- peerDependencies: ["react", "react-dom"]
3642
- },
3643
- jsdelivr: {
3644
- url: "https://cdn.jsdelivr.net/npm/framer-motion@11.15.0/dist/framer-motion.js",
3645
- global: "Motion",
3646
- crossorigin: "anonymous",
3647
- peerDependencies: ["react", "react-dom"]
3648
- }
3649
- },
3650
- preferredProviders: ["esm.sh", "jsdelivr"],
3651
- metadata: {
3652
- description: "Production-ready motion library for React",
3653
- homepage: "https://www.framer.com/motion/",
3654
- license: "MIT"
3655
- }
3656
- },
3657
- // ============================================
3658
- // UI Component Libraries
3659
- // ============================================
3660
- "lucide-react": {
3661
- packageName: "lucide-react",
3662
- defaultVersion: "0.468.0",
3663
- providers: {
3664
- "esm.sh": {
3665
- url: "https://esm.sh/lucide-react@0.468.0",
3666
- esm: true,
3667
- crossorigin: "anonymous",
3668
- peerDependencies: ["react"]
3669
- },
3670
- jsdelivr: {
3671
- url: "https://cdn.jsdelivr.net/npm/lucide-react@0.468.0/dist/esm/lucide-react.js",
3672
- esm: true,
3673
- crossorigin: "anonymous",
3674
- peerDependencies: ["react"]
3675
- }
3676
- },
3677
- preferredProviders: ["esm.sh", "jsdelivr"],
3678
- metadata: {
3679
- description: "Beautiful & consistent icon toolkit for React",
3680
- homepage: "https://lucide.dev",
3681
- license: "ISC"
3682
- }
3683
- },
3684
- // ============================================
3685
- // Markdown/Syntax Highlighting
3686
- // ============================================
3687
- marked: {
3688
- packageName: "marked",
3689
- defaultVersion: "15.0.4",
3690
- providers: {
3691
- cloudflare: {
3692
- url: "https://cdnjs.cloudflare.com/ajax/libs/marked/15.0.4/marked.min.js",
3693
- integrity: "sha512-Rn/d0sGeizGbk3VJEiYNDt/mMcfuzYoFkia3iBffv+HX8VUrHMo/0cKjZuxWGoZLPh/VxUcC9ais+RBFZW9EBg==",
3694
- global: "marked",
3695
- crossorigin: "anonymous"
3696
- },
3697
- jsdelivr: {
3698
- url: "https://cdn.jsdelivr.net/npm/marked@15.0.4/marked.min.js",
3699
- global: "marked",
3700
- crossorigin: "anonymous"
3701
- },
3702
- unpkg: {
3703
- url: "https://unpkg.com/marked@15.0.4/marked.min.js",
3704
- global: "marked",
3705
- crossorigin: "anonymous"
3706
- }
3707
- },
3708
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3709
- metadata: {
3710
- description: "A markdown parser and compiler",
3711
- homepage: "https://marked.js.org",
3712
- license: "MIT"
3713
- }
3714
- },
3715
- "highlight.js": {
3716
- packageName: "highlight.js",
3717
- defaultVersion: "11.10.0",
3718
- providers: {
3719
- cloudflare: {
3720
- url: "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/highlight.min.js",
3721
- integrity: "sha512-6yoqbrcLAHDWAdQmiRlHG4+m0g/CT/V9AGyxabG8j7Jk8j3v3k6mIP1iN/PvSofcWet2tf8SRn/j3L/+pb7LRQ==",
3722
- global: "hljs",
3723
- crossorigin: "anonymous"
3724
- },
3725
- jsdelivr: {
3726
- url: "https://cdn.jsdelivr.net/npm/highlight.js@11.10.0/lib/core.min.js",
3727
- global: "hljs",
3728
- crossorigin: "anonymous"
3729
- },
3730
- unpkg: {
3731
- url: "https://unpkg.com/highlight.js@11.10.0/lib/core.min.js",
3732
- global: "hljs",
3733
- crossorigin: "anonymous"
3734
- }
3735
- },
3736
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3737
- metadata: {
3738
- description: "Syntax highlighting for the web",
3739
- homepage: "https://highlightjs.org",
3740
- license: "BSD-3-Clause"
3741
- }
3742
- },
3743
- // ============================================
3744
- // Interactive Libraries
3745
- // ============================================
3746
- "htmx.org": {
3747
- packageName: "htmx.org",
3748
- defaultVersion: "2.0.4",
3749
- providers: {
3750
- cloudflare: {
3751
- url: "https://cdnjs.cloudflare.com/ajax/libs/htmx/2.0.4/htmx.min.js",
3752
- integrity: "sha512-2kIcAizYXhIn5IyXrMC72f2nh0JAtESHRpOieVw5dYPYeHwLCC2eKCqvdZDYRSEgasKrPpEPpRFjL8gqwBZWAA==",
3753
- global: "htmx",
3754
- crossorigin: "anonymous"
3755
- },
3756
- jsdelivr: {
3757
- url: "https://cdn.jsdelivr.net/npm/htmx.org@2.0.4/dist/htmx.min.js",
3758
- global: "htmx",
3759
- crossorigin: "anonymous"
3760
- },
3761
- unpkg: {
3762
- url: "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js",
3763
- global: "htmx",
3764
- crossorigin: "anonymous"
3765
- }
3766
- },
3767
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3768
- metadata: {
3769
- description: "High power tools for HTML",
3770
- homepage: "https://htmx.org",
3771
- license: "BSD-2-Clause"
3772
- }
3773
- },
3774
- alpinejs: {
3775
- packageName: "alpinejs",
3776
- defaultVersion: "3.14.3",
3777
- providers: {
3778
- cloudflare: {
3779
- url: "https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.14.3/cdn.min.js",
3780
- integrity: "sha512-lrQ8FHgsWKFSuQFq8NKPJicjlvJFEIrCqEj8zeX7ZOUlHWltN/Iow4jND+x84jqTdDf9n+hvQpJjGDvOl/eDRA==",
3781
- global: "Alpine",
3782
- crossorigin: "anonymous"
3783
- },
3784
- jsdelivr: {
3785
- url: "https://cdn.jsdelivr.net/npm/alpinejs@3.14.3/dist/cdn.min.js",
3786
- global: "Alpine",
3787
- crossorigin: "anonymous"
3788
- },
3789
- unpkg: {
3790
- url: "https://unpkg.com/alpinejs@3.14.3/dist/cdn.min.js",
3791
- global: "Alpine",
3792
- crossorigin: "anonymous"
3793
- }
3794
- },
3795
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3796
- metadata: {
3797
- description: "A rugged, minimal framework for composing behavior directly in your markup",
3798
- homepage: "https://alpinejs.dev",
3799
- license: "MIT"
3800
- }
3801
- },
3802
- // ============================================
3803
- // Templating Libraries
3804
- // ============================================
3805
- handlebars: {
3806
- packageName: "handlebars",
3807
- defaultVersion: "4.7.8",
3808
- providers: {
3809
- cloudflare: {
3810
- url: "https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js",
3811
- integrity: "sha512-E1dSFxg+wsfJ4HKjutk/WaCzK7S2wv1POn1RRPGh8ZK+ag9l244Vqxji3r6wgz9YBf6+vhQEYJZpSjqWFPg9gg==",
3812
- global: "Handlebars",
3813
- crossorigin: "anonymous"
3814
- },
3815
- jsdelivr: {
3816
- url: "https://cdn.jsdelivr.net/npm/handlebars@4.7.8/dist/handlebars.min.js",
3817
- global: "Handlebars",
3818
- crossorigin: "anonymous"
3819
- },
3820
- unpkg: {
3821
- url: "https://unpkg.com/handlebars@4.7.8/dist/handlebars.min.js",
3822
- global: "Handlebars",
3823
- crossorigin: "anonymous"
3824
- }
3825
- },
3826
- preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
3827
- metadata: {
3828
- description: "Minimal templating on steroids",
3829
- homepage: "https://handlebarsjs.com",
3830
- license: "MIT"
3831
- }
3832
- }
3833
- };
3834
- var CDN_PROVIDER_PRIORITY = {
3835
- claude: ["cloudflare"],
3836
- // ONLY cloudflare for Claude
3837
- openai: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
3838
- cursor: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
3839
- gemini: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
3840
- continue: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
3841
- cody: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
3842
- unknown: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"]
3843
- // Default to cloudflare first
3844
- };
3845
- function lookupPackage(packageName, registry = DEFAULT_CDN_REGISTRY) {
3846
- return registry[packageName];
3847
- }
3848
- function mergeRegistries(customRegistry) {
3849
- return {
3850
- ...DEFAULT_CDN_REGISTRY,
3851
- ...customRegistry
3852
- };
3853
- }
3854
- function getPackagePeerDependencies(packageName, registry = DEFAULT_CDN_REGISTRY) {
3855
- const entry = lookupPackage(packageName, registry);
3856
- if (!entry) return [];
3857
- for (const provider of Object.keys(entry.providers)) {
3858
- const config = entry.providers[provider];
3859
- if (config?.peerDependencies) {
3860
- return config.peerDependencies;
3861
- }
3862
- }
3863
- return [];
3864
- }
3865
- function resolveAllDependencies(packageNames, platform = "unknown", registry = DEFAULT_CDN_REGISTRY) {
3866
- const resolved = /* @__PURE__ */ new Set();
3867
- const queue = [...packageNames];
3868
- while (queue.length > 0) {
3869
- const packageName = queue.shift();
3870
- if (!packageName) continue;
3871
- if (resolved.has(packageName)) continue;
3872
- resolved.add(packageName);
3873
- const peers = getPackagePeerDependencies(packageName, registry);
3874
- for (const peer of peers) {
3875
- if (!resolved.has(peer)) {
3876
- queue.push(peer);
3877
- }
3878
- }
3879
- }
3880
- const result = [];
3881
- const remaining = new Set(resolved);
3882
- while (remaining.size > 0) {
3883
- let added = false;
3884
- for (const pkg of remaining) {
3885
- const peers = getPackagePeerDependencies(pkg, registry);
3886
- const allPeersResolved = peers.every((peer) => !remaining.has(peer) || result.includes(peer));
3887
- if (allPeersResolved) {
3888
- if (!result.includes(pkg)) {
3889
- result.push(pkg);
3890
- }
3891
- remaining.delete(pkg);
3892
- added = true;
3893
- }
3894
- }
3895
- if (!added && remaining.size > 0) {
3896
- const next = remaining.values().next().value;
3897
- if (next !== void 0) {
3898
- if (!result.includes(next)) {
3899
- result.push(next);
3900
- }
3901
- remaining.delete(next);
3902
- }
3903
- }
3904
- }
3905
- return result;
3906
- }
3907
-
3908
- // libs/ui/src/dependency/import-parser.ts
3909
- var IMPORT_PATTERNS = {
3910
- /**
3911
- * Named imports: import { foo, bar } from 'module'
3912
- * Also handles renamed imports: import { foo as f } from 'module'
3913
- */
3914
- named: /import\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g,
3915
- /**
3916
- * Default imports: import foo from 'module'
3917
- */
3918
- default: /import\s+(\w+)\s+from\s*['"]([^'"]+)['"]/g,
3919
- /**
3920
- * Namespace imports: import * as foo from 'module'
3921
- */
3922
- namespace: /import\s*\*\s*as\s+(\w+)\s+from\s*['"]([^'"]+)['"]/g,
3923
- /**
3924
- * Side-effect imports: import 'module'
3925
- */
3926
- sideEffect: /import\s*['"]([^'"]+)['"]/g,
3927
- /**
3928
- * Dynamic imports: import('module') or await import('module')
3929
- */
3930
- dynamic: /(?:await\s+)?import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
3931
- /**
3932
- * Combined default and named: import foo, { bar } from 'module'
3933
- */
3934
- defaultAndNamed: /import\s+(\w+)\s*,\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g,
3935
- /**
3936
- * Combined default and namespace: import foo, * as bar from 'module'
3937
- */
3938
- defaultAndNamespace: /import\s+(\w+)\s*,\s*\*\s*as\s+(\w+)\s+from\s*['"]([^'"]+)['"]/g,
3939
- /**
3940
- * Re-exports: export { foo } from 'module'
3941
- */
3942
- reExport: /export\s*\{[^}]+\}\s*from\s*['"]([^'"]+)['"]/g,
3943
- /**
3944
- * Re-export all: export * from 'module'
3945
- */
3946
- reExportAll: /export\s*\*\s*from\s*['"]([^'"]+)['"]/g
3947
- };
3948
- function parseNamedImports(namedString) {
3949
- return namedString.split(",").map((s) => s.trim()).filter((s) => s.length > 0).map((s) => {
3950
- const asMatch = s.match(/^(\w+)\s+as\s+\w+$/);
3951
- return asMatch ? asMatch[1] : s;
3952
- });
3953
- }
3954
- function isRelativeImport(specifier) {
3955
- return specifier.startsWith("./") || specifier.startsWith("../") || specifier.startsWith("/");
3956
- }
3957
- function isExternalImport(specifier) {
3958
- return !isRelativeImport(specifier) && !specifier.startsWith("#");
3959
- }
3960
- function getPackageName(specifier) {
3961
- if (specifier.startsWith("@")) {
3962
- const parts = specifier.split("/");
3963
- if (parts.length >= 2) {
3964
- return `${parts[0]}/${parts[1]}`;
3965
- }
3966
- return specifier;
3967
- }
3968
- const firstSlash = specifier.indexOf("/");
3969
- return firstSlash === -1 ? specifier : specifier.slice(0, firstSlash);
3970
- }
3971
- function getLineNumber(source, index) {
3972
- let line = 1;
3973
- for (let i = 0; i < index && i < source.length; i++) {
3974
- if (source[i] === "\n") {
3975
- line++;
3976
- }
3977
- }
3978
- return line;
3979
- }
3980
- function getColumnNumber(source, index) {
3981
- let column = 0;
3982
- for (let i = index - 1; i >= 0 && source[i] !== "\n"; i--) {
3983
- column++;
3984
- }
3985
- return column;
3986
- }
3987
- function parseImports(source) {
3988
- const imports = [];
3989
- const seenStatements = /* @__PURE__ */ new Set();
3990
- const addImport = (imp) => {
3991
- const key = `${imp.type}:${imp.specifier}:${imp.statement}`;
3992
- if (!seenStatements.has(key)) {
3993
- seenStatements.add(key);
3994
- imports.push(imp);
3995
- }
3996
- };
3997
- let match;
3998
- const defaultAndNamedRegex = new RegExp(IMPORT_PATTERNS.defaultAndNamed.source, "g");
3999
- while ((match = defaultAndNamedRegex.exec(source)) !== null) {
4000
- const [statement, defaultName, namedString, specifier] = match;
4001
- const namedImports = parseNamedImports(namedString);
4002
- addImport({
4003
- statement,
4004
- specifier,
4005
- type: "default",
4006
- defaultImport: defaultName,
4007
- namedImports,
4008
- line: getLineNumber(source, match.index),
4009
- column: getColumnNumber(source, match.index)
4010
- });
4011
- }
4012
- const defaultAndNamespaceRegex = new RegExp(IMPORT_PATTERNS.defaultAndNamespace.source, "g");
4013
- while ((match = defaultAndNamespaceRegex.exec(source)) !== null) {
4014
- const [statement, defaultName, namespaceName, specifier] = match;
4015
- addImport({
4016
- statement,
4017
- specifier,
4018
- type: "default",
4019
- defaultImport: defaultName,
4020
- namespaceImport: namespaceName,
4021
- line: getLineNumber(source, match.index),
4022
- column: getColumnNumber(source, match.index)
4023
- });
4024
- }
4025
- const namedRegex = new RegExp(IMPORT_PATTERNS.named.source, "g");
4026
- while ((match = namedRegex.exec(source)) !== null) {
4027
- const [statement, namedString, specifier] = match;
4028
- const namedImports = parseNamedImports(namedString);
4029
- addImport({
4030
- statement,
4031
- specifier,
4032
- type: "named",
4033
- namedImports,
4034
- line: getLineNumber(source, match.index),
4035
- column: getColumnNumber(source, match.index)
4036
- });
4037
- }
4038
- const defaultRegex = new RegExp(IMPORT_PATTERNS.default.source, "g");
4039
- while ((match = defaultRegex.exec(source)) !== null) {
4040
- const [statement, defaultName, specifier] = match;
4041
- const afterMatch = source.slice(match.index + match[0].length - specifier.length - 2);
4042
- if (afterMatch.startsWith(",")) continue;
4043
- addImport({
4044
- statement,
4045
- specifier,
4046
- type: "default",
4047
- defaultImport: defaultName,
4048
- line: getLineNumber(source, match.index),
4049
- column: getColumnNumber(source, match.index)
4050
- });
4051
- }
4052
- const namespaceRegex = new RegExp(IMPORT_PATTERNS.namespace.source, "g");
4053
- while ((match = namespaceRegex.exec(source)) !== null) {
4054
- const [statement, namespaceName, specifier] = match;
4055
- addImport({
4056
- statement,
4057
- specifier,
4058
- type: "namespace",
4059
- namespaceImport: namespaceName,
4060
- line: getLineNumber(source, match.index),
4061
- column: getColumnNumber(source, match.index)
4062
- });
4063
- }
4064
- const sideEffectRegex = new RegExp(IMPORT_PATTERNS.sideEffect.source, "g");
4065
- while ((match = sideEffectRegex.exec(source)) !== null) {
4066
- const [statement, specifier] = match;
4067
- const beforeMatch = source.slice(Math.max(0, match.index - 50), match.index);
4068
- if (beforeMatch.includes("from")) continue;
4069
- addImport({
4070
- statement,
4071
- specifier,
4072
- type: "side-effect",
4073
- line: getLineNumber(source, match.index),
4074
- column: getColumnNumber(source, match.index)
4075
- });
4076
- }
4077
- const dynamicRegex = new RegExp(IMPORT_PATTERNS.dynamic.source, "g");
4078
- while ((match = dynamicRegex.exec(source)) !== null) {
4079
- const [statement, specifier] = match;
4080
- addImport({
4081
- statement,
4082
- specifier,
4083
- type: "dynamic",
4084
- line: getLineNumber(source, match.index),
4085
- column: getColumnNumber(source, match.index)
4086
- });
4087
- }
4088
- const reExportRegex = new RegExp(IMPORT_PATTERNS.reExport.source, "g");
4089
- while ((match = reExportRegex.exec(source)) !== null) {
4090
- const [statement, specifier] = match;
4091
- addImport({
4092
- statement,
4093
- specifier,
4094
- type: "named",
4095
- line: getLineNumber(source, match.index),
4096
- column: getColumnNumber(source, match.index)
4097
- });
4098
- }
4099
- const reExportAllRegex = new RegExp(IMPORT_PATTERNS.reExportAll.source, "g");
4100
- while ((match = reExportAllRegex.exec(source)) !== null) {
4101
- const [statement, specifier] = match;
4102
- addImport({
4103
- statement,
4104
- specifier,
4105
- type: "namespace",
4106
- line: getLineNumber(source, match.index),
4107
- column: getColumnNumber(source, match.index)
4108
- });
4109
- }
4110
- const externalImports = imports.filter((imp) => isExternalImport(imp.specifier));
4111
- const relativeImports = imports.filter((imp) => isRelativeImport(imp.specifier));
4112
- const externalPackages = [...new Set(externalImports.map((imp) => getPackageName(imp.specifier)))];
4113
- return {
4114
- imports,
4115
- externalImports,
4116
- relativeImports,
4117
- externalPackages
4118
- };
4119
- }
4120
-
4121
- // libs/ui/src/dependency/import-map.ts
4122
- function createImportMap(dependencies) {
4123
- const imports = {};
4124
- const integrity = {};
4125
- for (const dep of dependencies) {
4126
- imports[dep.packageName] = dep.cdnUrl;
4127
- if (dep.integrity) {
4128
- integrity[dep.cdnUrl] = dep.integrity;
4129
- }
4130
- }
4131
- return {
4132
- imports,
4133
- integrity: Object.keys(integrity).length > 0 ? integrity : void 0
4134
- };
4135
- }
4136
- function generateImportMapScriptTag(map) {
4137
- const json = JSON.stringify(map, null, 2);
4138
- return `<script type="importmap">
4139
- ${json}
4140
- </script>`;
4141
- }
4142
- function generateImportMapScriptTagMinified(map) {
4143
- const json = JSON.stringify(map);
4144
- return `<script type="importmap">${json}</script>`;
4145
- }
4146
- function generateUMDShim(dependencies, options = {}) {
4147
- const { safe = true, minify = false } = options;
4148
- const depsWithGlobals = dependencies.filter((d) => d.global && !d.esm);
4149
- if (depsWithGlobals.length === 0) {
4150
- return "";
4151
- }
4152
- const entries = depsWithGlobals.map((dep) => {
4153
- const global = dep.global;
4154
- return `'${dep.packageName}': { default: window.${global}, ...window.${global} }`;
4155
- });
4156
- const shimObject = `{
4157
- ${entries.join(",\n ")}
4158
- }`;
4159
- const code = safe ? `(function() {
4160
- try {
4161
- window.__esm_shim = ${shimObject};
4162
- } catch (e) {
4163
- console.warn('UMD shim failed:', e);
4164
- }
4165
- })();` : `window.__esm_shim = ${shimObject};`;
4166
- return minify ? code.replace(/\s+/g, " ").replace(/\s*([{},:])\s*/g, "$1") : code;
4167
- }
4168
- function generateCDNScriptTags(dependencies) {
4169
- return dependencies.filter((dep) => !dep.esm).map((dep) => {
4170
- const attrs = [`src="${escapeHtmlAttr(dep.cdnUrl)}"`];
4171
- if (dep.integrity) {
4172
- attrs.push(`integrity="${escapeHtmlAttr(dep.integrity)}"`);
4173
- }
4174
- attrs.push('crossorigin="anonymous"');
4175
- return `<script ${attrs.join(" ")}></script>`;
4176
- });
4177
- }
4178
- function generateESMScriptTags(dependencies) {
4179
- return dependencies.filter((dep) => dep.esm).map((dep) => {
4180
- const attrs = ['type="module"', `src="${escapeHtmlAttr(dep.cdnUrl)}"`];
4181
- if (dep.integrity) {
4182
- attrs.push(`integrity="${escapeHtmlAttr(dep.integrity)}"`);
4183
- }
4184
- attrs.push('crossorigin="anonymous"');
4185
- return `<script ${attrs.join(" ")}></script>`;
4186
- });
4187
- }
4188
- function generateDependencyHTML(dependencies, options = {}) {
4189
- const { minify = false, includeShim = true } = options;
4190
- const parts = [];
4191
- const importMap = createImportMap(dependencies);
4192
- const importMapTag = minify ? generateImportMapScriptTagMinified(importMap) : generateImportMapScriptTag(importMap);
4193
- parts.push(importMapTag);
4194
- const umdTags = generateCDNScriptTags(dependencies);
4195
- parts.push(...umdTags);
4196
- if (includeShim) {
4197
- const shim = generateUMDShim(dependencies, { minify });
4198
- if (shim) {
4199
- parts.push(`<script>${shim}</script>`);
4200
- }
4201
- }
4202
- const esmTags = generateESMScriptTags(dependencies);
4203
- parts.push(...esmTags);
4204
- return parts.join(minify ? "" : "\n");
4205
- }
4206
-
4207
- // libs/ui/src/dependency/resolver.ts
4208
- var DependencyResolutionError = class extends Error {
4209
- constructor(packageName, reason) {
4210
- super(`Failed to resolve dependency "${packageName}": ${reason}`);
4211
- this.packageName = packageName;
4212
- this.reason = reason;
4213
- this.name = "DependencyResolutionError";
4214
- }
4215
- };
4216
- var NoProviderError = class extends DependencyResolutionError {
4217
- constructor(packageName, platform) {
4218
- super(packageName, `No CDN provider available for platform "${platform}"`);
4219
- this.platform = platform;
4220
- this.name = "NoProviderError";
4221
- }
4222
- };
4223
- var DependencyResolver = class {
4224
- options;
4225
- registry;
4226
- constructor(options = {}) {
4227
- this.options = {
4228
- platform: options.platform ?? "unknown",
4229
- preferredProviders: options.preferredProviders ?? CDN_PROVIDER_PRIORITY[options.platform ?? "unknown"],
4230
- customRegistry: options.customRegistry ?? {},
4231
- strictMode: options.strictMode ?? true,
4232
- requireIntegrity: options.requireIntegrity ?? false
4233
- };
4234
- this.registry = mergeRegistries(this.options.customRegistry);
4235
- }
4236
- /**
4237
- * Resolve a single package to its CDN dependency.
4238
- *
4239
- * @param packageName - NPM package name
4240
- * @param override - Optional explicit CDN dependency override
4241
- * @returns Resolved dependency, or null in non-strict mode if package is not found (should be bundled)
4242
- * @throws DependencyResolutionError if package cannot be resolved in strict mode
4243
- */
4244
- resolve(packageName, override) {
4245
- if (override) {
4246
- return this.createResolvedDependency(packageName, override, "custom");
4247
- }
4248
- const entry = lookupPackage(packageName, this.registry);
4249
- if (!entry) {
4250
- if (this.options.strictMode) {
4251
- throw new DependencyResolutionError(
4252
- packageName,
4253
- 'Package not found in CDN registry. Add it to "dependencies" for explicit CDN configuration.'
4254
- );
4255
- }
4256
- return null;
4257
- }
4258
- const providerPriority = this.options.preferredProviders;
4259
- for (const provider of providerPriority) {
4260
- const config = entry.providers[provider];
4261
- if (config?.url) {
4262
- if (this.options.requireIntegrity && !config.integrity) {
4263
- continue;
4264
- }
4265
- return this.createResolvedDependency(packageName, config, provider, entry.defaultVersion);
4266
- }
4267
- }
4268
- throw new NoProviderError(packageName, this.options.platform);
4269
- }
4270
- /**
4271
- * Resolve multiple packages.
4272
- *
4273
- * @param packageNames - Array of package names
4274
- * @param overrides - Optional explicit overrides for specific packages
4275
- * @returns Array of resolved dependencies (in dependency order)
4276
- */
4277
- resolveMany(packageNames, overrides) {
4278
- const allPackages = resolveAllDependencies(packageNames, this.options.platform, this.registry);
4279
- const resolved = [];
4280
- for (const pkgName of allPackages) {
4281
- try {
4282
- const override = overrides?.[pkgName];
4283
- const dep = this.resolve(pkgName, override);
4284
- if (dep) {
4285
- resolved.push(dep);
4286
- }
4287
- } catch (error) {
4288
- if (this.options.strictMode) {
4289
- throw error;
4290
- }
4291
- }
4292
- }
4293
- return resolved;
4294
- }
4295
- /**
4296
- * Resolve dependencies from source code.
4297
- *
4298
- * Parses the source to extract imports, then resolves external packages
4299
- * that are in the externals list.
4300
- *
4301
- * @param source - Source code to parse
4302
- * @param externals - Package names to resolve from CDN (others are bundled)
4303
- * @param overrides - Optional explicit CDN overrides
4304
- * @returns Resolved dependencies
4305
- */
4306
- resolveFromSource(source, externals, overrides) {
4307
- const parseResult = parseImports(source);
4308
- const packagesToResolve = parseResult.externalPackages.filter((pkg) => externals.includes(pkg));
4309
- return this.resolveMany(packagesToResolve, overrides);
4310
- }
4311
- /**
4312
- * Generate an import map for resolved dependencies.
4313
- *
4314
- * @param dependencies - Resolved dependencies
4315
- * @returns Browser import map
4316
- */
4317
- generateImportMap(dependencies) {
4318
- return createImportMap(dependencies);
4319
- }
4320
- /**
4321
- * Check if a package can be resolved for the current platform.
4322
- *
4323
- * @param packageName - Package name to check
4324
- * @returns true if the package can be resolved
4325
- */
4326
- canResolve(packageName) {
4327
- try {
4328
- const result = this.resolve(packageName);
4329
- return result !== null;
4330
- } catch {
4331
- return false;
4332
- }
4333
- }
4334
- /**
4335
- * Get the resolved CDN URL for a package.
4336
- *
4337
- * @param packageName - Package name
4338
- * @param override - Optional explicit override
4339
- * @returns CDN URL or undefined if cannot resolve
4340
- */
4341
- getUrl(packageName, override) {
4342
- try {
4343
- const resolved = this.resolve(packageName, override);
4344
- return resolved?.cdnUrl;
4345
- } catch {
4346
- return void 0;
4347
- }
4348
- }
4349
- /**
4350
- * Get peer dependencies for a package.
4351
- */
4352
- getPeerDependencies(packageName) {
4353
- return getPackagePeerDependencies(packageName, this.registry);
4354
- }
4355
- /**
4356
- * Create the current registry (default + custom).
4357
- */
4358
- getRegistry() {
4359
- return this.registry;
4360
- }
4361
- /**
4362
- * Get the current platform.
4363
- */
4364
- getPlatform() {
4365
- return this.options.platform;
4366
- }
4367
- /**
4368
- * Create a resolved dependency object.
4369
- */
4370
- createResolvedDependency(packageName, config, provider, version) {
4371
- return {
4372
- packageName,
4373
- version: version ?? this.extractVersionFromUrl(config.url) ?? "latest",
4374
- cdnUrl: config.url,
4375
- integrity: config.integrity,
4376
- global: config.global,
4377
- esm: config.esm ?? false,
4378
- provider
4379
- };
4380
- }
4381
- /**
4382
- * Try to extract version from CDN URL.
4383
- */
4384
- extractVersionFromUrl(url) {
4385
- const versionMatch = url.match(/@(\d+\.\d+\.\d+(?:-[\w.]+)?)/);
4386
- if (versionMatch) {
4387
- return versionMatch[1];
4388
- }
4389
- const versionMatch2 = url.match(/\/v?(\d+\.\d+\.\d+)\//);
4390
- if (versionMatch2) {
4391
- return versionMatch2[1];
4392
- }
4393
- return void 0;
4394
- }
4395
- };
4396
-
4397
- // libs/ui/src/bundler/file-cache/component-builder.ts
3350
+ import { DependencyResolver, createImportMap, generateDependencyHTML } from "@frontmcp/uipack/dependency";
4398
3351
  var ComponentBuilder = class {
4399
3352
  storage;
4400
3353
  esbuild = null;