@mcpmake/core 0.2.0

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 (323) hide show
  1. package/dist/analyzer/auth-detector.d.ts +13 -0
  2. package/dist/analyzer/auth-detector.d.ts.map +1 -0
  3. package/dist/analyzer/auth-detector.js +143 -0
  4. package/dist/analyzer/auth-detector.js.map +1 -0
  5. package/dist/analyzer/dom-parser.d.ts +11 -0
  6. package/dist/analyzer/dom-parser.d.ts.map +1 -0
  7. package/dist/analyzer/dom-parser.js +260 -0
  8. package/dist/analyzer/dom-parser.js.map +1 -0
  9. package/dist/analyzer/goal-crawler.d.ts +26 -0
  10. package/dist/analyzer/goal-crawler.d.ts.map +1 -0
  11. package/dist/analyzer/goal-crawler.js +178 -0
  12. package/dist/analyzer/goal-crawler.js.map +1 -0
  13. package/dist/analyzer/hybrid-detector.d.ts +29 -0
  14. package/dist/analyzer/hybrid-detector.d.ts.map +1 -0
  15. package/dist/analyzer/hybrid-detector.js +97 -0
  16. package/dist/analyzer/hybrid-detector.js.map +1 -0
  17. package/dist/analyzer/index.d.ts +13 -0
  18. package/dist/analyzer/index.d.ts.map +1 -0
  19. package/dist/analyzer/index.js +9 -0
  20. package/dist/analyzer/index.js.map +1 -0
  21. package/dist/analyzer/screenshot-capture.d.ts +30 -0
  22. package/dist/analyzer/screenshot-capture.d.ts.map +1 -0
  23. package/dist/analyzer/screenshot-capture.js +43 -0
  24. package/dist/analyzer/screenshot-capture.js.map +1 -0
  25. package/dist/analyzer/selector-builder.d.ts +20 -0
  26. package/dist/analyzer/selector-builder.d.ts.map +1 -0
  27. package/dist/analyzer/selector-builder.js +200 -0
  28. package/dist/analyzer/selector-builder.js.map +1 -0
  29. package/dist/analyzer/semantic-analyzer.d.ts +14 -0
  30. package/dist/analyzer/semantic-analyzer.d.ts.map +1 -0
  31. package/dist/analyzer/semantic-analyzer.js +146 -0
  32. package/dist/analyzer/semantic-analyzer.js.map +1 -0
  33. package/dist/analyzer/site-crawler.d.ts +39 -0
  34. package/dist/analyzer/site-crawler.d.ts.map +1 -0
  35. package/dist/analyzer/site-crawler.js +236 -0
  36. package/dist/analyzer/site-crawler.js.map +1 -0
  37. package/dist/config/configurable-command.d.ts +14 -0
  38. package/dist/config/configurable-command.d.ts.map +1 -0
  39. package/dist/config/configurable-command.js +71 -0
  40. package/dist/config/configurable-command.js.map +1 -0
  41. package/dist/config/mcpmake-config.d.ts +69 -0
  42. package/dist/config/mcpmake-config.d.ts.map +1 -0
  43. package/dist/config/mcpmake-config.js +209 -0
  44. package/dist/config/mcpmake-config.js.map +1 -0
  45. package/dist/emitter/code-writer.d.ts +9 -0
  46. package/dist/emitter/code-writer.d.ts.map +1 -0
  47. package/dist/emitter/code-writer.js +26 -0
  48. package/dist/emitter/code-writer.js.map +1 -0
  49. package/dist/emitter/index.d.ts +33 -0
  50. package/dist/emitter/index.d.ts.map +1 -0
  51. package/dist/emitter/index.js +297 -0
  52. package/dist/emitter/index.js.map +1 -0
  53. package/dist/emitter/mcpb-bundler.d.ts +32 -0
  54. package/dist/emitter/mcpb-bundler.d.ts.map +1 -0
  55. package/dist/emitter/mcpb-bundler.js +173 -0
  56. package/dist/emitter/mcpb-bundler.js.map +1 -0
  57. package/dist/emitter/project-scaffolder.d.ts +5 -0
  58. package/dist/emitter/project-scaffolder.d.ts.map +1 -0
  59. package/dist/emitter/project-scaffolder.js +101 -0
  60. package/dist/emitter/project-scaffolder.js.map +1 -0
  61. package/dist/emitter/python-template-loader.d.ts +5 -0
  62. package/dist/emitter/python-template-loader.d.ts.map +1 -0
  63. package/dist/emitter/python-template-loader.js +31 -0
  64. package/dist/emitter/python-template-loader.js.map +1 -0
  65. package/dist/emitter/python-templates/dockerfile.hbs +14 -0
  66. package/dist/emitter/python-templates/env.example.hbs +12 -0
  67. package/dist/emitter/python-templates/requirements.txt.hbs +4 -0
  68. package/dist/emitter/python-templates/server.py.hbs +93 -0
  69. package/dist/emitter/site-scaffolder.d.ts +14 -0
  70. package/dist/emitter/site-scaffolder.d.ts.map +1 -0
  71. package/dist/emitter/site-scaffolder.js +71 -0
  72. package/dist/emitter/site-scaffolder.js.map +1 -0
  73. package/dist/emitter/site-template-loader.d.ts +6 -0
  74. package/dist/emitter/site-template-loader.d.ts.map +1 -0
  75. package/dist/emitter/site-template-loader.js +48 -0
  76. package/dist/emitter/site-template-loader.js.map +1 -0
  77. package/dist/emitter/site-templates/browser-manager.ts.hbs +233 -0
  78. package/dist/emitter/site-templates/config.ts.hbs +28 -0
  79. package/dist/emitter/site-templates/dockerfile.hbs +31 -0
  80. package/dist/emitter/site-templates/env.example.hbs +19 -0
  81. package/dist/emitter/site-templates/package.json.hbs +26 -0
  82. package/dist/emitter/site-templates/server-main-http.ts.hbs +108 -0
  83. package/dist/emitter/site-templates/server-main.ts.hbs +23 -0
  84. package/dist/emitter/site-templates/tool-handler-action.ts.hbs +86 -0
  85. package/dist/emitter/site-templates/tool-handler-form.ts.hbs +116 -0
  86. package/dist/emitter/site-templates/tool-handler-lifecycle.ts.hbs +146 -0
  87. package/dist/emitter/site-templates/tool-index.ts.hbs +11 -0
  88. package/dist/emitter/template-loader.d.ts +2 -0
  89. package/dist/emitter/template-loader.d.ts.map +1 -0
  90. package/dist/emitter/template-loader.js +28 -0
  91. package/dist/emitter/template-loader.js.map +1 -0
  92. package/dist/emitter/templates/auth-provider.ts.hbs +57 -0
  93. package/dist/emitter/templates/config.ts.hbs +110 -0
  94. package/dist/emitter/templates/discovery.ts.hbs +320 -0
  95. package/dist/emitter/templates/dockerfile.hbs +34 -0
  96. package/dist/emitter/templates/env.example.hbs +52 -0
  97. package/dist/emitter/templates/gitignore.hbs +5 -0
  98. package/dist/emitter/templates/http-executor.ts.hbs +159 -0
  99. package/dist/emitter/templates/oauth.ts.hbs +188 -0
  100. package/dist/emitter/templates/package.json.hbs +25 -0
  101. package/dist/emitter/templates/prompts.ts.hbs +22 -0
  102. package/dist/emitter/templates/readme.md.hbs +156 -0
  103. package/dist/emitter/templates/resources.ts.hbs +63 -0
  104. package/dist/emitter/templates/response-filter.ts.hbs +128 -0
  105. package/dist/emitter/templates/server-main-http.ts.hbs +442 -0
  106. package/dist/emitter/templates/server-main.ts.hbs +40 -0
  107. package/dist/emitter/templates/task-handlers.ts.hbs +189 -0
  108. package/dist/emitter/templates/task-manager.ts.hbs +139 -0
  109. package/dist/emitter/templates/task-sse.ts.hbs +105 -0
  110. package/dist/emitter/templates/tool-handler.ts.hbs +142 -0
  111. package/dist/emitter/templates/tool-index.ts.hbs +42 -0
  112. package/dist/emitter/templates/tool-test.ts.hbs +57 -0
  113. package/dist/emitter/templates/trace.ts.hbs +79 -0
  114. package/dist/emitter/templates/tsconfig.json.hbs +16 -0
  115. package/dist/emitter/templates/types.ts.hbs +5 -0
  116. package/dist/emitter/worker-template-loader.d.ts +6 -0
  117. package/dist/emitter/worker-template-loader.d.ts.map +1 -0
  118. package/dist/emitter/worker-template-loader.js +34 -0
  119. package/dist/emitter/worker-template-loader.js.map +1 -0
  120. package/dist/emitter/worker-templates/config.ts.hbs +93 -0
  121. package/dist/emitter/worker-templates/dev-vars.example.hbs +27 -0
  122. package/dist/emitter/worker-templates/gitignore.hbs +6 -0
  123. package/dist/emitter/worker-templates/package.json.hbs +24 -0
  124. package/dist/emitter/worker-templates/readme.md.hbs +73 -0
  125. package/dist/emitter/worker-templates/server.test.ts.hbs +20 -0
  126. package/dist/emitter/worker-templates/tool-handler.ts.hbs +103 -0
  127. package/dist/emitter/worker-templates/tool-index.ts.hbs +28 -0
  128. package/dist/emitter/worker-templates/tsconfig.json.hbs +17 -0
  129. package/dist/emitter/worker-templates/worker.ts.hbs +286 -0
  130. package/dist/emitter/worker-templates/wrangler.toml.hbs +19 -0
  131. package/dist/generator/spec-generator.d.ts +7 -0
  132. package/dist/generator/spec-generator.d.ts.map +1 -0
  133. package/dist/generator/spec-generator.js +51 -0
  134. package/dist/generator/spec-generator.js.map +1 -0
  135. package/dist/index.d.ts +75 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +101 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/parser/har-filter.d.ts +9 -0
  140. package/dist/parser/har-filter.d.ts.map +1 -0
  141. package/dist/parser/har-filter.js +72 -0
  142. package/dist/parser/har-filter.js.map +1 -0
  143. package/dist/parser/har-loader.d.ts +3 -0
  144. package/dist/parser/har-loader.d.ts.map +1 -0
  145. package/dist/parser/har-loader.js +15 -0
  146. package/dist/parser/har-loader.js.map +1 -0
  147. package/dist/parser/har-normalizer.d.ts +21 -0
  148. package/dist/parser/har-normalizer.d.ts.map +1 -0
  149. package/dist/parser/har-normalizer.js +79 -0
  150. package/dist/parser/har-normalizer.js.map +1 -0
  151. package/dist/parser/index.d.ts +11 -0
  152. package/dist/parser/index.d.ts.map +1 -0
  153. package/dist/parser/index.js +7 -0
  154. package/dist/parser/index.js.map +1 -0
  155. package/dist/parser/openapi-loader.d.ts +7 -0
  156. package/dist/parser/openapi-loader.d.ts.map +1 -0
  157. package/dist/parser/openapi-loader.js +309 -0
  158. package/dist/parser/openapi-loader.js.map +1 -0
  159. package/dist/parser/operation-extractor.d.ts +14 -0
  160. package/dist/parser/operation-extractor.d.ts.map +1 -0
  161. package/dist/parser/operation-extractor.js +156 -0
  162. package/dist/parser/operation-extractor.js.map +1 -0
  163. package/dist/parser/overlay-loader.d.ts +11 -0
  164. package/dist/parser/overlay-loader.d.ts.map +1 -0
  165. package/dist/parser/overlay-loader.js +185 -0
  166. package/dist/parser/overlay-loader.js.map +1 -0
  167. package/dist/parser/postman-loader.d.ts +10 -0
  168. package/dist/parser/postman-loader.d.ts.map +1 -0
  169. package/dist/parser/postman-loader.js +107 -0
  170. package/dist/parser/postman-loader.js.map +1 -0
  171. package/dist/parser/schema-converter.d.ts +13 -0
  172. package/dist/parser/schema-converter.d.ts.map +1 -0
  173. package/dist/parser/schema-converter.js +118 -0
  174. package/dist/parser/schema-converter.js.map +1 -0
  175. package/dist/plugins/adapter.d.ts +41 -0
  176. package/dist/plugins/adapter.d.ts.map +1 -0
  177. package/dist/plugins/adapter.js +16 -0
  178. package/dist/plugins/adapter.js.map +1 -0
  179. package/dist/plugins/loader.d.ts +26 -0
  180. package/dist/plugins/loader.d.ts.map +1 -0
  181. package/dist/plugins/loader.js +59 -0
  182. package/dist/plugins/loader.js.map +1 -0
  183. package/dist/pricing.d.ts +56 -0
  184. package/dist/pricing.d.ts.map +1 -0
  185. package/dist/pricing.js +134 -0
  186. package/dist/pricing.js.map +1 -0
  187. package/dist/providers/index.d.ts +16 -0
  188. package/dist/providers/index.d.ts.map +1 -0
  189. package/dist/providers/index.js +57 -0
  190. package/dist/providers/index.js.map +1 -0
  191. package/dist/recorder/browser-recorder.d.ts +23 -0
  192. package/dist/recorder/browser-recorder.d.ts.map +1 -0
  193. package/dist/recorder/browser-recorder.js +206 -0
  194. package/dist/recorder/browser-recorder.js.map +1 -0
  195. package/dist/rescan/diff-engine.d.ts +6 -0
  196. package/dist/rescan/diff-engine.d.ts.map +1 -0
  197. package/dist/rescan/diff-engine.js +313 -0
  198. package/dist/rescan/diff-engine.js.map +1 -0
  199. package/dist/rescan/index.d.ts +4 -0
  200. package/dist/rescan/index.d.ts.map +1 -0
  201. package/dist/rescan/index.js +3 -0
  202. package/dist/rescan/index.js.map +1 -0
  203. package/dist/rescan/rescan-runner.d.ts +43 -0
  204. package/dist/rescan/rescan-runner.d.ts.map +1 -0
  205. package/dist/rescan/rescan-runner.js +70 -0
  206. package/dist/rescan/rescan-runner.js.map +1 -0
  207. package/dist/rescan/rescan-scheduler.d.ts +42 -0
  208. package/dist/rescan/rescan-scheduler.d.ts.map +1 -0
  209. package/dist/rescan/rescan-scheduler.js +180 -0
  210. package/dist/rescan/rescan-scheduler.js.map +1 -0
  211. package/dist/site-transformer/browser-tools.d.ts +11 -0
  212. package/dist/site-transformer/browser-tools.d.ts.map +1 -0
  213. package/dist/site-transformer/browser-tools.js +60 -0
  214. package/dist/site-transformer/browser-tools.js.map +1 -0
  215. package/dist/site-transformer/index.d.ts +3 -0
  216. package/dist/site-transformer/index.d.ts.map +1 -0
  217. package/dist/site-transformer/index.js +3 -0
  218. package/dist/site-transformer/index.js.map +1 -0
  219. package/dist/site-transformer/selector-healer.d.ts +9 -0
  220. package/dist/site-transformer/selector-healer.d.ts.map +1 -0
  221. package/dist/site-transformer/selector-healer.js +107 -0
  222. package/dist/site-transformer/selector-healer.js.map +1 -0
  223. package/dist/site-transformer/tool-generator.d.ts +14 -0
  224. package/dist/site-transformer/tool-generator.d.ts.map +1 -0
  225. package/dist/site-transformer/tool-generator.js +246 -0
  226. package/dist/site-transformer/tool-generator.js.map +1 -0
  227. package/dist/transformer/auth-detector.d.ts +29 -0
  228. package/dist/transformer/auth-detector.d.ts.map +1 -0
  229. package/dist/transformer/auth-detector.js +104 -0
  230. package/dist/transformer/auth-detector.js.map +1 -0
  231. package/dist/transformer/catalog-builder.d.ts +19 -0
  232. package/dist/transformer/catalog-builder.d.ts.map +1 -0
  233. package/dist/transformer/catalog-builder.js +57 -0
  234. package/dist/transformer/catalog-builder.js.map +1 -0
  235. package/dist/transformer/client-compat.d.ts +7 -0
  236. package/dist/transformer/client-compat.d.ts.map +1 -0
  237. package/dist/transformer/client-compat.js +45 -0
  238. package/dist/transformer/client-compat.js.map +1 -0
  239. package/dist/transformer/har-clusterer.d.ts +10 -0
  240. package/dist/transformer/har-clusterer.d.ts.map +1 -0
  241. package/dist/transformer/har-clusterer.js +28 -0
  242. package/dist/transformer/har-clusterer.js.map +1 -0
  243. package/dist/transformer/har-dedup.d.ts +11 -0
  244. package/dist/transformer/har-dedup.d.ts.map +1 -0
  245. package/dist/transformer/har-dedup.js +82 -0
  246. package/dist/transformer/har-dedup.js.map +1 -0
  247. package/dist/transformer/har-schema-inferrer.d.ts +16 -0
  248. package/dist/transformer/har-schema-inferrer.d.ts.map +1 -0
  249. package/dist/transformer/har-schema-inferrer.js +91 -0
  250. package/dist/transformer/har-schema-inferrer.js.map +1 -0
  251. package/dist/transformer/har-to-operations.d.ts +14 -0
  252. package/dist/transformer/har-to-operations.d.ts.map +1 -0
  253. package/dist/transformer/har-to-operations.js +193 -0
  254. package/dist/transformer/har-to-operations.js.map +1 -0
  255. package/dist/transformer/index.d.ts +9 -0
  256. package/dist/transformer/index.d.ts.map +1 -0
  257. package/dist/transformer/index.js +7 -0
  258. package/dist/transformer/index.js.map +1 -0
  259. package/dist/transformer/llm-namer.d.ts +7 -0
  260. package/dist/transformer/llm-namer.d.ts.map +1 -0
  261. package/dist/transformer/llm-namer.js +60 -0
  262. package/dist/transformer/llm-namer.js.map +1 -0
  263. package/dist/transformer/naming.d.ts +5 -0
  264. package/dist/transformer/naming.d.ts.map +1 -0
  265. package/dist/transformer/naming.js +31 -0
  266. package/dist/transformer/naming.js.map +1 -0
  267. package/dist/transformer/operation-filter.d.ts +14 -0
  268. package/dist/transformer/operation-filter.d.ts.map +1 -0
  269. package/dist/transformer/operation-filter.js +53 -0
  270. package/dist/transformer/operation-filter.js.map +1 -0
  271. package/dist/transformer/resource-builder.d.ts +13 -0
  272. package/dist/transformer/resource-builder.d.ts.map +1 -0
  273. package/dist/transformer/resource-builder.js +87 -0
  274. package/dist/transformer/resource-builder.js.map +1 -0
  275. package/dist/transformer/schema-merger.d.ts +15 -0
  276. package/dist/transformer/schema-merger.d.ts.map +1 -0
  277. package/dist/transformer/schema-merger.js +66 -0
  278. package/dist/transformer/schema-merger.js.map +1 -0
  279. package/dist/transformer/stainless-config.d.ts +75 -0
  280. package/dist/transformer/stainless-config.d.ts.map +1 -0
  281. package/dist/transformer/stainless-config.js +59 -0
  282. package/dist/transformer/stainless-config.js.map +1 -0
  283. package/dist/transformer/stainless-translator.d.ts +61 -0
  284. package/dist/transformer/stainless-translator.d.ts.map +1 -0
  285. package/dist/transformer/stainless-translator.js +375 -0
  286. package/dist/transformer/stainless-translator.js.map +1 -0
  287. package/dist/transformer/tool-builder.d.ts +4 -0
  288. package/dist/transformer/tool-builder.d.ts.map +1 -0
  289. package/dist/transformer/tool-builder.js +119 -0
  290. package/dist/transformer/tool-builder.js.map +1 -0
  291. package/dist/types/index.d.ts +140 -0
  292. package/dist/types/index.d.ts.map +1 -0
  293. package/dist/types/index.js +2 -0
  294. package/dist/types/index.js.map +1 -0
  295. package/dist/types/site.d.ts +285 -0
  296. package/dist/types/site.d.ts.map +1 -0
  297. package/dist/types/site.js +9 -0
  298. package/dist/types/site.js.map +1 -0
  299. package/dist/utils/fail.d.ts +49 -0
  300. package/dist/utils/fail.d.ts.map +1 -0
  301. package/dist/utils/fail.js +223 -0
  302. package/dist/utils/fail.js.map +1 -0
  303. package/dist/utils/fs.d.ts +6 -0
  304. package/dist/utils/fs.d.ts.map +1 -0
  305. package/dist/utils/fs.js +29 -0
  306. package/dist/utils/fs.js.map +1 -0
  307. package/dist/utils/interactive.d.ts +7 -0
  308. package/dist/utils/interactive.d.ts.map +1 -0
  309. package/dist/utils/interactive.js +31 -0
  310. package/dist/utils/interactive.js.map +1 -0
  311. package/dist/utils/logger.d.ts +2 -0
  312. package/dist/utils/logger.d.ts.map +1 -0
  313. package/dist/utils/logger.js +3 -0
  314. package/dist/utils/logger.js.map +1 -0
  315. package/dist/utils/sanitize.d.ts +29 -0
  316. package/dist/utils/sanitize.d.ts.map +1 -0
  317. package/dist/utils/sanitize.js +45 -0
  318. package/dist/utils/sanitize.js.map +1 -0
  319. package/dist/utils/watcher.d.ts +12 -0
  320. package/dist/utils/watcher.d.ts.map +1 -0
  321. package/dist/utils/watcher.js +37 -0
  322. package/dist/utils/watcher.js.map +1 -0
  323. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-crawler.js","sourceRoot":"","sources":["../../src/analyzer/site-crawler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Wraps a citty command so it honours `.mcpmake.yaml`: a `--config` flag is
3
+ * added and config-file values are overlaid onto the parsed args (without
4
+ * overriding explicit CLI flags) right before the command runs.
5
+ */
6
+ import { type ArgsDef, type CommandDef } from 'citty';
7
+ /**
8
+ * Drop-in replacement for `defineCommand` that layers `.mcpmake.yaml` config in.
9
+ *
10
+ * @param commandName Name used to look up a per-command override section.
11
+ * @param def The command definition (same shape as `defineCommand`).
12
+ */
13
+ export declare function defineConfigurableCommand<T extends ArgsDef>(commandName: string, def: CommandDef<T>): CommandDef<T>;
14
+ //# sourceMappingURL=configurable-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurable-command.d.ts","sourceRoot":"","sources":["../../src/config/configurable-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,KAAK,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,OAAO,CAAC;AAW1F;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,OAAO,EACzD,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GACjB,UAAU,CAAC,CAAC,CAAC,CA2Df"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Wraps a citty command so it honours `.mcpmake.yaml`: a `--config` flag is
3
+ * added and config-file values are overlaid onto the parsed args (without
4
+ * overriding explicit CLI flags) right before the command runs.
5
+ */
6
+ import { defineCommand } from 'citty';
7
+ import { applyConfigToArgs, displayPath } from './mcpmake-config.js';
8
+ import { logger } from '../utils/logger.js';
9
+ import { fail } from '../utils/fail.js';
10
+ const CONFIG_ARG = {
11
+ type: 'string',
12
+ description: 'Path to a .mcpmake.yaml config file (default: auto-discovered in the working directory)',
13
+ };
14
+ /**
15
+ * Drop-in replacement for `defineCommand` that layers `.mcpmake.yaml` config in.
16
+ *
17
+ * @param commandName Name used to look up a per-command override section.
18
+ * @param def The command definition (same shape as `defineCommand`).
19
+ */
20
+ export function defineConfigurableCommand(commandName, def) {
21
+ const originalRun = def.run;
22
+ const baseArgs = (def.args && typeof def.args === 'object' ? def.args : {});
23
+ // citty enforces `required` during parsing — before our config overlay runs —
24
+ // so a required *flag* the user supplied via .mcpmake.yaml would be rejected.
25
+ // Relax those flags for citty and re-validate after merging config below.
26
+ // (Required positionals stay enforced: they always belong on the command line.)
27
+ const requiredFlags = [];
28
+ const relaxedArgs = {};
29
+ for (const [name, d] of Object.entries(baseArgs)) {
30
+ const ad = d;
31
+ if (ad.required === true && ad.type !== 'positional' && ad.default === undefined) {
32
+ requiredFlags.push(name);
33
+ relaxedArgs[name] = { ...d, required: false };
34
+ }
35
+ else {
36
+ relaxedArgs[name] = d;
37
+ }
38
+ }
39
+ const argsWithConfig = { ...relaxedArgs, config: CONFIG_ARG };
40
+ return defineCommand({
41
+ ...def,
42
+ args: argsWithConfig,
43
+ async run(ctx) {
44
+ const args = ctx.args;
45
+ try {
46
+ const result = applyConfigToArgs(args, ctx.rawArgs, commandName, argsWithConfig, {
47
+ configPath: typeof args.config === 'string' ? args.config : undefined,
48
+ });
49
+ if (result.path && result.applied.length > 0) {
50
+ logger.info(`Loaded ${result.applied.length} setting(s) from ${displayPath(result.path)}: ` +
51
+ result.applied.join(', '));
52
+ }
53
+ }
54
+ catch (err) {
55
+ await fail(`Config error: ${err instanceof Error ? err.message : String(err)}`, err);
56
+ }
57
+ // Re-enforce required flags now that config has been applied.
58
+ const missing = requiredFlags.filter((k) => {
59
+ const v = args[k];
60
+ return v === undefined || v === null || v === '';
61
+ });
62
+ if (missing.length > 0) {
63
+ await fail(missing
64
+ .map((k) => `Missing required argument: --${k} (set it on the command line or in .mcpmake.yaml)`)
65
+ .join('\n'));
66
+ }
67
+ return originalRun?.(ctx);
68
+ },
69
+ });
70
+ }
71
+ //# sourceMappingURL=configurable-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurable-command.js","sourceRoot":"","sources":["../../src/config/configurable-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * `.mcpmake.yaml` project config — kills CLI-flag repetition and enables
3
+ * team-shared, version-controlled generation settings.
4
+ *
5
+ * Schema: top-level keys are global defaults applied to every command; an
6
+ * optional section keyed by a command name overrides them for that command.
7
+ *
8
+ * # .mcpmake.yaml
9
+ * output: ./generated # global default for all commands
10
+ * transport: http
11
+ * format: typescript
12
+ * openapi: # per-command overrides
13
+ * base-url: https://api.example.com
14
+ * include: [users, repos] # arrays map to the comma-separated flag form
15
+ * deploy:
16
+ * url: https://mcpmake.dev
17
+ *
18
+ * Precedence (highest wins): explicit CLI flag > per-command section >
19
+ * global key > the command's built-in default. Positional args (e.g. the spec
20
+ * path) are never taken from config — they stay on the command line.
21
+ */
22
+ import type { ArgsDef } from 'citty';
23
+ /** Command names that may appear as config sections (vs. global keys). */
24
+ export declare const KNOWN_COMMANDS: Set<string>;
25
+ export interface LoadedConfig {
26
+ path: string;
27
+ data: Record<string, unknown>;
28
+ }
29
+ export interface ConfigEnv {
30
+ /** Explicit path from a `--config` flag (highest priority). */
31
+ configPath?: string;
32
+ env?: NodeJS.ProcessEnv;
33
+ cwd?: string;
34
+ }
35
+ /**
36
+ * Resolve which config file to use, or null if none.
37
+ *
38
+ * Order: explicit `--config` path → `MCPMAKE_CONFIG` env → auto-discovered
39
+ * `.mcpmake.yaml`/`.yml` in the working directory. An explicit path that does
40
+ * not exist is an error; auto-discovery silently yields null.
41
+ */
42
+ export declare function findConfigPath(deps?: ConfigEnv): string | null;
43
+ /** Read + parse the config file, or null when there is none. Throws on malformed YAML. */
44
+ export declare function loadConfig(deps?: ConfigEnv): LoadedConfig | null;
45
+ /** Global keys = every top-level key that is not a command section. */
46
+ export declare function globalConfig(data: Record<string, unknown>): Record<string, unknown>;
47
+ /** The per-command override section, or an empty object. */
48
+ export declare function sectionConfig(data: Record<string, unknown>, commandName: string): Record<string, unknown>;
49
+ /**
50
+ * Set of arg names explicitly present on the command line (so they win over
51
+ * config). Scans the raw argv: `--name`, `--name=v`, and `--no-name` all mark
52
+ * `name`; short aliases (`-o`) resolve through the arg spec. Stops at `--`.
53
+ */
54
+ export declare function explicitFlags(rawArgs: string[], argSpec: ArgsDef): Set<string>;
55
+ export interface ApplyResult {
56
+ /** Path of the config file used, or null when none applied. */
57
+ path: string | null;
58
+ /** Arg names that were filled from config (not overridden by a CLI flag). */
59
+ applied: string[];
60
+ }
61
+ /**
62
+ * Overlay config-file values onto already-parsed citty `args`, mutating it in
63
+ * place. CLI flags (detected via rawArgs) and positionals are never touched.
64
+ * Returns which keys were applied so the caller can surface it.
65
+ */
66
+ export declare function applyConfigToArgs(args: Record<string, unknown>, rawArgs: string[], commandName: string, argSpec: ArgsDef, deps?: ConfigEnv): ApplyResult;
67
+ /** Render a config path relative to cwd for friendly logging. */
68
+ export declare function displayPath(path: string, cwd?: string): string;
69
+ //# sourceMappingURL=mcpmake-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpmake-config.d.ts","sourceRoot":"","sources":["../../src/config/mcpmake-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,0EAA0E;AAC1E,eAAO,MAAM,cAAc,aAiBzB,CAAC;AAIH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,SAAc,GAAG,MAAM,GAAG,IAAI,CAkBlE;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,IAAI,GAAE,SAAc,GAAG,YAAY,GAAG,IAAI,CAiBpE;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOnF;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAiC9E;AAkBD,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,SAAc,GACnB,WAAW,CA6Bb;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,MAAM,CAGrE"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * `.mcpmake.yaml` project config — kills CLI-flag repetition and enables
3
+ * team-shared, version-controlled generation settings.
4
+ *
5
+ * Schema: top-level keys are global defaults applied to every command; an
6
+ * optional section keyed by a command name overrides them for that command.
7
+ *
8
+ * # .mcpmake.yaml
9
+ * output: ./generated # global default for all commands
10
+ * transport: http
11
+ * format: typescript
12
+ * openapi: # per-command overrides
13
+ * base-url: https://api.example.com
14
+ * include: [users, repos] # arrays map to the comma-separated flag form
15
+ * deploy:
16
+ * url: https://mcpmake.dev
17
+ *
18
+ * Precedence (highest wins): explicit CLI flag > per-command section >
19
+ * global key > the command's built-in default. Positional args (e.g. the spec
20
+ * path) are never taken from config — they stay on the command line.
21
+ */
22
+ import { existsSync, readFileSync } from 'node:fs';
23
+ import { isAbsolute, relative, resolve } from 'node:path';
24
+ import { parse as parseYaml } from 'yaml';
25
+ import { logger } from '../utils/logger.js';
26
+ /** Command names that may appear as config sections (vs. global keys). */
27
+ export const KNOWN_COMMANDS = new Set([
28
+ 'openapi',
29
+ 'har',
30
+ 'url',
31
+ 'describe',
32
+ 'postman',
33
+ 'website',
34
+ 'stainless',
35
+ 'deploy',
36
+ 'verify',
37
+ 'update',
38
+ 'publish',
39
+ 'merge',
40
+ 'lint',
41
+ 'diff',
42
+ 'bundle',
43
+ 'ci',
44
+ ]);
45
+ const CONFIG_FILENAMES = ['.mcpmake.yaml', '.mcpmake.yml'];
46
+ function isPlainObject(v) {
47
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
48
+ }
49
+ /**
50
+ * Resolve which config file to use, or null if none.
51
+ *
52
+ * Order: explicit `--config` path → `MCPMAKE_CONFIG` env → auto-discovered
53
+ * `.mcpmake.yaml`/`.yml` in the working directory. An explicit path that does
54
+ * not exist is an error; auto-discovery silently yields null.
55
+ */
56
+ export function findConfigPath(deps = {}) {
57
+ const cwd = deps.cwd ?? process.cwd();
58
+ const env = deps.env ?? process.env;
59
+ const explicit = deps.configPath || env.MCPMAKE_CONFIG;
60
+ if (explicit) {
61
+ const p = isAbsolute(explicit) ? explicit : resolve(cwd, explicit);
62
+ if (!existsSync(p)) {
63
+ throw new Error(`Config file not found: ${explicit}`);
64
+ }
65
+ return p;
66
+ }
67
+ for (const name of CONFIG_FILENAMES) {
68
+ const p = resolve(cwd, name);
69
+ if (existsSync(p))
70
+ return p;
71
+ }
72
+ return null;
73
+ }
74
+ /** Read + parse the config file, or null when there is none. Throws on malformed YAML. */
75
+ export function loadConfig(deps = {}) {
76
+ const path = findConfigPath(deps);
77
+ if (!path)
78
+ return null;
79
+ const raw = readFileSync(path, 'utf8');
80
+ let parsed;
81
+ try {
82
+ parsed = parseYaml(raw);
83
+ }
84
+ catch (err) {
85
+ throw new Error(`Failed to parse ${path}: ${err instanceof Error ? err.message : String(err)}`);
86
+ }
87
+ if (parsed == null)
88
+ return { path, data: {} };
89
+ if (!isPlainObject(parsed)) {
90
+ throw new Error(`Config file ${path} must be a YAML mapping (key: value pairs)`);
91
+ }
92
+ return { path, data: parsed };
93
+ }
94
+ /** Global keys = every top-level key that is not a command section. */
95
+ export function globalConfig(data) {
96
+ const out = {};
97
+ for (const [k, v] of Object.entries(data)) {
98
+ if (KNOWN_COMMANDS.has(k) && isPlainObject(v))
99
+ continue;
100
+ out[k] = v;
101
+ }
102
+ return out;
103
+ }
104
+ /** The per-command override section, or an empty object. */
105
+ export function sectionConfig(data, commandName) {
106
+ const section = data[commandName];
107
+ return isPlainObject(section) ? section : {};
108
+ }
109
+ /**
110
+ * Set of arg names explicitly present on the command line (so they win over
111
+ * config). Scans the raw argv: `--name`, `--name=v`, and `--no-name` all mark
112
+ * `name`; short aliases (`-o`) resolve through the arg spec. Stops at `--`.
113
+ */
114
+ export function explicitFlags(rawArgs, argSpec) {
115
+ const aliasToName = {};
116
+ for (const [name, def] of Object.entries(argSpec)) {
117
+ const alias = def.alias;
118
+ if (!alias)
119
+ continue;
120
+ for (const a of Array.isArray(alias) ? alias : [alias]) {
121
+ aliasToName[a] = name;
122
+ }
123
+ }
124
+ const set = new Set();
125
+ for (const tok of rawArgs) {
126
+ if (tok === '--')
127
+ break;
128
+ if (tok.startsWith('--')) {
129
+ const raw = tok.slice(2).split('=')[0];
130
+ if (!raw)
131
+ continue;
132
+ // `--no-force` negates a boolean `force`, but an arg may also be *named*
133
+ // `no-resources` (a positive flag). Prefer a literal arg-name match; only
134
+ // strip `no-` when the bare name is the real arg.
135
+ if (!(raw in argSpec) && raw.startsWith('no-') && raw.slice(3) in argSpec) {
136
+ set.add(raw.slice(3));
137
+ }
138
+ else {
139
+ set.add(raw);
140
+ }
141
+ }
142
+ else if (tok.length > 1 && tok[0] === '-' && !/^-\d/.test(tok)) {
143
+ // Short flag(s): support bundled forms like -fw.
144
+ for (const ch of tok.slice(1)) {
145
+ const name = aliasToName[ch];
146
+ if (name)
147
+ set.add(name);
148
+ }
149
+ }
150
+ }
151
+ return set;
152
+ }
153
+ /** Coerce a YAML value to the type the citty arg expects. */
154
+ function coerceValue(value, type) {
155
+ if (type === 'boolean') {
156
+ if (typeof value === 'boolean')
157
+ return value;
158
+ if (typeof value === 'string') {
159
+ return value === 'true' || value === '1' || value === 'yes';
160
+ }
161
+ return Boolean(value);
162
+ }
163
+ if (type === 'string') {
164
+ if (Array.isArray(value))
165
+ return value.join(',');
166
+ return value == null ? value : String(value);
167
+ }
168
+ return value;
169
+ }
170
+ /**
171
+ * Overlay config-file values onto already-parsed citty `args`, mutating it in
172
+ * place. CLI flags (detected via rawArgs) and positionals are never touched.
173
+ * Returns which keys were applied so the caller can surface it.
174
+ */
175
+ export function applyConfigToArgs(args, rawArgs, commandName, argSpec, deps = {}) {
176
+ const loaded = loadConfig(deps);
177
+ if (!loaded)
178
+ return { path: null, applied: [] };
179
+ const global = globalConfig(loaded.data);
180
+ const section = sectionConfig(loaded.data, commandName);
181
+ // Warn on typos in a command-specific section (global keys may legitimately
182
+ // target other commands, so those are not warned).
183
+ for (const key of Object.keys(section)) {
184
+ if (!(key in argSpec)) {
185
+ logger.warn(`Unknown setting "${commandName}.${key}" in ${loaded.path} — ignored`);
186
+ }
187
+ }
188
+ const merged = { ...global, ...section };
189
+ const explicit = explicitFlags(rawArgs, argSpec);
190
+ const applied = [];
191
+ for (const [key, value] of Object.entries(merged)) {
192
+ const def = argSpec[key];
193
+ if (!def)
194
+ continue; // unknown global key — silently skip (may target another command)
195
+ if (def.type === 'positional')
196
+ continue; // positionals stay on the CLI
197
+ if (explicit.has(key))
198
+ continue; // explicit CLI flag wins
199
+ args[key] = coerceValue(value, def.type);
200
+ applied.push(key);
201
+ }
202
+ return { path: loaded.path, applied };
203
+ }
204
+ /** Render a config path relative to cwd for friendly logging. */
205
+ export function displayPath(path, cwd = process.cwd()) {
206
+ const rel = relative(cwd, path);
207
+ return rel && !rel.startsWith('..') ? rel : path;
208
+ }
209
+ //# sourceMappingURL=mcpmake-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpmake-config.js","sourceRoot":"","sources":["../../src/config/mcpmake-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface CodeUnit {
2
+ filePath: string;
3
+ content: string;
4
+ }
5
+ export declare function writeCodeUnits(units: CodeUnit[], outputDir: string, options: {
6
+ force: boolean;
7
+ dryRun: boolean;
8
+ }): Promise<void>;
9
+ //# sourceMappingURL=code-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-writer.d.ts","sourceRoot":"","sources":["../../src/emitter/code-writer.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,QAAQ,EAAE,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -0,0 +1,26 @@
1
+ import { resolve } from 'node:path';
2
+ import { writeFileSafe } from '../utils/fs.js';
3
+ import { logger } from '../utils/logger.js';
4
+ export async function writeCodeUnits(units, outputDir, options) {
5
+ const resolvedOutputDir = resolve(outputDir);
6
+ for (const unit of units) {
7
+ const absPath = resolve(outputDir, unit.filePath);
8
+ if (!absPath.startsWith(resolvedOutputDir + '/') && absPath !== resolvedOutputDir) {
9
+ throw new Error(`Path traversal detected: ${unit.filePath} resolves outside output directory`);
10
+ }
11
+ if (options.dryRun) {
12
+ logger.info(`[dry-run] Would write: ${unit.filePath}`);
13
+ continue;
14
+ }
15
+ const written = await writeFileSafe(absPath, unit.content, {
16
+ force: options.force,
17
+ });
18
+ if (written) {
19
+ logger.info(` ${unit.filePath}`);
20
+ }
21
+ else {
22
+ logger.warn(` Skipped (exists): ${unit.filePath}`);
23
+ }
24
+ }
25
+ }
26
+ //# sourceMappingURL=code-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-writer.js","sourceRoot":"","sources":["../../src/emitter/code-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAO5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAiB,EACjB,SAAiB,EACjB,OAA4C;IAE5C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,CAAC,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CACb,4BAA4B,IAAI,CAAC,QAAQ,oCAAoC,CAC9E,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YACzD,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { ProjectManifest } from '../types/index.js';
2
+ import type { SiteProjectManifest } from '../types/site.js';
3
+ export interface EmitOptions {
4
+ outputDir: string;
5
+ force: boolean;
6
+ dryRun: boolean;
7
+ }
8
+ export declare function emitProject(manifest: ProjectManifest, options: EmitOptions): Promise<void>;
9
+ /**
10
+ * Emit a Cloudflare Workers MCP server project (the `--target cloudflare` path).
11
+ *
12
+ * Workers is stateless and has no node:http server, so the SDK's
13
+ * StreamableHTTPServerTransport cannot run there. The entry (`src/index.ts`) is a
14
+ * hand-rolled JSON-RPC Fetch handler instead. The runtime-agnostic modules
15
+ * (`http.ts`, `auth.ts`, `trace.ts`) are reused verbatim from the Node templates —
16
+ * they only need `nodejs_compat`, which `wrangler.toml` enables.
17
+ *
18
+ * v1 scope is tools + initialize/ping/server-discover + bearer auth. Resources,
19
+ * prompts, the Tasks extension and OAuth2 outbound auth are not emitted for this
20
+ * target (a warning is logged and the user is pointed at `--target node`).
21
+ */
22
+ export declare function emitWorkerProject(manifest: ProjectManifest, options: EmitOptions): Promise<void>;
23
+ /**
24
+ * Emit a Playwright-based MCP server project from a SiteProjectManifest.
25
+ * Parallel to emitProject() but uses site-specific templates.
26
+ */
27
+ export declare function emitSiteProject(manifest: SiteProjectManifest, options: EmitOptions): Promise<void>;
28
+ /**
29
+ * Emit a Python MCP server project.
30
+ * Generates a single server.py file with all tools, plus requirements.txt.
31
+ */
32
+ export declare function emitPythonProject(manifest: ProjectManifest, options: EmitOptions): Promise<void>;
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/emitter/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,kBAAkB,CAAC;AAYhF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAeD,wBAAsB,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6HhG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAwFf;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAqCf;AAiBD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAuCf"}