@frontmcp/ui 0.5.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (805) hide show
  1. package/README.md +140 -362
  2. package/bridge/adapters/base-adapter.d.ts +104 -0
  3. package/bridge/adapters/base-adapter.d.ts.map +1 -0
  4. package/bridge/adapters/claude.adapter.d.ts +67 -0
  5. package/bridge/adapters/claude.adapter.d.ts.map +1 -0
  6. package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  7. package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  8. package/bridge/adapters/gemini.adapter.d.ts +64 -0
  9. package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  10. package/bridge/adapters/generic.adapter.d.ts +56 -0
  11. package/bridge/adapters/generic.adapter.d.ts.map +1 -0
  12. package/bridge/adapters/index.d.ts +26 -0
  13. package/bridge/adapters/index.d.ts.map +1 -0
  14. package/bridge/adapters/openai.adapter.d.ts +65 -0
  15. package/bridge/adapters/openai.adapter.d.ts.map +1 -0
  16. package/bridge/core/adapter-registry.d.ts +122 -0
  17. package/bridge/core/adapter-registry.d.ts.map +1 -0
  18. package/bridge/core/bridge-factory.d.ts +199 -0
  19. package/bridge/core/bridge-factory.d.ts.map +1 -0
  20. package/bridge/core/index.d.ts +10 -0
  21. package/bridge/core/index.d.ts.map +1 -0
  22. package/bridge/index.d.ts +62 -0
  23. package/bridge/index.d.ts.map +1 -0
  24. package/bridge/index.js +2540 -0
  25. package/bridge/runtime/iife-generator.d.ts +62 -0
  26. package/bridge/runtime/iife-generator.d.ts.map +1 -0
  27. package/bridge/runtime/index.d.ts +10 -0
  28. package/bridge/runtime/index.d.ts.map +1 -0
  29. package/bridge/types.d.ts +386 -0
  30. package/bridge/types.d.ts.map +1 -0
  31. package/bundler/bundler.d.ts +208 -0
  32. package/bundler/bundler.d.ts.map +1 -0
  33. package/bundler/cache.d.ts +173 -0
  34. package/bundler/cache.d.ts.map +1 -0
  35. package/bundler/file-cache/component-builder.d.ts +167 -0
  36. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  37. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  38. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  39. package/bundler/file-cache/index.d.ts +12 -0
  40. package/bundler/file-cache/index.d.ts.map +1 -0
  41. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  42. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  43. package/bundler/file-cache/storage/index.d.ts +11 -0
  44. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  45. package/bundler/file-cache/storage/interface.d.ts +152 -0
  46. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  47. package/bundler/file-cache/storage/redis.d.ts +139 -0
  48. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  49. package/bundler/index.d.ts +43 -0
  50. package/bundler/index.d.ts.map +1 -0
  51. package/bundler/index.js +3707 -0
  52. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  53. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  54. package/bundler/sandbox/executor.d.ts +14 -0
  55. package/bundler/sandbox/executor.d.ts.map +1 -0
  56. package/bundler/sandbox/policy.d.ts +62 -0
  57. package/bundler/sandbox/policy.d.ts.map +1 -0
  58. package/bundler/types.d.ts +702 -0
  59. package/bundler/types.d.ts.map +1 -0
  60. package/components/alert.d.ts +66 -0
  61. package/components/alert.d.ts.map +1 -0
  62. package/components/alert.schema.d.ts +98 -0
  63. package/components/alert.schema.d.ts.map +1 -0
  64. package/components/avatar.d.ts +77 -0
  65. package/components/avatar.d.ts.map +1 -0
  66. package/components/avatar.schema.d.ts +170 -0
  67. package/components/avatar.schema.d.ts.map +1 -0
  68. package/components/badge.d.ts +64 -0
  69. package/components/badge.d.ts.map +1 -0
  70. package/components/badge.schema.d.ts +91 -0
  71. package/components/badge.schema.d.ts.map +1 -0
  72. package/components/button.d.ts +100 -0
  73. package/components/button.d.ts.map +1 -0
  74. package/components/button.schema.d.ts +120 -0
  75. package/components/button.schema.d.ts.map +1 -0
  76. package/components/card.d.ts +53 -0
  77. package/components/card.d.ts.map +1 -0
  78. package/components/card.schema.d.ts +93 -0
  79. package/components/card.schema.d.ts.map +1 -0
  80. package/components/form.d.ts +212 -0
  81. package/components/form.d.ts.map +1 -0
  82. package/components/form.schema.d.ts +365 -0
  83. package/components/form.schema.d.ts.map +1 -0
  84. package/components/index.d.ts +29 -0
  85. package/components/index.d.ts.map +1 -0
  86. package/components/index.js +2525 -0
  87. package/components/list.d.ts +121 -0
  88. package/components/list.d.ts.map +1 -0
  89. package/components/list.schema.d.ts +129 -0
  90. package/components/list.schema.d.ts.map +1 -0
  91. package/components/modal.d.ts +100 -0
  92. package/components/modal.d.ts.map +1 -0
  93. package/components/modal.schema.d.ts +151 -0
  94. package/components/modal.schema.d.ts.map +1 -0
  95. package/components/table.d.ts +91 -0
  96. package/components/table.d.ts.map +1 -0
  97. package/components/table.schema.d.ts +123 -0
  98. package/components/table.schema.d.ts.map +1 -0
  99. package/esm/bridge/adapters/base-adapter.d.ts +104 -0
  100. package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
  101. package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
  102. package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
  103. package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  104. package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  105. package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
  106. package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  107. package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
  108. package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
  109. package/esm/bridge/adapters/index.d.ts +26 -0
  110. package/esm/bridge/adapters/index.d.ts.map +1 -0
  111. package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
  112. package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
  113. package/esm/bridge/core/adapter-registry.d.ts +122 -0
  114. package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
  115. package/esm/bridge/core/bridge-factory.d.ts +199 -0
  116. package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
  117. package/esm/bridge/core/index.d.ts +10 -0
  118. package/esm/bridge/core/index.d.ts.map +1 -0
  119. package/esm/bridge/index.d.ts +62 -0
  120. package/esm/bridge/index.d.ts.map +1 -0
  121. package/esm/bridge/index.js +2487 -0
  122. package/esm/bridge/runtime/iife-generator.d.ts +62 -0
  123. package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
  124. package/esm/bridge/runtime/index.d.ts +10 -0
  125. package/esm/bridge/runtime/index.d.ts.map +1 -0
  126. package/esm/bridge/types.d.ts +386 -0
  127. package/esm/bridge/types.d.ts.map +1 -0
  128. package/esm/bundler/bundler.d.ts +208 -0
  129. package/esm/bundler/bundler.d.ts.map +1 -0
  130. package/esm/bundler/cache.d.ts +173 -0
  131. package/esm/bundler/cache.d.ts.map +1 -0
  132. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  133. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  134. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  135. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  136. package/esm/bundler/file-cache/index.d.ts +12 -0
  137. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  138. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  139. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  140. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  141. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  142. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  143. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  144. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  145. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  146. package/esm/bundler/index.d.ts +43 -0
  147. package/esm/bundler/index.d.ts.map +1 -0
  148. package/esm/bundler/index.js +3640 -0
  149. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  150. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  151. package/esm/bundler/sandbox/executor.d.ts +14 -0
  152. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  153. package/esm/bundler/sandbox/policy.d.ts +62 -0
  154. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  155. package/esm/bundler/types.d.ts +702 -0
  156. package/esm/bundler/types.d.ts.map +1 -0
  157. package/esm/components/alert.d.ts +66 -0
  158. package/esm/components/alert.d.ts.map +1 -0
  159. package/esm/components/alert.schema.d.ts +98 -0
  160. package/esm/components/alert.schema.d.ts.map +1 -0
  161. package/esm/components/avatar.d.ts +77 -0
  162. package/esm/components/avatar.d.ts.map +1 -0
  163. package/esm/components/avatar.schema.d.ts +170 -0
  164. package/esm/components/avatar.schema.d.ts.map +1 -0
  165. package/esm/components/badge.d.ts +64 -0
  166. package/esm/components/badge.d.ts.map +1 -0
  167. package/esm/components/badge.schema.d.ts +91 -0
  168. package/esm/components/badge.schema.d.ts.map +1 -0
  169. package/esm/components/button.d.ts +100 -0
  170. package/esm/components/button.d.ts.map +1 -0
  171. package/esm/components/button.schema.d.ts +120 -0
  172. package/esm/components/button.schema.d.ts.map +1 -0
  173. package/esm/components/card.d.ts +53 -0
  174. package/esm/components/card.d.ts.map +1 -0
  175. package/esm/components/card.schema.d.ts +93 -0
  176. package/esm/components/card.schema.d.ts.map +1 -0
  177. package/esm/components/form.d.ts +212 -0
  178. package/esm/components/form.d.ts.map +1 -0
  179. package/esm/components/form.schema.d.ts +365 -0
  180. package/esm/components/form.schema.d.ts.map +1 -0
  181. package/esm/components/index.d.ts +29 -0
  182. package/esm/components/index.d.ts.map +1 -0
  183. package/esm/components/index.js +2396 -0
  184. package/esm/components/list.d.ts +121 -0
  185. package/esm/components/list.d.ts.map +1 -0
  186. package/esm/components/list.schema.d.ts +129 -0
  187. package/esm/components/list.schema.d.ts.map +1 -0
  188. package/esm/components/modal.d.ts +100 -0
  189. package/esm/components/modal.d.ts.map +1 -0
  190. package/esm/components/modal.schema.d.ts +151 -0
  191. package/esm/components/modal.schema.d.ts.map +1 -0
  192. package/esm/components/table.d.ts +91 -0
  193. package/esm/components/table.d.ts.map +1 -0
  194. package/esm/components/table.schema.d.ts +123 -0
  195. package/esm/components/table.schema.d.ts.map +1 -0
  196. package/esm/index.d.ts +40 -0
  197. package/esm/index.d.ts.map +1 -0
  198. package/esm/index.js +8326 -0
  199. package/esm/layouts/base.d.ts +86 -0
  200. package/esm/layouts/base.d.ts.map +1 -0
  201. package/esm/layouts/index.d.ts +8 -0
  202. package/esm/layouts/index.d.ts.map +1 -0
  203. package/esm/layouts/index.js +409 -0
  204. package/esm/layouts/presets.d.ts +134 -0
  205. package/esm/layouts/presets.d.ts.map +1 -0
  206. package/esm/package.json +72 -0
  207. package/esm/pages/consent.d.ts +117 -0
  208. package/esm/pages/consent.d.ts.map +1 -0
  209. package/esm/pages/error.d.ts +101 -0
  210. package/esm/pages/error.d.ts.map +1 -0
  211. package/esm/pages/index.d.ts +9 -0
  212. package/esm/pages/index.d.ts.map +1 -0
  213. package/esm/pages/index.js +1036 -0
  214. package/esm/react/Alert.d.ts +101 -0
  215. package/esm/react/Alert.d.ts.map +1 -0
  216. package/esm/react/Badge.d.ts +100 -0
  217. package/esm/react/Badge.d.ts.map +1 -0
  218. package/esm/react/Button.d.ts +108 -0
  219. package/esm/react/Button.d.ts.map +1 -0
  220. package/esm/react/Card.d.ts +103 -0
  221. package/esm/react/Card.d.ts.map +1 -0
  222. package/esm/react/hooks/context.d.ts +179 -0
  223. package/esm/react/hooks/context.d.ts.map +1 -0
  224. package/esm/react/hooks/index.d.ts +42 -0
  225. package/esm/react/hooks/index.d.ts.map +1 -0
  226. package/esm/react/hooks/tools.d.ts +284 -0
  227. package/esm/react/hooks/tools.d.ts.map +1 -0
  228. package/esm/react/index.d.ts +80 -0
  229. package/esm/react/index.d.ts.map +1 -0
  230. package/esm/react/index.js +3124 -0
  231. package/esm/react/types.d.ts +105 -0
  232. package/esm/react/types.d.ts.map +1 -0
  233. package/esm/react/utils.d.ts +43 -0
  234. package/esm/react/utils.d.ts.map +1 -0
  235. package/esm/render/index.d.ts +8 -0
  236. package/esm/render/index.d.ts.map +1 -0
  237. package/esm/render/index.js +45 -0
  238. package/esm/render/prerender.d.ts +57 -0
  239. package/esm/render/prerender.d.ts.map +1 -0
  240. package/esm/renderers/index.d.ts +21 -0
  241. package/esm/renderers/index.d.ts.map +1 -0
  242. package/esm/renderers/index.js +381 -0
  243. package/esm/renderers/react.adapter.d.ts +70 -0
  244. package/esm/renderers/react.adapter.d.ts.map +1 -0
  245. package/esm/renderers/react.renderer.d.ts +96 -0
  246. package/esm/renderers/react.renderer.d.ts.map +1 -0
  247. package/esm/universal/UniversalApp.d.ts +108 -0
  248. package/esm/universal/UniversalApp.d.ts.map +1 -0
  249. package/esm/universal/cached-runtime.d.ts +115 -0
  250. package/esm/universal/cached-runtime.d.ts.map +1 -0
  251. package/esm/universal/context.d.ts +122 -0
  252. package/esm/universal/context.d.ts.map +1 -0
  253. package/esm/universal/index.d.ts +57 -0
  254. package/esm/universal/index.d.ts.map +1 -0
  255. package/esm/universal/index.js +1755 -0
  256. package/esm/universal/renderers/html.renderer.d.ts +37 -0
  257. package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
  258. package/esm/universal/renderers/index.d.ts +112 -0
  259. package/esm/universal/renderers/index.d.ts.map +1 -0
  260. package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
  261. package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
  262. package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
  263. package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
  264. package/esm/universal/renderers/react.renderer.d.ts +46 -0
  265. package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
  266. package/esm/universal/runtime-builder.d.ts +33 -0
  267. package/esm/universal/runtime-builder.d.ts.map +1 -0
  268. package/esm/universal/store.d.ts +135 -0
  269. package/esm/universal/store.d.ts.map +1 -0
  270. package/esm/universal/types.d.ts +199 -0
  271. package/esm/universal/types.d.ts.map +1 -0
  272. package/esm/web-components/core/attribute-parser.d.ts +82 -0
  273. package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
  274. package/esm/web-components/core/base-element.d.ts +197 -0
  275. package/esm/web-components/core/base-element.d.ts.map +1 -0
  276. package/esm/web-components/core/index.d.ts +9 -0
  277. package/esm/web-components/core/index.d.ts.map +1 -0
  278. package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
  279. package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
  280. package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
  281. package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
  282. package/esm/web-components/elements/fmcp-button.d.ts +117 -0
  283. package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
  284. package/esm/web-components/elements/fmcp-card.d.ts +53 -0
  285. package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
  286. package/esm/web-components/elements/fmcp-input.d.ts +96 -0
  287. package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
  288. package/esm/web-components/elements/fmcp-select.d.ts +100 -0
  289. package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
  290. package/esm/web-components/elements/index.d.ts +13 -0
  291. package/esm/web-components/elements/index.d.ts.map +1 -0
  292. package/esm/web-components/index.d.ts +50 -0
  293. package/esm/web-components/index.d.ts.map +1 -0
  294. package/esm/web-components/index.js +1993 -0
  295. package/esm/web-components/register.d.ts +57 -0
  296. package/esm/web-components/register.d.ts.map +1 -0
  297. package/esm/web-components/types.d.ts +122 -0
  298. package/esm/web-components/types.d.ts.map +1 -0
  299. package/esm/widgets/index.d.ts +8 -0
  300. package/esm/widgets/index.d.ts.map +1 -0
  301. package/esm/widgets/index.js +883 -0
  302. package/esm/widgets/progress.d.ts +133 -0
  303. package/esm/widgets/progress.d.ts.map +1 -0
  304. package/esm/widgets/resource.d.ts +163 -0
  305. package/esm/widgets/resource.d.ts.map +1 -0
  306. package/index.d.ts +40 -0
  307. package/index.d.ts.map +1 -0
  308. package/index.js +8526 -0
  309. package/layouts/base.d.ts +86 -0
  310. package/layouts/base.d.ts.map +1 -0
  311. package/layouts/index.d.ts +8 -0
  312. package/layouts/index.d.ts.map +1 -0
  313. package/layouts/index.js +437 -0
  314. package/layouts/presets.d.ts +134 -0
  315. package/layouts/presets.d.ts.map +1 -0
  316. package/package.json +33 -110
  317. package/pages/consent.d.ts +117 -0
  318. package/pages/consent.d.ts.map +1 -0
  319. package/pages/error.d.ts +101 -0
  320. package/pages/error.d.ts.map +1 -0
  321. package/pages/index.d.ts +9 -0
  322. package/pages/index.d.ts.map +1 -0
  323. package/pages/index.js +1065 -0
  324. package/react/Alert.d.ts +101 -0
  325. package/react/Alert.d.ts.map +1 -0
  326. package/react/Badge.d.ts +100 -0
  327. package/react/Badge.d.ts.map +1 -0
  328. package/react/Button.d.ts +108 -0
  329. package/react/Button.d.ts.map +1 -0
  330. package/react/Card.d.ts +103 -0
  331. package/react/Card.d.ts.map +1 -0
  332. package/react/hooks/context.d.ts +179 -0
  333. package/react/hooks/context.d.ts.map +1 -0
  334. package/react/hooks/index.d.ts +42 -0
  335. package/react/hooks/index.d.ts.map +1 -0
  336. package/react/hooks/tools.d.ts +284 -0
  337. package/react/hooks/tools.d.ts.map +1 -0
  338. package/react/index.d.ts +80 -0
  339. package/react/index.d.ts.map +1 -0
  340. package/react/index.js +3160 -0
  341. package/react/types.d.ts +105 -0
  342. package/react/types.d.ts.map +1 -0
  343. package/react/utils.d.ts +43 -0
  344. package/react/utils.d.ts.map +1 -0
  345. package/render/index.d.ts +8 -0
  346. package/render/index.d.ts.map +1 -0
  347. package/render/index.js +77 -0
  348. package/render/prerender.d.ts +57 -0
  349. package/render/prerender.d.ts.map +1 -0
  350. package/renderers/index.d.ts +21 -0
  351. package/renderers/index.d.ts.map +1 -0
  352. package/renderers/index.js +416 -0
  353. package/renderers/react.adapter.d.ts +70 -0
  354. package/renderers/react.adapter.d.ts.map +1 -0
  355. package/renderers/react.renderer.d.ts +96 -0
  356. package/renderers/react.renderer.d.ts.map +1 -0
  357. package/universal/UniversalApp.d.ts +108 -0
  358. package/universal/UniversalApp.d.ts.map +1 -0
  359. package/universal/cached-runtime.d.ts +115 -0
  360. package/universal/cached-runtime.d.ts.map +1 -0
  361. package/universal/context.d.ts +122 -0
  362. package/universal/context.d.ts.map +1 -0
  363. package/universal/index.d.ts +57 -0
  364. package/universal/index.d.ts.map +1 -0
  365. package/universal/index.js +1841 -0
  366. package/universal/renderers/html.renderer.d.ts +37 -0
  367. package/universal/renderers/html.renderer.d.ts.map +1 -0
  368. package/universal/renderers/index.d.ts +112 -0
  369. package/universal/renderers/index.d.ts.map +1 -0
  370. package/universal/renderers/markdown.renderer.d.ts +33 -0
  371. package/universal/renderers/markdown.renderer.d.ts.map +1 -0
  372. package/universal/renderers/mdx.renderer.d.ts +38 -0
  373. package/universal/renderers/mdx.renderer.d.ts.map +1 -0
  374. package/universal/renderers/react.renderer.d.ts +46 -0
  375. package/universal/renderers/react.renderer.d.ts.map +1 -0
  376. package/universal/runtime-builder.d.ts +33 -0
  377. package/universal/runtime-builder.d.ts.map +1 -0
  378. package/universal/store.d.ts +135 -0
  379. package/universal/store.d.ts.map +1 -0
  380. package/universal/types.d.ts +199 -0
  381. package/universal/types.d.ts.map +1 -0
  382. package/web-components/core/attribute-parser.d.ts +82 -0
  383. package/web-components/core/attribute-parser.d.ts.map +1 -0
  384. package/web-components/core/base-element.d.ts +197 -0
  385. package/web-components/core/base-element.d.ts.map +1 -0
  386. package/web-components/core/index.d.ts +9 -0
  387. package/web-components/core/index.d.ts.map +1 -0
  388. package/web-components/elements/fmcp-alert.d.ts +46 -0
  389. package/web-components/elements/fmcp-alert.d.ts.map +1 -0
  390. package/web-components/elements/fmcp-badge.d.ts +47 -0
  391. package/web-components/elements/fmcp-badge.d.ts.map +1 -0
  392. package/web-components/elements/fmcp-button.d.ts +117 -0
  393. package/web-components/elements/fmcp-button.d.ts.map +1 -0
  394. package/web-components/elements/fmcp-card.d.ts +53 -0
  395. package/web-components/elements/fmcp-card.d.ts.map +1 -0
  396. package/web-components/elements/fmcp-input.d.ts +96 -0
  397. package/web-components/elements/fmcp-input.d.ts.map +1 -0
  398. package/web-components/elements/fmcp-select.d.ts +100 -0
  399. package/web-components/elements/fmcp-select.d.ts.map +1 -0
  400. package/web-components/elements/index.d.ts +13 -0
  401. package/web-components/elements/index.d.ts.map +1 -0
  402. package/web-components/index.d.ts +50 -0
  403. package/web-components/index.d.ts.map +1 -0
  404. package/web-components/index.js +2028 -0
  405. package/web-components/register.d.ts +57 -0
  406. package/web-components/register.d.ts.map +1 -0
  407. package/web-components/types.d.ts +122 -0
  408. package/web-components/types.d.ts.map +1 -0
  409. package/widgets/index.d.ts +8 -0
  410. package/widgets/index.d.ts.map +1 -0
  411. package/widgets/index.js +910 -0
  412. package/widgets/progress.d.ts +133 -0
  413. package/widgets/progress.d.ts.map +1 -0
  414. package/widgets/resource.d.ts +163 -0
  415. package/widgets/resource.d.ts.map +1 -0
  416. package/src/adapters/index.d.ts +0 -10
  417. package/src/adapters/index.js +0 -18
  418. package/src/adapters/index.js.map +0 -1
  419. package/src/adapters/platform-meta.d.ts +0 -165
  420. package/src/adapters/platform-meta.js +0 -310
  421. package/src/adapters/platform-meta.js.map +0 -1
  422. package/src/base-template/bridge.d.ts +0 -89
  423. package/src/base-template/bridge.js +0 -452
  424. package/src/base-template/bridge.js.map +0 -1
  425. package/src/base-template/default-base-template.d.ts +0 -91
  426. package/src/base-template/default-base-template.js +0 -435
  427. package/src/base-template/default-base-template.js.map +0 -1
  428. package/src/base-template/index.d.ts +0 -14
  429. package/src/base-template/index.js +0 -30
  430. package/src/base-template/index.js.map +0 -1
  431. package/src/base-template/polyfills.d.ts +0 -30
  432. package/src/base-template/polyfills.js +0 -190
  433. package/src/base-template/polyfills.js.map +0 -1
  434. package/src/base-template/theme-styles.d.ts +0 -73
  435. package/src/base-template/theme-styles.js +0 -95
  436. package/src/base-template/theme-styles.js.map +0 -1
  437. package/src/bridge/adapters/base-adapter.d.ts +0 -103
  438. package/src/bridge/adapters/base-adapter.js +0 -314
  439. package/src/bridge/adapters/base-adapter.js.map +0 -1
  440. package/src/bridge/adapters/claude.adapter.d.ts +0 -66
  441. package/src/bridge/adapters/claude.adapter.js +0 -145
  442. package/src/bridge/adapters/claude.adapter.js.map +0 -1
  443. package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
  444. package/src/bridge/adapters/ext-apps.adapter.js +0 -416
  445. package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
  446. package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
  447. package/src/bridge/adapters/gemini.adapter.js +0 -160
  448. package/src/bridge/adapters/gemini.adapter.js.map +0 -1
  449. package/src/bridge/adapters/generic.adapter.d.ts +0 -55
  450. package/src/bridge/adapters/generic.adapter.js +0 -108
  451. package/src/bridge/adapters/generic.adapter.js.map +0 -1
  452. package/src/bridge/adapters/index.d.ts +0 -25
  453. package/src/bridge/adapters/index.js +0 -65
  454. package/src/bridge/adapters/index.js.map +0 -1
  455. package/src/bridge/adapters/openai.adapter.d.ts +0 -64
  456. package/src/bridge/adapters/openai.adapter.js +0 -194
  457. package/src/bridge/adapters/openai.adapter.js.map +0 -1
  458. package/src/bridge/core/adapter-registry.d.ts +0 -121
  459. package/src/bridge/core/adapter-registry.js +0 -271
  460. package/src/bridge/core/adapter-registry.js.map +0 -1
  461. package/src/bridge/core/bridge-factory.d.ts +0 -198
  462. package/src/bridge/core/bridge-factory.js +0 -428
  463. package/src/bridge/core/bridge-factory.js.map +0 -1
  464. package/src/bridge/core/index.d.ts +0 -9
  465. package/src/bridge/core/index.js +0 -22
  466. package/src/bridge/core/index.js.map +0 -1
  467. package/src/bridge/index.d.ts +0 -61
  468. package/src/bridge/index.js +0 -94
  469. package/src/bridge/index.js.map +0 -1
  470. package/src/bridge/runtime/iife-generator.d.ts +0 -61
  471. package/src/bridge/runtime/iife-generator.js +0 -940
  472. package/src/bridge/runtime/iife-generator.js.map +0 -1
  473. package/src/bridge/runtime/index.d.ts +0 -8
  474. package/src/bridge/runtime/index.js +0 -16
  475. package/src/bridge/runtime/index.js.map +0 -1
  476. package/src/bridge/types.d.ts +0 -385
  477. package/src/bridge/types.js +0 -11
  478. package/src/bridge/types.js.map +0 -1
  479. package/src/build/cdn-resources.d.ts +0 -140
  480. package/src/build/cdn-resources.js +0 -314
  481. package/src/build/cdn-resources.js.map +0 -1
  482. package/src/build/index.d.ts +0 -294
  483. package/src/build/index.js +0 -325
  484. package/src/build/index.js.map +0 -1
  485. package/src/build/widget-manifest.d.ts +0 -212
  486. package/src/build/widget-manifest.js +0 -652
  487. package/src/build/widget-manifest.js.map +0 -1
  488. package/src/bundler/bundler.d.ts +0 -110
  489. package/src/bundler/bundler.js +0 -432
  490. package/src/bundler/bundler.js.map +0 -1
  491. package/src/bundler/cache.d.ts +0 -172
  492. package/src/bundler/cache.js +0 -250
  493. package/src/bundler/cache.js.map +0 -1
  494. package/src/bundler/index.d.ts +0 -41
  495. package/src/bundler/index.js +0 -73
  496. package/src/bundler/index.js.map +0 -1
  497. package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
  498. package/src/bundler/sandbox/enclave-adapter.js +0 -339
  499. package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
  500. package/src/bundler/sandbox/executor.d.ts +0 -13
  501. package/src/bundler/sandbox/executor.js +0 -22
  502. package/src/bundler/sandbox/executor.js.map +0 -1
  503. package/src/bundler/sandbox/policy.d.ts +0 -61
  504. package/src/bundler/sandbox/policy.js +0 -238
  505. package/src/bundler/sandbox/policy.js.map +0 -1
  506. package/src/bundler/types.d.ts +0 -347
  507. package/src/bundler/types.js +0 -132
  508. package/src/bundler/types.js.map +0 -1
  509. package/src/components/alert.d.ts +0 -71
  510. package/src/components/alert.js +0 -189
  511. package/src/components/alert.js.map +0 -1
  512. package/src/components/alert.schema.d.ts +0 -114
  513. package/src/components/alert.schema.js +0 -105
  514. package/src/components/alert.schema.js.map +0 -1
  515. package/src/components/avatar.d.ts +0 -76
  516. package/src/components/avatar.js +0 -176
  517. package/src/components/avatar.js.map +0 -1
  518. package/src/components/avatar.schema.d.ts +0 -169
  519. package/src/components/avatar.schema.js +0 -103
  520. package/src/components/avatar.schema.js.map +0 -1
  521. package/src/components/badge.d.ts +0 -70
  522. package/src/components/badge.js +0 -149
  523. package/src/components/badge.js.map +0 -1
  524. package/src/components/badge.schema.d.ts +0 -109
  525. package/src/components/badge.schema.js +0 -96
  526. package/src/components/badge.schema.js.map +0 -1
  527. package/src/components/button.d.ts +0 -111
  528. package/src/components/button.js +0 -336
  529. package/src/components/button.js.map +0 -1
  530. package/src/components/button.schema.d.ts +0 -148
  531. package/src/components/button.schema.js +0 -121
  532. package/src/components/button.schema.js.map +0 -1
  533. package/src/components/card.d.ts +0 -60
  534. package/src/components/card.js +0 -117
  535. package/src/components/card.js.map +0 -1
  536. package/src/components/card.schema.d.ts +0 -113
  537. package/src/components/card.schema.js +0 -98
  538. package/src/components/card.schema.js.map +0 -1
  539. package/src/components/form.d.ts +0 -239
  540. package/src/components/form.js +0 -420
  541. package/src/components/form.js.map +0 -1
  542. package/src/components/form.schema.d.ts +0 -441
  543. package/src/components/form.schema.js +0 -406
  544. package/src/components/form.schema.js.map +0 -1
  545. package/src/components/index.d.ts +0 -29
  546. package/src/components/index.js +0 -98
  547. package/src/components/index.js.map +0 -1
  548. package/src/components/list.d.ts +0 -127
  549. package/src/components/list.js +0 -279
  550. package/src/components/list.js.map +0 -1
  551. package/src/components/list.schema.d.ts +0 -134
  552. package/src/components/list.schema.js +0 -168
  553. package/src/components/list.schema.js.map +0 -1
  554. package/src/components/modal.d.ts +0 -111
  555. package/src/components/modal.js +0 -260
  556. package/src/components/modal.js.map +0 -1
  557. package/src/components/modal.schema.d.ts +0 -186
  558. package/src/components/modal.schema.js +0 -167
  559. package/src/components/modal.schema.js.map +0 -1
  560. package/src/components/table.d.ts +0 -105
  561. package/src/components/table.js +0 -283
  562. package/src/components/table.js.map +0 -1
  563. package/src/components/table.schema.d.ts +0 -159
  564. package/src/components/table.schema.js +0 -173
  565. package/src/components/table.schema.js.map +0 -1
  566. package/src/handlebars/helpers.d.ts +0 -348
  567. package/src/handlebars/helpers.js +0 -605
  568. package/src/handlebars/helpers.js.map +0 -1
  569. package/src/handlebars/index.d.ts +0 -193
  570. package/src/handlebars/index.js +0 -350
  571. package/src/handlebars/index.js.map +0 -1
  572. package/src/index.d.ts +0 -50
  573. package/src/index.js +0 -192
  574. package/src/index.js.map +0 -1
  575. package/src/layouts/base.d.ts +0 -88
  576. package/src/layouts/base.js +0 -227
  577. package/src/layouts/base.js.map +0 -1
  578. package/src/layouts/index.d.ts +0 -7
  579. package/src/layouts/index.js +0 -25
  580. package/src/layouts/index.js.map +0 -1
  581. package/src/layouts/presets.d.ts +0 -133
  582. package/src/layouts/presets.js +0 -277
  583. package/src/layouts/presets.js.map +0 -1
  584. package/src/pages/consent.d.ts +0 -116
  585. package/src/pages/consent.js +0 -218
  586. package/src/pages/consent.js.map +0 -1
  587. package/src/pages/error.d.ts +0 -100
  588. package/src/pages/error.js +0 -263
  589. package/src/pages/error.js.map +0 -1
  590. package/src/pages/index.d.ts +0 -8
  591. package/src/pages/index.js +0 -27
  592. package/src/pages/index.js.map +0 -1
  593. package/src/react/Alert.d.ts +0 -101
  594. package/src/react/Alert.js +0 -51
  595. package/src/react/Alert.js.map +0 -1
  596. package/src/react/Badge.d.ts +0 -100
  597. package/src/react/Badge.js +0 -55
  598. package/src/react/Badge.js.map +0 -1
  599. package/src/react/Button.d.ts +0 -108
  600. package/src/react/Button.js +0 -52
  601. package/src/react/Button.js.map +0 -1
  602. package/src/react/Card.d.ts +0 -103
  603. package/src/react/Card.js +0 -55
  604. package/src/react/Card.js.map +0 -1
  605. package/src/react/hooks/context.d.ts +0 -178
  606. package/src/react/hooks/context.js +0 -287
  607. package/src/react/hooks/context.js.map +0 -1
  608. package/src/react/hooks/index.d.ts +0 -41
  609. package/src/react/hooks/index.js +0 -61
  610. package/src/react/hooks/index.js.map +0 -1
  611. package/src/react/hooks/tools.d.ts +0 -283
  612. package/src/react/hooks/tools.js +0 -465
  613. package/src/react/hooks/tools.js.map +0 -1
  614. package/src/react/index.d.ts +0 -80
  615. package/src/react/index.js +0 -113
  616. package/src/react/index.js.map +0 -1
  617. package/src/react/types.d.ts +0 -105
  618. package/src/react/types.js +0 -12
  619. package/src/react/types.js.map +0 -1
  620. package/src/react/utils.d.ts +0 -42
  621. package/src/react/utils.js +0 -99
  622. package/src/react/utils.js.map +0 -1
  623. package/src/registry/index.d.ts +0 -45
  624. package/src/registry/index.js +0 -67
  625. package/src/registry/index.js.map +0 -1
  626. package/src/registry/render-template.d.ts +0 -86
  627. package/src/registry/render-template.js +0 -239
  628. package/src/registry/render-template.js.map +0 -1
  629. package/src/registry/tool-ui.registry.d.ts +0 -260
  630. package/src/registry/tool-ui.registry.js +0 -438
  631. package/src/registry/tool-ui.registry.js.map +0 -1
  632. package/src/registry/uri-utils.d.ts +0 -55
  633. package/src/registry/uri-utils.js +0 -97
  634. package/src/registry/uri-utils.js.map +0 -1
  635. package/src/render/index.d.ts +0 -7
  636. package/src/render/index.js +0 -14
  637. package/src/render/index.js.map +0 -1
  638. package/src/render/prerender.d.ts +0 -56
  639. package/src/render/prerender.js +0 -98
  640. package/src/render/prerender.js.map +0 -1
  641. package/src/renderers/cache.d.ts +0 -144
  642. package/src/renderers/cache.js +0 -240
  643. package/src/renderers/cache.js.map +0 -1
  644. package/src/renderers/html.renderer.d.ts +0 -122
  645. package/src/renderers/html.renderer.js +0 -204
  646. package/src/renderers/html.renderer.js.map +0 -1
  647. package/src/renderers/index.d.ts +0 -35
  648. package/src/renderers/index.js +0 -70
  649. package/src/renderers/index.js.map +0 -1
  650. package/src/renderers/mdx.renderer.d.ts +0 -119
  651. package/src/renderers/mdx.renderer.js +0 -305
  652. package/src/renderers/mdx.renderer.js.map +0 -1
  653. package/src/renderers/react.renderer.d.ts +0 -95
  654. package/src/renderers/react.renderer.js +0 -260
  655. package/src/renderers/react.renderer.js.map +0 -1
  656. package/src/renderers/registry.d.ts +0 -133
  657. package/src/renderers/registry.js +0 -232
  658. package/src/renderers/registry.js.map +0 -1
  659. package/src/renderers/types.d.ts +0 -341
  660. package/src/renderers/types.js +0 -9
  661. package/src/renderers/types.js.map +0 -1
  662. package/src/renderers/utils/detect.d.ts +0 -106
  663. package/src/renderers/utils/detect.js +0 -267
  664. package/src/renderers/utils/detect.js.map +0 -1
  665. package/src/renderers/utils/hash.d.ts +0 -39
  666. package/src/renderers/utils/hash.js +0 -75
  667. package/src/renderers/utils/hash.js.map +0 -1
  668. package/src/renderers/utils/index.d.ts +0 -8
  669. package/src/renderers/utils/index.js +0 -28
  670. package/src/renderers/utils/index.js.map +0 -1
  671. package/src/renderers/utils/transpiler.d.ts +0 -88
  672. package/src/renderers/utils/transpiler.js +0 -215
  673. package/src/renderers/utils/transpiler.js.map +0 -1
  674. package/src/runtime/adapters/html.adapter.d.ts +0 -58
  675. package/src/runtime/adapters/html.adapter.js +0 -131
  676. package/src/runtime/adapters/html.adapter.js.map +0 -1
  677. package/src/runtime/adapters/index.d.ts +0 -25
  678. package/src/runtime/adapters/index.js +0 -54
  679. package/src/runtime/adapters/index.js.map +0 -1
  680. package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
  681. package/src/runtime/adapters/mdx.adapter.js +0 -241
  682. package/src/runtime/adapters/mdx.adapter.js.map +0 -1
  683. package/src/runtime/adapters/react.adapter.d.ts +0 -69
  684. package/src/runtime/adapters/react.adapter.js +0 -245
  685. package/src/runtime/adapters/react.adapter.js.map +0 -1
  686. package/src/runtime/adapters/types.d.ts +0 -94
  687. package/src/runtime/adapters/types.js +0 -11
  688. package/src/runtime/adapters/types.js.map +0 -1
  689. package/src/runtime/csp.d.ts +0 -37
  690. package/src/runtime/csp.js +0 -140
  691. package/src/runtime/csp.js.map +0 -1
  692. package/src/runtime/index.d.ts +0 -16
  693. package/src/runtime/index.js +0 -72
  694. package/src/runtime/index.js.map +0 -1
  695. package/src/runtime/mcp-bridge.d.ts +0 -100
  696. package/src/runtime/mcp-bridge.js +0 -581
  697. package/src/runtime/mcp-bridge.js.map +0 -1
  698. package/src/runtime/renderer-runtime.d.ts +0 -132
  699. package/src/runtime/renderer-runtime.js +0 -389
  700. package/src/runtime/renderer-runtime.js.map +0 -1
  701. package/src/runtime/sanitizer.d.ts +0 -171
  702. package/src/runtime/sanitizer.js +0 -318
  703. package/src/runtime/sanitizer.js.map +0 -1
  704. package/src/runtime/types.d.ts +0 -414
  705. package/src/runtime/types.js +0 -12
  706. package/src/runtime/types.js.map +0 -1
  707. package/src/runtime/wrapper.d.ts +0 -375
  708. package/src/runtime/wrapper.js +0 -1793
  709. package/src/runtime/wrapper.js.map +0 -1
  710. package/src/styles/index.d.ts +0 -7
  711. package/src/styles/index.js +0 -11
  712. package/src/styles/index.js.map +0 -1
  713. package/src/styles/variants.d.ts +0 -50
  714. package/src/styles/variants.js +0 -175
  715. package/src/styles/variants.js.map +0 -1
  716. package/src/theme/cdn.d.ts +0 -194
  717. package/src/theme/cdn.js +0 -375
  718. package/src/theme/cdn.js.map +0 -1
  719. package/src/theme/index.d.ts +0 -17
  720. package/src/theme/index.js +0 -57
  721. package/src/theme/index.js.map +0 -1
  722. package/src/theme/platforms.d.ts +0 -106
  723. package/src/theme/platforms.js +0 -161
  724. package/src/theme/platforms.js.map +0 -1
  725. package/src/theme/presets/github-openai.d.ts +0 -49
  726. package/src/theme/presets/github-openai.js +0 -189
  727. package/src/theme/presets/github-openai.js.map +0 -1
  728. package/src/theme/presets/index.d.ts +0 -10
  729. package/src/theme/presets/index.js +0 -17
  730. package/src/theme/presets/index.js.map +0 -1
  731. package/src/theme/theme.d.ts +0 -395
  732. package/src/theme/theme.js +0 -332
  733. package/src/theme/theme.js.map +0 -1
  734. package/src/tool-template/builder.d.ts +0 -212
  735. package/src/tool-template/builder.js +0 -397
  736. package/src/tool-template/builder.js.map +0 -1
  737. package/src/tool-template/index.d.ts +0 -15
  738. package/src/tool-template/index.js +0 -38
  739. package/src/tool-template/index.js.map +0 -1
  740. package/src/types/index.d.ts +0 -13
  741. package/src/types/index.js +0 -26
  742. package/src/types/index.js.map +0 -1
  743. package/src/types/ui-config.d.ts +0 -357
  744. package/src/types/ui-config.js +0 -12
  745. package/src/types/ui-config.js.map +0 -1
  746. package/src/types/ui-runtime.d.ts +0 -965
  747. package/src/types/ui-runtime.js +0 -117
  748. package/src/types/ui-runtime.js.map +0 -1
  749. package/src/validation/error-box.d.ts +0 -55
  750. package/src/validation/error-box.js +0 -75
  751. package/src/validation/error-box.js.map +0 -1
  752. package/src/validation/index.d.ts +0 -12
  753. package/src/validation/index.js +0 -21
  754. package/src/validation/index.js.map +0 -1
  755. package/src/validation/wrapper.d.ts +0 -96
  756. package/src/validation/wrapper.js +0 -117
  757. package/src/validation/wrapper.js.map +0 -1
  758. package/src/web-components/core/attribute-parser.d.ts +0 -85
  759. package/src/web-components/core/attribute-parser.js +0 -189
  760. package/src/web-components/core/attribute-parser.js.map +0 -1
  761. package/src/web-components/core/base-element.d.ts +0 -197
  762. package/src/web-components/core/base-element.js +0 -289
  763. package/src/web-components/core/base-element.js.map +0 -1
  764. package/src/web-components/core/index.d.ts +0 -8
  765. package/src/web-components/core/index.js +0 -18
  766. package/src/web-components/core/index.js.map +0 -1
  767. package/src/web-components/elements/fmcp-alert.d.ts +0 -45
  768. package/src/web-components/elements/fmcp-alert.js +0 -93
  769. package/src/web-components/elements/fmcp-alert.js.map +0 -1
  770. package/src/web-components/elements/fmcp-badge.d.ts +0 -46
  771. package/src/web-components/elements/fmcp-badge.js +0 -99
  772. package/src/web-components/elements/fmcp-badge.js.map +0 -1
  773. package/src/web-components/elements/fmcp-button.d.ts +0 -124
  774. package/src/web-components/elements/fmcp-button.js +0 -233
  775. package/src/web-components/elements/fmcp-button.js.map +0 -1
  776. package/src/web-components/elements/fmcp-card.d.ts +0 -52
  777. package/src/web-components/elements/fmcp-card.js +0 -115
  778. package/src/web-components/elements/fmcp-card.js.map +0 -1
  779. package/src/web-components/elements/fmcp-input.d.ts +0 -95
  780. package/src/web-components/elements/fmcp-input.js +0 -248
  781. package/src/web-components/elements/fmcp-input.js.map +0 -1
  782. package/src/web-components/elements/fmcp-select.d.ts +0 -99
  783. package/src/web-components/elements/fmcp-select.js +0 -243
  784. package/src/web-components/elements/fmcp-select.js.map +0 -1
  785. package/src/web-components/elements/index.d.ts +0 -12
  786. package/src/web-components/elements/index.js +0 -34
  787. package/src/web-components/elements/index.js.map +0 -1
  788. package/src/web-components/index.d.ts +0 -49
  789. package/src/web-components/index.js +0 -75
  790. package/src/web-components/index.js.map +0 -1
  791. package/src/web-components/register.d.ts +0 -56
  792. package/src/web-components/register.js +0 -80
  793. package/src/web-components/register.js.map +0 -1
  794. package/src/web-components/types.d.ts +0 -121
  795. package/src/web-components/types.js +0 -25
  796. package/src/web-components/types.js.map +0 -1
  797. package/src/widgets/index.d.ts +0 -7
  798. package/src/widgets/index.js +0 -24
  799. package/src/widgets/index.js.map +0 -1
  800. package/src/widgets/progress.d.ts +0 -132
  801. package/src/widgets/progress.js +0 -303
  802. package/src/widgets/progress.js.map +0 -1
  803. package/src/widgets/resource.d.ts +0 -162
  804. package/src/widgets/resource.js +0 -340
  805. package/src/widgets/resource.js.map +0 -1
@@ -1,238 +0,0 @@
1
- "use strict";
2
- /**
3
- * Sandbox Security Policy
4
- *
5
- * Defines and validates security policies for bundler execution.
6
- *
7
- * @packageDocumentation
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.SecurityError = void 0;
11
- exports.validateSource = validateSource;
12
- exports.validateImports = validateImports;
13
- exports.validateSize = validateSize;
14
- exports.mergePolicy = mergePolicy;
15
- exports.throwOnViolations = throwOnViolations;
16
- const types_1 = require("../types");
17
- /**
18
- * Patterns that indicate unsafe code.
19
- */
20
- const UNSAFE_PATTERNS = {
21
- eval: /\beval\s*\(/g,
22
- functionConstructor: /\bnew\s+Function\s*\(/g,
23
- dynamicImport: /\bimport\s*\(/g,
24
- require: /\brequire\s*\(/g,
25
- processEnv: /\bprocess\.env\b/g,
26
- globalThis: /\bglobalThis\b/g,
27
- windowLocation: /\bwindow\.location\b/g,
28
- documentCookie: /\bdocument\.cookie\b/g,
29
- innerHTML: /\.innerHTML\s*=/g,
30
- outerHTML: /\.outerHTML\s*=/g,
31
- document_write: /\bdocument\.write\s*\(/g,
32
- };
33
- /**
34
- * Validate source code against a security policy.
35
- *
36
- * @param source - Source code to validate
37
- * @param policy - Security policy to enforce
38
- * @returns Array of security violations (empty if valid)
39
- *
40
- * @example
41
- * ```typescript
42
- * const violations = validateSource(code, DEFAULT_SECURITY_POLICY);
43
- * if (violations.length > 0) {
44
- * throw new Error(`Security violations: ${violations.map(v => v.message).join(', ')}`);
45
- * }
46
- * ```
47
- */
48
- function validateSource(source, policy = types_1.DEFAULT_SECURITY_POLICY) {
49
- const violations = [];
50
- // Check for eval usage
51
- if (policy.noEval !== false) {
52
- const evalMatches = [...source.matchAll(UNSAFE_PATTERNS.eval)];
53
- for (const match of evalMatches) {
54
- violations.push({
55
- type: 'eval-usage',
56
- message: 'eval() is not allowed for security reasons',
57
- location: getLocation(source, match.index ?? 0),
58
- value: match[0],
59
- });
60
- }
61
- const fnMatches = [...source.matchAll(UNSAFE_PATTERNS.functionConstructor)];
62
- for (const match of fnMatches) {
63
- violations.push({
64
- type: 'eval-usage',
65
- message: 'new Function() is not allowed for security reasons',
66
- location: getLocation(source, match.index ?? 0),
67
- value: match[0],
68
- });
69
- }
70
- }
71
- // Check for dynamic imports
72
- if (policy.noDynamicImports !== false) {
73
- const matches = [...source.matchAll(UNSAFE_PATTERNS.dynamicImport)];
74
- for (const match of matches) {
75
- violations.push({
76
- type: 'dynamic-import',
77
- message: 'Dynamic imports are not allowed for security reasons',
78
- location: getLocation(source, match.index ?? 0),
79
- value: match[0],
80
- });
81
- }
82
- }
83
- // Check for require usage
84
- if (policy.noRequire !== false) {
85
- const matches = [...source.matchAll(UNSAFE_PATTERNS.require)];
86
- for (const match of matches) {
87
- violations.push({
88
- type: 'require-usage',
89
- message: 'require() is not allowed for security reasons',
90
- location: getLocation(source, match.index ?? 0),
91
- value: match[0],
92
- });
93
- }
94
- }
95
- // Validate imports
96
- const importViolations = validateImports(source, policy);
97
- violations.push(...importViolations);
98
- return violations;
99
- }
100
- /**
101
- * Validate import statements against policy.
102
- *
103
- * @param source - Source code to check
104
- * @param policy - Security policy
105
- * @returns Array of import violations
106
- */
107
- function validateImports(source, policy = types_1.DEFAULT_SECURITY_POLICY) {
108
- const violations = [];
109
- // Extract import statements
110
- const importPattern = /import\s+(?:(?:\{[^}]*\}|[\w*]+)\s+from\s+)?['"]([^'"]+)['"]/g;
111
- const imports = [];
112
- let match;
113
- while ((match = importPattern.exec(source)) !== null) {
114
- imports.push({ module: match[1], index: match.index });
115
- }
116
- // Also check for require-style imports that might slip through
117
- const requirePattern = /require\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
118
- while ((match = requirePattern.exec(source)) !== null) {
119
- imports.push({ module: match[1], index: match.index });
120
- }
121
- for (const imp of imports) {
122
- // Check blocked imports first
123
- if (policy.blockedImports) {
124
- for (const blocked of policy.blockedImports) {
125
- if (blocked.test(imp.module)) {
126
- violations.push({
127
- type: 'blocked-import',
128
- message: `Import '${imp.module}' is blocked by security policy`,
129
- location: getLocation(source, imp.index),
130
- value: imp.module,
131
- });
132
- break;
133
- }
134
- }
135
- }
136
- // Check if import is in allowed list
137
- if (policy.allowedImports && policy.allowedImports.length > 0) {
138
- const isAllowed = policy.allowedImports.some((pattern) => pattern.test(imp.module));
139
- if (!isAllowed) {
140
- // Check if already reported as blocked
141
- const alreadyBlocked = violations.some((v) => v.type === 'blocked-import' && v.value === imp.module);
142
- if (!alreadyBlocked) {
143
- violations.push({
144
- type: 'disallowed-import',
145
- message: `Import '${imp.module}' is not in the allowed imports list`,
146
- location: getLocation(source, imp.index),
147
- value: imp.module,
148
- });
149
- }
150
- }
151
- }
152
- }
153
- return violations;
154
- }
155
- /**
156
- * Validate bundle size against policy.
157
- *
158
- * @param size - Bundle size in bytes
159
- * @param policy - Security policy
160
- * @returns Violation if size exceeds limit, undefined otherwise
161
- */
162
- function validateSize(size, policy = types_1.DEFAULT_SECURITY_POLICY) {
163
- const maxSize = policy.maxBundleSize ?? types_1.DEFAULT_SECURITY_POLICY.maxBundleSize ?? 512000;
164
- if (size > maxSize) {
165
- return {
166
- type: 'size-exceeded',
167
- message: `Bundle size (${formatBytes(size)}) exceeds maximum allowed (${formatBytes(maxSize)})`,
168
- value: String(size),
169
- };
170
- }
171
- return undefined;
172
- }
173
- /**
174
- * Create a merged security policy with defaults.
175
- *
176
- * @param userPolicy - User-provided policy overrides
177
- * @returns Merged policy with defaults
178
- */
179
- function mergePolicy(userPolicy) {
180
- if (!userPolicy) {
181
- return { ...types_1.DEFAULT_SECURITY_POLICY };
182
- }
183
- return {
184
- allowedImports: userPolicy.allowedImports ?? types_1.DEFAULT_SECURITY_POLICY.allowedImports,
185
- blockedImports: userPolicy.blockedImports ?? types_1.DEFAULT_SECURITY_POLICY.blockedImports,
186
- maxBundleSize: userPolicy.maxBundleSize ?? types_1.DEFAULT_SECURITY_POLICY.maxBundleSize,
187
- maxTransformTime: userPolicy.maxTransformTime ?? types_1.DEFAULT_SECURITY_POLICY.maxTransformTime,
188
- noEval: userPolicy.noEval ?? types_1.DEFAULT_SECURITY_POLICY.noEval,
189
- noDynamicImports: userPolicy.noDynamicImports ?? types_1.DEFAULT_SECURITY_POLICY.noDynamicImports,
190
- noRequire: userPolicy.noRequire ?? types_1.DEFAULT_SECURITY_POLICY.noRequire,
191
- allowedGlobals: userPolicy.allowedGlobals ?? types_1.DEFAULT_SECURITY_POLICY.allowedGlobals,
192
- };
193
- }
194
- /**
195
- * Get line and column from source index.
196
- */
197
- function getLocation(source, index) {
198
- const lines = source.slice(0, index).split('\n');
199
- return {
200
- line: lines.length,
201
- column: lines[lines.length - 1].length + 1,
202
- };
203
- }
204
- /**
205
- * Format bytes to human-readable string.
206
- */
207
- function formatBytes(bytes) {
208
- if (bytes < 1024)
209
- return `${bytes} B`;
210
- if (bytes < 1024 * 1024)
211
- return `${(bytes / 1024).toFixed(1)} KB`;
212
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
213
- }
214
- /**
215
- * Security error thrown when policy is violated.
216
- */
217
- class SecurityError extends Error {
218
- violations;
219
- constructor(message, violations) {
220
- super(message);
221
- this.name = 'SecurityError';
222
- this.violations = violations;
223
- }
224
- }
225
- exports.SecurityError = SecurityError;
226
- /**
227
- * Throw if any violations exist.
228
- *
229
- * @param violations - Array of violations to check
230
- * @throws SecurityError if violations exist
231
- */
232
- function throwOnViolations(violations) {
233
- if (violations.length > 0) {
234
- const message = violations.map((v) => v.message).join('; ');
235
- throw new SecurityError(`Security policy violation: ${message}`, violations);
236
- }
237
- }
238
- //# sourceMappingURL=policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../../src/bundler/sandbox/policy.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Sandbox Security Policy\n *\n * Defines and validates security policies for bundler execution.\n *\n * @packageDocumentation\n */\n\nimport type { SecurityPolicy, SecurityViolation } from '../types';\nimport { DEFAULT_SECURITY_POLICY } from '../types';\n\n/**\n * Patterns that indicate unsafe code.\n */\nconst UNSAFE_PATTERNS = {\n eval: /\\beval\\s*\\(/g,\n functionConstructor: /\\bnew\\s+Function\\s*\\(/g,\n dynamicImport: /\\bimport\\s*\\(/g,\n require: /\\brequire\\s*\\(/g,\n processEnv: /\\bprocess\\.env\\b/g,\n globalThis: /\\bglobalThis\\b/g,\n windowLocation: /\\bwindow\\.location\\b/g,\n documentCookie: /\\bdocument\\.cookie\\b/g,\n innerHTML: /\\.innerHTML\\s*=/g,\n outerHTML: /\\.outerHTML\\s*=/g,\n document_write: /\\bdocument\\.write\\s*\\(/g,\n};\n\n/**\n * Validate source code against a security policy.\n *\n * @param source - Source code to validate\n * @param policy - Security policy to enforce\n * @returns Array of security violations (empty if valid)\n *\n * @example\n * ```typescript\n * const violations = validateSource(code, DEFAULT_SECURITY_POLICY);\n * if (violations.length > 0) {\n * throw new Error(`Security violations: ${violations.map(v => v.message).join(', ')}`);\n * }\n * ```\n */\nexport function validateSource(source: string, policy: SecurityPolicy = DEFAULT_SECURITY_POLICY): SecurityViolation[] {\n const violations: SecurityViolation[] = [];\n\n // Check for eval usage\n if (policy.noEval !== false) {\n const evalMatches = [...source.matchAll(UNSAFE_PATTERNS.eval)];\n for (const match of evalMatches) {\n violations.push({\n type: 'eval-usage',\n message: 'eval() is not allowed for security reasons',\n location: getLocation(source, match.index ?? 0),\n value: match[0],\n });\n }\n\n const fnMatches = [...source.matchAll(UNSAFE_PATTERNS.functionConstructor)];\n for (const match of fnMatches) {\n violations.push({\n type: 'eval-usage',\n message: 'new Function() is not allowed for security reasons',\n location: getLocation(source, match.index ?? 0),\n value: match[0],\n });\n }\n }\n\n // Check for dynamic imports\n if (policy.noDynamicImports !== false) {\n const matches = [...source.matchAll(UNSAFE_PATTERNS.dynamicImport)];\n for (const match of matches) {\n violations.push({\n type: 'dynamic-import',\n message: 'Dynamic imports are not allowed for security reasons',\n location: getLocation(source, match.index ?? 0),\n value: match[0],\n });\n }\n }\n\n // Check for require usage\n if (policy.noRequire !== false) {\n const matches = [...source.matchAll(UNSAFE_PATTERNS.require)];\n for (const match of matches) {\n violations.push({\n type: 'require-usage',\n message: 'require() is not allowed for security reasons',\n location: getLocation(source, match.index ?? 0),\n value: match[0],\n });\n }\n }\n\n // Validate imports\n const importViolations = validateImports(source, policy);\n violations.push(...importViolations);\n\n return violations;\n}\n\n/**\n * Validate import statements against policy.\n *\n * @param source - Source code to check\n * @param policy - Security policy\n * @returns Array of import violations\n */\nexport function validateImports(source: string, policy: SecurityPolicy = DEFAULT_SECURITY_POLICY): SecurityViolation[] {\n const violations: SecurityViolation[] = [];\n\n // Extract import statements\n const importPattern = /import\\s+(?:(?:\\{[^}]*\\}|[\\w*]+)\\s+from\\s+)?['\"]([^'\"]+)['\"]/g;\n const imports: Array<{ module: string; index: number }> = [];\n\n let match;\n while ((match = importPattern.exec(source)) !== null) {\n imports.push({ module: match[1], index: match.index });\n }\n\n // Also check for require-style imports that might slip through\n const requirePattern = /require\\s*\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g;\n while ((match = requirePattern.exec(source)) !== null) {\n imports.push({ module: match[1], index: match.index });\n }\n\n for (const imp of imports) {\n // Check blocked imports first\n if (policy.blockedImports) {\n for (const blocked of policy.blockedImports) {\n if (blocked.test(imp.module)) {\n violations.push({\n type: 'blocked-import',\n message: `Import '${imp.module}' is blocked by security policy`,\n location: getLocation(source, imp.index),\n value: imp.module,\n });\n break;\n }\n }\n }\n\n // Check if import is in allowed list\n if (policy.allowedImports && policy.allowedImports.length > 0) {\n const isAllowed = policy.allowedImports.some((pattern) => pattern.test(imp.module));\n if (!isAllowed) {\n // Check if already reported as blocked\n const alreadyBlocked = violations.some((v) => v.type === 'blocked-import' && v.value === imp.module);\n if (!alreadyBlocked) {\n violations.push({\n type: 'disallowed-import',\n message: `Import '${imp.module}' is not in the allowed imports list`,\n location: getLocation(source, imp.index),\n value: imp.module,\n });\n }\n }\n }\n }\n\n return violations;\n}\n\n/**\n * Validate bundle size against policy.\n *\n * @param size - Bundle size in bytes\n * @param policy - Security policy\n * @returns Violation if size exceeds limit, undefined otherwise\n */\nexport function validateSize(\n size: number,\n policy: SecurityPolicy = DEFAULT_SECURITY_POLICY,\n): SecurityViolation | undefined {\n const maxSize = policy.maxBundleSize ?? DEFAULT_SECURITY_POLICY.maxBundleSize ?? 512000;\n\n if (size > maxSize) {\n return {\n type: 'size-exceeded',\n message: `Bundle size (${formatBytes(size)}) exceeds maximum allowed (${formatBytes(maxSize)})`,\n value: String(size),\n };\n }\n\n return undefined;\n}\n\n/**\n * Create a merged security policy with defaults.\n *\n * @param userPolicy - User-provided policy overrides\n * @returns Merged policy with defaults\n */\nexport function mergePolicy(userPolicy?: Partial<SecurityPolicy>): SecurityPolicy {\n if (!userPolicy) {\n return { ...DEFAULT_SECURITY_POLICY };\n }\n\n return {\n allowedImports: userPolicy.allowedImports ?? DEFAULT_SECURITY_POLICY.allowedImports,\n blockedImports: userPolicy.blockedImports ?? DEFAULT_SECURITY_POLICY.blockedImports,\n maxBundleSize: userPolicy.maxBundleSize ?? DEFAULT_SECURITY_POLICY.maxBundleSize,\n maxTransformTime: userPolicy.maxTransformTime ?? DEFAULT_SECURITY_POLICY.maxTransformTime,\n noEval: userPolicy.noEval ?? DEFAULT_SECURITY_POLICY.noEval,\n noDynamicImports: userPolicy.noDynamicImports ?? DEFAULT_SECURITY_POLICY.noDynamicImports,\n noRequire: userPolicy.noRequire ?? DEFAULT_SECURITY_POLICY.noRequire,\n allowedGlobals: userPolicy.allowedGlobals ?? DEFAULT_SECURITY_POLICY.allowedGlobals,\n };\n}\n\n/**\n * Get line and column from source index.\n */\nfunction getLocation(source: string, index: number): { line: number; column: number } {\n const lines = source.slice(0, index).split('\\n');\n return {\n line: lines.length,\n column: lines[lines.length - 1].length + 1,\n };\n}\n\n/**\n * Format bytes to human-readable string.\n */\nfunction formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n}\n\n/**\n * Security error thrown when policy is violated.\n */\nexport class SecurityError extends Error {\n readonly violations: SecurityViolation[];\n\n constructor(message: string, violations: SecurityViolation[]) {\n super(message);\n this.name = 'SecurityError';\n this.violations = violations;\n }\n}\n\n/**\n * Throw if any violations exist.\n *\n * @param violations - Array of violations to check\n * @throws SecurityError if violations exist\n */\nexport function throwOnViolations(violations: SecurityViolation[]): void {\n if (violations.length > 0) {\n const message = violations.map((v) => v.message).join('; ');\n throw new SecurityError(`Security policy violation: ${message}`, violations);\n }\n}\n"]}
@@ -1,347 +0,0 @@
1
- /**
2
- * Bundler Types
3
- *
4
- * Type definitions for the in-memory bundler system.
5
- *
6
- * @packageDocumentation
7
- */
8
- /**
9
- * Source type for bundler input.
10
- */
11
- export type SourceType = 'jsx' | 'tsx' | 'mdx' | 'html' | 'auto';
12
- /**
13
- * Output format for bundles.
14
- */
15
- export type OutputFormat = 'iife' | 'esm' | 'cjs';
16
- /**
17
- * Options for bundling source code.
18
- */
19
- export interface BundleOptions {
20
- /**
21
- * Source code to bundle.
22
- */
23
- source: string;
24
- /**
25
- * Source type (jsx, tsx, mdx, html, or auto).
26
- * @default 'auto'
27
- */
28
- sourceType?: SourceType;
29
- /**
30
- * Output format.
31
- * @default 'iife'
32
- */
33
- format?: OutputFormat;
34
- /**
35
- * Minify output code.
36
- * @default false
37
- */
38
- minify?: boolean;
39
- /**
40
- * Generate source maps.
41
- * @default false
42
- */
43
- sourceMaps?: boolean | 'inline';
44
- /**
45
- * External modules (not bundled).
46
- * @default ['react', 'react-dom']
47
- */
48
- externals?: string[];
49
- /**
50
- * JSX configuration.
51
- */
52
- jsx?: {
53
- /**
54
- * JSX runtime mode.
55
- * @default 'automatic'
56
- */
57
- runtime?: 'automatic' | 'classic';
58
- /**
59
- * Import source for automatic runtime.
60
- * @default 'react'
61
- */
62
- importSource?: string;
63
- };
64
- /**
65
- * Security policy for bundling.
66
- */
67
- security?: SecurityPolicy;
68
- /**
69
- * Target environment.
70
- * @default 'es2020'
71
- */
72
- target?: string;
73
- /**
74
- * Global variable name for IIFE format.
75
- * @default 'Widget'
76
- */
77
- globalName?: string;
78
- /**
79
- * Cache key override. If not provided, computed from source hash.
80
- */
81
- cacheKey?: string;
82
- /**
83
- * Skip cache lookup.
84
- * @default false
85
- */
86
- skipCache?: boolean;
87
- }
88
- /**
89
- * Options specifically for SSR bundling.
90
- */
91
- export interface SSRBundleOptions extends BundleOptions {
92
- /**
93
- * Context data to inject during SSR.
94
- */
95
- context?: Record<string, unknown>;
96
- /**
97
- * Component export name to render.
98
- * @default 'default'
99
- */
100
- componentExport?: string;
101
- /**
102
- * Whether to include hydration script.
103
- * @default false
104
- */
105
- includeHydration?: boolean;
106
- }
107
- /**
108
- * Result of a bundle operation.
109
- */
110
- export interface BundleResult {
111
- /**
112
- * Bundled/transformed code.
113
- */
114
- code: string;
115
- /**
116
- * Content hash of the bundle.
117
- */
118
- hash: string;
119
- /**
120
- * Whether result was served from cache.
121
- */
122
- cached: boolean;
123
- /**
124
- * Bundle size in bytes.
125
- */
126
- size: number;
127
- /**
128
- * Source map (if generated).
129
- */
130
- map?: string;
131
- /**
132
- * Performance metrics.
133
- */
134
- metrics: BundleMetrics;
135
- /**
136
- * Detected or specified source type.
137
- */
138
- sourceType: SourceType;
139
- /**
140
- * Output format used.
141
- */
142
- format: OutputFormat;
143
- }
144
- /**
145
- * Performance metrics for bundling.
146
- */
147
- export interface BundleMetrics {
148
- /**
149
- * Time to transform source (ms).
150
- */
151
- transformTime: number;
152
- /**
153
- * Time to bundle (ms).
154
- */
155
- bundleTime: number;
156
- /**
157
- * Total processing time (ms).
158
- */
159
- totalTime: number;
160
- /**
161
- * Cache lookup time (ms).
162
- */
163
- cacheTime?: number;
164
- }
165
- /**
166
- * Result of SSR rendering.
167
- */
168
- export interface SSRResult extends BundleResult {
169
- /**
170
- * Rendered HTML output.
171
- */
172
- html: string;
173
- /**
174
- * Hydration script (if included).
175
- */
176
- hydrationScript?: string;
177
- /**
178
- * SSR-specific metrics.
179
- */
180
- ssrMetrics: {
181
- /**
182
- * Time to render component (ms).
183
- */
184
- renderTime: number;
185
- };
186
- }
187
- /**
188
- * Security policy for bundler execution.
189
- */
190
- export interface SecurityPolicy {
191
- /**
192
- * Allowed import patterns (regex).
193
- * @default [/^react/, /^@frontmcp\/ui/]
194
- */
195
- allowedImports?: RegExp[];
196
- /**
197
- * Blocked import patterns (regex).
198
- * @default [/^fs/, /^net/, /^child_process/, /^os/, /^path/]
199
- */
200
- blockedImports?: RegExp[];
201
- /**
202
- * Maximum bundle size in bytes.
203
- * @default 512000 (500KB)
204
- */
205
- maxBundleSize?: number;
206
- /**
207
- * Maximum transform time in ms.
208
- * @default 5000 (5s)
209
- */
210
- maxTransformTime?: number;
211
- /**
212
- * Block eval() and Function() usage.
213
- * @default true
214
- */
215
- noEval?: boolean;
216
- /**
217
- * Block dynamic imports.
218
- * @default true
219
- */
220
- noDynamicImports?: boolean;
221
- /**
222
- * Block require() usage.
223
- * @default true
224
- */
225
- noRequire?: boolean;
226
- /**
227
- * Allowed global variables.
228
- * @default ['console', 'Math', 'JSON', 'Date', 'Array', 'Object', 'String', 'Number', 'Boolean', 'Promise', 'Map', 'Set', 'WeakMap', 'WeakSet', 'Symbol', 'Reflect', 'Proxy', 'Error', 'TypeError', 'RangeError', 'parseInt', 'parseFloat', 'isNaN', 'isFinite', 'encodeURI', 'encodeURIComponent', 'decodeURI', 'decodeURIComponent', 'setTimeout', 'clearTimeout', 'setInterval', 'clearInterval']
229
- */
230
- allowedGlobals?: string[];
231
- }
232
- /**
233
- * Security violation details.
234
- */
235
- export interface SecurityViolation {
236
- /**
237
- * Type of violation.
238
- */
239
- type: 'blocked-import' | 'disallowed-import' | 'eval-usage' | 'dynamic-import' | 'require-usage' | 'size-exceeded' | 'timeout' | 'blocked-global';
240
- /**
241
- * Human-readable message.
242
- */
243
- message: string;
244
- /**
245
- * Location in source (if available).
246
- */
247
- location?: {
248
- line: number;
249
- column: number;
250
- };
251
- /**
252
- * Offending pattern/value.
253
- */
254
- value?: string;
255
- }
256
- /**
257
- * Configuration options for creating a bundler instance.
258
- */
259
- export interface BundlerOptions {
260
- /**
261
- * Default security policy.
262
- */
263
- defaultSecurity?: SecurityPolicy;
264
- /**
265
- * Cache configuration.
266
- */
267
- cache?: {
268
- /**
269
- * Maximum number of cached entries.
270
- * @default 100
271
- */
272
- maxSize?: number;
273
- /**
274
- * TTL for cache entries in ms.
275
- * @default 300000 (5 minutes)
276
- */
277
- ttl?: number;
278
- /**
279
- * Disable caching entirely.
280
- * @default false
281
- */
282
- disabled?: boolean;
283
- };
284
- /**
285
- * Enable verbose logging.
286
- * @default false
287
- */
288
- verbose?: boolean;
289
- /**
290
- * Custom esbuild options.
291
- */
292
- esbuildOptions?: Record<string, unknown>;
293
- }
294
- /**
295
- * Cache entry for bundled results.
296
- */
297
- export interface CacheEntry {
298
- /**
299
- * Bundle result.
300
- */
301
- result: BundleResult;
302
- /**
303
- * Creation timestamp.
304
- */
305
- createdAt: number;
306
- /**
307
- * Last access timestamp.
308
- */
309
- lastAccessedAt: number;
310
- /**
311
- * Access count.
312
- */
313
- accessCount: number;
314
- }
315
- /**
316
- * Context for transform operations.
317
- */
318
- export interface TransformContext {
319
- /**
320
- * Source type being transformed.
321
- */
322
- sourceType: SourceType;
323
- /**
324
- * File path (for source maps).
325
- */
326
- filename?: string;
327
- /**
328
- * Source code.
329
- */
330
- source: string;
331
- /**
332
- * Active security policy.
333
- */
334
- security: SecurityPolicy;
335
- }
336
- /**
337
- * Default security policy.
338
- */
339
- export declare const DEFAULT_SECURITY_POLICY: SecurityPolicy;
340
- /**
341
- * Default bundle options.
342
- */
343
- export declare const DEFAULT_BUNDLE_OPTIONS: Required<Pick<BundleOptions, 'sourceType' | 'format' | 'minify' | 'sourceMaps' | 'externals' | 'jsx' | 'target' | 'globalName' | 'skipCache'>>;
344
- /**
345
- * Default bundler options.
346
- */
347
- export declare const DEFAULT_BUNDLER_OPTIONS: Required<BundlerOptions>;