skybridge 0.0.0-dev.d6cc9be → 0.0.0-dev.d6df865

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 (327) hide show
  1. package/README.md +153 -0
  2. package/bin/run.js +0 -4
  3. package/dist/cli/detect-port.d.ts +18 -0
  4. package/dist/cli/detect-port.js +61 -0
  5. package/dist/cli/detect-port.js.map +1 -0
  6. package/dist/cli/header.js +1 -1
  7. package/dist/cli/header.js.map +1 -1
  8. package/dist/cli/run-command.d.ts +1 -1
  9. package/dist/cli/run-command.js +4 -3
  10. package/dist/cli/run-command.js.map +1 -1
  11. package/dist/cli/telemetry.d.ts +7 -0
  12. package/dist/cli/telemetry.js +123 -0
  13. package/dist/cli/telemetry.js.map +1 -0
  14. package/dist/cli/tunnel-control-server.d.ts +9 -0
  15. package/dist/cli/tunnel-control-server.js +31 -0
  16. package/dist/cli/tunnel-control-server.js.map +1 -0
  17. package/dist/cli/tunnel-control-server.test.js +39 -0
  18. package/dist/cli/tunnel-control-server.test.js.map +1 -0
  19. package/dist/cli/tunnel-handler.d.ts +3 -0
  20. package/dist/cli/tunnel-handler.js +48 -0
  21. package/dist/cli/tunnel-handler.js.map +1 -0
  22. package/dist/cli/tunnel-handler.test.js +105 -0
  23. package/dist/cli/tunnel-handler.test.js.map +1 -0
  24. package/dist/cli/tunnel.d.ts +57 -0
  25. package/dist/cli/tunnel.js +154 -0
  26. package/dist/cli/tunnel.js.map +1 -0
  27. package/dist/cli/tunnel.test.js +190 -0
  28. package/dist/cli/tunnel.test.js.map +1 -0
  29. package/dist/cli/types.d.ts +5 -0
  30. package/dist/cli/types.js +2 -0
  31. package/dist/cli/types.js.map +1 -0
  32. package/dist/cli/use-execute-steps.d.ts +3 -2
  33. package/dist/cli/use-execute-steps.js +5 -4
  34. package/dist/cli/use-execute-steps.js.map +1 -1
  35. package/dist/cli/use-messages.d.ts +3 -0
  36. package/dist/cli/use-messages.js +11 -0
  37. package/dist/cli/use-messages.js.map +1 -0
  38. package/dist/cli/use-nodemon.d.ts +2 -0
  39. package/dist/cli/use-nodemon.js +64 -0
  40. package/dist/cli/use-nodemon.js.map +1 -0
  41. package/dist/cli/use-open-browser.d.ts +1 -0
  42. package/dist/cli/use-open-browser.js +44 -0
  43. package/dist/cli/use-open-browser.js.map +1 -0
  44. package/dist/cli/use-tunnel.d.ts +14 -0
  45. package/dist/cli/use-tunnel.js +131 -0
  46. package/dist/cli/use-tunnel.js.map +1 -0
  47. package/dist/cli/use-typescript-check.d.ts +9 -0
  48. package/dist/cli/use-typescript-check.js +94 -0
  49. package/dist/cli/use-typescript-check.js.map +1 -0
  50. package/dist/commands/build.js +64 -6
  51. package/dist/commands/build.js.map +1 -1
  52. package/dist/commands/dev.d.ts +6 -1
  53. package/dist/commands/dev.js +70 -10
  54. package/dist/commands/dev.js.map +1 -1
  55. package/dist/commands/start.d.ts +3 -1
  56. package/dist/commands/start.js +32 -16
  57. package/dist/commands/start.js.map +1 -1
  58. package/dist/commands/telemetry/disable.d.ts +5 -0
  59. package/dist/commands/telemetry/disable.js +14 -0
  60. package/dist/commands/telemetry/disable.js.map +1 -0
  61. package/dist/commands/telemetry/enable.d.ts +5 -0
  62. package/dist/commands/telemetry/enable.js +14 -0
  63. package/dist/commands/telemetry/enable.js.map +1 -0
  64. package/dist/commands/telemetry/status.d.ts +5 -0
  65. package/dist/commands/telemetry/status.js +14 -0
  66. package/dist/commands/telemetry/status.js.map +1 -0
  67. package/dist/server/asset-base-url-transform-plugin.d.ts +10 -0
  68. package/dist/server/asset-base-url-transform-plugin.js +33 -0
  69. package/dist/server/asset-base-url-transform-plugin.js.map +1 -0
  70. package/dist/server/asset-base-url-transform-plugin.test.d.ts +1 -0
  71. package/dist/server/asset-base-url-transform-plugin.test.js +84 -0
  72. package/dist/server/asset-base-url-transform-plugin.test.js.map +1 -0
  73. package/dist/server/content-helpers.d.ts +27 -0
  74. package/dist/server/content-helpers.js +46 -0
  75. package/dist/server/content-helpers.js.map +1 -0
  76. package/dist/server/content-helpers.test.d.ts +1 -0
  77. package/dist/server/content-helpers.test.js +70 -0
  78. package/dist/server/content-helpers.test.js.map +1 -0
  79. package/dist/server/express.d.ts +15 -0
  80. package/dist/server/express.js +103 -0
  81. package/dist/server/express.js.map +1 -0
  82. package/dist/server/express.test.d.ts +1 -0
  83. package/dist/server/express.test.js +348 -0
  84. package/dist/server/express.test.js.map +1 -0
  85. package/dist/server/index.d.ts +5 -3
  86. package/dist/server/index.js +3 -2
  87. package/dist/server/index.js.map +1 -1
  88. package/dist/server/inferUtilityTypes.d.ts +6 -6
  89. package/dist/server/metric.d.ts +14 -0
  90. package/dist/server/metric.js +62 -0
  91. package/dist/server/metric.js.map +1 -0
  92. package/dist/server/middleware.d.ts +124 -0
  93. package/dist/server/middleware.js +93 -0
  94. package/dist/server/middleware.js.map +1 -0
  95. package/dist/server/middleware.test-d.d.ts +1 -0
  96. package/dist/server/middleware.test-d.js +75 -0
  97. package/dist/server/middleware.test-d.js.map +1 -0
  98. package/dist/server/middleware.test.d.ts +1 -0
  99. package/dist/server/middleware.test.js +493 -0
  100. package/dist/server/middleware.test.js.map +1 -0
  101. package/dist/server/server.d.ts +149 -65
  102. package/dist/server/server.js +413 -85
  103. package/dist/server/server.js.map +1 -1
  104. package/dist/server/templateHelper.d.ts +5 -7
  105. package/dist/server/templateHelper.js +3 -22
  106. package/dist/server/templateHelper.js.map +1 -1
  107. package/dist/server/templates.generated.d.ts +4 -0
  108. package/dist/server/templates.generated.js +47 -0
  109. package/dist/server/templates.generated.js.map +1 -0
  110. package/dist/server/tunnel-proxy-router.d.ts +7 -0
  111. package/dist/server/tunnel-proxy-router.js +110 -0
  112. package/dist/server/tunnel-proxy-router.js.map +1 -0
  113. package/dist/server/tunnel-proxy-router.test.d.ts +1 -0
  114. package/dist/server/tunnel-proxy-router.test.js +229 -0
  115. package/dist/server/tunnel-proxy-router.test.js.map +1 -0
  116. package/dist/server/viewsDevServer.d.ts +14 -0
  117. package/dist/server/viewsDevServer.js +45 -0
  118. package/dist/server/viewsDevServer.js.map +1 -0
  119. package/dist/test/utils.d.ts +13 -21
  120. package/dist/test/utils.js +42 -37
  121. package/dist/test/utils.js.map +1 -1
  122. package/dist/test/view.test.d.ts +1 -0
  123. package/dist/test/view.test.js +523 -0
  124. package/dist/test/view.test.js.map +1 -0
  125. package/dist/version.d.ts +1 -0
  126. package/dist/version.js +3 -0
  127. package/dist/version.js.map +1 -0
  128. package/dist/web/bridges/apps-sdk/adaptor.d.ts +24 -0
  129. package/dist/web/bridges/apps-sdk/adaptor.js +93 -0
  130. package/dist/web/bridges/apps-sdk/adaptor.js.map +1 -0
  131. package/dist/web/bridges/apps-sdk/bridge.d.ts +10 -0
  132. package/dist/web/bridges/{apps-sdk-bridge.js → apps-sdk/bridge.js} +2 -2
  133. package/dist/web/bridges/apps-sdk/bridge.js.map +1 -0
  134. package/dist/web/bridges/apps-sdk/index.d.ts +5 -0
  135. package/dist/web/bridges/apps-sdk/index.js +5 -0
  136. package/dist/web/bridges/apps-sdk/index.js.map +1 -0
  137. package/dist/web/bridges/apps-sdk/types.d.ts +126 -0
  138. package/dist/web/bridges/apps-sdk/types.js +10 -0
  139. package/dist/web/bridges/apps-sdk/types.js.map +1 -0
  140. package/dist/web/bridges/apps-sdk/use-apps-sdk-context.d.ts +2 -0
  141. package/dist/web/bridges/{hooks/use-apps-sdk-bridge.js → apps-sdk/use-apps-sdk-context.js} +3 -3
  142. package/dist/web/bridges/apps-sdk/use-apps-sdk-context.js.map +1 -0
  143. package/dist/web/bridges/get-adaptor.d.ts +2 -0
  144. package/dist/web/bridges/get-adaptor.js +8 -0
  145. package/dist/web/bridges/get-adaptor.js.map +1 -0
  146. package/dist/web/bridges/index.d.ts +5 -4
  147. package/dist/web/bridges/index.js +5 -4
  148. package/dist/web/bridges/index.js.map +1 -1
  149. package/dist/web/bridges/mcp-app/adaptor.d.ts +48 -0
  150. package/dist/web/bridges/mcp-app/adaptor.js +268 -0
  151. package/dist/web/bridges/mcp-app/adaptor.js.map +1 -0
  152. package/dist/web/bridges/mcp-app/bridge.d.ts +26 -0
  153. package/dist/web/bridges/mcp-app/bridge.js +102 -0
  154. package/dist/web/bridges/mcp-app/bridge.js.map +1 -0
  155. package/dist/web/bridges/mcp-app/index.d.ts +4 -0
  156. package/dist/web/bridges/mcp-app/index.js +4 -0
  157. package/dist/web/bridges/mcp-app/index.js.map +1 -0
  158. package/dist/web/bridges/mcp-app/types.d.ts +8 -0
  159. package/dist/web/bridges/mcp-app/types.js +2 -0
  160. package/dist/web/bridges/mcp-app/types.js.map +1 -0
  161. package/dist/web/bridges/mcp-app/use-mcp-app-context.d.ts +7 -0
  162. package/dist/web/bridges/mcp-app/use-mcp-app-context.js +7 -0
  163. package/dist/web/bridges/mcp-app/use-mcp-app-context.js.map +1 -0
  164. package/dist/web/bridges/mcp-app/use-mcp-app-context.test.d.ts +1 -0
  165. package/dist/web/bridges/mcp-app/use-mcp-app-context.test.js +26 -0
  166. package/dist/web/bridges/mcp-app/use-mcp-app-context.test.js.map +1 -0
  167. package/dist/web/bridges/types.d.ts +79 -27
  168. package/dist/web/bridges/use-host-context.d.ts +2 -0
  169. package/dist/web/bridges/use-host-context.js +8 -0
  170. package/dist/web/bridges/use-host-context.js.map +1 -0
  171. package/dist/web/components/modal-provider.d.ts +4 -0
  172. package/dist/web/components/modal-provider.js +45 -0
  173. package/dist/web/components/modal-provider.js.map +1 -0
  174. package/dist/web/create-store.js +21 -8
  175. package/dist/web/create-store.js.map +1 -1
  176. package/dist/web/create-store.test.js +112 -53
  177. package/dist/web/create-store.test.js.map +1 -1
  178. package/dist/web/data-llm.d.ts +1 -1
  179. package/dist/web/data-llm.js +7 -5
  180. package/dist/web/data-llm.js.map +1 -1
  181. package/dist/web/data-llm.test.js +131 -65
  182. package/dist/web/data-llm.test.js.map +1 -1
  183. package/dist/web/generate-helpers.d.ts +22 -19
  184. package/dist/web/generate-helpers.js +20 -18
  185. package/dist/web/generate-helpers.js.map +1 -1
  186. package/dist/web/generate-helpers.test-d.js +26 -26
  187. package/dist/web/generate-helpers.test-d.js.map +1 -1
  188. package/dist/web/helpers/state.d.ts +2 -2
  189. package/dist/web/helpers/state.js +17 -12
  190. package/dist/web/helpers/state.js.map +1 -1
  191. package/dist/web/helpers/state.test.js +9 -9
  192. package/dist/web/helpers/state.test.js.map +1 -1
  193. package/dist/web/hooks/index.d.ts +3 -3
  194. package/dist/web/hooks/index.js +2 -2
  195. package/dist/web/hooks/index.js.map +1 -1
  196. package/dist/web/hooks/test/utils.d.ts +8 -2
  197. package/dist/web/hooks/test/utils.js +37 -13
  198. package/dist/web/hooks/test/utils.js.map +1 -1
  199. package/dist/web/hooks/use-call-tool.d.ts +3 -2
  200. package/dist/web/hooks/use-call-tool.js +2 -2
  201. package/dist/web/hooks/use-call-tool.js.map +1 -1
  202. package/dist/web/hooks/use-call-tool.test-d.js +1 -1
  203. package/dist/web/hooks/use-call-tool.test-d.js.map +1 -1
  204. package/dist/web/hooks/use-call-tool.test.js +3 -3
  205. package/dist/web/hooks/use-call-tool.test.js.map +1 -1
  206. package/dist/web/hooks/use-display-mode.d.ts +3 -3
  207. package/dist/web/hooks/use-display-mode.js +3 -4
  208. package/dist/web/hooks/use-display-mode.js.map +1 -1
  209. package/dist/web/hooks/use-display-mode.test-d.d.ts +1 -0
  210. package/dist/web/hooks/use-display-mode.test-d.js +8 -0
  211. package/dist/web/hooks/use-display-mode.test-d.js.map +1 -0
  212. package/dist/web/hooks/use-files.d.ts +3 -6
  213. package/dist/web/hooks/use-files.js +5 -2
  214. package/dist/web/hooks/use-files.js.map +1 -1
  215. package/dist/web/hooks/use-files.test.js +28 -3
  216. package/dist/web/hooks/use-files.test.js.map +1 -1
  217. package/dist/web/hooks/use-layout.d.ts +2 -2
  218. package/dist/web/hooks/use-layout.js +4 -4
  219. package/dist/web/hooks/use-layout.js.map +1 -1
  220. package/dist/web/hooks/use-layout.test.js +7 -6
  221. package/dist/web/hooks/use-layout.test.js.map +1 -1
  222. package/dist/web/hooks/use-open-external.d.ts +3 -1
  223. package/dist/web/hooks/use-open-external.js +3 -3
  224. package/dist/web/hooks/use-open-external.js.map +1 -1
  225. package/dist/web/hooks/use-open-external.test.js +27 -12
  226. package/dist/web/hooks/use-open-external.test.js.map +1 -1
  227. package/dist/web/hooks/use-request-modal.d.ts +3 -3
  228. package/dist/web/hooks/use-request-modal.js +10 -8
  229. package/dist/web/hooks/use-request-modal.js.map +1 -1
  230. package/dist/web/hooks/use-request-modal.test.js +5 -1
  231. package/dist/web/hooks/use-request-modal.test.js.map +1 -1
  232. package/dist/web/hooks/use-send-follow-up-message.js +2 -2
  233. package/dist/web/hooks/use-set-open-in-app-url.d.ts +1 -0
  234. package/dist/web/hooks/use-set-open-in-app-url.js +8 -0
  235. package/dist/web/hooks/use-set-open-in-app-url.js.map +1 -0
  236. package/dist/web/hooks/use-set-open-in-app-url.test.d.ts +1 -0
  237. package/dist/web/hooks/use-set-open-in-app-url.test.js +43 -0
  238. package/dist/web/hooks/use-set-open-in-app-url.test.js.map +1 -0
  239. package/dist/web/hooks/use-tool-info.js +4 -4
  240. package/dist/web/hooks/use-tool-info.js.map +1 -1
  241. package/dist/web/hooks/use-tool-info.test.js +5 -5
  242. package/dist/web/hooks/use-tool-info.test.js.map +1 -1
  243. package/dist/web/hooks/use-user.d.ts +1 -1
  244. package/dist/web/hooks/use-user.js +20 -4
  245. package/dist/web/hooks/use-user.js.map +1 -1
  246. package/dist/web/hooks/use-user.test.js +33 -4
  247. package/dist/web/hooks/use-user.test.js.map +1 -1
  248. package/dist/web/hooks/use-view-state.d.ts +4 -0
  249. package/dist/web/hooks/use-view-state.js +32 -0
  250. package/dist/web/hooks/use-view-state.js.map +1 -0
  251. package/dist/web/hooks/use-view-state.test.d.ts +1 -0
  252. package/dist/web/hooks/use-view-state.test.js +177 -0
  253. package/dist/web/hooks/use-view-state.test.js.map +1 -0
  254. package/dist/web/index.d.ts +1 -2
  255. package/dist/web/index.js +1 -2
  256. package/dist/web/index.js.map +1 -1
  257. package/dist/web/mount-view.d.ts +1 -0
  258. package/dist/web/{mount-widget.js → mount-view.js} +11 -3
  259. package/dist/web/mount-view.js.map +1 -0
  260. package/dist/web/plugin/plugin.d.ts +4 -1
  261. package/dist/web/plugin/plugin.js +135 -18
  262. package/dist/web/plugin/plugin.js.map +1 -1
  263. package/dist/web/plugin/scan-views.d.ts +16 -0
  264. package/dist/web/plugin/scan-views.js +88 -0
  265. package/dist/web/plugin/scan-views.js.map +1 -0
  266. package/dist/web/plugin/scan-views.test.d.ts +1 -0
  267. package/dist/web/plugin/scan-views.test.js +99 -0
  268. package/dist/web/plugin/scan-views.test.js.map +1 -0
  269. package/dist/web/plugin/transform-data-llm.js +1 -1
  270. package/dist/web/plugin/transform-data-llm.js.map +1 -1
  271. package/dist/web/plugin/validate-view.d.ts +1 -0
  272. package/dist/web/plugin/validate-view.js +9 -0
  273. package/dist/web/plugin/validate-view.js.map +1 -0
  274. package/dist/web/plugin/validate-view.test.d.ts +1 -0
  275. package/dist/web/plugin/validate-view.test.js +24 -0
  276. package/dist/web/plugin/validate-view.test.js.map +1 -0
  277. package/dist/web/proxy.js +0 -1
  278. package/dist/web/proxy.js.map +1 -1
  279. package/dist/web/types.d.ts +0 -133
  280. package/dist/web/types.js +0 -9
  281. package/dist/web/types.js.map +1 -1
  282. package/package.json +50 -31
  283. package/tsconfig.base.json +33 -0
  284. package/dist/server/templates/development.hbs +0 -66
  285. package/dist/server/templates/production.hbs +0 -7
  286. package/dist/server/widgetsDevServer.d.ts +0 -12
  287. package/dist/server/widgetsDevServer.js +0 -47
  288. package/dist/server/widgetsDevServer.js.map +0 -1
  289. package/dist/test/widget.test.js +0 -234
  290. package/dist/test/widget.test.js.map +0 -1
  291. package/dist/web/bridges/adaptors/apps-sdk-adaptor.d.ts +0 -13
  292. package/dist/web/bridges/adaptors/apps-sdk-adaptor.js +0 -33
  293. package/dist/web/bridges/adaptors/apps-sdk-adaptor.js.map +0 -1
  294. package/dist/web/bridges/adaptors/mcp-app-adaptor.d.ts +0 -16
  295. package/dist/web/bridges/adaptors/mcp-app-adaptor.js +0 -120
  296. package/dist/web/bridges/adaptors/mcp-app-adaptor.js.map +0 -1
  297. package/dist/web/bridges/apps-sdk-bridge.d.ts +0 -10
  298. package/dist/web/bridges/apps-sdk-bridge.js.map +0 -1
  299. package/dist/web/bridges/hooks/use-adaptor.d.ts +0 -2
  300. package/dist/web/bridges/hooks/use-adaptor.js +0 -8
  301. package/dist/web/bridges/hooks/use-adaptor.js.map +0 -1
  302. package/dist/web/bridges/hooks/use-apps-sdk-bridge.d.ts +0 -2
  303. package/dist/web/bridges/hooks/use-apps-sdk-bridge.js.map +0 -1
  304. package/dist/web/bridges/hooks/use-bridge.d.ts +0 -2
  305. package/dist/web/bridges/hooks/use-bridge.js +0 -8
  306. package/dist/web/bridges/hooks/use-bridge.js.map +0 -1
  307. package/dist/web/bridges/hooks/use-mcp-app-bridge.d.ts +0 -5
  308. package/dist/web/bridges/hooks/use-mcp-app-bridge.js +0 -7
  309. package/dist/web/bridges/hooks/use-mcp-app-bridge.js.map +0 -1
  310. package/dist/web/bridges/hooks/use-mcp-app-bridge.test.js +0 -62
  311. package/dist/web/bridges/hooks/use-mcp-app-bridge.test.js.map +0 -1
  312. package/dist/web/bridges/mcp-app-bridge.d.ts +0 -49
  313. package/dist/web/bridges/mcp-app-bridge.js +0 -256
  314. package/dist/web/bridges/mcp-app-bridge.js.map +0 -1
  315. package/dist/web/hooks/use-openai-global.d.ts +0 -3
  316. package/dist/web/hooks/use-openai-global.js +0 -6
  317. package/dist/web/hooks/use-openai-global.js.map +0 -1
  318. package/dist/web/hooks/use-widget-state.d.ts +0 -4
  319. package/dist/web/hooks/use-widget-state.js +0 -32
  320. package/dist/web/hooks/use-widget-state.js.map +0 -1
  321. package/dist/web/hooks/use-widget-state.test.js +0 -61
  322. package/dist/web/hooks/use-widget-state.test.js.map +0 -1
  323. package/dist/web/mount-widget.d.ts +0 -1
  324. package/dist/web/mount-widget.js.map +0 -1
  325. /package/dist/{test/widget.test.d.ts → cli/tunnel-control-server.test.d.ts} +0 -0
  326. /package/dist/{web/bridges/hooks/use-mcp-app-bridge.test.d.ts → cli/tunnel-handler.test.d.ts} +0 -0
  327. /package/dist/{web/hooks/use-widget-state.test.d.ts → cli/tunnel.test.d.ts} +0 -0
@@ -1,7 +1,13 @@
1
+ import crypto from "node:crypto";
1
2
  import { readFileSync } from "node:fs";
3
+ import http from "node:http";
2
4
  import path from "node:path";
3
- import { McpServer as McpServerBase, } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import { Server as SdkServer, } from "@modelcontextprotocol/sdk/server/index.js";
6
+ import { McpServer as McpServerBase } from "@modelcontextprotocol/sdk/server/mcp.js";
4
7
  import { mergeWith, union } from "es-toolkit";
8
+ import { createApp } from "./express.js";
9
+ import { createMiddlewareEntry } from "./metric.js";
10
+ import { buildMiddlewareChain, getHandlerMaps } from "./middleware.js";
5
11
  import { templateHelper } from "./templateHelper.js";
6
12
  const mergeWithUnion = (target, source) => {
7
13
  return mergeWith(target, source, (targetVal, sourceVal) => {
@@ -10,104 +16,357 @@ const mergeWithUnion = (target, source) => {
10
16
  }
11
17
  });
12
18
  };
13
- export class McpServer extends McpServerBase {
14
- registerWidget(name, resourceConfig, toolConfig, toolCallback) {
15
- const userMeta = resourceConfig._meta;
16
- const appsSdkResourceConfig = {
17
- hostType: "apps-sdk",
18
- uri: `ui://widgets/apps-sdk/${name}.html`,
19
- mimeType: "text/html+skybridge",
20
- buildContentMeta: ({ resourceDomains, connectDomains, domain }) => {
21
- const userUi = userMeta?.ui;
22
- const userCsp = userUi?.csp;
23
- const defaults = {
24
- "openai/widgetCSP": {
25
- resource_domains: resourceDomains,
26
- connect_domains: connectDomains,
27
- },
28
- "openai/widgetDomain": domain,
29
- "openai/widgetDescription": toolConfig.description,
30
- };
31
- const fromUi = {
32
- "openai/widgetCSP": {
33
- resource_domains: userCsp?.resourceDomains,
34
- connect_domains: userCsp?.connectDomains,
35
- frame_domains: userCsp?.frameDomains,
36
- redirect_domains: userCsp?.redirectDomains,
37
- },
38
- "openai/widgetDomain": userUi?.domain,
39
- "openai/widgetPrefersBorder": userUi?.prefersBorder,
40
- };
41
- const directOpenaiKeys = Object.fromEntries(Object.entries(userMeta ?? {}).filter(([key]) => key.startsWith("openai/")));
42
- return mergeWithUnion(mergeWithUnion(defaults, fromUi), directOpenaiKeys);
43
- },
44
- };
45
- const extAppsResourceConfig = {
46
- hostType: "mcp-app",
47
- uri: `ui://widgets/ext-apps/${name}.html`,
48
- mimeType: "text/html;profile=mcp-app",
49
- buildContentMeta: ({ resourceDomains, connectDomains, domain }) => {
50
- const defaults = {
51
- ui: {
52
- csp: {
53
- resourceDomains,
54
- connectDomains,
55
- },
56
- domain,
57
- },
58
- };
59
- return mergeWithUnion(defaults, { ui: userMeta?.ui });
60
- },
19
+ export function normalizeContent(content) {
20
+ if (content === undefined) {
21
+ return [];
22
+ }
23
+ if (typeof content === "string") {
24
+ return [{ type: "text", text: content }];
25
+ }
26
+ if (Array.isArray(content)) {
27
+ return content;
28
+ }
29
+ return [content];
30
+ }
31
+ const McpServerBaseOmitted = McpServerBase;
32
+ export class McpServer extends McpServerBaseOmitted {
33
+ express;
34
+ customMiddleware = [];
35
+ customErrorMiddleware = [];
36
+ mcpMiddlewareEntries = [];
37
+ mcpMiddlewareApplied = false;
38
+ claimedViews = new Map();
39
+ viteManifest = null;
40
+ serverInfo;
41
+ serverOptions;
42
+ constructor(serverInfo, options) {
43
+ super(serverInfo, options);
44
+ this.serverInfo = serverInfo;
45
+ this.serverOptions = options;
46
+ }
47
+ use(pathOrHandler, ...handlers) {
48
+ if (typeof pathOrHandler === "string") {
49
+ this.customMiddleware.push({
50
+ path: pathOrHandler,
51
+ handlers,
52
+ });
53
+ }
54
+ else {
55
+ this.customMiddleware.push({
56
+ handlers: [pathOrHandler, ...handlers],
57
+ });
58
+ }
59
+ return this;
60
+ }
61
+ useOnError(pathOrHandler, ...handlers) {
62
+ if (typeof pathOrHandler === "string") {
63
+ this.customErrorMiddleware.push({ path: pathOrHandler, handlers });
64
+ }
65
+ else {
66
+ this.customErrorMiddleware.push({
67
+ handlers: [pathOrHandler, ...handlers],
68
+ });
69
+ }
70
+ return this;
71
+ }
72
+ mcpMiddleware(filterOrHandler,
73
+ // biome-ignore lint/suspicious/noExplicitAny: overloads narrow the handler type at call sites; implementation must accept all variants
74
+ maybeHandler) {
75
+ if (this.mcpMiddlewareApplied) {
76
+ throw new Error("Cannot register MCP middleware after run() or connect() has been called");
77
+ }
78
+ const handler = maybeHandler;
79
+ if (typeof filterOrHandler === "function") {
80
+ this.mcpMiddlewareEntries.push({
81
+ filter: null,
82
+ handler: filterOrHandler,
83
+ });
84
+ }
85
+ else if (handler) {
86
+ this.mcpMiddlewareEntries.push({
87
+ filter: filterOrHandler,
88
+ handler,
89
+ });
90
+ }
91
+ else {
92
+ throw new Error("mcpMiddleware requires a handler function when a filter is provided");
93
+ }
94
+ return this;
95
+ }
96
+ applyMcpMiddleware() {
97
+ if (this.mcpMiddlewareApplied) {
98
+ return;
99
+ }
100
+ this.mcpMiddlewareApplied = true;
101
+ const monitoringEntry = createMiddlewareEntry();
102
+ const entries = monitoringEntry
103
+ ? [monitoringEntry, ...this.mcpMiddlewareEntries]
104
+ : this.mcpMiddlewareEntries;
105
+ if (entries.length === 0) {
106
+ return;
107
+ }
108
+ const { requestHandlers, notificationHandlers } = getHandlerMaps(this.server);
109
+ const instrumentMap = (map, isNotification) => {
110
+ for (const [method, handler] of map) {
111
+ map.set(method, buildMiddlewareChain(method, isNotification, handler, entries));
112
+ }
113
+ const originalSet = map.set.bind(map);
114
+ map.set = (method, handler) => originalSet(method, buildMiddlewareChain(method, isNotification, handler, entries));
61
115
  };
62
- [appsSdkResourceConfig, extAppsResourceConfig].forEach((widgetConfig) => {
63
- this.registerWidgetResource({
64
- name,
65
- widgetConfig,
66
- resourceConfig,
116
+ instrumentMap(requestHandlers, false);
117
+ instrumentMap(notificationHandlers, true);
118
+ }
119
+ async connect(transport) {
120
+ this.applyMcpMiddleware();
121
+ return McpServerBase.prototype.connect.call(this, transport);
122
+ }
123
+ /**
124
+ * Per-request stateless connect. The SDK's `Protocol` only allows one
125
+ * transport per instance, so we can't reuse this `McpServer` across
126
+ * concurrent requests. The SDK's idiomatic fix is a `() => McpServer`
127
+ * factory, but that would break Skybridge's singleton API — so instead
128
+ * we build a fresh underlying `Server` per request and share the main
129
+ * server's handler maps by reference. The cast is unavoidable: there's
130
+ * no public API to inject handler maps. `getHandlerMaps` validates the
131
+ * read side and fails fast on SDK field renames.
132
+ */
133
+ async connectStatelessTransport(transport) {
134
+ this.applyMcpMiddleware();
135
+ const { requestHandlers, notificationHandlers } = getHandlerMaps(this.server);
136
+ const fresh = new SdkServer(this.serverInfo, this.serverOptions);
137
+ const target = fresh;
138
+ target._requestHandlers = requestHandlers;
139
+ target._notificationHandlers = notificationHandlers;
140
+ await fresh.connect(transport);
141
+ }
142
+ async run() {
143
+ this.applyMcpMiddleware();
144
+ const httpServer = http.createServer();
145
+ if (!this.express) {
146
+ this.express = await createApp({
147
+ mcpServer: this,
148
+ httpServer,
149
+ customMiddleware: this.customMiddleware,
150
+ errorMiddleware: this.customErrorMiddleware,
151
+ });
152
+ }
153
+ httpServer.on("request", this.express);
154
+ const port = parseInt(process.env.__PORT ?? "3000", 10);
155
+ await new Promise((resolve, reject) => {
156
+ httpServer.on("error", (error) => {
157
+ console.error("Failed to start server:", error);
158
+ reject(error);
159
+ });
160
+ httpServer.listen(port, () => {
161
+ resolve();
67
162
  });
68
163
  });
69
- const toolMeta = {
70
- ...toolConfig._meta,
71
- "openai/outputTemplate": appsSdkResourceConfig.uri,
72
- ui: {
73
- resourceUri: extAppsResourceConfig.uri,
74
- },
164
+ // On workerd, bridge the Node http server to a Workers fetch handler.
165
+ // The specifier is held in a variable to sidestep tsc's module resolution
166
+ // (`cloudflare:node` only exists under wrangler/workerd).
167
+ if (typeof navigator !== "undefined" &&
168
+ navigator.userAgent === "Cloudflare-Workers") {
169
+ const cloudflareNode = "cloudflare:node";
170
+ const { httpServerHandler } = await import(cloudflareNode);
171
+ return httpServerHandler({ port });
172
+ }
173
+ const shutdown = () => {
174
+ // Drop both handlers so a second signal falls through to Node's default
175
+ // (force-quit on a second Ctrl+C while drain is hanging).
176
+ process.off("SIGTERM", shutdown);
177
+ process.off("SIGINT", shutdown);
178
+ httpServer.close(() => process.exit(0));
179
+ // Force exit if connections don't drain in time so the port is still
180
+ // released promptly (e.g. for nodemon restarts).
181
+ setTimeout(() => process.exit(0), 3000).unref();
75
182
  };
76
- this.registerTool(name, {
77
- ...toolConfig,
78
- _meta: toolMeta,
79
- }, toolCallback);
80
- return this;
183
+ process.on("SIGTERM", shutdown);
184
+ process.on("SIGINT", shutdown);
185
+ return undefined;
81
186
  }
82
- registerTool(name, config, cb) {
83
- super.registerTool(name, config, cb);
84
- return this;
187
+ enforceOneToolPerView(component, toolName) {
188
+ const existingTool = this.claimedViews.get(component);
189
+ if (existingTool) {
190
+ throw new Error(`skybridge: view "${component}" is already used by tool "${existingTool}". Tool "${toolName}" cannot also reference it — each view backs exactly one tool.`);
191
+ }
192
+ this.claimedViews.set(component, toolName);
193
+ }
194
+ registerViewResources(toolName, view, toolMeta) {
195
+ const hosts = view.hosts ?? ["apps-sdk", "mcp-app"];
196
+ // Append a content-derived version param so hosts (e.g. ChatGPT) bust
197
+ // their cache when the bundle changes, but keep the URI stable across
198
+ // `tools/list` calls when the bundle hasn't changed.
199
+ const versionParam = this.computeViewVersionParam(view.component);
200
+ if (hosts.includes("apps-sdk")) {
201
+ const viewResource = {
202
+ hostType: "apps-sdk",
203
+ uri: `ui://views/apps-sdk/${view.component}.html${versionParam}`,
204
+ mimeType: "text/html+skybridge",
205
+ buildContentMeta: ({ resourceDomains, connectDomains, domain }, overrides) => {
206
+ const defaults = {
207
+ "openai/widgetCSP": {
208
+ resource_domains: resourceDomains,
209
+ connect_domains: connectDomains,
210
+ },
211
+ "openai/widgetDomain": domain,
212
+ "openai/widgetDescription": view.description,
213
+ };
214
+ const fromView = {
215
+ "openai/widgetCSP": {
216
+ resource_domains: view.csp?.resourceDomains,
217
+ connect_domains: view.csp?.connectDomains,
218
+ frame_domains: view.csp?.frameDomains,
219
+ redirect_domains: view.csp?.redirectDomains,
220
+ },
221
+ "openai/widgetDomain": view.domain,
222
+ "openai/widgetPrefersBorder": view.prefersBorder,
223
+ };
224
+ const base = mergeWithUnion(mergeWithUnion(defaults, fromView), {
225
+ "openai/widgetDomain": overrides.domain,
226
+ });
227
+ if (view._meta) {
228
+ return { ...base, ...view._meta };
229
+ }
230
+ return base;
231
+ },
232
+ };
233
+ this.registerViewResource({
234
+ name: toolName,
235
+ viewResource,
236
+ view,
237
+ });
238
+ toolMeta["openai/outputTemplate"] = viewResource.uri;
239
+ }
240
+ if (hosts.includes("mcp-app")) {
241
+ const viewResource = {
242
+ hostType: "mcp-app",
243
+ uri: `ui://views/ext-apps/${view.component}.html${versionParam}`,
244
+ mimeType: "text/html;profile=mcp-app",
245
+ buildContentMeta: ({ resourceDomains, connectDomains, domain, baseUriDomains }, overrides) => {
246
+ const defaults = {
247
+ ui: {
248
+ csp: {
249
+ resourceDomains,
250
+ connectDomains,
251
+ baseUriDomains,
252
+ },
253
+ domain,
254
+ },
255
+ };
256
+ const fromView = {
257
+ ui: {
258
+ ...(view.description && { description: view.description }),
259
+ ...(view.prefersBorder !== undefined && {
260
+ prefersBorder: view.prefersBorder,
261
+ }),
262
+ ...(view.domain && { domain: view.domain }),
263
+ csp: {
264
+ ...(view.csp?.resourceDomains && {
265
+ resourceDomains: view.csp.resourceDomains,
266
+ }),
267
+ ...(view.csp?.connectDomains && {
268
+ connectDomains: view.csp.connectDomains,
269
+ }),
270
+ ...(view.csp?.frameDomains && {
271
+ frameDomains: view.csp.frameDomains,
272
+ }),
273
+ ...(view.csp?.baseUriDomains && {
274
+ baseUriDomains: view.csp.baseUriDomains,
275
+ }),
276
+ ...(view.csp?.redirectDomains && {
277
+ redirectDomains: view.csp.redirectDomains,
278
+ }),
279
+ },
280
+ },
281
+ };
282
+ const base = mergeWithUnion(mergeWithUnion(defaults, fromView), {
283
+ ui: overrides,
284
+ });
285
+ if (view._meta) {
286
+ return { ...base, ...view._meta };
287
+ }
288
+ return base;
289
+ },
290
+ };
291
+ this.registerViewResource({
292
+ name: toolName,
293
+ viewResource,
294
+ view,
295
+ });
296
+ // @ts-expect-error - For backwards compatibility with Claude current implementation of the specs
297
+ toolMeta["ui/resourceUri"] = viewResource.uri;
298
+ toolMeta.ui = { resourceUri: viewResource.uri };
299
+ }
85
300
  }
86
- registerWidgetResource({ name, widgetConfig, resourceConfig, }) {
87
- const { hostType, uri: widgetUri, mimeType, buildContentMeta, } = widgetConfig;
88
- this.registerResource(name, widgetUri, { ...resourceConfig, _meta: resourceConfig._meta }, async (uri, extra) => {
301
+ registerViewResource({ name, viewResource, view, }) {
302
+ const { hostType, uri: viewUri, mimeType, buildContentMeta } = viewResource;
303
+ this.registerResource(name, viewUri, { description: view.description }, async (uri, extra) => {
89
304
  const isProduction = process.env.NODE_ENV === "production";
90
- const serverUrl = isProduction
91
- ? `https://${extra?.requestInfo?.headers?.["x-forwarded-host"] ?? extra?.requestInfo?.headers?.host}`
92
- : "http://localhost:3000";
305
+ const isClaude = extra?.requestInfo?.headers?.["user-agent"] === "Claude-User";
306
+ const headers = extra?.requestInfo?.headers || {};
307
+ const header = (key) => {
308
+ const val = headers[key];
309
+ return Array.isArray(val) ? val[0] : val;
310
+ };
311
+ let serverUrl;
312
+ const forwardedHost = header("x-forwarded-host");
313
+ const origin = header("origin");
314
+ const host = header("host");
315
+ if (forwardedHost) {
316
+ const proto = header("x-forwarded-proto") || "https";
317
+ serverUrl = `${proto}://${forwardedHost}`;
318
+ }
319
+ else if (origin) {
320
+ serverUrl = origin;
321
+ }
322
+ else if (host) {
323
+ const proto = ["127.0.0.1:", "localhost:"].some((p) => host.startsWith(p))
324
+ ? "http"
325
+ : "https";
326
+ serverUrl = `${proto}://${host}`;
327
+ }
328
+ else {
329
+ const devPort = process.env.__PORT || "3000";
330
+ serverUrl = `http://localhost:${devPort}`;
331
+ }
93
332
  const html = isProduction
94
333
  ? templateHelper.renderProduction({
95
334
  hostType,
96
335
  serverUrl,
97
- widgetFile: this.lookupDistFileWithIndexFallback(`src/widgets/${name}`),
98
- styleFile: this.lookupDistFile("style.css"),
336
+ viewFile: this.lookupViewFile(view.component),
337
+ styleFile: this.lookupDistFile("style.css") ?? "",
99
338
  })
100
339
  : templateHelper.renderDevelopment({
101
340
  hostType,
102
341
  serverUrl,
103
- widgetName: name,
342
+ viewName: view.component,
104
343
  });
105
- const VITE_HMR_WEBSOCKET_DEFAULT_URL = "ws://localhost:24678";
344
+ const connectDomains = [serverUrl];
345
+ if (!isProduction) {
346
+ const wsUrl = new URL(serverUrl);
347
+ wsUrl.protocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
348
+ connectDomains.push(wsUrl.origin);
349
+ }
350
+ let contentMetaOverrides = {};
351
+ if (isClaude) {
352
+ const pathname = extra?.requestInfo?.url?.pathname ?? "";
353
+ const rawUrl = header("x-alpic-forwarded-url") ?? `${serverUrl}${pathname}`;
354
+ // Strip a lone trailing slash so the hash matches the connector URL
355
+ // as registered with Claude (which has no trailing slash on bare origins).
356
+ const url = rawUrl.endsWith("/") ? rawUrl.slice(0, -1) : rawUrl;
357
+ const hash = crypto
358
+ .createHash("sha256")
359
+ .update(url)
360
+ .digest("hex")
361
+ .slice(0, 32);
362
+ contentMetaOverrides = { domain: `${hash}.claudemcpcontent.com` };
363
+ }
106
364
  const contentMeta = buildContentMeta({
107
365
  resourceDomains: [serverUrl],
108
- connectDomains: !isProduction ? [VITE_HMR_WEBSOCKET_DEFAULT_URL] : [],
366
+ connectDomains,
109
367
  domain: serverUrl,
110
- });
368
+ baseUriDomains: [serverUrl],
369
+ }, contentMetaOverrides);
111
370
  return {
112
371
  contents: [
113
372
  { uri: uri.href, mimeType, text: html, _meta: contentMeta },
@@ -115,18 +374,87 @@ export class McpServer extends McpServerBase {
115
374
  };
116
375
  });
117
376
  }
377
+ wrapHandler(cb, { attachViewUUID }) {
378
+ return async (args, extra) => {
379
+ const result = await cb(args, extra);
380
+ return {
381
+ ...result,
382
+ content: normalizeContent(result.content),
383
+ ...(attachViewUUID && {
384
+ _meta: {
385
+ ...result._meta,
386
+ viewUUID: crypto.randomUUID(),
387
+ },
388
+ }),
389
+ };
390
+ };
391
+ }
392
+ computeViewVersionParam(viewName) {
393
+ if (process.env.NODE_ENV !== "production") {
394
+ return "";
395
+ }
396
+ try {
397
+ const viewFile = this.lookupViewFile(viewName);
398
+ const styleFile = this.lookupDistFile("style.css") ?? "";
399
+ const hash = crypto
400
+ .createHash("sha256")
401
+ .update(viewFile)
402
+ .update("\0")
403
+ .update(styleFile)
404
+ .digest("hex")
405
+ .slice(0, 8);
406
+ return `?v=${hash}`;
407
+ }
408
+ catch {
409
+ return "";
410
+ }
411
+ }
412
+ lookupViewFile(viewName) {
413
+ const manifest = this.readManifest();
414
+ for (const entry of Object.values(manifest)) {
415
+ if (entry?.isEntry && entry.name === viewName && entry.file) {
416
+ return entry.file;
417
+ }
418
+ }
419
+ throw new Error(`View "${viewName}" not found in Vite manifest. Did the build complete successfully? Look for an entry with name "${viewName}" in dist/assets/.vite/manifest.json.`);
420
+ }
118
421
  lookupDistFile(key) {
119
422
  const manifest = this.readManifest();
120
423
  return manifest[key]?.file;
121
424
  }
122
- lookupDistFileWithIndexFallback(basePath) {
123
- const manifest = this.readManifest();
124
- const flatFileKey = `${basePath}.tsx`;
125
- const indexFileKey = `${basePath}/index.tsx`;
126
- return manifest[flatFileKey]?.file ?? manifest[indexFileKey]?.file;
425
+ /**
426
+ * Inject the Vite manifest as a value rather than letting `readManifest()`
427
+ * load it from disk. Required for runtimes without a usable filesystem
428
+ * (Cloudflare Workers, etc.) — the user's `skybridge build` emits the
429
+ * manifest as a JS module which the entry imports and passes here.
430
+ */
431
+ setViteManifest(manifest) {
432
+ this.viteManifest = manifest;
433
+ return this;
127
434
  }
128
435
  readManifest() {
436
+ if (this.viteManifest) {
437
+ return this.viteManifest;
438
+ }
129
439
  return JSON.parse(readFileSync(path.join(process.cwd(), "dist", "assets", ".vite", "manifest.json"), "utf-8"));
130
440
  }
441
+ registerTool(...args) {
442
+ const baseFn = McpServerBase.prototype.registerTool;
443
+ if (typeof args[0] === "string") {
444
+ baseFn.call(this, args[0], args[1], args[2]);
445
+ return this;
446
+ }
447
+ const config = args[0];
448
+ const cb = args[1];
449
+ const { name, view, _meta: userToolMeta, ...toolFields } = config;
450
+ const toolMeta = { ...userToolMeta };
451
+ if (view) {
452
+ this.enforceOneToolPerView(view.component, name);
453
+ this.registerViewResources(name, view, toolMeta);
454
+ }
455
+ const wrappedCb = this.wrapHandler(cb, { attachViewUUID: Boolean(view) });
456
+ baseFn.call(this, name, { ...toolFields, _meta: toolMeta }, wrappedCb);
457
+ return this;
458
+ }
131
459
  }
132
460
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,15 @@
1
- import type { WidgetHostType } from "./server.js";
1
+ import type { ViewHostType } from "./server.js";
2
2
  declare class TemplateHelper {
3
- private templateCache;
4
- private loadTemplate;
5
3
  renderProduction(data: {
6
- hostType: WidgetHostType;
4
+ hostType: ViewHostType;
7
5
  serverUrl: string;
8
- widgetFile: string;
6
+ viewFile: string;
9
7
  styleFile: string;
10
8
  }): string;
11
9
  renderDevelopment(data: {
12
- hostType: WidgetHostType;
10
+ hostType: ViewHostType;
13
11
  serverUrl: string;
14
- widgetName: string;
12
+ viewName: string;
15
13
  }): string;
16
14
  }
17
15
  export declare const templateHelper: TemplateHelper;
@@ -1,29 +1,10 @@
1
- import { readFileSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import Handlebars from "handlebars";
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = dirname(__filename);
1
+ import { developmentTemplate, productionTemplate, } from "./templates.generated.js";
7
2
  class TemplateHelper {
8
- templateCache = new Map();
9
- loadTemplate(templateName) {
10
- const cached = this.templateCache.get(templateName);
11
- if (cached) {
12
- return cached;
13
- }
14
- const templatePath = join(__dirname, "templates", `${templateName}.hbs`);
15
- const templateSource = readFileSync(templatePath, "utf-8");
16
- const template = Handlebars.compile(templateSource);
17
- this.templateCache.set(templateName, template);
18
- return template;
19
- }
20
3
  renderProduction(data) {
21
- const template = this.loadTemplate("production");
22
- return template(data);
4
+ return productionTemplate(data);
23
5
  }
24
6
  renderDevelopment(data) {
25
- const template = this.loadTemplate("development");
26
- return template(data);
7
+ return developmentTemplate(data);
27
8
  }
28
9
  }
29
10
  export const templateHelper = new TemplateHelper();
@@ -1 +1 @@
1
- {"version":3,"file":"templateHelper.js","sourceRoot":"","sources":["../../src/server/templateHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,cAAc;IACV,aAAa,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE9D,YAAY,CAAC,YAAoB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,IAKhB;QACC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,IAIjB;QACC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"templateHelper.js","sourceRoot":"","sources":["../../src/server/templateHelper.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,MAAM,cAAc;IAClB,gBAAgB,CAAC,IAKhB;QACC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,iBAAiB,CAAC,IAIjB;QACC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}