@portel/photon 1.4.0 → 1.5.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 (379) hide show
  1. package/README.md +287 -1160
  2. package/dist/auto-ui/beam.d.ts +9 -0
  3. package/dist/auto-ui/beam.d.ts.map +1 -0
  4. package/dist/auto-ui/beam.js +2381 -0
  5. package/dist/auto-ui/beam.js.map +1 -0
  6. package/dist/auto-ui/components/card.d.ts +13 -0
  7. package/dist/auto-ui/components/card.d.ts.map +1 -0
  8. package/dist/auto-ui/components/card.js +64 -0
  9. package/dist/auto-ui/components/card.js.map +1 -0
  10. package/dist/auto-ui/components/form.d.ts +15 -0
  11. package/dist/auto-ui/components/form.d.ts.map +1 -0
  12. package/dist/auto-ui/components/form.js +72 -0
  13. package/dist/auto-ui/components/form.js.map +1 -0
  14. package/dist/auto-ui/components/list.d.ts +13 -0
  15. package/dist/auto-ui/components/list.d.ts.map +1 -0
  16. package/dist/auto-ui/components/list.js +58 -0
  17. package/dist/auto-ui/components/list.js.map +1 -0
  18. package/dist/auto-ui/components/progress.d.ts +18 -0
  19. package/dist/auto-ui/components/progress.d.ts.map +1 -0
  20. package/dist/auto-ui/components/progress.js +125 -0
  21. package/dist/auto-ui/components/progress.js.map +1 -0
  22. package/dist/auto-ui/components/table.d.ts +13 -0
  23. package/dist/auto-ui/components/table.d.ts.map +1 -0
  24. package/dist/auto-ui/components/table.js +82 -0
  25. package/dist/auto-ui/components/table.js.map +1 -0
  26. package/dist/auto-ui/components/tree.d.ts +13 -0
  27. package/dist/auto-ui/components/tree.d.ts.map +1 -0
  28. package/dist/auto-ui/components/tree.js +61 -0
  29. package/dist/auto-ui/components/tree.js.map +1 -0
  30. package/dist/auto-ui/daemon-tools.d.ts +45 -0
  31. package/dist/auto-ui/daemon-tools.d.ts.map +1 -0
  32. package/dist/auto-ui/daemon-tools.js +580 -0
  33. package/dist/auto-ui/daemon-tools.js.map +1 -0
  34. package/dist/auto-ui/design-system/index.d.ts +21 -0
  35. package/dist/auto-ui/design-system/index.d.ts.map +1 -0
  36. package/dist/auto-ui/design-system/index.js +27 -0
  37. package/dist/auto-ui/design-system/index.js.map +1 -0
  38. package/dist/auto-ui/design-system/tokens.d.ts +9 -0
  39. package/dist/auto-ui/design-system/tokens.d.ts.map +1 -0
  40. package/dist/auto-ui/design-system/tokens.js +27 -0
  41. package/dist/auto-ui/design-system/tokens.js.map +1 -0
  42. package/dist/auto-ui/design-system/transaction-ui.d.ts +70 -0
  43. package/dist/auto-ui/design-system/transaction-ui.d.ts.map +1 -0
  44. package/dist/auto-ui/design-system/transaction-ui.js +982 -0
  45. package/dist/auto-ui/design-system/transaction-ui.js.map +1 -0
  46. package/dist/auto-ui/frontend/index.html +84 -0
  47. package/dist/auto-ui/index.d.ts +21 -0
  48. package/dist/auto-ui/index.d.ts.map +1 -0
  49. package/dist/auto-ui/index.js +25 -0
  50. package/dist/auto-ui/index.js.map +1 -0
  51. package/dist/auto-ui/openapi-generator.d.ts +71 -0
  52. package/dist/auto-ui/openapi-generator.d.ts.map +1 -0
  53. package/dist/auto-ui/openapi-generator.js +223 -0
  54. package/dist/auto-ui/openapi-generator.js.map +1 -0
  55. package/dist/auto-ui/photon-bridge.d.ts +159 -0
  56. package/dist/auto-ui/photon-bridge.d.ts.map +1 -0
  57. package/dist/auto-ui/photon-bridge.js +262 -0
  58. package/dist/auto-ui/photon-bridge.js.map +1 -0
  59. package/dist/auto-ui/photon-host.d.ts +113 -0
  60. package/dist/auto-ui/photon-host.d.ts.map +1 -0
  61. package/dist/auto-ui/photon-host.js +284 -0
  62. package/dist/auto-ui/photon-host.js.map +1 -0
  63. package/dist/auto-ui/platform-compat.d.ts +71 -0
  64. package/dist/auto-ui/platform-compat.d.ts.map +1 -0
  65. package/dist/auto-ui/platform-compat.js +574 -0
  66. package/dist/auto-ui/platform-compat.js.map +1 -0
  67. package/dist/auto-ui/playground-html.d.ts +15 -0
  68. package/dist/auto-ui/playground-html.d.ts.map +1 -0
  69. package/dist/auto-ui/playground-html.js +1113 -0
  70. package/dist/auto-ui/playground-html.js.map +1 -0
  71. package/dist/auto-ui/playground-server.d.ts +7 -0
  72. package/dist/auto-ui/playground-server.d.ts.map +1 -0
  73. package/dist/auto-ui/playground-server.js +840 -0
  74. package/dist/auto-ui/playground-server.js.map +1 -0
  75. package/dist/auto-ui/registry.d.ts +13 -0
  76. package/dist/auto-ui/registry.d.ts.map +1 -0
  77. package/dist/auto-ui/registry.js +62 -0
  78. package/dist/auto-ui/registry.js.map +1 -0
  79. package/dist/auto-ui/renderer.d.ts +14 -0
  80. package/dist/auto-ui/renderer.d.ts.map +1 -0
  81. package/dist/auto-ui/renderer.js +88 -0
  82. package/dist/auto-ui/renderer.js.map +1 -0
  83. package/dist/auto-ui/rendering/components.d.ts +29 -0
  84. package/dist/auto-ui/rendering/components.d.ts.map +1 -0
  85. package/dist/auto-ui/rendering/components.js +773 -0
  86. package/dist/auto-ui/rendering/components.js.map +1 -0
  87. package/dist/auto-ui/rendering/field-analyzer.d.ts +48 -0
  88. package/dist/auto-ui/rendering/field-analyzer.d.ts.map +1 -0
  89. package/dist/auto-ui/rendering/field-analyzer.js +270 -0
  90. package/dist/auto-ui/rendering/field-analyzer.js.map +1 -0
  91. package/dist/auto-ui/rendering/field-renderers.d.ts +64 -0
  92. package/dist/auto-ui/rendering/field-renderers.d.ts.map +1 -0
  93. package/dist/auto-ui/rendering/field-renderers.js +317 -0
  94. package/dist/auto-ui/rendering/field-renderers.js.map +1 -0
  95. package/dist/auto-ui/rendering/index.d.ts +28 -0
  96. package/dist/auto-ui/rendering/index.d.ts.map +1 -0
  97. package/dist/auto-ui/rendering/index.js +60 -0
  98. package/dist/auto-ui/rendering/index.js.map +1 -0
  99. package/dist/auto-ui/rendering/layout-selector.d.ts +48 -0
  100. package/dist/auto-ui/rendering/layout-selector.d.ts.map +1 -0
  101. package/dist/auto-ui/rendering/layout-selector.js +352 -0
  102. package/dist/auto-ui/rendering/layout-selector.js.map +1 -0
  103. package/dist/auto-ui/rendering/template-engine.d.ts +41 -0
  104. package/dist/auto-ui/rendering/template-engine.d.ts.map +1 -0
  105. package/dist/auto-ui/rendering/template-engine.js +238 -0
  106. package/dist/auto-ui/rendering/template-engine.js.map +1 -0
  107. package/dist/auto-ui/streamable-http-transport.d.ts +79 -0
  108. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -0
  109. package/dist/auto-ui/streamable-http-transport.js +1314 -0
  110. package/dist/auto-ui/streamable-http-transport.js.map +1 -0
  111. package/dist/auto-ui/types.d.ts +310 -0
  112. package/dist/auto-ui/types.d.ts.map +1 -0
  113. package/dist/auto-ui/types.js +71 -0
  114. package/dist/auto-ui/types.js.map +1 -0
  115. package/dist/beam.bundle.js +13506 -0
  116. package/dist/beam.bundle.js.map +7 -0
  117. package/dist/claude-code-plugin.d.ts.map +1 -1
  118. package/dist/claude-code-plugin.js +30 -30
  119. package/dist/claude-code-plugin.js.map +1 -1
  120. package/dist/cli/commands/info.d.ts +11 -0
  121. package/dist/cli/commands/info.d.ts.map +1 -0
  122. package/dist/cli/commands/info.js +313 -0
  123. package/dist/cli/commands/info.js.map +1 -0
  124. package/dist/cli/commands/marketplace.d.ts +11 -0
  125. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  126. package/dist/cli/commands/marketplace.js +198 -0
  127. package/dist/cli/commands/marketplace.js.map +1 -0
  128. package/dist/cli/commands/package-app.d.ts +9 -0
  129. package/dist/cli/commands/package-app.d.ts.map +1 -0
  130. package/dist/cli/commands/package-app.js +191 -0
  131. package/dist/cli/commands/package-app.js.map +1 -0
  132. package/dist/cli/commands/package.d.ts +11 -0
  133. package/dist/cli/commands/package.d.ts.map +1 -0
  134. package/dist/cli/commands/package.js +573 -0
  135. package/dist/cli/commands/package.js.map +1 -0
  136. package/dist/cli-alias.d.ts.map +1 -1
  137. package/dist/cli-alias.js +30 -28
  138. package/dist/cli-alias.js.map +1 -1
  139. package/dist/cli-formatter.d.ts +8 -24
  140. package/dist/cli-formatter.d.ts.map +1 -1
  141. package/dist/cli-formatter.js +8 -325
  142. package/dist/cli-formatter.js.map +1 -1
  143. package/dist/cli.d.ts +15 -1
  144. package/dist/cli.d.ts.map +1 -1
  145. package/dist/cli.js +1157 -1132
  146. package/dist/cli.js.map +1 -1
  147. package/dist/daemon/client.d.ts +81 -0
  148. package/dist/daemon/client.d.ts.map +1 -1
  149. package/dist/daemon/client.js +583 -13
  150. package/dist/daemon/client.js.map +1 -1
  151. package/dist/daemon/manager.d.ts +46 -12
  152. package/dist/daemon/manager.d.ts.map +1 -1
  153. package/dist/daemon/manager.js +102 -61
  154. package/dist/daemon/manager.js.map +1 -1
  155. package/dist/daemon/protocol.d.ts +74 -6
  156. package/dist/daemon/protocol.d.ts.map +1 -1
  157. package/dist/daemon/protocol.js +76 -1
  158. package/dist/daemon/protocol.js.map +1 -1
  159. package/dist/daemon/server.d.ts +6 -6
  160. package/dist/daemon/server.js +778 -117
  161. package/dist/daemon/server.js.map +1 -1
  162. package/dist/daemon/session-manager.d.ts +8 -1
  163. package/dist/daemon/session-manager.d.ts.map +1 -1
  164. package/dist/daemon/session-manager.js +32 -9
  165. package/dist/daemon/session-manager.js.map +1 -1
  166. package/dist/deploy/cloudflare.d.ts +12 -0
  167. package/dist/deploy/cloudflare.d.ts.map +1 -0
  168. package/dist/deploy/cloudflare.js +216 -0
  169. package/dist/deploy/cloudflare.js.map +1 -0
  170. package/dist/index.d.ts +1 -0
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +3 -0
  173. package/dist/index.js.map +1 -1
  174. package/dist/loader.d.ts +172 -15
  175. package/dist/loader.d.ts.map +1 -1
  176. package/dist/loader.js +1132 -267
  177. package/dist/loader.js.map +1 -1
  178. package/dist/markdown-utils.d.ts +8 -0
  179. package/dist/markdown-utils.d.ts.map +1 -0
  180. package/dist/markdown-utils.js +63 -0
  181. package/dist/markdown-utils.js.map +1 -0
  182. package/dist/marketplace-manager.d.ts +10 -0
  183. package/dist/marketplace-manager.d.ts.map +1 -1
  184. package/dist/marketplace-manager.js +112 -28
  185. package/dist/marketplace-manager.js.map +1 -1
  186. package/dist/mcp-client.d.ts +9 -0
  187. package/dist/mcp-client.d.ts.map +1 -0
  188. package/dist/mcp-client.js +11 -0
  189. package/dist/mcp-client.js.map +1 -0
  190. package/dist/mcp-elicitation.d.ts +32 -0
  191. package/dist/mcp-elicitation.d.ts.map +1 -0
  192. package/dist/mcp-elicitation.js +26 -0
  193. package/dist/mcp-elicitation.js.map +1 -0
  194. package/dist/path-resolver.d.ts +9 -12
  195. package/dist/path-resolver.d.ts.map +1 -1
  196. package/dist/path-resolver.js +13 -43
  197. package/dist/path-resolver.js.map +1 -1
  198. package/dist/photon-cli-runner.d.ts.map +1 -1
  199. package/dist/photon-cli-runner.js +216 -73
  200. package/dist/photon-cli-runner.js.map +1 -1
  201. package/dist/photon-doc-extractor.d.ts +88 -0
  202. package/dist/photon-doc-extractor.d.ts.map +1 -1
  203. package/dist/photon-doc-extractor.js +536 -27
  204. package/dist/photon-doc-extractor.js.map +1 -1
  205. package/dist/photons/maker.photon.d.ts +182 -0
  206. package/dist/photons/maker.photon.d.ts.map +1 -0
  207. package/dist/photons/maker.photon.js +504 -0
  208. package/dist/photons/maker.photon.js.map +1 -0
  209. package/dist/photons/maker.photon.ts +626 -0
  210. package/dist/photons/marketplace.photon.d.ts +110 -0
  211. package/dist/photons/marketplace.photon.d.ts.map +1 -0
  212. package/dist/photons/marketplace.photon.js +260 -0
  213. package/dist/photons/marketplace.photon.js.map +1 -0
  214. package/dist/photons/marketplace.photon.ts +378 -0
  215. package/dist/photons/tunnel.photon.d.ts +80 -0
  216. package/dist/photons/tunnel.photon.d.ts.map +1 -0
  217. package/dist/photons/tunnel.photon.js +269 -0
  218. package/dist/photons/tunnel.photon.js.map +1 -0
  219. package/dist/photons/tunnel.photon.ts +345 -0
  220. package/dist/security-scanner.d.ts.map +1 -1
  221. package/dist/security-scanner.js +18 -15
  222. package/dist/security-scanner.js.map +1 -1
  223. package/dist/serv/auth/jwt.d.ts +89 -0
  224. package/dist/serv/auth/jwt.d.ts.map +1 -0
  225. package/dist/serv/auth/jwt.js +239 -0
  226. package/dist/serv/auth/jwt.js.map +1 -0
  227. package/dist/serv/auth/oauth.d.ts +117 -0
  228. package/dist/serv/auth/oauth.d.ts.map +1 -0
  229. package/dist/serv/auth/oauth.js +395 -0
  230. package/dist/serv/auth/oauth.js.map +1 -0
  231. package/dist/serv/auth/well-known.d.ts +60 -0
  232. package/dist/serv/auth/well-known.d.ts.map +1 -0
  233. package/dist/serv/auth/well-known.js +154 -0
  234. package/dist/serv/auth/well-known.js.map +1 -0
  235. package/dist/serv/db/d1-client.d.ts +65 -0
  236. package/dist/serv/db/d1-client.d.ts.map +1 -0
  237. package/dist/serv/db/d1-client.js +137 -0
  238. package/dist/serv/db/d1-client.js.map +1 -0
  239. package/dist/serv/db/d1-stores.d.ts +62 -0
  240. package/dist/serv/db/d1-stores.d.ts.map +1 -0
  241. package/dist/serv/db/d1-stores.js +307 -0
  242. package/dist/serv/db/d1-stores.js.map +1 -0
  243. package/dist/serv/index.d.ts +114 -0
  244. package/dist/serv/index.d.ts.map +1 -0
  245. package/dist/serv/index.js +172 -0
  246. package/dist/serv/index.js.map +1 -0
  247. package/dist/serv/local.d.ts +118 -0
  248. package/dist/serv/local.d.ts.map +1 -0
  249. package/dist/serv/local.js +392 -0
  250. package/dist/serv/local.js.map +1 -0
  251. package/dist/serv/middleware/auth.d.ts +66 -0
  252. package/dist/serv/middleware/auth.d.ts.map +1 -0
  253. package/dist/serv/middleware/auth.js +178 -0
  254. package/dist/serv/middleware/auth.js.map +1 -0
  255. package/dist/serv/middleware/tenant.d.ts +94 -0
  256. package/dist/serv/middleware/tenant.d.ts.map +1 -0
  257. package/dist/serv/middleware/tenant.js +152 -0
  258. package/dist/serv/middleware/tenant.js.map +1 -0
  259. package/dist/serv/runtime/executor.d.ts +76 -0
  260. package/dist/serv/runtime/executor.d.ts.map +1 -0
  261. package/dist/serv/runtime/executor.js +105 -0
  262. package/dist/serv/runtime/executor.js.map +1 -0
  263. package/dist/serv/runtime/index.d.ts +8 -0
  264. package/dist/serv/runtime/index.d.ts.map +1 -0
  265. package/dist/serv/runtime/index.js +10 -0
  266. package/dist/serv/runtime/index.js.map +1 -0
  267. package/dist/serv/runtime/oauth-context.d.ts +121 -0
  268. package/dist/serv/runtime/oauth-context.d.ts.map +1 -0
  269. package/dist/serv/runtime/oauth-context.js +153 -0
  270. package/dist/serv/runtime/oauth-context.js.map +1 -0
  271. package/dist/serv/session/kv-store.d.ts +54 -0
  272. package/dist/serv/session/kv-store.d.ts.map +1 -0
  273. package/dist/serv/session/kv-store.js +149 -0
  274. package/dist/serv/session/kv-store.js.map +1 -0
  275. package/dist/serv/session/store.d.ts +113 -0
  276. package/dist/serv/session/store.d.ts.map +1 -0
  277. package/dist/serv/session/store.js +284 -0
  278. package/dist/serv/session/store.js.map +1 -0
  279. package/dist/serv/types/index.d.ts +147 -0
  280. package/dist/serv/types/index.d.ts.map +1 -0
  281. package/dist/serv/types/index.js +8 -0
  282. package/dist/serv/types/index.js.map +1 -0
  283. package/dist/serv/vault/token-vault.d.ts +102 -0
  284. package/dist/serv/vault/token-vault.d.ts.map +1 -0
  285. package/dist/serv/vault/token-vault.js +177 -0
  286. package/dist/serv/vault/token-vault.js.map +1 -0
  287. package/dist/server.d.ts +173 -0
  288. package/dist/server.d.ts.map +1 -1
  289. package/dist/server.js +1622 -86
  290. package/dist/server.js.map +1 -1
  291. package/dist/shared/cli-sections.d.ts +6 -0
  292. package/dist/shared/cli-sections.d.ts.map +1 -0
  293. package/dist/shared/cli-sections.js +16 -0
  294. package/dist/shared/cli-sections.js.map +1 -0
  295. package/dist/shared/cli-utils.d.ts +81 -0
  296. package/dist/shared/cli-utils.d.ts.map +1 -0
  297. package/dist/shared/cli-utils.js +174 -0
  298. package/dist/shared/cli-utils.js.map +1 -0
  299. package/dist/shared/config-docs.d.ts +6 -0
  300. package/dist/shared/config-docs.d.ts.map +1 -0
  301. package/dist/shared/config-docs.js +6 -0
  302. package/dist/shared/config-docs.js.map +1 -0
  303. package/dist/shared/error-handler.d.ts +128 -0
  304. package/dist/shared/error-handler.d.ts.map +1 -0
  305. package/dist/shared/error-handler.js +342 -0
  306. package/dist/shared/error-handler.js.map +1 -0
  307. package/dist/shared/logger.d.ts +42 -0
  308. package/dist/shared/logger.d.ts.map +1 -0
  309. package/dist/shared/logger.js +123 -0
  310. package/dist/shared/logger.js.map +1 -0
  311. package/dist/shared/performance.d.ts +65 -0
  312. package/dist/shared/performance.d.ts.map +1 -0
  313. package/dist/shared/performance.js +136 -0
  314. package/dist/shared/performance.js.map +1 -0
  315. package/dist/shared/task-runner.d.ts +2 -0
  316. package/dist/shared/task-runner.d.ts.map +1 -0
  317. package/dist/shared/task-runner.js +16 -0
  318. package/dist/shared/task-runner.js.map +1 -0
  319. package/dist/shared/validation.d.ts +6 -0
  320. package/dist/shared/validation.d.ts.map +1 -0
  321. package/dist/shared/validation.js +6 -0
  322. package/dist/shared/validation.js.map +1 -0
  323. package/dist/shared-utils.d.ts +63 -0
  324. package/dist/shared-utils.d.ts.map +1 -0
  325. package/dist/shared-utils.js +123 -0
  326. package/dist/shared-utils.js.map +1 -0
  327. package/dist/template-manager.d.ts +23 -2
  328. package/dist/template-manager.d.ts.map +1 -1
  329. package/dist/template-manager.js +177 -88
  330. package/dist/template-manager.js.map +1 -1
  331. package/dist/test-client.d.ts.map +1 -1
  332. package/dist/test-client.js +10 -8
  333. package/dist/test-client.js.map +1 -1
  334. package/dist/test-runner.d.ts +52 -0
  335. package/dist/test-runner.d.ts.map +1 -0
  336. package/dist/test-runner.js +785 -0
  337. package/dist/test-runner.js.map +1 -0
  338. package/dist/testing.d.ts +103 -0
  339. package/dist/testing.d.ts.map +1 -0
  340. package/dist/testing.js +163 -0
  341. package/dist/testing.js.map +1 -0
  342. package/dist/version-checker.d.ts.map +1 -1
  343. package/dist/version-checker.js +2 -2
  344. package/dist/version-checker.js.map +1 -1
  345. package/dist/version.d.ts +2 -0
  346. package/dist/version.d.ts.map +1 -0
  347. package/dist/version.js +5 -0
  348. package/dist/version.js.map +1 -0
  349. package/dist/watcher.d.ts +6 -3
  350. package/dist/watcher.d.ts.map +1 -1
  351. package/dist/watcher.js +49 -10
  352. package/dist/watcher.js.map +1 -1
  353. package/package.json +47 -7
  354. package/templates/cloudflare/worker.ts.template +381 -0
  355. package/templates/cloudflare/wrangler.toml.template +9 -0
  356. package/dist/base.d.ts +0 -58
  357. package/dist/base.d.ts.map +0 -1
  358. package/dist/base.js +0 -92
  359. package/dist/base.js.map +0 -1
  360. package/dist/dependency-manager.d.ts +0 -49
  361. package/dist/dependency-manager.d.ts.map +0 -1
  362. package/dist/dependency-manager.js +0 -165
  363. package/dist/dependency-manager.js.map +0 -1
  364. package/dist/registry-manager.d.ts +0 -76
  365. package/dist/registry-manager.d.ts.map +0 -1
  366. package/dist/registry-manager.js +0 -220
  367. package/dist/registry-manager.js.map +0 -1
  368. package/dist/schema-extractor.d.ts +0 -110
  369. package/dist/schema-extractor.d.ts.map +0 -1
  370. package/dist/schema-extractor.js +0 -727
  371. package/dist/schema-extractor.js.map +0 -1
  372. package/dist/test-marketplace-sources.d.ts +0 -5
  373. package/dist/test-marketplace-sources.d.ts.map +0 -1
  374. package/dist/test-marketplace-sources.js +0 -53
  375. package/dist/test-marketplace-sources.js.map +0 -1
  376. package/dist/types.d.ts +0 -109
  377. package/dist/types.d.ts.map +0 -1
  378. package/dist/types.js +0 -12
  379. package/dist/types.js.map +0 -1
@@ -1,49 +0,0 @@
1
- /**
2
- * Dependency Manager for Photon MCPs
3
- *
4
- * Handles automatic installation of dependencies declared in MCP files
5
- * Similar to Python's UV or npx behavior
6
- */
7
- interface DependencySpec {
8
- name: string;
9
- version: string;
10
- }
11
- /**
12
- * Manages dependencies for Photon MCPs
13
- */
14
- export declare class DependencyManager {
15
- private cacheDir;
16
- constructor();
17
- /**
18
- * Extract dependencies from MCP source file
19
- *
20
- * Looks for @dependencies JSDoc tag:
21
- * @dependencies axios@^1.0.0, date-fns@^2.0.0
22
- * @dependencies octokit@^3.1.0
23
- */
24
- extractDependencies(sourceFilePath: string): Promise<DependencySpec[]>;
25
- /**
26
- * Ensure dependencies are installed for an MCP
27
- *
28
- * Returns the path to node_modules where dependencies are installed
29
- */
30
- ensureDependencies(mcpName: string, dependencies: DependencySpec[]): Promise<string | null>;
31
- /**
32
- * Check if dependencies are already installed
33
- */
34
- private checkInstalled;
35
- /**
36
- * Run npm install in a directory
37
- */
38
- private runNpmInstall;
39
- /**
40
- * Clear cache for an MCP
41
- */
42
- clearCache(mcpName: string): Promise<void>;
43
- /**
44
- * Clear all cached dependencies
45
- */
46
- clearAllCache(): Promise<void>;
47
- }
48
- export {};
49
- //# sourceMappingURL=dependency-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-manager.d.ts","sourceRoot":"","sources":["../src/dependency-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAS;;IAOzB;;;;;;OAMG;IACG,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA0C5E;;;;OAIG;IACG,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,cAAc,EAAE,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CzB;;OAEG;YACW,cAAc;IA2B5B;;OAEG;YACW,aAAa;IAqB3B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAQrC"}
@@ -1,165 +0,0 @@
1
- /**
2
- * Dependency Manager for Photon MCPs
3
- *
4
- * Handles automatic installation of dependencies declared in MCP files
5
- * Similar to Python's UV or npx behavior
6
- */
7
- import * as fs from 'fs/promises';
8
- import * as path from 'path';
9
- import * as os from 'os';
10
- import { spawn } from 'child_process';
11
- /**
12
- * Manages dependencies for Photon MCPs
13
- */
14
- export class DependencyManager {
15
- cacheDir;
16
- constructor() {
17
- // Store dependencies in ~/.cache/photon-mcp/dependencies/
18
- this.cacheDir = path.join(os.homedir(), '.cache', 'photon-mcp', 'dependencies');
19
- }
20
- /**
21
- * Extract dependencies from MCP source file
22
- *
23
- * Looks for @dependencies JSDoc tag:
24
- * @dependencies axios@^1.0.0, date-fns@^2.0.0
25
- * @dependencies octokit@^3.1.0
26
- */
27
- async extractDependencies(sourceFilePath) {
28
- const content = await fs.readFile(sourceFilePath, 'utf-8');
29
- const dependencies = [];
30
- // Match @dependencies tags in JSDoc comments
31
- // Regex: @dependencies package@version, package2@version2
32
- const dependencyRegex = /@dependencies\s+([\w@^~.,\s-]+)/g;
33
- let match;
34
- while ((match = dependencyRegex.exec(content)) !== null) {
35
- const depString = match[1].trim();
36
- // Split by comma for multiple dependencies
37
- const deps = depString.split(',').map(d => d.trim());
38
- for (const dep of deps) {
39
- // Parse: package@version
40
- const parts = dep.split('@');
41
- // Handle scoped packages like @octokit/rest@^1.0.0
42
- let name, version;
43
- if (dep.startsWith('@')) {
44
- // Scoped package: @scope/package@version
45
- const atIndex = dep.indexOf('@', 1); // Find second @
46
- if (atIndex > 0) {
47
- name = dep.substring(0, atIndex);
48
- version = dep.substring(atIndex + 1);
49
- }
50
- }
51
- else {
52
- // Regular package: package@version
53
- [name, version] = parts;
54
- }
55
- if (name && version) {
56
- dependencies.push({ name, version });
57
- }
58
- }
59
- }
60
- return dependencies;
61
- }
62
- /**
63
- * Ensure dependencies are installed for an MCP
64
- *
65
- * Returns the path to node_modules where dependencies are installed
66
- */
67
- async ensureDependencies(mcpName, dependencies) {
68
- if (dependencies.length === 0) {
69
- return null;
70
- }
71
- // Create MCP-specific directory
72
- const mcpDir = path.join(this.cacheDir, mcpName);
73
- const nodeModules = path.join(mcpDir, 'node_modules');
74
- // Check if already installed
75
- const installed = await this.checkInstalled(mcpDir, dependencies);
76
- if (installed) {
77
- console.error(`Dependencies already installed for ${mcpName}`);
78
- return nodeModules;
79
- }
80
- // Create directory
81
- await fs.mkdir(mcpDir, { recursive: true });
82
- // Create minimal package.json
83
- const packageJson = {
84
- name: `photon-${mcpName}`,
85
- version: '1.0.0',
86
- type: 'module',
87
- dependencies: Object.fromEntries(dependencies.map(d => [d.name, d.version])),
88
- };
89
- await fs.writeFile(path.join(mcpDir, 'package.json'), JSON.stringify(packageJson, null, 2));
90
- // Install dependencies
91
- console.error(`📦 Installing dependencies for ${mcpName}...`);
92
- await this.runNpmInstall(mcpDir);
93
- console.error(`✅ Dependencies installed for ${mcpName}`);
94
- return nodeModules;
95
- }
96
- /**
97
- * Check if dependencies are already installed
98
- */
99
- async checkInstalled(mcpDir, dependencies) {
100
- try {
101
- const packageJsonPath = path.join(mcpDir, 'package.json');
102
- const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));
103
- // Check if all dependencies match
104
- for (const dep of dependencies) {
105
- if (packageJson.dependencies?.[dep.name] !== dep.version) {
106
- return false;
107
- }
108
- }
109
- // Check if node_modules exists
110
- const nodeModules = path.join(mcpDir, 'node_modules');
111
- await fs.access(nodeModules);
112
- return true;
113
- }
114
- catch {
115
- return false;
116
- }
117
- }
118
- /**
119
- * Run npm install in a directory
120
- */
121
- async runNpmInstall(cwd) {
122
- return new Promise((resolve, reject) => {
123
- const npmCmd = process.platform === 'win32' ? 'npm.cmd' : 'npm';
124
- const child = spawn(npmCmd, ['install', '--omit=dev', '--silent'], {
125
- cwd,
126
- stdio: 'inherit',
127
- });
128
- child.on('exit', (code) => {
129
- if (code === 0) {
130
- resolve();
131
- }
132
- else {
133
- reject(new Error(`npm install failed with code ${code}`));
134
- }
135
- });
136
- child.on('error', reject);
137
- });
138
- }
139
- /**
140
- * Clear cache for an MCP
141
- */
142
- async clearCache(mcpName) {
143
- const mcpDir = path.join(this.cacheDir, mcpName);
144
- try {
145
- await fs.rm(mcpDir, { recursive: true, force: true });
146
- console.error(`🗑️ Cleared cache for ${mcpName}`);
147
- }
148
- catch (error) {
149
- console.error(`Failed to clear cache for ${mcpName}: ${error.message}`);
150
- }
151
- }
152
- /**
153
- * Clear all cached dependencies
154
- */
155
- async clearAllCache() {
156
- try {
157
- await fs.rm(this.cacheDir, { recursive: true, force: true });
158
- console.error(`🗑️ Cleared all MCP dependency cache`);
159
- }
160
- catch (error) {
161
- console.error(`Failed to clear cache: ${error.message}`);
162
- }
163
- }
164
- }
165
- //# sourceMappingURL=dependency-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-manager.js","sourceRoot":"","sources":["../src/dependency-manager.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- /**
2
- * Registry Manager - Manage multiple MCP registries
3
- */
4
- export interface Registry {
5
- name: string;
6
- url: string;
7
- enabled: boolean;
8
- }
9
- export interface RegistryConfig {
10
- registries: Registry[];
11
- }
12
- export declare class RegistryManager {
13
- private config;
14
- initialize(): Promise<void>;
15
- save(): Promise<void>;
16
- /**
17
- * Get all registries
18
- */
19
- getAll(): Registry[];
20
- /**
21
- * Get enabled registries
22
- */
23
- getEnabled(): Registry[];
24
- /**
25
- * Get registry by name
26
- */
27
- get(name: string): Registry | undefined;
28
- /**
29
- * Parse GitHub repo reference into registry info
30
- * Supports:
31
- * - username/repo
32
- * - https://github.com/username/repo
33
- * - https://github.com/username/repo.git
34
- */
35
- private parseGitHubRepo;
36
- /**
37
- * Add a new registry from GitHub repo
38
- * Supports: username/repo or https://github.com/username/repo
39
- */
40
- add(githubRepo: string): Promise<{
41
- name: string;
42
- url: string;
43
- }>;
44
- /**
45
- * Remove a registry
46
- */
47
- remove(name: string): Promise<boolean>;
48
- /**
49
- * Enable/disable a registry
50
- */
51
- setEnabled(name: string, enabled: boolean): Promise<boolean>;
52
- /**
53
- * Try to fetch MCP from all enabled registries
54
- */
55
- fetchMCP(mcpName: string): Promise<{
56
- content: string;
57
- registry: Registry;
58
- } | null>;
59
- /**
60
- * Fetch version from all enabled registries
61
- */
62
- fetchVersion(mcpName: string): Promise<{
63
- version: string;
64
- registry: Registry;
65
- } | null>;
66
- /**
67
- * Search for MCP in all registries
68
- */
69
- search(query: string): Promise<Map<string, Registry[]>>;
70
- /**
71
- * List all available MCPs from a registry
72
- * Note: Requires registry to have an index.json file
73
- */
74
- listFromRegistry(registryName: string): Promise<string[]>;
75
- }
76
- //# sourceMappingURL=registry-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-manager.d.ts","sourceRoot":"","sources":["../src/registry-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAWD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAsC;IAE9C,UAAU;IAeV,IAAI;IAIV;;OAEG;IACH,MAAM,IAAI,QAAQ,EAAE;IAIpB;;OAEG;IACH,UAAU,IAAI,QAAQ,EAAE;IAIxB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIvC;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;OAGG;IACG,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAwBrE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB5C;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAoBxF;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAwB5F;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAwB7D;;;OAGG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAsBhE"}
@@ -1,220 +0,0 @@
1
- /**
2
- * Registry Manager - Manage multiple MCP registries
3
- */
4
- import * as fs from 'fs/promises';
5
- import * as path from 'path';
6
- import * as os from 'os';
7
- import { existsSync } from 'fs';
8
- const CONFIG_DIR = path.join(os.homedir(), '.config', 'photon');
9
- const CONFIG_FILE = path.join(CONFIG_DIR, 'registries.json');
10
- const DEFAULT_REGISTRY = {
11
- name: 'photons',
12
- url: 'https://raw.githubusercontent.com/portel-dev/photons/main',
13
- enabled: true,
14
- };
15
- export class RegistryManager {
16
- config = { registries: [] };
17
- async initialize() {
18
- await fs.mkdir(CONFIG_DIR, { recursive: true });
19
- if (existsSync(CONFIG_FILE)) {
20
- const data = await fs.readFile(CONFIG_FILE, 'utf-8');
21
- this.config = JSON.parse(data);
22
- }
23
- else {
24
- // Initialize with default registry
25
- this.config = {
26
- registries: [DEFAULT_REGISTRY],
27
- };
28
- await this.save();
29
- }
30
- }
31
- async save() {
32
- await fs.writeFile(CONFIG_FILE, JSON.stringify(this.config, null, 2), 'utf-8');
33
- }
34
- /**
35
- * Get all registries
36
- */
37
- getAll() {
38
- return this.config.registries;
39
- }
40
- /**
41
- * Get enabled registries
42
- */
43
- getEnabled() {
44
- return this.config.registries.filter((r) => r.enabled);
45
- }
46
- /**
47
- * Get registry by name
48
- */
49
- get(name) {
50
- return this.config.registries.find((r) => r.name === name);
51
- }
52
- /**
53
- * Parse GitHub repo reference into registry info
54
- * Supports:
55
- * - username/repo
56
- * - https://github.com/username/repo
57
- * - https://github.com/username/repo.git
58
- */
59
- parseGitHubRepo(input) {
60
- // Pattern 1: username/repo
61
- const shorthandMatch = input.match(/^([a-zA-Z0-9-]+)\/([a-zA-Z0-9-_.]+)$/);
62
- if (shorthandMatch) {
63
- const [, username, repo] = shorthandMatch;
64
- return {
65
- name: repo,
66
- url: `https://raw.githubusercontent.com/${username}/${repo}/main`,
67
- };
68
- }
69
- // Pattern 2: https://github.com/username/repo or https://github.com/username/repo.git
70
- const urlMatch = input.match(/^https?:\/\/github\.com\/([a-zA-Z0-9-]+)\/([a-zA-Z0-9-_.]+?)(\.git)?$/);
71
- if (urlMatch) {
72
- const [, username, repo] = urlMatch;
73
- return {
74
- name: repo,
75
- url: `https://raw.githubusercontent.com/${username}/${repo}/main`,
76
- };
77
- }
78
- return null;
79
- }
80
- /**
81
- * Add a new registry from GitHub repo
82
- * Supports: username/repo or https://github.com/username/repo
83
- */
84
- async add(githubRepo) {
85
- const parsed = this.parseGitHubRepo(githubRepo);
86
- if (!parsed) {
87
- throw new Error('Invalid format. Use: username/repo or https://github.com/username/repo');
88
- }
89
- // Check if already exists
90
- if (this.get(parsed.name)) {
91
- throw new Error(`Registry '${parsed.name}' already exists`);
92
- }
93
- this.config.registries.push({
94
- name: parsed.name,
95
- url: parsed.url,
96
- enabled: true,
97
- });
98
- await this.save();
99
- return parsed;
100
- }
101
- /**
102
- * Remove a registry
103
- */
104
- async remove(name) {
105
- const index = this.config.registries.findIndex((r) => r.name === name);
106
- if (index === -1) {
107
- return false;
108
- }
109
- // Prevent removing the default registry
110
- if (this.config.registries[index].url === DEFAULT_REGISTRY.url) {
111
- throw new Error('Cannot remove the default photons registry');
112
- }
113
- this.config.registries.splice(index, 1);
114
- await this.save();
115
- return true;
116
- }
117
- /**
118
- * Enable/disable a registry
119
- */
120
- async setEnabled(name, enabled) {
121
- const registry = this.get(name);
122
- if (!registry) {
123
- return false;
124
- }
125
- registry.enabled = enabled;
126
- await this.save();
127
- return true;
128
- }
129
- /**
130
- * Try to fetch MCP from all enabled registries
131
- */
132
- async fetchMCP(mcpName) {
133
- const enabled = this.getEnabled();
134
- for (const registry of enabled) {
135
- try {
136
- const url = `${registry.url}/${mcpName}.photon.ts`;
137
- const response = await fetch(url);
138
- if (response.ok) {
139
- const content = await response.text();
140
- return { content, registry };
141
- }
142
- }
143
- catch {
144
- // Try next registry
145
- }
146
- }
147
- return null;
148
- }
149
- /**
150
- * Fetch version from all enabled registries
151
- */
152
- async fetchVersion(mcpName) {
153
- const enabled = this.getEnabled();
154
- for (const registry of enabled) {
155
- try {
156
- const url = `${registry.url}/${mcpName}.photon.ts`;
157
- const response = await fetch(url);
158
- if (response.ok) {
159
- const content = await response.text();
160
- const versionMatch = content.match(/@version\s+(\d+\.\d+\.\d+)/);
161
- if (versionMatch) {
162
- return { version: versionMatch[1], registry };
163
- }
164
- }
165
- }
166
- catch {
167
- // Try next registry
168
- }
169
- }
170
- return null;
171
- }
172
- /**
173
- * Search for MCP in all registries
174
- */
175
- async search(query) {
176
- const results = new Map();
177
- const enabled = this.getEnabled();
178
- // For now, we just check if the MCP exists by name
179
- // In the future, registries could provide a manifest/index file
180
- for (const registry of enabled) {
181
- try {
182
- const url = `${registry.url}/${query}.photon.ts`;
183
- const response = await fetch(url, { method: 'HEAD' });
184
- if (response.ok) {
185
- const existing = results.get(query) || [];
186
- existing.push(registry);
187
- results.set(query, existing);
188
- }
189
- }
190
- catch {
191
- // Skip this registry
192
- }
193
- }
194
- return results;
195
- }
196
- /**
197
- * List all available MCPs from a registry
198
- * Note: Requires registry to have an index.json file
199
- */
200
- async listFromRegistry(registryName) {
201
- const registry = this.get(registryName);
202
- if (!registry) {
203
- return [];
204
- }
205
- try {
206
- // Try to fetch index.json if it exists
207
- const indexUrl = `${registry.url}/index.json`;
208
- const response = await fetch(indexUrl);
209
- if (response.ok) {
210
- const data = await response.json();
211
- return data.mcps || [];
212
- }
213
- }
214
- catch {
215
- // No index file available
216
- }
217
- return [];
218
- }
219
- }
220
- //# sourceMappingURL=registry-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-manager.js","sourceRoot":"","sources":["../src/registry-manager.ts"],"names":[],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- /**
2
- * Schema Extractor
3
- *
4
- * Extracts JSON schemas from TypeScript method signatures and JSDoc comments
5
- * Also extracts constructor parameters for config injection
6
- * Supports Templates (@Template) and Static resources (@Static)
7
- *
8
- * Now uses TypeScript's compiler API for robust type parsing
9
- */
10
- import { ExtractedSchema, ConstructorParam, TemplateInfo, StaticInfo } from './types.js';
11
- export interface ExtractedMetadata {
12
- tools: ExtractedSchema[];
13
- templates: TemplateInfo[];
14
- statics: StaticInfo[];
15
- }
16
- /**
17
- * Extract schemas from a Photon MCP class file
18
- */
19
- export declare class SchemaExtractor {
20
- /**
21
- * Extract method schemas from source code file
22
- */
23
- extractFromFile(filePath: string): Promise<ExtractedSchema[]>;
24
- /**
25
- * Extract all metadata (tools, templates, statics) from source code
26
- */
27
- extractAllFromSource(source: string): ExtractedMetadata;
28
- /**
29
- * Extract schemas from source code string (backward compatibility)
30
- */
31
- extractFromSource(source: string): ExtractedSchema[];
32
- /**
33
- * Get JSDoc comment for a node
34
- */
35
- private getJSDocComment;
36
- /**
37
- * Get the first parameter's type node
38
- */
39
- private getFirstParameterType;
40
- /**
41
- * Build JSON schema from TypeScript type node
42
- * Extracts: type, optional, readonly
43
- */
44
- private buildSchemaFromType;
45
- /**
46
- * Convert TypeScript type node to JSON schema
47
- */
48
- private typeNodeToSchema;
49
- /**
50
- * Extract enum values from a union of literal types
51
- * Returns a proper enum schema if all types are literals of the same kind
52
- * Returns an optimized anyOf schema for mixed unions (e.g., number | '+1' | '-1')
53
- * Returns null if the union should use standard anyOf processing
54
- */
55
- private extractEnumFromUnion;
56
- /**
57
- * Extract constructor parameters for config injection
58
- */
59
- extractConstructorParams(source: string): ConstructorParam[];
60
- /**
61
- * Extract default value from initializer
62
- */
63
- private extractDefaultValue;
64
- /**
65
- * Extract main description from JSDoc comment
66
- */
67
- private extractDescription;
68
- /**
69
- * Extract parameter descriptions from JSDoc @param tags
70
- * Also removes constraint tags from descriptions
71
- */
72
- private extractParamDocs;
73
- /**
74
- * Extract parameter constraints from JSDoc @param tags
75
- * Supports inline tags: {@min}, {@max}, {@pattern}, {@format}, {@default}, {@unique},
76
- * {@example}, {@multipleOf}, {@deprecated}, {@readOnly}, {@writeOnly}
77
- */
78
- private extractParamConstraints;
79
- /**
80
- * Apply constraints to a schema property based on type
81
- * Handles: min/max (contextual), pattern, format, default, unique,
82
- * examples, multipleOf, deprecated, readOnly, writeOnly
83
- * Works with both simple types and anyOf schemas
84
- */
85
- private applyConstraints;
86
- /**
87
- * Check if JSDoc contains @Template tag
88
- */
89
- private hasTemplateTag;
90
- /**
91
- * Check if JSDoc contains @Static tag
92
- */
93
- private hasStaticTag;
94
- /**
95
- * Extract URI pattern from @Static tag
96
- * Example: @Static github://repos/{owner}/{repo}/readme
97
- */
98
- private extractStaticURI;
99
- /**
100
- * Extract format hint from @format tag
101
- * Example: @format table
102
- */
103
- private extractFormat;
104
- /**
105
- * Extract MIME type from @mimeType tag
106
- * Example: @mimeType text/markdown
107
- */
108
- private extractMimeType;
109
- }
110
- //# sourceMappingURL=schema-extractor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-extractor.d.ts","sourceRoot":"","sources":["../src/schema-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAUnE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAyHvD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE;IAIpD;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyGxB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA0F5B;;OAEG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAmD5D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA2G/B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA0FxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAIxB"}