@frontmcp/uipack 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 (417) hide show
  1. package/CLAUDE.md +246 -0
  2. package/LICENSE +201 -0
  3. package/README.md +150 -0
  4. package/adapters/index.d.ts +13 -0
  5. package/adapters/index.d.ts.map +1 -0
  6. package/adapters/index.js +462 -0
  7. package/adapters/platform-meta.d.ts +166 -0
  8. package/adapters/platform-meta.d.ts.map +1 -0
  9. package/adapters/response-builder.d.ts +108 -0
  10. package/adapters/response-builder.d.ts.map +1 -0
  11. package/adapters/serving-mode.d.ts +107 -0
  12. package/adapters/serving-mode.d.ts.map +1 -0
  13. package/base-template/bridge.d.ts +90 -0
  14. package/base-template/bridge.d.ts.map +1 -0
  15. package/base-template/default-base-template.d.ts +92 -0
  16. package/base-template/default-base-template.d.ts.map +1 -0
  17. package/base-template/index.d.ts +15 -0
  18. package/base-template/index.d.ts.map +1 -0
  19. package/base-template/index.js +1398 -0
  20. package/base-template/polyfills.d.ts +31 -0
  21. package/base-template/polyfills.d.ts.map +1 -0
  22. package/base-template/theme-styles.d.ts +74 -0
  23. package/base-template/theme-styles.d.ts.map +1 -0
  24. package/bridge-runtime/iife-generator.d.ts +62 -0
  25. package/bridge-runtime/iife-generator.d.ts.map +1 -0
  26. package/bridge-runtime/index.d.ts +10 -0
  27. package/bridge-runtime/index.d.ts.map +1 -0
  28. package/bridge-runtime/index.js +883 -0
  29. package/build/cdn-resources.d.ts +243 -0
  30. package/build/cdn-resources.d.ts.map +1 -0
  31. package/build/index.d.ts +295 -0
  32. package/build/index.d.ts.map +1 -0
  33. package/build/index.js +6861 -0
  34. package/build/widget-manifest.d.ts +362 -0
  35. package/build/widget-manifest.d.ts.map +1 -0
  36. package/bundler/cache.d.ts +173 -0
  37. package/bundler/cache.d.ts.map +1 -0
  38. package/bundler/file-cache/component-builder.d.ts +167 -0
  39. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  40. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  41. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  42. package/bundler/file-cache/index.d.ts +12 -0
  43. package/bundler/file-cache/index.d.ts.map +1 -0
  44. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  45. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  46. package/bundler/file-cache/storage/index.d.ts +11 -0
  47. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  48. package/bundler/file-cache/storage/interface.d.ts +152 -0
  49. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  50. package/bundler/file-cache/storage/redis.d.ts +139 -0
  51. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  52. package/bundler/index.d.ts +35 -0
  53. package/bundler/index.d.ts.map +1 -0
  54. package/bundler/index.js +2947 -0
  55. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  56. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  57. package/bundler/sandbox/executor.d.ts +14 -0
  58. package/bundler/sandbox/executor.d.ts.map +1 -0
  59. package/bundler/sandbox/policy.d.ts +62 -0
  60. package/bundler/sandbox/policy.d.ts.map +1 -0
  61. package/bundler/types.d.ts +702 -0
  62. package/bundler/types.d.ts.map +1 -0
  63. package/dependency/cdn-registry.d.ts +98 -0
  64. package/dependency/cdn-registry.d.ts.map +1 -0
  65. package/dependency/import-map.d.ts +186 -0
  66. package/dependency/import-map.d.ts.map +1 -0
  67. package/dependency/import-parser.d.ts +82 -0
  68. package/dependency/import-parser.d.ts.map +1 -0
  69. package/dependency/index.d.ts +17 -0
  70. package/dependency/index.d.ts.map +1 -0
  71. package/dependency/index.js +3215 -0
  72. package/dependency/resolver.d.ts +164 -0
  73. package/dependency/resolver.d.ts.map +1 -0
  74. package/dependency/schemas.d.ts +486 -0
  75. package/dependency/schemas.d.ts.map +1 -0
  76. package/dependency/template-loader.d.ts +204 -0
  77. package/dependency/template-loader.d.ts.map +1 -0
  78. package/dependency/template-processor.d.ts +118 -0
  79. package/dependency/template-processor.d.ts.map +1 -0
  80. package/dependency/types.d.ts +739 -0
  81. package/dependency/types.d.ts.map +1 -0
  82. package/esm/adapters/index.d.ts +13 -0
  83. package/esm/adapters/index.d.ts.map +1 -0
  84. package/esm/adapters/index.js +427 -0
  85. package/esm/adapters/platform-meta.d.ts +166 -0
  86. package/esm/adapters/platform-meta.d.ts.map +1 -0
  87. package/esm/adapters/response-builder.d.ts +108 -0
  88. package/esm/adapters/response-builder.d.ts.map +1 -0
  89. package/esm/adapters/serving-mode.d.ts +107 -0
  90. package/esm/adapters/serving-mode.d.ts.map +1 -0
  91. package/esm/base-template/bridge.d.ts +90 -0
  92. package/esm/base-template/bridge.d.ts.map +1 -0
  93. package/esm/base-template/default-base-template.d.ts +92 -0
  94. package/esm/base-template/default-base-template.d.ts.map +1 -0
  95. package/esm/base-template/index.d.ts +15 -0
  96. package/esm/base-template/index.d.ts.map +1 -0
  97. package/esm/base-template/index.js +1364 -0
  98. package/esm/base-template/polyfills.d.ts +31 -0
  99. package/esm/base-template/polyfills.d.ts.map +1 -0
  100. package/esm/base-template/theme-styles.d.ts +74 -0
  101. package/esm/base-template/theme-styles.d.ts.map +1 -0
  102. package/esm/bridge-runtime/iife-generator.d.ts +62 -0
  103. package/esm/bridge-runtime/iife-generator.d.ts.map +1 -0
  104. package/esm/bridge-runtime/index.d.ts +10 -0
  105. package/esm/bridge-runtime/index.d.ts.map +1 -0
  106. package/esm/bridge-runtime/index.js +853 -0
  107. package/esm/build/cdn-resources.d.ts +243 -0
  108. package/esm/build/cdn-resources.d.ts.map +1 -0
  109. package/esm/build/index.d.ts +295 -0
  110. package/esm/build/index.d.ts.map +1 -0
  111. package/esm/build/index.js +6786 -0
  112. package/esm/build/widget-manifest.d.ts +362 -0
  113. package/esm/build/widget-manifest.d.ts.map +1 -0
  114. package/esm/bundler/cache.d.ts +173 -0
  115. package/esm/bundler/cache.d.ts.map +1 -0
  116. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  117. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  118. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  119. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  120. package/esm/bundler/file-cache/index.d.ts +12 -0
  121. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  122. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  123. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  124. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  125. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  126. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  127. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  128. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  129. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  130. package/esm/bundler/index.d.ts +35 -0
  131. package/esm/bundler/index.d.ts.map +1 -0
  132. package/esm/bundler/index.js +2882 -0
  133. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  134. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  135. package/esm/bundler/sandbox/executor.d.ts +14 -0
  136. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  137. package/esm/bundler/sandbox/policy.d.ts +62 -0
  138. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  139. package/esm/bundler/types.d.ts +702 -0
  140. package/esm/bundler/types.d.ts.map +1 -0
  141. package/esm/dependency/cdn-registry.d.ts +98 -0
  142. package/esm/dependency/cdn-registry.d.ts.map +1 -0
  143. package/esm/dependency/import-map.d.ts +186 -0
  144. package/esm/dependency/import-map.d.ts.map +1 -0
  145. package/esm/dependency/import-parser.d.ts +82 -0
  146. package/esm/dependency/import-parser.d.ts.map +1 -0
  147. package/esm/dependency/index.d.ts +17 -0
  148. package/esm/dependency/index.d.ts.map +1 -0
  149. package/esm/dependency/index.js +3096 -0
  150. package/esm/dependency/resolver.d.ts +164 -0
  151. package/esm/dependency/resolver.d.ts.map +1 -0
  152. package/esm/dependency/schemas.d.ts +486 -0
  153. package/esm/dependency/schemas.d.ts.map +1 -0
  154. package/esm/dependency/template-loader.d.ts +204 -0
  155. package/esm/dependency/template-loader.d.ts.map +1 -0
  156. package/esm/dependency/template-processor.d.ts +118 -0
  157. package/esm/dependency/template-processor.d.ts.map +1 -0
  158. package/esm/dependency/types.d.ts +739 -0
  159. package/esm/dependency/types.d.ts.map +1 -0
  160. package/esm/handlebars/expression-extractor.d.ts +147 -0
  161. package/esm/handlebars/expression-extractor.d.ts.map +1 -0
  162. package/esm/handlebars/helpers.d.ts +339 -0
  163. package/esm/handlebars/helpers.d.ts.map +1 -0
  164. package/esm/handlebars/index.d.ts +195 -0
  165. package/esm/handlebars/index.d.ts.map +1 -0
  166. package/esm/handlebars/index.js +587 -0
  167. package/esm/index.d.ts +50 -0
  168. package/esm/index.d.ts.map +1 -0
  169. package/esm/index.js +12434 -0
  170. package/esm/package.json +68 -0
  171. package/esm/registry/index.d.ts +46 -0
  172. package/esm/registry/index.d.ts.map +1 -0
  173. package/esm/registry/index.js +6237 -0
  174. package/esm/registry/render-template.d.ts +91 -0
  175. package/esm/registry/render-template.d.ts.map +1 -0
  176. package/esm/registry/tool-ui.registry.d.ts +294 -0
  177. package/esm/registry/tool-ui.registry.d.ts.map +1 -0
  178. package/esm/registry/uri-utils.d.ts +56 -0
  179. package/esm/registry/uri-utils.d.ts.map +1 -0
  180. package/esm/renderers/cache.d.ts +145 -0
  181. package/esm/renderers/cache.d.ts.map +1 -0
  182. package/esm/renderers/html.renderer.d.ts +123 -0
  183. package/esm/renderers/html.renderer.d.ts.map +1 -0
  184. package/esm/renderers/index.d.ts +36 -0
  185. package/esm/renderers/index.d.ts.map +1 -0
  186. package/esm/renderers/index.js +1654 -0
  187. package/esm/renderers/mdx.renderer.d.ts +120 -0
  188. package/esm/renderers/mdx.renderer.d.ts.map +1 -0
  189. package/esm/renderers/registry.d.ts +133 -0
  190. package/esm/renderers/registry.d.ts.map +1 -0
  191. package/esm/renderers/types.d.ts +342 -0
  192. package/esm/renderers/types.d.ts.map +1 -0
  193. package/esm/renderers/utils/detect.d.ts +107 -0
  194. package/esm/renderers/utils/detect.d.ts.map +1 -0
  195. package/esm/renderers/utils/hash.d.ts +40 -0
  196. package/esm/renderers/utils/hash.d.ts.map +1 -0
  197. package/esm/renderers/utils/index.d.ts +9 -0
  198. package/esm/renderers/utils/index.d.ts.map +1 -0
  199. package/esm/renderers/utils/transpiler.d.ts +89 -0
  200. package/esm/renderers/utils/transpiler.d.ts.map +1 -0
  201. package/esm/runtime/adapters/html.adapter.d.ts +59 -0
  202. package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
  203. package/esm/runtime/adapters/index.d.ts +26 -0
  204. package/esm/runtime/adapters/index.d.ts.map +1 -0
  205. package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
  206. package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  207. package/esm/runtime/adapters/types.d.ts +95 -0
  208. package/esm/runtime/adapters/types.d.ts.map +1 -0
  209. package/esm/runtime/csp.d.ts +48 -0
  210. package/esm/runtime/csp.d.ts.map +1 -0
  211. package/esm/runtime/index.d.ts +17 -0
  212. package/esm/runtime/index.d.ts.map +1 -0
  213. package/esm/runtime/index.js +4976 -0
  214. package/esm/runtime/mcp-bridge.d.ts +101 -0
  215. package/esm/runtime/mcp-bridge.d.ts.map +1 -0
  216. package/esm/runtime/renderer-runtime.d.ts +133 -0
  217. package/esm/runtime/renderer-runtime.d.ts.map +1 -0
  218. package/esm/runtime/sanitizer.d.ts +172 -0
  219. package/esm/runtime/sanitizer.d.ts.map +1 -0
  220. package/esm/runtime/types.d.ts +415 -0
  221. package/esm/runtime/types.d.ts.map +1 -0
  222. package/esm/runtime/wrapper.d.ts +421 -0
  223. package/esm/runtime/wrapper.d.ts.map +1 -0
  224. package/esm/styles/index.d.ts +8 -0
  225. package/esm/styles/index.d.ts.map +1 -0
  226. package/esm/styles/index.js +171 -0
  227. package/esm/styles/variants.d.ts +51 -0
  228. package/esm/styles/variants.d.ts.map +1 -0
  229. package/esm/theme/cdn.d.ts +195 -0
  230. package/esm/theme/cdn.d.ts.map +1 -0
  231. package/esm/theme/index.d.ts +18 -0
  232. package/esm/theme/index.d.ts.map +1 -0
  233. package/esm/theme/index.js +700 -0
  234. package/esm/theme/platforms.d.ts +107 -0
  235. package/esm/theme/platforms.d.ts.map +1 -0
  236. package/esm/theme/presets/github-openai.d.ts +50 -0
  237. package/esm/theme/presets/github-openai.d.ts.map +1 -0
  238. package/esm/theme/presets/index.d.ts +11 -0
  239. package/esm/theme/presets/index.d.ts.map +1 -0
  240. package/esm/theme/theme.d.ts +396 -0
  241. package/esm/theme/theme.d.ts.map +1 -0
  242. package/esm/tool-template/builder.d.ts +213 -0
  243. package/esm/tool-template/builder.d.ts.map +1 -0
  244. package/esm/tool-template/index.d.ts +16 -0
  245. package/esm/tool-template/index.d.ts.map +1 -0
  246. package/esm/tool-template/index.js +3518 -0
  247. package/esm/types/index.d.ts +14 -0
  248. package/esm/types/index.d.ts.map +1 -0
  249. package/esm/types/index.js +75 -0
  250. package/esm/types/ui-config.d.ts +641 -0
  251. package/esm/types/ui-config.d.ts.map +1 -0
  252. package/esm/types/ui-runtime.d.ts +1008 -0
  253. package/esm/types/ui-runtime.d.ts.map +1 -0
  254. package/esm/typings/cache/cache-adapter.d.ts +125 -0
  255. package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
  256. package/esm/typings/cache/index.d.ts +10 -0
  257. package/esm/typings/cache/index.d.ts.map +1 -0
  258. package/esm/typings/cache/memory-cache.d.ts +92 -0
  259. package/esm/typings/cache/memory-cache.d.ts.map +1 -0
  260. package/esm/typings/dts-parser.d.ts +90 -0
  261. package/esm/typings/dts-parser.d.ts.map +1 -0
  262. package/esm/typings/index.d.ts +48 -0
  263. package/esm/typings/index.d.ts.map +1 -0
  264. package/esm/typings/index.js +812 -0
  265. package/esm/typings/schemas.d.ts +232 -0
  266. package/esm/typings/schemas.d.ts.map +1 -0
  267. package/esm/typings/type-fetcher.d.ts +89 -0
  268. package/esm/typings/type-fetcher.d.ts.map +1 -0
  269. package/esm/typings/types.d.ts +320 -0
  270. package/esm/typings/types.d.ts.map +1 -0
  271. package/esm/utils/escape-html.d.ts +58 -0
  272. package/esm/utils/escape-html.d.ts.map +1 -0
  273. package/esm/utils/index.d.ts +10 -0
  274. package/esm/utils/index.d.ts.map +1 -0
  275. package/esm/utils/index.js +40 -0
  276. package/esm/utils/safe-stringify.d.ts +30 -0
  277. package/esm/utils/safe-stringify.d.ts.map +1 -0
  278. package/esm/validation/error-box.d.ts +56 -0
  279. package/esm/validation/error-box.d.ts.map +1 -0
  280. package/esm/validation/index.d.ts +13 -0
  281. package/esm/validation/index.d.ts.map +1 -0
  282. package/esm/validation/index.js +542 -0
  283. package/esm/validation/schema-paths.d.ts +118 -0
  284. package/esm/validation/schema-paths.d.ts.map +1 -0
  285. package/esm/validation/template-validator.d.ts +143 -0
  286. package/esm/validation/template-validator.d.ts.map +1 -0
  287. package/esm/validation/wrapper.d.ts +97 -0
  288. package/esm/validation/wrapper.d.ts.map +1 -0
  289. package/handlebars/expression-extractor.d.ts +147 -0
  290. package/handlebars/expression-extractor.d.ts.map +1 -0
  291. package/handlebars/helpers.d.ts +339 -0
  292. package/handlebars/helpers.d.ts.map +1 -0
  293. package/handlebars/index.d.ts +195 -0
  294. package/handlebars/index.d.ts.map +1 -0
  295. package/handlebars/index.js +666 -0
  296. package/index.d.ts +50 -0
  297. package/index.d.ts.map +1 -0
  298. package/index.js +12683 -0
  299. package/package.json +66 -0
  300. package/registry/index.d.ts +46 -0
  301. package/registry/index.d.ts.map +1 -0
  302. package/registry/index.js +6280 -0
  303. package/registry/render-template.d.ts +91 -0
  304. package/registry/render-template.d.ts.map +1 -0
  305. package/registry/tool-ui.registry.d.ts +294 -0
  306. package/registry/tool-ui.registry.d.ts.map +1 -0
  307. package/registry/uri-utils.d.ts +56 -0
  308. package/registry/uri-utils.d.ts.map +1 -0
  309. package/renderers/cache.d.ts +145 -0
  310. package/renderers/cache.d.ts.map +1 -0
  311. package/renderers/html.renderer.d.ts +123 -0
  312. package/renderers/html.renderer.d.ts.map +1 -0
  313. package/renderers/index.d.ts +36 -0
  314. package/renderers/index.d.ts.map +1 -0
  315. package/renderers/index.js +1706 -0
  316. package/renderers/mdx.renderer.d.ts +120 -0
  317. package/renderers/mdx.renderer.d.ts.map +1 -0
  318. package/renderers/registry.d.ts +133 -0
  319. package/renderers/registry.d.ts.map +1 -0
  320. package/renderers/types.d.ts +342 -0
  321. package/renderers/types.d.ts.map +1 -0
  322. package/renderers/utils/detect.d.ts +107 -0
  323. package/renderers/utils/detect.d.ts.map +1 -0
  324. package/renderers/utils/hash.d.ts +40 -0
  325. package/renderers/utils/hash.d.ts.map +1 -0
  326. package/renderers/utils/index.d.ts +9 -0
  327. package/renderers/utils/index.d.ts.map +1 -0
  328. package/renderers/utils/transpiler.d.ts +89 -0
  329. package/renderers/utils/transpiler.d.ts.map +1 -0
  330. package/runtime/adapters/html.adapter.d.ts +59 -0
  331. package/runtime/adapters/html.adapter.d.ts.map +1 -0
  332. package/runtime/adapters/index.d.ts +26 -0
  333. package/runtime/adapters/index.d.ts.map +1 -0
  334. package/runtime/adapters/mdx.adapter.d.ts +73 -0
  335. package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  336. package/runtime/adapters/types.d.ts +95 -0
  337. package/runtime/adapters/types.d.ts.map +1 -0
  338. package/runtime/csp.d.ts +48 -0
  339. package/runtime/csp.d.ts.map +1 -0
  340. package/runtime/index.d.ts +17 -0
  341. package/runtime/index.d.ts.map +1 -0
  342. package/runtime/index.js +5052 -0
  343. package/runtime/mcp-bridge.d.ts +101 -0
  344. package/runtime/mcp-bridge.d.ts.map +1 -0
  345. package/runtime/renderer-runtime.d.ts +133 -0
  346. package/runtime/renderer-runtime.d.ts.map +1 -0
  347. package/runtime/sanitizer.d.ts +172 -0
  348. package/runtime/sanitizer.d.ts.map +1 -0
  349. package/runtime/types.d.ts +415 -0
  350. package/runtime/types.d.ts.map +1 -0
  351. package/runtime/wrapper.d.ts +421 -0
  352. package/runtime/wrapper.d.ts.map +1 -0
  353. package/styles/index.d.ts +8 -0
  354. package/styles/index.d.ts.map +1 -0
  355. package/styles/index.js +222 -0
  356. package/styles/variants.d.ts +51 -0
  357. package/styles/variants.d.ts.map +1 -0
  358. package/theme/cdn.d.ts +195 -0
  359. package/theme/cdn.d.ts.map +1 -0
  360. package/theme/index.d.ts +18 -0
  361. package/theme/index.d.ts.map +1 -0
  362. package/theme/index.js +757 -0
  363. package/theme/platforms.d.ts +107 -0
  364. package/theme/platforms.d.ts.map +1 -0
  365. package/theme/presets/github-openai.d.ts +50 -0
  366. package/theme/presets/github-openai.d.ts.map +1 -0
  367. package/theme/presets/index.d.ts +11 -0
  368. package/theme/presets/index.d.ts.map +1 -0
  369. package/theme/theme.d.ts +396 -0
  370. package/theme/theme.d.ts.map +1 -0
  371. package/tool-template/builder.d.ts +213 -0
  372. package/tool-template/builder.d.ts.map +1 -0
  373. package/tool-template/index.d.ts +16 -0
  374. package/tool-template/index.d.ts.map +1 -0
  375. package/tool-template/index.js +3562 -0
  376. package/types/index.d.ts +14 -0
  377. package/types/index.d.ts.map +1 -0
  378. package/types/index.js +108 -0
  379. package/types/ui-config.d.ts +641 -0
  380. package/types/ui-config.d.ts.map +1 -0
  381. package/types/ui-runtime.d.ts +1008 -0
  382. package/types/ui-runtime.d.ts.map +1 -0
  383. package/typings/cache/cache-adapter.d.ts +125 -0
  384. package/typings/cache/cache-adapter.d.ts.map +1 -0
  385. package/typings/cache/index.d.ts +10 -0
  386. package/typings/cache/index.d.ts.map +1 -0
  387. package/typings/cache/memory-cache.d.ts +92 -0
  388. package/typings/cache/memory-cache.d.ts.map +1 -0
  389. package/typings/dts-parser.d.ts +90 -0
  390. package/typings/dts-parser.d.ts.map +1 -0
  391. package/typings/index.d.ts +48 -0
  392. package/typings/index.d.ts.map +1 -0
  393. package/typings/index.js +868 -0
  394. package/typings/schemas.d.ts +232 -0
  395. package/typings/schemas.d.ts.map +1 -0
  396. package/typings/type-fetcher.d.ts +89 -0
  397. package/typings/type-fetcher.d.ts.map +1 -0
  398. package/typings/types.d.ts +320 -0
  399. package/typings/types.d.ts.map +1 -0
  400. package/utils/escape-html.d.ts +58 -0
  401. package/utils/escape-html.d.ts.map +1 -0
  402. package/utils/index.d.ts +10 -0
  403. package/utils/index.d.ts.map +1 -0
  404. package/utils/index.js +70 -0
  405. package/utils/safe-stringify.d.ts +30 -0
  406. package/utils/safe-stringify.d.ts.map +1 -0
  407. package/validation/error-box.d.ts +56 -0
  408. package/validation/error-box.d.ts.map +1 -0
  409. package/validation/index.d.ts +13 -0
  410. package/validation/index.d.ts.map +1 -0
  411. package/validation/index.js +583 -0
  412. package/validation/schema-paths.d.ts +118 -0
  413. package/validation/schema-paths.d.ts.map +1 -0
  414. package/validation/template-validator.d.ts +143 -0
  415. package/validation/template-validator.d.ts.map +1 -0
  416. package/validation/wrapper.d.ts +97 -0
  417. package/validation/wrapper.d.ts.map +1 -0
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Template Rendering
3
+ *
4
+ * Executes tool UI templates with proper context and helpers.
5
+ * Supports sync rendering for HTML strings/template functions,
6
+ * async rendering for React components via SSR, and MDX rendering.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ import type { UITemplateConfig, TemplateBuilderFn } from '../types';
11
+ /**
12
+ * Check if a string contains MDX syntax (Markdown + JSX).
13
+ *
14
+ * Looks for:
15
+ * - JSX component tags (PascalCase): `<Component />`
16
+ * - JS expressions: `{variable}` or `{items.map(...)}`
17
+ * - Import/export statements
18
+ * - Frontmatter: `---\n...\n---`
19
+ */
20
+ export declare function containsMdxSyntax(source: string): boolean;
21
+ /**
22
+ * Check if a template is a React component (not a template builder function).
23
+ *
24
+ * React components are distinguished from template builder functions by:
25
+ * - Having $$typeof symbol (React.memo, forwardRef, etc.)
26
+ * - Having prototype.isReactComponent (class components)
27
+ * - PascalCase naming convention (function components)
28
+ *
29
+ * Template builder functions take (ctx) and return a string, while
30
+ * React components take props and return JSX.Element.
31
+ */
32
+ export declare function isReactComponent(template: unknown): boolean;
33
+ /**
34
+ * Options for rendering a tool template.
35
+ */
36
+ export interface RenderTemplateOptions {
37
+ /** The template configuration from the tool */
38
+ template: TemplateBuilderFn<unknown, unknown> | string | ((props: any) => any);
39
+ /** Tool input arguments */
40
+ input: Record<string, unknown>;
41
+ /** Tool output (raw result from execute) */
42
+ output: unknown;
43
+ /** Structured content parsed from output */
44
+ structuredContent?: unknown;
45
+ /** Custom MDX components to use in MDX templates */
46
+ mdxComponents?: Record<string, any>;
47
+ }
48
+ /**
49
+ * Render a tool UI template.
50
+ *
51
+ * @param options - Template and context data
52
+ * @returns Rendered HTML string
53
+ * @throws Error if template execution fails
54
+ */
55
+ export declare function renderToolTemplate(options: RenderTemplateOptions): string;
56
+ /**
57
+ * Check if a tool has UI configuration.
58
+ * Uses loose typing to handle variance issues with generic tool metadata.
59
+ */
60
+ export declare function hasUIConfig(metadata: {
61
+ ui?: unknown;
62
+ }): metadata is {
63
+ ui: UITemplateConfig<unknown, unknown>;
64
+ };
65
+ /**
66
+ * Render a tool UI template asynchronously.
67
+ *
68
+ * This version supports:
69
+ * - React components via SSR
70
+ * - MDX strings (Markdown + JSX) via @mdx-js/mdx
71
+ * - HTML strings and template builder functions
72
+ *
73
+ * For React components:
74
+ * - Dynamically imports react and react-dom/server
75
+ * - Uses renderToString for SSR
76
+ * - React components receive the template context as props
77
+ *
78
+ * For MDX templates:
79
+ * - Detects MDX syntax (Markdown headers, JSX components, expressions)
80
+ * - Compiles and renders via @frontmcp/ui's MDX renderer
81
+ *
82
+ * Error handling behavior by environment:
83
+ * - **Production**: Logs warning and returns `null` for graceful degradation (no UI)
84
+ * - **Development/Test**: Logs error and throws for visibility and debugging
85
+ *
86
+ * @param options - Template and context data
87
+ * @returns Promise resolving to rendered HTML string, or `null` in production on error
88
+ * @throws Error if template execution or rendering fails (development/test only)
89
+ */
90
+ export declare function renderToolTemplateAsync(options: RenderTemplateOptions): Promise<string | null>;
91
+ //# sourceMappingURL=render-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-template.d.ts","sourceRoot":"","sources":["../../src/registry/render-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAmB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGrF;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAsCzD;AAkCD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAyB3D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAE/C,QAAQ,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;IAC/E,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oDAAoD;IAEpD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAuBzE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,QAAQ,IAAI;IAAE,EAAE,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;CAAE,CAG9G;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4FpG"}
@@ -0,0 +1,294 @@
1
+ /**
2
+ * Tool UI Registry
3
+ *
4
+ * Manages UI template rendering for tool responses.
5
+ * Provides platform-specific metadata generation for MCP clients.
6
+ *
7
+ * Three serving modes:
8
+ * - **inline**: HTML is rendered per-request and embedded in _meta['ui/html']
9
+ * - **static**: Static widget is pre-compiled at startup, client fetches via resources/read
10
+ * - **hybrid**: Shell (React + renderer) cached at startup, component + data in response
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ import type { UITemplateConfig, WidgetManifest, BuildManifestResult } from '../types';
15
+ import type { AIPlatformType, UIMetadata } from '../adapters';
16
+ /**
17
+ * Options for renderAndRegisterAsync (inline mode).
18
+ */
19
+ export interface RenderOptions {
20
+ /** Tool name */
21
+ toolName: string;
22
+ /** Unique request identifier */
23
+ requestId: string;
24
+ /** Tool input arguments */
25
+ input: Record<string, unknown>;
26
+ /** Raw tool output */
27
+ output: unknown;
28
+ /** Structured content (parsed from output) */
29
+ structuredContent?: unknown;
30
+ /** Tool UI configuration */
31
+ uiConfig: UITemplateConfig;
32
+ /** Detected platform type */
33
+ platformType: AIPlatformType;
34
+ /** Widget access token (optional) */
35
+ token?: string;
36
+ /** Direct URL for widget serving (optional) */
37
+ directUrl?: string;
38
+ }
39
+ /**
40
+ * Result of rendering UI for inline mode.
41
+ */
42
+ export interface UIRenderResult {
43
+ /** Rendered HTML content */
44
+ html: string;
45
+ /** Platform-specific metadata for _meta field */
46
+ meta: UIMetadata;
47
+ }
48
+ /**
49
+ * Result when UI rendering fails in production (graceful degradation).
50
+ * The caller should proceed without UI metadata.
51
+ */
52
+ export interface UIRenderFailure {
53
+ /** Indicates rendering failed */
54
+ success: false;
55
+ /** Reason for failure (for logging, not exposed to client) */
56
+ reason: string;
57
+ }
58
+ /**
59
+ * Type guard to check if a render result is a failure.
60
+ *
61
+ * @param result - The result to check
62
+ * @returns true if the result is a UIRenderFailure
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const result = await registry.renderAndRegisterAsync(options);
67
+ * if (isUIRenderFailure(result)) {
68
+ * // Handle graceful degradation - proceed without UI
69
+ * console.log('UI rendering failed:', result.reason);
70
+ * return;
71
+ * }
72
+ * // result is UIRenderResult, has html and meta
73
+ * const { html, meta } = result;
74
+ * ```
75
+ */
76
+ export declare function isUIRenderFailure(result: UIRenderResult | UIRenderFailure): result is UIRenderFailure;
77
+ /**
78
+ * ToolUIRegistry manages UI template rendering for tool responses.
79
+ *
80
+ * It provides:
81
+ * - Static widget compilation for static mode (pre-compiled at startup)
82
+ * - Per-request HTML rendering for inline mode (embedded in _meta)
83
+ * - Platform-specific _meta generation
84
+ * - Widget manifest management
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const registry = new ToolUIRegistry();
89
+ *
90
+ * // For inline mode: render HTML per-request
91
+ * const result = await registry.renderAndRegisterAsync({
92
+ * toolName: 'get_weather',
93
+ * requestId: 'abc123',
94
+ * input: { location: 'London' },
95
+ * output: { temp: 72, conditions: 'Sunny' },
96
+ * uiConfig: tool.metadata.ui,
97
+ * platformType: 'openai',
98
+ * });
99
+ *
100
+ * // result.meta can be spread into tool result _meta
101
+ * return { content: [...], _meta: { ...result.meta } };
102
+ * ```
103
+ */
104
+ /**
105
+ * Options for compiling a static widget.
106
+ */
107
+ export interface CompileStaticWidgetOptions {
108
+ /** Tool name (used for cache key and URI) */
109
+ toolName: string;
110
+ /** The template to compile (React component, HTML string, or builder function) */
111
+ template: UITemplateConfig['template'];
112
+ /** Tool UI configuration */
113
+ uiConfig: UITemplateConfig;
114
+ }
115
+ /**
116
+ * Payload for hybrid mode component delivery.
117
+ * Sent in `_meta['ui/component']` at tool call time.
118
+ */
119
+ export interface HybridComponentPayload {
120
+ /** Transpiled component JavaScript code (ES module format) */
121
+ code: string;
122
+ /** Renderer type for the component */
123
+ type: 'react' | 'mdx' | 'html';
124
+ /** Tool name for identification */
125
+ toolName: string;
126
+ /** Content hash for cache validation */
127
+ hash: string;
128
+ }
129
+ /**
130
+ * Options for building a hybrid component payload.
131
+ */
132
+ export interface BuildHybridComponentPayloadOptions {
133
+ /** Tool name */
134
+ toolName: string;
135
+ /** The template to transpile */
136
+ template: UITemplateConfig['template'];
137
+ /** Tool UI configuration */
138
+ uiConfig: UITemplateConfig;
139
+ }
140
+ export declare class ToolUIRegistry {
141
+ /**
142
+ * Cache for static widgets (keyed by tool name).
143
+ * Static widgets are pre-compiled at server startup for tools with servingMode: 'static'.
144
+ * These widgets read data from the FrontMCP Bridge at runtime (window.openai.toolOutput).
145
+ */
146
+ private readonly staticWidgetCache;
147
+ /**
148
+ * Cache for widget manifests (keyed by tool name).
149
+ * Manifests describe the widget's renderer type, CSP, and other metadata.
150
+ */
151
+ private readonly manifestCache;
152
+ /**
153
+ * Cache for build results (keyed by tool name).
154
+ * Includes HTML, manifest, and hash for cache validation.
155
+ */
156
+ private readonly buildResultCache;
157
+ /**
158
+ * Compile a static widget template for a tool at server startup.
159
+ *
160
+ * For tools with `servingMode: 'static'`, the widget HTML is pre-compiled
161
+ * WITHOUT embedded data. The widget reads data from the FrontMCP Bridge at runtime
162
+ * (via window.openai.toolOutput or window.__frontmcp.toolOutput).
163
+ *
164
+ * This is called during tool registration, not during tool calls.
165
+ *
166
+ * @param options - Static widget compilation options
167
+ */
168
+ compileStaticWidgetAsync(options: CompileStaticWidgetOptions): Promise<void>;
169
+ /**
170
+ * Compile a lean widget shell for inline mode tools at server startup.
171
+ *
172
+ * For tools with `servingMode: 'inline'`, we create a minimal HTML shell that:
173
+ * - Contains only HTML structure, theme CSS, and fonts
174
+ * - NO React runtime, NO component code, NO bridge
175
+ * - OpenAI caches this at discovery time
176
+ * - The actual React widget comes in each tool response with embedded data
177
+ *
178
+ * @param options - Options for lean widget compilation
179
+ */
180
+ compileLeanWidgetAsync(options: {
181
+ toolName: string;
182
+ uiConfig: UITemplateConfig;
183
+ }): void;
184
+ /**
185
+ * Compile a hybrid widget shell at server startup.
186
+ *
187
+ * For tools with `servingMode: 'hybrid'`, we create a shell that:
188
+ * - Contains React 19 runtime from esm.sh CDN
189
+ * - Contains FrontMCP Bridge (universal)
190
+ * - Contains all FrontMCP hooks (useMcpBridgeContext, useToolOutput, etc.)
191
+ * - Contains all FrontMCP UI components (Card, Badge, Button)
192
+ * - Contains dynamic renderer script that imports components via blob URL
193
+ * - NO component code (comes at tool call time via `_meta['ui/component']`)
194
+ *
195
+ * The shell listens for `ui/component` in tool response metadata and dynamically
196
+ * imports the transpiled component code, then renders it with tool output data.
197
+ *
198
+ * @param options - Options for hybrid widget compilation
199
+ */
200
+ compileHybridWidgetAsync(options: {
201
+ toolName: string;
202
+ uiConfig: UITemplateConfig;
203
+ }): void;
204
+ /**
205
+ * Build a component payload for hybrid mode tool responses.
206
+ *
207
+ * For tools with `servingMode: 'hybrid'`, this method is called at tool call time
208
+ * to build the transpiled component code that gets delivered in `_meta['ui/component']`.
209
+ *
210
+ * The component code is in ES module format so it can be dynamically imported
211
+ * via blob URL in the hybrid shell's renderer.
212
+ *
213
+ * @param options - Options for building the component payload
214
+ * @returns The hybrid component payload, or undefined if template is not a function
215
+ */
216
+ buildHybridComponentPayload(options: BuildHybridComponentPayloadOptions): HybridComponentPayload | undefined;
217
+ /**
218
+ * Get the pre-compiled static widget HTML for a tool.
219
+ *
220
+ * @param toolName - The tool name to look up
221
+ * @returns Pre-compiled widget HTML, or undefined if not cached
222
+ */
223
+ getStaticWidget(toolName: string): string | undefined;
224
+ /**
225
+ * Check if a tool has a pre-compiled static widget.
226
+ *
227
+ * @param toolName - The tool name to check
228
+ * @returns true if the tool has a cached static widget
229
+ */
230
+ hasStaticWidget(toolName: string): boolean;
231
+ /**
232
+ * Get the widget manifest for a tool.
233
+ *
234
+ * @param toolName - The tool name to look up
235
+ * @returns Widget manifest, or undefined if not cached
236
+ */
237
+ getManifest(toolName: string): WidgetManifest | undefined;
238
+ /**
239
+ * Check if a tool has a cached manifest.
240
+ *
241
+ * @param toolName - The tool name to check
242
+ * @returns true if the tool has a cached manifest
243
+ */
244
+ hasManifest(toolName: string): boolean;
245
+ /**
246
+ * Get the full build result for a tool.
247
+ *
248
+ * @param toolName - The tool name to look up
249
+ * @returns Build result, or undefined if not cached
250
+ */
251
+ getBuildResult(toolName: string): BuildManifestResult | undefined;
252
+ /**
253
+ * Detect the UI type for a template.
254
+ *
255
+ * @param template - The template to analyze
256
+ * @returns Detected UI type
257
+ */
258
+ detectUIType(template: UITemplateConfig['template']): string;
259
+ /**
260
+ * Render a tool's UI template for inline mode.
261
+ *
262
+ * This version supports all template types including React components.
263
+ * The rendered HTML is embedded directly in _meta['ui/html'] for the client.
264
+ *
265
+ * For React/MDX components, the output is wrapped using wrapStaticWidgetUniversal
266
+ * which includes the React 19 CDN, client-side rendering script, and all the
267
+ * FrontMCP hooks/components. This provides the same rendering capability as
268
+ * static mode, but with data embedded in each response.
269
+ *
270
+ * Error handling:
271
+ * - **Production**: Returns `UIRenderFailure` on error (graceful degradation)
272
+ * - **Development/Test**: Throws error for visibility and debugging
273
+ *
274
+ * @param options - Rendering options
275
+ * @returns Promise resolving to render result with HTML and metadata, or failure on error
276
+ */
277
+ renderAndRegisterAsync(options: RenderOptions): Promise<UIRenderResult | UIRenderFailure>;
278
+ /**
279
+ * Build component code string for embedding in widget HTML.
280
+ *
281
+ * @param template - The React component
282
+ * @param toolName - Tool name for naming the component
283
+ * @returns JavaScript code string that defines and registers the component
284
+ */
285
+ private buildComponentCode;
286
+ /**
287
+ * Check if a template requires async rendering (e.g., React components).
288
+ *
289
+ * @param template - The template to check
290
+ * @returns true if the template requires async rendering
291
+ */
292
+ requiresAsyncRendering(template: UITemplateConfig['template']): boolean;
293
+ }
294
+ //# sourceMappingURL=tool-ui.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-ui.registry.d.ts","sourceRoot":"","sources":["../../src/registry/tool-ui.registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * UI Resource URI Utilities
3
+ *
4
+ * Standalone utilities for parsing and building ui:// resource URIs.
5
+ * Used for static widget serving mode where widgets are pre-compiled
6
+ * at startup and fetched via resources/read.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ import type { AIPlatformType } from '../adapters';
11
+ /**
12
+ * UI resource URI scheme
13
+ */
14
+ export declare const UI_RESOURCE_SCHEME = "ui://";
15
+ /**
16
+ * Parsed static widget URI
17
+ */
18
+ export interface ParsedWidgetUri {
19
+ toolName: string;
20
+ fullUri: string;
21
+ }
22
+ /**
23
+ * Check if a URI is a UI resource URI
24
+ *
25
+ * @param uri - URI to check
26
+ * @returns True if the URI starts with ui://
27
+ */
28
+ export declare function isUIResourceUri(uri: string): boolean;
29
+ /**
30
+ * Parse a static widget URI into its components
31
+ *
32
+ * @param uri - URI to parse (format: ui://widget/{toolName}.html)
33
+ * @returns Parsed components or undefined if invalid
34
+ */
35
+ export declare function parseWidgetUri(uri: string): ParsedWidgetUri | undefined;
36
+ /**
37
+ * Check if URI is a static widget URI (ui://widget/{toolName}.html)
38
+ */
39
+ export declare function isStaticWidgetUri(uri: string): boolean;
40
+ /**
41
+ * Build a static widget URI from tool name
42
+ *
43
+ * @param toolName - Name of the tool
44
+ * @returns Static widget URI (ui://widget/{toolName}.html)
45
+ */
46
+ export declare function buildStaticWidgetUri(toolName: string): string;
47
+ /**
48
+ * Get the MIME type for UI resources based on platform.
49
+ *
50
+ * Per user requirement: OpenAI or default uses 'text/html+skybridge'
51
+ *
52
+ * @param platformType - The detected platform type
53
+ * @returns The appropriate MIME type
54
+ */
55
+ export declare function getUIResourceMimeType(platformType?: AIPlatformType): string;
56
+ //# sourceMappingURL=uri-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uri-utils.d.ts","sourceRoot":"","sources":["../../src/registry/uri-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAQ1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAUvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,cAAc,GAAG,MAAM,CAqB3E"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * LRU Cache for Renderer Transpilation Results
3
+ *
4
+ * Provides fast, memory-bounded caching for transpiled templates.
5
+ * Uses content-addressable keys (hash of source) for deduplication.
6
+ */
7
+ import type { TranspileResult } from './types';
8
+ /**
9
+ * Options for the transpile cache.
10
+ */
11
+ export interface TranspileCacheOptions {
12
+ /** Maximum number of entries (default: 500) */
13
+ maxSize?: number;
14
+ /** TTL in milliseconds, 0 = infinite (default: 0 for transpile cache) */
15
+ ttl?: number;
16
+ }
17
+ /**
18
+ * LRU Cache for transpiled template results.
19
+ *
20
+ * Features:
21
+ * - Content-addressable keys via hash
22
+ * - LRU eviction when max size reached
23
+ * - Optional TTL for time-based expiration
24
+ * - Access statistics
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const cache = new TranspileCache({ maxSize: 500 });
29
+ *
30
+ * // Store a transpiled result
31
+ * const hash = cache.set(sourceCode, transpileResult);
32
+ *
33
+ * // Retrieve it later
34
+ * const result = cache.get(sourceCode);
35
+ * if (result) {
36
+ * console.log('Cache hit!', result.code);
37
+ * }
38
+ * ```
39
+ */
40
+ export declare class TranspileCache {
41
+ private cache;
42
+ private readonly maxSize;
43
+ private readonly ttl;
44
+ /** Cache statistics */
45
+ private stats;
46
+ constructor(options?: TranspileCacheOptions);
47
+ /**
48
+ * Get a cached transpile result by source content.
49
+ *
50
+ * @param source - Source code to look up
51
+ * @returns Cached result or undefined if not found/expired
52
+ */
53
+ get(source: string): TranspileResult | undefined;
54
+ /**
55
+ * Get a cached transpile result by hash key.
56
+ *
57
+ * @param key - Hash key
58
+ * @returns Cached result or undefined if not found/expired
59
+ */
60
+ getByKey(key: string): TranspileResult | undefined;
61
+ /**
62
+ * Store a transpile result.
63
+ *
64
+ * @param source - Source code (used to generate key)
65
+ * @param value - Transpile result to cache
66
+ * @returns The hash key used for storage
67
+ */
68
+ set(source: string, value: TranspileResult): string;
69
+ /**
70
+ * Store a transpile result by hash key.
71
+ *
72
+ * @param key - Hash key
73
+ * @param value - Transpile result to cache
74
+ */
75
+ setByKey(key: string, value: TranspileResult): void;
76
+ /**
77
+ * Check if a source is cached.
78
+ *
79
+ * @param source - Source code to check
80
+ * @returns True if cached and not expired
81
+ */
82
+ has(source: string): boolean;
83
+ /**
84
+ * Check if a key is cached.
85
+ *
86
+ * @param key - Hash key to check
87
+ * @returns True if cached and not expired
88
+ */
89
+ hasByKey(key: string): boolean;
90
+ /**
91
+ * Delete a cached entry by source.
92
+ *
93
+ * @param source - Source code to delete
94
+ * @returns True if entry was deleted
95
+ */
96
+ delete(source: string): boolean;
97
+ /**
98
+ * Clear all cached entries.
99
+ */
100
+ clear(): void;
101
+ /**
102
+ * Get current cache size.
103
+ */
104
+ get size(): number;
105
+ /**
106
+ * Get cache statistics.
107
+ */
108
+ getStats(): {
109
+ hits: number;
110
+ misses: number;
111
+ evictions: number;
112
+ size: number;
113
+ hitRate: number;
114
+ };
115
+ }
116
+ /**
117
+ * Global transpile cache instance.
118
+ * Shared across all renderers for deduplication.
119
+ */
120
+ export declare const transpileCache: TranspileCache;
121
+ /**
122
+ * Render cache for full HTML output.
123
+ * Uses shorter TTL since outputs depend on input/output data.
124
+ */
125
+ export declare const renderCache: TranspileCache;
126
+ /**
127
+ * Simple LRU cache for storing any type of values.
128
+ * Used for caching compiled components (React/MDX).
129
+ */
130
+ export declare class ComponentCache<T = unknown> {
131
+ private cache;
132
+ private readonly maxSize;
133
+ constructor(maxSize?: number);
134
+ get(key: string): T | undefined;
135
+ set(key: string, value: T): void;
136
+ has(key: string): boolean;
137
+ delete(key: string): boolean;
138
+ clear(): void;
139
+ get size(): number;
140
+ }
141
+ /**
142
+ * Global component cache for storing compiled React/MDX components.
143
+ */
144
+ export declare const componentCache: ComponentCache<unknown>;
145
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/renderers/cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAc/C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAkD;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,uBAAuB;IACvB,OAAO,CAAC,KAAK,CAIX;gBAEU,OAAO,GAAE,qBAA0B;IAK/C;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAKhD;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAwBlD;;;;;;OAMG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM;IAMnD;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAkBnD;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK5B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAa9B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/B;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAQ/F;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAuC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,WAAW,gBAGtB,CAAC;AAEH;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,GAAG,OAAO;IACrC,OAAO,CAAC,KAAK,CAAsD;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,SAAM;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAU/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAYhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,yBAAuB,CAAC"}