@frontmcp/uipack 0.12.2 → 1.0.0-beta.10

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 (298) hide show
  1. package/CLAUDE.md +56 -154
  2. package/README.md +367 -62
  3. package/adapters/base-template.d.ts +30 -0
  4. package/adapters/base-template.d.ts.map +1 -0
  5. package/adapters/cdn-info.d.ts +34 -0
  6. package/adapters/cdn-info.d.ts.map +1 -0
  7. package/adapters/constants.d.ts +18 -0
  8. package/adapters/constants.d.ts.map +1 -0
  9. package/adapters/content-detector.d.ts +19 -0
  10. package/adapters/content-detector.d.ts.map +1 -0
  11. package/adapters/content-renderers.d.ts +27 -0
  12. package/adapters/content-renderers.d.ts.map +1 -0
  13. package/adapters/index.d.ts +14 -7
  14. package/adapters/index.d.ts.map +1 -1
  15. package/adapters/index.js +2343 -426
  16. package/adapters/render-failure.d.ts +18 -0
  17. package/adapters/render-failure.d.ts.map +1 -0
  18. package/adapters/response-builder.d.ts +34 -104
  19. package/adapters/response-builder.d.ts.map +1 -1
  20. package/adapters/serving-mode.d.ts +28 -91
  21. package/adapters/serving-mode.d.ts.map +1 -1
  22. package/adapters/template-renderer.d.ts +50 -0
  23. package/adapters/template-renderer.d.ts.map +1 -0
  24. package/adapters/type-detector.d.ts +18 -0
  25. package/adapters/type-detector.d.ts.map +1 -0
  26. package/bridge-runtime/index.js +1 -1
  27. package/component/index.d.ts +14 -0
  28. package/component/index.d.ts.map +1 -0
  29. package/component/index.js +2043 -0
  30. package/component/loader.d.ts +36 -0
  31. package/component/loader.d.ts.map +1 -0
  32. package/component/renderer.d.ts +30 -0
  33. package/component/renderer.d.ts.map +1 -0
  34. package/component/transpiler.d.ts +49 -0
  35. package/component/transpiler.d.ts.map +1 -0
  36. package/component/types.d.ts +82 -0
  37. package/component/types.d.ts.map +1 -0
  38. package/esm/adapters/index.mjs +2337 -422
  39. package/esm/bridge-runtime/index.mjs +1 -1
  40. package/esm/component/index.mjs +2013 -0
  41. package/esm/index.mjs +3446 -13935
  42. package/esm/package.json +4 -13
  43. package/esm/resolver/index.mjs +661 -0
  44. package/esm/shell/index.mjs +1406 -0
  45. package/esm/types/index.mjs +11 -11
  46. package/esm/utils/index.mjs +53 -8
  47. package/index.d.ts +12 -40
  48. package/index.d.ts.map +1 -1
  49. package/index.js +3579 -14218
  50. package/package.json +4 -13
  51. package/resolver/cdn-registry.d.ts +39 -0
  52. package/resolver/cdn-registry.d.ts.map +1 -0
  53. package/resolver/esm-sh.resolver.d.ts +54 -0
  54. package/resolver/esm-sh.resolver.d.ts.map +1 -0
  55. package/resolver/import-map.d.ts +47 -0
  56. package/resolver/import-map.d.ts.map +1 -0
  57. package/resolver/import-parser.d.ts +28 -0
  58. package/resolver/import-parser.d.ts.map +1 -0
  59. package/resolver/import-rewriter.d.ts +29 -0
  60. package/resolver/import-rewriter.d.ts.map +1 -0
  61. package/resolver/index.d.ts +15 -0
  62. package/resolver/index.d.ts.map +1 -0
  63. package/resolver/index.js +708 -0
  64. package/resolver/types.d.ts +191 -0
  65. package/resolver/types.d.ts.map +1 -0
  66. package/shell/builder.d.ts +31 -0
  67. package/shell/builder.d.ts.map +1 -0
  68. package/shell/csp.d.ts +37 -0
  69. package/shell/csp.d.ts.map +1 -0
  70. package/shell/custom-shell-applier.d.ts +33 -0
  71. package/shell/custom-shell-applier.d.ts.map +1 -0
  72. package/shell/custom-shell-resolver.d.ts +47 -0
  73. package/shell/custom-shell-resolver.d.ts.map +1 -0
  74. package/shell/custom-shell-types.d.ts +75 -0
  75. package/shell/custom-shell-types.d.ts.map +1 -0
  76. package/shell/custom-shell-validator.d.ts +26 -0
  77. package/shell/custom-shell-validator.d.ts.map +1 -0
  78. package/shell/data-injector.d.ts +40 -0
  79. package/shell/data-injector.d.ts.map +1 -0
  80. package/shell/index.d.ts +19 -0
  81. package/shell/index.d.ts.map +1 -0
  82. package/shell/index.js +1453 -0
  83. package/shell/types.d.ts +54 -0
  84. package/shell/types.d.ts.map +1 -0
  85. package/types/index.d.ts +1 -3
  86. package/types/index.d.ts.map +1 -1
  87. package/types/index.js +11 -11
  88. package/types/ui-config.d.ts +50 -11
  89. package/types/ui-config.d.ts.map +1 -1
  90. package/types/ui-runtime.d.ts +8 -82
  91. package/types/ui-runtime.d.ts.map +1 -1
  92. package/utils/index.d.ts +9 -3
  93. package/utils/index.d.ts.map +1 -1
  94. package/utils/index.js +59 -7
  95. package/adapters/platform-meta.constants.d.ts +0 -26
  96. package/adapters/platform-meta.constants.d.ts.map +0 -1
  97. package/adapters/platform-meta.d.ts +0 -234
  98. package/adapters/platform-meta.d.ts.map +0 -1
  99. package/base-template/bridge.d.ts +0 -90
  100. package/base-template/bridge.d.ts.map +0 -1
  101. package/base-template/default-base-template.d.ts +0 -91
  102. package/base-template/default-base-template.d.ts.map +0 -1
  103. package/base-template/index.d.ts +0 -15
  104. package/base-template/index.d.ts.map +0 -1
  105. package/base-template/index.js +0 -1393
  106. package/base-template/polyfills.d.ts +0 -31
  107. package/base-template/polyfills.d.ts.map +0 -1
  108. package/base-template/theme-styles.d.ts +0 -74
  109. package/base-template/theme-styles.d.ts.map +0 -1
  110. package/build/builders/base-builder.d.ts +0 -124
  111. package/build/builders/base-builder.d.ts.map +0 -1
  112. package/build/builders/esbuild-config.d.ts +0 -94
  113. package/build/builders/esbuild-config.d.ts.map +0 -1
  114. package/build/builders/hybrid-builder.d.ts +0 -93
  115. package/build/builders/hybrid-builder.d.ts.map +0 -1
  116. package/build/builders/index.d.ts +0 -17
  117. package/build/builders/index.d.ts.map +0 -1
  118. package/build/builders/inline-builder.d.ts +0 -83
  119. package/build/builders/inline-builder.d.ts.map +0 -1
  120. package/build/builders/static-builder.d.ts +0 -78
  121. package/build/builders/static-builder.d.ts.map +0 -1
  122. package/build/builders/types.d.ts +0 -341
  123. package/build/builders/types.d.ts.map +0 -1
  124. package/build/cdn-resources.d.ts +0 -244
  125. package/build/cdn-resources.d.ts.map +0 -1
  126. package/build/hybrid-data.d.ts +0 -127
  127. package/build/hybrid-data.d.ts.map +0 -1
  128. package/build/index.d.ts +0 -299
  129. package/build/index.d.ts.map +0 -1
  130. package/build/index.js +0 -8699
  131. package/build/ui-components-browser.d.ts +0 -64
  132. package/build/ui-components-browser.d.ts.map +0 -1
  133. package/build/widget-manifest.d.ts +0 -362
  134. package/build/widget-manifest.d.ts.map +0 -1
  135. package/bundler/cache.d.ts +0 -173
  136. package/bundler/cache.d.ts.map +0 -1
  137. package/bundler/file-cache/component-builder.d.ts +0 -167
  138. package/bundler/file-cache/component-builder.d.ts.map +0 -1
  139. package/bundler/file-cache/hash-calculator.d.ts +0 -155
  140. package/bundler/file-cache/hash-calculator.d.ts.map +0 -1
  141. package/bundler/file-cache/index.d.ts +0 -12
  142. package/bundler/file-cache/index.d.ts.map +0 -1
  143. package/bundler/file-cache/storage/filesystem.d.ts +0 -149
  144. package/bundler/file-cache/storage/filesystem.d.ts.map +0 -1
  145. package/bundler/file-cache/storage/index.d.ts +0 -11
  146. package/bundler/file-cache/storage/index.d.ts.map +0 -1
  147. package/bundler/file-cache/storage/interface.d.ts +0 -152
  148. package/bundler/file-cache/storage/interface.d.ts.map +0 -1
  149. package/bundler/file-cache/storage/redis.d.ts +0 -139
  150. package/bundler/file-cache/storage/redis.d.ts.map +0 -1
  151. package/bundler/index.d.ts +0 -35
  152. package/bundler/index.d.ts.map +0 -1
  153. package/bundler/index.js +0 -2953
  154. package/bundler/sandbox/enclave-adapter.d.ts +0 -121
  155. package/bundler/sandbox/enclave-adapter.d.ts.map +0 -1
  156. package/bundler/sandbox/executor.d.ts +0 -14
  157. package/bundler/sandbox/executor.d.ts.map +0 -1
  158. package/bundler/sandbox/policy.d.ts +0 -62
  159. package/bundler/sandbox/policy.d.ts.map +0 -1
  160. package/bundler/types.d.ts +0 -702
  161. package/bundler/types.d.ts.map +0 -1
  162. package/dependency/cdn-registry.d.ts +0 -98
  163. package/dependency/cdn-registry.d.ts.map +0 -1
  164. package/dependency/import-map.d.ts +0 -186
  165. package/dependency/import-map.d.ts.map +0 -1
  166. package/dependency/import-parser.d.ts +0 -82
  167. package/dependency/import-parser.d.ts.map +0 -1
  168. package/dependency/index.d.ts +0 -17
  169. package/dependency/index.d.ts.map +0 -1
  170. package/dependency/index.js +0 -3180
  171. package/dependency/resolver.d.ts +0 -164
  172. package/dependency/resolver.d.ts.map +0 -1
  173. package/dependency/schemas.d.ts +0 -486
  174. package/dependency/schemas.d.ts.map +0 -1
  175. package/dependency/template-loader.d.ts +0 -204
  176. package/dependency/template-loader.d.ts.map +0 -1
  177. package/dependency/template-processor.d.ts +0 -118
  178. package/dependency/template-processor.d.ts.map +0 -1
  179. package/dependency/types.d.ts +0 -739
  180. package/dependency/types.d.ts.map +0 -1
  181. package/esm/base-template/index.mjs +0 -1359
  182. package/esm/build/index.mjs +0 -8601
  183. package/esm/bundler/index.mjs +0 -2895
  184. package/esm/dependency/index.mjs +0 -3068
  185. package/esm/handlebars/index.mjs +0 -587
  186. package/esm/registry/index.mjs +0 -6305
  187. package/esm/renderers/index.mjs +0 -1557
  188. package/esm/runtime/index.mjs +0 -5361
  189. package/esm/styles/index.mjs +0 -171
  190. package/esm/theme/index.mjs +0 -756
  191. package/esm/tool-template/index.mjs +0 -3652
  192. package/esm/validation/index.mjs +0 -542
  193. package/handlebars/expression-extractor.d.ts +0 -147
  194. package/handlebars/expression-extractor.d.ts.map +0 -1
  195. package/handlebars/helpers.d.ts +0 -339
  196. package/handlebars/helpers.d.ts.map +0 -1
  197. package/handlebars/index.d.ts +0 -195
  198. package/handlebars/index.d.ts.map +0 -1
  199. package/handlebars/index.js +0 -659
  200. package/preview/claude-preview.d.ts +0 -67
  201. package/preview/claude-preview.d.ts.map +0 -1
  202. package/preview/generic-preview.d.ts +0 -66
  203. package/preview/generic-preview.d.ts.map +0 -1
  204. package/preview/index.d.ts +0 -36
  205. package/preview/index.d.ts.map +0 -1
  206. package/preview/openai-preview.d.ts +0 -70
  207. package/preview/openai-preview.d.ts.map +0 -1
  208. package/preview/types.d.ts +0 -199
  209. package/preview/types.d.ts.map +0 -1
  210. package/registry/index.d.ts +0 -46
  211. package/registry/index.d.ts.map +0 -1
  212. package/registry/index.js +0 -6342
  213. package/registry/render-template.d.ts +0 -91
  214. package/registry/render-template.d.ts.map +0 -1
  215. package/registry/tool-ui.registry.d.ts +0 -294
  216. package/registry/tool-ui.registry.d.ts.map +0 -1
  217. package/registry/uri-utils.d.ts +0 -56
  218. package/registry/uri-utils.d.ts.map +0 -1
  219. package/renderers/cache.d.ts +0 -145
  220. package/renderers/cache.d.ts.map +0 -1
  221. package/renderers/html.renderer.d.ts +0 -123
  222. package/renderers/html.renderer.d.ts.map +0 -1
  223. package/renderers/index.d.ts +0 -36
  224. package/renderers/index.d.ts.map +0 -1
  225. package/renderers/index.js +0 -1603
  226. package/renderers/mdx-client.renderer.d.ts +0 -124
  227. package/renderers/mdx-client.renderer.d.ts.map +0 -1
  228. package/renderers/registry.d.ts +0 -133
  229. package/renderers/registry.d.ts.map +0 -1
  230. package/renderers/types.d.ts +0 -343
  231. package/renderers/types.d.ts.map +0 -1
  232. package/renderers/utils/detect.d.ts +0 -107
  233. package/renderers/utils/detect.d.ts.map +0 -1
  234. package/renderers/utils/hash.d.ts +0 -40
  235. package/renderers/utils/hash.d.ts.map +0 -1
  236. package/renderers/utils/index.d.ts +0 -9
  237. package/renderers/utils/index.d.ts.map +0 -1
  238. package/renderers/utils/transpiler.d.ts +0 -70
  239. package/renderers/utils/transpiler.d.ts.map +0 -1
  240. package/runtime/adapters/html.adapter.d.ts +0 -59
  241. package/runtime/adapters/html.adapter.d.ts.map +0 -1
  242. package/runtime/adapters/index.d.ts +0 -26
  243. package/runtime/adapters/index.d.ts.map +0 -1
  244. package/runtime/adapters/mdx.adapter.d.ts +0 -73
  245. package/runtime/adapters/mdx.adapter.d.ts.map +0 -1
  246. package/runtime/adapters/types.d.ts +0 -95
  247. package/runtime/adapters/types.d.ts.map +0 -1
  248. package/runtime/csp.d.ts +0 -48
  249. package/runtime/csp.d.ts.map +0 -1
  250. package/runtime/index.d.ts +0 -17
  251. package/runtime/index.d.ts.map +0 -1
  252. package/runtime/index.js +0 -5432
  253. package/runtime/mcp-bridge.d.ts +0 -101
  254. package/runtime/mcp-bridge.d.ts.map +0 -1
  255. package/runtime/renderer-runtime.d.ts +0 -133
  256. package/runtime/renderer-runtime.d.ts.map +0 -1
  257. package/runtime/sanitizer.d.ts +0 -180
  258. package/runtime/sanitizer.d.ts.map +0 -1
  259. package/runtime/types.d.ts +0 -415
  260. package/runtime/types.d.ts.map +0 -1
  261. package/runtime/wrapper.d.ts +0 -421
  262. package/runtime/wrapper.d.ts.map +0 -1
  263. package/styles/index.d.ts +0 -8
  264. package/styles/index.d.ts.map +0 -1
  265. package/styles/index.js +0 -222
  266. package/styles/variants.d.ts +0 -51
  267. package/styles/variants.d.ts.map +0 -1
  268. package/theme/cdn.d.ts +0 -195
  269. package/theme/cdn.d.ts.map +0 -1
  270. package/theme/css-to-theme.d.ts +0 -64
  271. package/theme/css-to-theme.d.ts.map +0 -1
  272. package/theme/index.d.ts +0 -19
  273. package/theme/index.d.ts.map +0 -1
  274. package/theme/index.js +0 -814
  275. package/theme/platforms.d.ts +0 -102
  276. package/theme/platforms.d.ts.map +0 -1
  277. package/theme/presets/github-openai.d.ts +0 -50
  278. package/theme/presets/github-openai.d.ts.map +0 -1
  279. package/theme/presets/index.d.ts +0 -11
  280. package/theme/presets/index.d.ts.map +0 -1
  281. package/theme/theme.d.ts +0 -396
  282. package/theme/theme.d.ts.map +0 -1
  283. package/tool-template/builder.d.ts +0 -213
  284. package/tool-template/builder.d.ts.map +0 -1
  285. package/tool-template/index.d.ts +0 -16
  286. package/tool-template/index.d.ts.map +0 -1
  287. package/tool-template/index.js +0 -3690
  288. package/validation/error-box.d.ts +0 -56
  289. package/validation/error-box.d.ts.map +0 -1
  290. package/validation/index.d.ts +0 -13
  291. package/validation/index.d.ts.map +0 -1
  292. package/validation/index.js +0 -576
  293. package/validation/schema-paths.d.ts +0 -118
  294. package/validation/schema-paths.d.ts.map +0 -1
  295. package/validation/template-validator.d.ts +0 -143
  296. package/validation/template-validator.d.ts.map +0 -1
  297. package/validation/wrapper.d.ts +0 -97
  298. package/validation/wrapper.d.ts.map +0 -1
@@ -1,64 +0,0 @@
1
- /**
2
- * Browser-Compatible UI Components
3
- *
4
- * This module generates browser-compatible React component code that matches
5
- * the real components from @frontmcp/ui/react. These are used in the vendor
6
- * runtime for static HTML generation.
7
- *
8
- * Key differences from the React components:
9
- * - Uses window.React.createElement instead of JSX
10
- * - All style utilities are inlined
11
- * - No external imports
12
- *
13
- * This ensures that when customer code imports:
14
- * import { Card, Button, Badge } from '@frontmcp/ui/react';
15
- *
16
- * The components behave identically to the real React components.
17
- *
18
- * @packageDocumentation
19
- */
20
- import { type CardVariant, type CardSize, type ButtonVariant, type ButtonSize, type BadgeVariant, type BadgeSize, type AlertVariant } from '../styles';
21
- /**
22
- * Options for building browser UI components.
23
- */
24
- export interface BrowserUIComponentsOptions {
25
- /** Minify the output */
26
- minify?: boolean;
27
- }
28
- /**
29
- * Build the style constants as browser-compatible JavaScript.
30
- * These are the variant maps and utility functions used by all components.
31
- */
32
- export declare function buildStyleConstants(): string;
33
- /**
34
- * Build the Card component as browser-compatible JavaScript.
35
- * Matches the full Card component from @frontmcp/ui/react/Card.tsx
36
- */
37
- export declare function buildCardComponent(): string;
38
- /**
39
- * Build the Button component as browser-compatible JavaScript.
40
- * Matches the full Button component from @frontmcp/ui/react/Button.tsx
41
- */
42
- export declare function buildButtonComponent(): string;
43
- /**
44
- * Build the Badge component as browser-compatible JavaScript.
45
- * Matches the full Badge component from @frontmcp/ui/react/Badge.tsx
46
- */
47
- export declare function buildBadgeComponent(): string;
48
- /**
49
- * Build the Alert component as browser-compatible JavaScript.
50
- * Matches the full Alert component from @frontmcp/ui/react/Alert.tsx
51
- */
52
- export declare function buildAlertComponent(): string;
53
- /**
54
- * Build the namespace export that maps all components and hooks.
55
- * This is what gets assigned to window.frontmcp_ui_namespaceObject.
56
- */
57
- export declare function buildNamespaceExport(): string;
58
- /**
59
- * Build all UI components as browser-compatible JavaScript.
60
- * This is the complete runtime that replaces buildUIComponentsRuntime().
61
- */
62
- export declare function buildUIComponentsRuntime(options?: BrowserUIComponentsOptions): string;
63
- export type { CardVariant, CardSize, ButtonVariant, ButtonSize, BadgeVariant, BadgeSize, AlertVariant };
64
- //# sourceMappingURL=ui-components-browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-components-browser.d.ts","sourceRoot":"","sources":["../../src/build/ui-components-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,QAAQ,EAOb,KAAK,aAAa,EAClB,KAAK,UAAU,EAMf,KAAK,YAAY,EACjB,KAAK,SAAS,EAMd,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,wBAAwB;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA+B5C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAkE3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAiD7C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkE5C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA0D5C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CA4C7C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,0BAA+B,GAAG,MAAM,CAqBzF;AAeD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC"}
@@ -1,362 +0,0 @@
1
- /**
2
- * Widget Manifest Builder
3
- *
4
- * Builds static widget wrappers with embedded manifests for tool UIs.
5
- * Produces complete HTML documents with FrontMCP Bridge runtime.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { UIType, ResourceMode, OutputMode, CSPDirectives, RendererAssets, WidgetConfig, BuildManifestResult, BuildManifestOptions, ToolResponseMeta } from '../types/ui-runtime';
10
- import type { ThemeConfig } from '../theme';
11
- import type { CDNPlatformType, ComponentBuildManifest } from '../dependency/types';
12
- /**
13
- * Check if a template is a file path.
14
- *
15
- * @param template - Widget template
16
- * @returns true if the template is a file path
17
- */
18
- export declare function isFilePathTemplate(template: unknown): template is string;
19
- /**
20
- * Check if a template is a URL.
21
- *
22
- * @param template - Widget template
23
- * @returns true if the template is a URL
24
- */
25
- export declare function isUrlTemplate(template: unknown): template is string;
26
- /**
27
- * Check if a template is file-based (either file path or URL).
28
- *
29
- * @param template - Widget template
30
- * @returns true if the template is file-based
31
- */
32
- export declare function isFileBasedTemplate(template: unknown): template is string;
33
- /**
34
- * Detect the UI type from a template.
35
- *
36
- * @param template - Widget template
37
- * @returns Detected UI type
38
- */
39
- export declare function detectUIType(template: WidgetConfig['template']): UIType;
40
- /**
41
- * Build CSP directives for a UI type.
42
- *
43
- * @param uiType - UI renderer type
44
- * @param userCsp - User-provided CSP overrides
45
- * @returns Complete CSP directives
46
- */
47
- export declare function buildCSPForType(uiType: UIType, userCsp?: Partial<CSPDirectives>): CSPDirectives;
48
- /**
49
- * Build CSP meta tag content.
50
- */
51
- export declare function buildCSPMetaContent(csp: CSPDirectives): string;
52
- /**
53
- * Get renderer assets for a UI type.
54
- *
55
- * @param uiType - UI renderer type
56
- * @param resourceMode - Resource loading mode (cdn or inline)
57
- * @returns Required renderer assets with CDN URLs or inline placeholders
58
- *
59
- * @example
60
- * ```typescript
61
- * // Get CDN-based assets for React
62
- * const assets = getRendererAssets('react', 'cdn');
63
- * console.log(assets.react?.url);
64
- * // "https://unpkg.com/react@18/umd/react.production.min.js"
65
- *
66
- * // Get inline-mode assets
67
- * const inlineAssets = getRendererAssets('react', 'inline');
68
- * // inlineAssets.mode === 'inline'
69
- * ```
70
- */
71
- export declare function getRendererAssets(uiType: UIType, resourceMode?: ResourceMode): RendererAssets;
72
- /**
73
- * Build a widget manifest for a tool.
74
- *
75
- * Creates a static widget wrapper with embedded manifest.
76
- * The widget can be cached and reused across tool invocations.
77
- *
78
- * @param options - Build options
79
- * @returns Build result with HTML, manifest, and metadata
80
- *
81
- * @example
82
- * ```typescript
83
- * import { buildToolWidgetManifest } from '@frontmcp/ui/build';
84
- *
85
- * const result = await buildToolWidgetManifest({
86
- * toolName: 'weather.get',
87
- * uiConfig: {
88
- * template: WeatherWidget,
89
- * uiType: 'react',
90
- * displayMode: 'inline',
91
- * widgetAccessible: true,
92
- * },
93
- * schema: { type: 'object', properties: { ... } },
94
- * });
95
- *
96
- * // Cache the HTML
97
- * cache.set(`ui://widget/${result.manifest.tool}.html`, result.html);
98
- * ```
99
- */
100
- export declare function buildToolWidgetManifest<Input = Record<string, unknown>, Output = unknown>(options: BuildManifestOptions<Input, Output>): Promise<BuildManifestResult>;
101
- /**
102
- * Options for batch building multiple widgets.
103
- */
104
- export interface BatchBuildOptions {
105
- /**
106
- * Array of tool configurations to build.
107
- */
108
- tools: Array<{
109
- toolName: string;
110
- uiConfig: WidgetConfig;
111
- schema?: object;
112
- }>;
113
- /**
114
- * Theme configuration to apply to all widgets.
115
- */
116
- theme?: ThemeConfig;
117
- /**
118
- * Enable parallel building.
119
- * @default true
120
- */
121
- parallel?: boolean;
122
- }
123
- /**
124
- * Result of batch building.
125
- */
126
- export interface BatchBuildResult {
127
- /**
128
- * Individual build results keyed by tool name.
129
- */
130
- results: Map<string, BuildManifestResult>;
131
- /**
132
- * Total build time in ms.
133
- */
134
- totalTime: number;
135
- /**
136
- * Number of successful builds.
137
- */
138
- successCount: number;
139
- /**
140
- * Errors encountered (keyed by tool name).
141
- */
142
- errors: Map<string, Error>;
143
- }
144
- /**
145
- * Build multiple widget manifests in batch.
146
- *
147
- * @param options - Batch build options
148
- * @returns Batch build results
149
- *
150
- * @example
151
- * ```typescript
152
- * const { results, errors } = await batchBuildWidgets({
153
- * tools: [
154
- * { toolName: 'weather.get', uiConfig: weatherConfig },
155
- * { toolName: 'stock.quote', uiConfig: stockConfig },
156
- * ],
157
- * });
158
- *
159
- * for (const [name, result] of results) {
160
- * cache.set(result.manifest.uri, result.html);
161
- * }
162
- * ```
163
- */
164
- export declare function batchBuildWidgets(options: BatchBuildOptions): Promise<BatchBuildResult>;
165
- /**
166
- * Options for building tool response _meta fields.
167
- */
168
- export interface BuildMetaOptions {
169
- /**
170
- * Build result from buildToolWidgetManifest.
171
- */
172
- buildResult: BuildManifestResult;
173
- /**
174
- * Output mode - determines which content to include.
175
- * - 'code-only': Include ui/content (transpiled code only)
176
- * - 'full-ssr': Include ui/html (complete HTML document)
177
- *
178
- * @default 'code-only'
179
- */
180
- outputMode?: OutputMode;
181
- /**
182
- * Include OpenAI-specific meta fields.
183
- * @default true
184
- */
185
- includeOpenAI?: boolean;
186
- }
187
- /**
188
- * Build _meta fields for a tool response.
189
- *
190
- * This function generates the proper _meta structure for UI widgets.
191
- * All UI-related data goes in _meta, NOT in the content array.
192
- *
193
- * @param options - Build options
194
- * @returns _meta fields object to spread into tool response
195
- *
196
- * @example
197
- * ```typescript
198
- * const buildResult = await buildToolWidgetManifest({...});
199
- *
200
- * // For OpenAI (code-only mode)
201
- * const meta = buildToolResponseMeta({
202
- * buildResult,
203
- * outputMode: 'code-only',
204
- * });
205
- *
206
- * return {
207
- * content: [{ type: 'text', text: 'Weather retrieved' }],
208
- * _meta: meta,
209
- * };
210
- *
211
- * // For unknown clients (full-ssr mode)
212
- * const meta = buildToolResponseMeta({
213
- * buildResult,
214
- * outputMode: 'full-ssr',
215
- * });
216
- * ```
217
- */
218
- export declare function buildToolResponseMeta(options: BuildMetaOptions): ToolResponseMeta;
219
- /**
220
- * Determine the appropriate output mode based on client info.
221
- *
222
- * Platform capabilities:
223
- * - OpenAI/ChatGPT/Cursor: Can load CDN scripts, use 'code-only' (smaller payload)
224
- * - Claude: Sandboxed artifacts block ALL external requests, MUST use 'full-ssr' (embedded HTML)
225
- * - Unknown: Default to 'full-ssr' for maximum compatibility
226
- *
227
- * @param clientInfo - MCP client information
228
- * @returns Recommended output mode
229
- *
230
- * @example
231
- * ```typescript
232
- * const outputMode = getOutputModeForClient(request.clientInfo);
233
- * const meta = buildToolResponseMeta({ buildResult, outputMode });
234
- * ```
235
- */
236
- export declare function getOutputModeForClient(clientInfo?: {
237
- name?: string;
238
- version?: string;
239
- }): OutputMode;
240
- /**
241
- * Options for building a file-based UI component.
242
- */
243
- export interface FileComponentBuildOptions {
244
- /**
245
- * File path to the component entry point.
246
- * @example './widgets/chart.tsx'
247
- */
248
- entryPath: string;
249
- /**
250
- * Tool name for this component.
251
- */
252
- toolName: string;
253
- /**
254
- * Packages to load from CDN.
255
- */
256
- externals?: string[];
257
- /**
258
- * Explicit CDN dependency overrides.
259
- */
260
- dependencies?: Record<string, import('../dependency/types').CDNDependency>;
261
- /**
262
- * Bundle options.
263
- */
264
- bundleOptions?: import('../dependency/types').FileBundleOptions;
265
- /**
266
- * Target platform for CDN selection.
267
- * @default 'unknown'
268
- */
269
- platform?: CDNPlatformType;
270
- /**
271
- * Whether to skip cache lookup.
272
- * @default false
273
- */
274
- skipCache?: boolean;
275
- }
276
- /**
277
- * Result of a file-based component build.
278
- */
279
- export interface FileComponentBuildResult {
280
- /**
281
- * The build manifest.
282
- */
283
- manifest: ComponentBuildManifest;
284
- /**
285
- * Complete HTML with dependencies and component code.
286
- */
287
- html: string;
288
- /**
289
- * Whether the result came from cache.
290
- */
291
- cached: boolean;
292
- /**
293
- * Build time in milliseconds.
294
- */
295
- buildTimeMs: number;
296
- }
297
- /**
298
- * Build a file-based UI component.
299
- *
300
- * This function handles the complete build pipeline for file-based templates:
301
- * 1. Check cache for existing build
302
- * 2. Parse entry file for imports
303
- * 3. Resolve external dependencies to CDN URLs
304
- * 4. Bundle the component with esbuild
305
- * 5. Generate import map for CDN dependencies
306
- * 6. Store result in cache
307
- *
308
- * @param options - Build options
309
- * @returns Build result with manifest and HTML
310
- *
311
- * @example
312
- * ```typescript
313
- * const result = await buildFileComponent({
314
- * entryPath: './widgets/chart.tsx',
315
- * toolName: 'chart_display',
316
- * externals: ['chart.js', 'react-chartjs-2'],
317
- * platform: 'claude',
318
- * });
319
- *
320
- * // Use the HTML in tool response
321
- * return {
322
- * content: [{ type: 'text', text: 'Chart rendered' }],
323
- * _meta: {
324
- * 'ui/html': result.html,
325
- * 'ui/hash': result.manifest.contentHash,
326
- * },
327
- * };
328
- * ```
329
- */
330
- export declare function buildFileComponent(options: FileComponentBuildOptions): Promise<FileComponentBuildResult>;
331
- /**
332
- * Build multiple file-based components.
333
- *
334
- * @param options - Array of build options
335
- * @returns Array of build results
336
- */
337
- export declare function buildFileComponents(options: FileComponentBuildOptions[]): Promise<FileComponentBuildResult[]>;
338
- /**
339
- * Check if a file-based component needs rebuilding.
340
- *
341
- * @param options - Build options (without skipCache)
342
- * @returns true if the component needs rebuilding
343
- */
344
- export declare function needsFileComponentRebuild(options: Omit<FileComponentBuildOptions, 'skipCache'>): Promise<boolean>;
345
- /**
346
- * Get a cached file-based component build.
347
- *
348
- * @param options - Build options
349
- * @returns Cached manifest or undefined
350
- */
351
- export declare function getCachedFileComponent(options: Omit<FileComponentBuildOptions, 'skipCache' | 'toolName'>): Promise<ComponentBuildManifest | undefined>;
352
- /**
353
- * Map MCP client info to platform type.
354
- *
355
- * @param clientInfo - MCP client information
356
- * @returns Platform type for CDN selection
357
- */
358
- export declare function getPlatformFromClientInfo(clientInfo?: {
359
- name?: string;
360
- version?: string;
361
- }): CDNPlatformType;
362
- //# sourceMappingURL=widget-manifest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget-manifest.d.ts","sourceRoot":"","sources":["../../src/build/widget-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,MAAM,EAGN,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EAEd,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EAEpB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAU5C,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EAEvB,MAAM,qBAAqB,CAAC;AAQ7B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,MAAM,CAGzE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,MAAM,CAuBvE;AA0BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC/B,aAAa,CAkBf;AAWD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CA6B9D;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,YAAoB,GAAG,cAAc,CAGpG;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,GAAG,OAAO,EAChB,OAAO,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiJ5E;AAqOD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,YAAY,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAEH;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAE1C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8D7F;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,WAAW,EAAE,mBAAmB,CAAC;IAEjC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CA6EjF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,UAAU,CA2Bb;AAMD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,qBAAqB,EAAE,aAAa,CAAC,CAAC;IAE3E;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,qBAAqB,EAAE,iBAAiB,CAAC;IAEhE;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,EAAE,sBAAsB,CAAC;IAEjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAoCnC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,yBAAyB,EAAE,GACnC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAErC;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,IAAI,CAAC,yBAAyB,EAAE,WAAW,CAAC,GACpD,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,IAAI,CAAC,yBAAyB,EAAE,WAAW,GAAG,UAAU,CAAC,GACjE,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAQ7C;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,eAAe,CAelB"}
@@ -1,173 +0,0 @@
1
- /**
2
- * Bundler Cache
3
- *
4
- * LRU cache implementation for bundled results.
5
- * Provides content-addressable caching with TTL expiration.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { BundleResult } from './types';
10
- /**
11
- * Cache configuration options.
12
- */
13
- export interface CacheOptions {
14
- /**
15
- * Maximum number of entries in the cache.
16
- * @default 100
17
- */
18
- maxSize: number;
19
- /**
20
- * Time-to-live for cache entries in milliseconds.
21
- * @default 300000 (5 minutes)
22
- */
23
- ttl: number;
24
- }
25
- /**
26
- * Cache statistics.
27
- */
28
- export interface CacheStats {
29
- /**
30
- * Number of entries in the cache.
31
- */
32
- size: number;
33
- /**
34
- * Number of cache hits.
35
- */
36
- hits: number;
37
- /**
38
- * Number of cache misses.
39
- */
40
- misses: number;
41
- /**
42
- * Hit rate (0-1).
43
- */
44
- hitRate: number;
45
- /**
46
- * Number of expired entries removed.
47
- */
48
- evictions: number;
49
- /**
50
- * Total memory used by cache (approximate).
51
- */
52
- memoryUsage: number;
53
- }
54
- /**
55
- * LRU cache for bundled results.
56
- *
57
- * Features:
58
- * - Content-addressable by hash
59
- * - TTL-based expiration
60
- * - LRU eviction when at capacity
61
- * - Statistics tracking
62
- *
63
- * @example
64
- * ```typescript
65
- * const cache = new BundlerCache({ maxSize: 100, ttl: 300000 });
66
- *
67
- * // Store a result
68
- * cache.set('abc123', bundleResult);
69
- *
70
- * // Retrieve a result
71
- * const cached = cache.get('abc123');
72
- * if (cached) {
73
- * console.log('Cache hit!', cached);
74
- * }
75
- *
76
- * // Get statistics
77
- * console.log(cache.getStats());
78
- * ```
79
- */
80
- export declare class BundlerCache {
81
- private readonly cache;
82
- private readonly options;
83
- private stats;
84
- constructor(options?: Partial<CacheOptions>);
85
- /**
86
- * Get a cached bundle result.
87
- *
88
- * @param key - Cache key (typically content hash)
89
- * @returns Cached result or undefined if not found/expired
90
- */
91
- get(key: string): BundleResult | undefined;
92
- /**
93
- * Store a bundle result in the cache.
94
- *
95
- * @param key - Cache key (typically content hash)
96
- * @param result - Bundle result to cache
97
- */
98
- set(key: string, result: BundleResult): void;
99
- /**
100
- * Check if a key exists in the cache (and is not expired).
101
- *
102
- * @param key - Cache key to check
103
- * @returns true if key exists and is not expired
104
- */
105
- has(key: string): boolean;
106
- /**
107
- * Delete a specific entry from the cache.
108
- *
109
- * @param key - Cache key to delete
110
- * @returns true if the key was found and deleted
111
- */
112
- delete(key: string): boolean;
113
- /**
114
- * Clear all entries from the cache.
115
- */
116
- clear(): void;
117
- /**
118
- * Get cache statistics.
119
- *
120
- * @returns Current cache statistics
121
- */
122
- getStats(): CacheStats;
123
- /**
124
- * Remove expired entries from the cache.
125
- *
126
- * @returns Number of entries removed
127
- */
128
- cleanup(): number;
129
- /**
130
- * Get all cache keys.
131
- *
132
- * @returns Array of cache keys
133
- */
134
- keys(): string[];
135
- /**
136
- * Get the number of entries in the cache.
137
- */
138
- get size(): number;
139
- /**
140
- * Check if an entry is expired.
141
- */
142
- private isExpired;
143
- /**
144
- * Evict the oldest (least recently used) entry.
145
- */
146
- private evictOldest;
147
- }
148
- /**
149
- * Create a hash from source content.
150
- *
151
- * Uses a simple but fast hashing algorithm suitable for cache keys.
152
- *
153
- * @param content - Content to hash
154
- * @returns Hash string
155
- */
156
- export declare function hashContent(content: string): string;
157
- /**
158
- * Create a hash from bundle options.
159
- *
160
- * Used to differentiate bundles of the same source with different options.
161
- *
162
- * @param source - Source content
163
- * @param options - Bundle options that affect output
164
- * @returns Combined hash string
165
- */
166
- export declare function createCacheKey(source: string, options: {
167
- sourceType?: string;
168
- format?: string;
169
- minify?: boolean;
170
- externals?: string[];
171
- target?: string;
172
- }): string;
173
- //# sourceMappingURL=cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/bundler/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,KAAK,CAIX;gBAEU,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM;IAO/C;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IA4B1C;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAiB5C;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAWzB;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;;;OAIG;IACH,QAAQ,IAAI,UAAU;IAsBtB;;;;OAIG;IACH,OAAO,IAAI,MAAM;IAcjB;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,WAAW;CAQpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,MAAM,CAaR"}