terse-cli 0.2.16 → 0.3.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 (331) hide show
  1. package/dist/_tmp_create_project.d.ts +2 -0
  2. package/dist/_tmp_create_project.d.ts.map +1 -0
  3. package/dist/_tmp_create_project.js +17 -0
  4. package/dist/_tmp_create_project.js.map +1 -0
  5. package/dist/_tmp_delete_agent.d.ts +2 -0
  6. package/dist/_tmp_delete_agent.d.ts.map +1 -0
  7. package/dist/_tmp_delete_agent.js +14 -0
  8. package/dist/_tmp_delete_agent.js.map +1 -0
  9. package/dist/_tmp_manual_trigger.d.ts +2 -0
  10. package/dist/_tmp_manual_trigger.d.ts.map +1 -0
  11. package/dist/_tmp_manual_trigger.js +17 -0
  12. package/dist/_tmp_manual_trigger.js.map +1 -0
  13. package/dist/_tmp_patch_active.d.ts +2 -0
  14. package/dist/_tmp_patch_active.d.ts.map +1 -0
  15. package/dist/_tmp_patch_active.js +21 -0
  16. package/dist/_tmp_patch_active.js.map +1 -0
  17. package/dist/codegen.d.ts +15 -0
  18. package/dist/codegen.d.ts.map +1 -1
  19. package/dist/codegen.js +466 -81
  20. package/dist/codegen.js.map +1 -1
  21. package/dist/commands/deployTheme.d.ts +28 -0
  22. package/dist/commands/deployTheme.d.ts.map +1 -0
  23. package/dist/commands/deployTheme.js +68 -0
  24. package/dist/commands/deployTheme.js.map +1 -0
  25. package/dist/commands/dev.d.ts +3 -0
  26. package/dist/commands/dev.d.ts.map +1 -0
  27. package/dist/commands/dev.js +47 -0
  28. package/dist/commands/dev.js.map +1 -0
  29. package/dist/commands/fsExec.d.ts +8 -0
  30. package/dist/commands/fsExec.d.ts.map +1 -0
  31. package/dist/commands/fsExec.js +46 -0
  32. package/dist/commands/fsExec.js.map +1 -0
  33. package/dist/commands/generate.d.ts.map +1 -1
  34. package/dist/commands/generate.js +36 -267
  35. package/dist/commands/generate.js.map +1 -1
  36. package/dist/commands/serve.d.ts +1 -0
  37. package/dist/commands/serve.d.ts.map +1 -0
  38. package/dist/commands/serve.js +2 -0
  39. package/dist/commands/serve.js.map +1 -0
  40. package/dist/commands/terseCliTheme.d.ts +28 -0
  41. package/dist/commands/terseCliTheme.d.ts.map +1 -0
  42. package/dist/commands/terseCliTheme.js +68 -0
  43. package/dist/commands/terseCliTheme.js.map +1 -0
  44. package/dist/commands/tool.d.ts +6 -0
  45. package/dist/commands/tool.d.ts.map +1 -0
  46. package/dist/commands/tool.js +34 -0
  47. package/dist/commands/tool.js.map +1 -0
  48. package/dist/commands/toolRun.js +1 -1
  49. package/dist/commands/toolRun.js.map +1 -1
  50. package/dist/data/standardSlackEmoji.d.ts +2 -0
  51. package/dist/data/standardSlackEmoji.d.ts.map +1 -0
  52. package/dist/data/standardSlackEmoji.js +1978 -0
  53. package/dist/data/standardSlackEmoji.js.map +1 -0
  54. package/dist/data/standardSlackEmoji.json +1974 -0
  55. package/dist/deploy.d.ts +2 -1
  56. package/dist/deploy.d.ts.map +1 -1
  57. package/dist/deploy.js +61 -38
  58. package/dist/deploy.js.map +1 -1
  59. package/dist/generate.d.ts +2 -1
  60. package/dist/generate.d.ts.map +1 -1
  61. package/dist/generate.js +67 -69
  62. package/dist/generate.js.map +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/init.d.ts +2 -1
  66. package/dist/init.d.ts.map +1 -1
  67. package/dist/init.js +45 -96
  68. package/dist/init.js.map +1 -1
  69. package/dist/integrate.d.ts +1 -0
  70. package/dist/integrate.d.ts.map +1 -1
  71. package/dist/integrate.js +191 -11
  72. package/dist/integrate.js.map +1 -1
  73. package/dist/nonInteractive.d.ts +4 -2
  74. package/dist/nonInteractive.d.ts.map +1 -1
  75. package/dist/nonInteractive.js +5 -2
  76. package/dist/nonInteractive.js.map +1 -1
  77. package/dist/perf.d.ts +9 -0
  78. package/dist/perf.d.ts.map +1 -0
  79. package/dist/perf.js +59 -0
  80. package/dist/perf.js.map +1 -0
  81. package/dist/providers/LanguageProvider.d.ts +6 -2
  82. package/dist/providers/LanguageProvider.d.ts.map +1 -1
  83. package/dist/providers/codegen.test.d.ts +2 -0
  84. package/dist/providers/codegen.test.d.ts.map +1 -0
  85. package/dist/providers/codegen.test.js +45 -0
  86. package/dist/providers/codegen.test.js.map +1 -0
  87. package/dist/providers/codegenTypes.d.ts +16 -134
  88. package/dist/providers/codegenTypes.d.ts.map +1 -1
  89. package/dist/providers/python/PythonProvider.js +1 -0
  90. package/dist/providers/python/PythonProvider.js.map +1 -1
  91. package/dist/providers/python/PythonProvider.test.d.ts +2 -0
  92. package/dist/providers/python/PythonProvider.test.d.ts.map +1 -0
  93. package/dist/providers/python/PythonProvider.test.js +169 -0
  94. package/dist/providers/python/PythonProvider.test.js.map +1 -0
  95. package/dist/providers/typescript/TypeScriptProvider.d.ts +2 -2
  96. package/dist/providers/typescript/TypeScriptProvider.d.ts.map +1 -1
  97. package/dist/providers/typescript/TypeScriptProvider.js +53 -4
  98. package/dist/providers/typescript/TypeScriptProvider.js.map +1 -1
  99. package/dist/providers/typescript/attioProjection.d.ts +50 -0
  100. package/dist/providers/typescript/attioProjection.d.ts.map +1 -0
  101. package/dist/providers/typescript/attioProjection.js +358 -0
  102. package/dist/providers/typescript/attioProjection.js.map +1 -0
  103. package/dist/providers/typescript/modules/IntegrationModule.d.ts +82 -0
  104. package/dist/providers/typescript/modules/IntegrationModule.d.ts.map +1 -0
  105. package/dist/providers/typescript/modules/IntegrationModule.js +184 -0
  106. package/dist/providers/typescript/modules/IntegrationModule.js.map +1 -0
  107. package/dist/providers/typescript/modules/attio/AttioModule.d.ts +55 -0
  108. package/dist/providers/typescript/modules/attio/AttioModule.d.ts.map +1 -0
  109. package/dist/providers/typescript/modules/attio/AttioModule.js +163 -0
  110. package/dist/providers/typescript/modules/attio/AttioModule.js.map +1 -0
  111. package/dist/providers/typescript/modules/attio/attioProjection.d.ts +50 -0
  112. package/dist/providers/typescript/modules/attio/attioProjection.d.ts.map +1 -0
  113. package/dist/providers/typescript/modules/attio/attioProjection.js +358 -0
  114. package/dist/providers/typescript/modules/attio/attioProjection.js.map +1 -0
  115. package/dist/providers/typescript/modules/attio/attioToolMethods.d.ts +4 -0
  116. package/dist/providers/typescript/modules/attio/attioToolMethods.d.ts.map +1 -0
  117. package/dist/providers/typescript/modules/attio/attioToolMethods.js +295 -0
  118. package/dist/providers/typescript/modules/attio/attioToolMethods.js.map +1 -0
  119. package/dist/providers/typescript/modules/attio/attioTypes.d.ts +36 -0
  120. package/dist/providers/typescript/modules/attio/attioTypes.d.ts.map +1 -0
  121. package/dist/providers/typescript/modules/attio/attioTypes.js +2 -0
  122. package/dist/providers/typescript/modules/attio/attioTypes.js.map +1 -0
  123. package/dist/providers/typescript/modules/datadog/DatadogModule.d.ts +25 -0
  124. package/dist/providers/typescript/modules/datadog/DatadogModule.d.ts.map +1 -0
  125. package/dist/providers/typescript/modules/datadog/DatadogModule.js +33 -0
  126. package/dist/providers/typescript/modules/datadog/DatadogModule.js.map +1 -0
  127. package/dist/providers/typescript/modules/github/GithubModule.d.ts +44 -0
  128. package/dist/providers/typescript/modules/github/GithubModule.d.ts.map +1 -0
  129. package/dist/providers/typescript/modules/github/GithubModule.js +111 -0
  130. package/dist/providers/typescript/modules/github/GithubModule.js.map +1 -0
  131. package/dist/providers/typescript/modules/gmail/GmailModule.d.ts +17 -0
  132. package/dist/providers/typescript/modules/gmail/GmailModule.d.ts.map +1 -0
  133. package/dist/providers/typescript/modules/gmail/GmailModule.js +30 -0
  134. package/dist/providers/typescript/modules/gmail/GmailModule.js.map +1 -0
  135. package/dist/providers/typescript/modules/hey_reach/HeyReachModule.d.ts +25 -0
  136. package/dist/providers/typescript/modules/hey_reach/HeyReachModule.d.ts.map +1 -0
  137. package/dist/providers/typescript/modules/hey_reach/HeyReachModule.js +33 -0
  138. package/dist/providers/typescript/modules/hey_reach/HeyReachModule.js.map +1 -0
  139. package/dist/providers/typescript/modules/launchdarkly/LaunchDarklyModule.d.ts +26 -0
  140. package/dist/providers/typescript/modules/launchdarkly/LaunchDarklyModule.d.ts.map +1 -0
  141. package/dist/providers/typescript/modules/launchdarkly/LaunchDarklyModule.js +34 -0
  142. package/dist/providers/typescript/modules/launchdarkly/LaunchDarklyModule.js.map +1 -0
  143. package/dist/providers/typescript/modules/linear/LinearModule.d.ts +35 -0
  144. package/dist/providers/typescript/modules/linear/LinearModule.d.ts.map +1 -0
  145. package/dist/providers/typescript/modules/linear/LinearModule.js +48 -0
  146. package/dist/providers/typescript/modules/linear/LinearModule.js.map +1 -0
  147. package/dist/providers/typescript/modules/moduleHelpers.d.ts +23 -0
  148. package/dist/providers/typescript/modules/moduleHelpers.d.ts.map +1 -0
  149. package/dist/providers/typescript/modules/moduleHelpers.js +74 -0
  150. package/dist/providers/typescript/modules/moduleHelpers.js.map +1 -0
  151. package/dist/providers/typescript/modules/notion/NotionModule.d.ts +33 -0
  152. package/dist/providers/typescript/modules/notion/NotionModule.d.ts.map +1 -0
  153. package/dist/providers/typescript/modules/notion/NotionModule.js +44 -0
  154. package/dist/providers/typescript/modules/notion/NotionModule.js.map +1 -0
  155. package/dist/providers/typescript/modules/posthog/PosthogModule.d.ts +30 -0
  156. package/dist/providers/typescript/modules/posthog/PosthogModule.d.ts.map +1 -0
  157. package/dist/providers/typescript/modules/posthog/PosthogModule.js +60 -0
  158. package/dist/providers/typescript/modules/posthog/PosthogModule.js.map +1 -0
  159. package/dist/providers/typescript/modules/registry.d.ts +11 -0
  160. package/dist/providers/typescript/modules/registry.d.ts.map +1 -0
  161. package/dist/providers/typescript/modules/registry.js +37 -0
  162. package/dist/providers/typescript/modules/registry.js.map +1 -0
  163. package/dist/providers/typescript/modules/resend/ResendModule.d.ts +32 -0
  164. package/dist/providers/typescript/modules/resend/ResendModule.d.ts.map +1 -0
  165. package/dist/providers/typescript/modules/resend/ResendModule.js +71 -0
  166. package/dist/providers/typescript/modules/resend/ResendModule.js.map +1 -0
  167. package/dist/providers/typescript/modules/slack/SlackModule.d.ts +32 -0
  168. package/dist/providers/typescript/modules/slack/SlackModule.d.ts.map +1 -0
  169. package/dist/providers/typescript/modules/slack/SlackModule.js +51 -0
  170. package/dist/providers/typescript/modules/slack/SlackModule.js.map +1 -0
  171. package/dist/providers/typescript/modules/snowflake/SnowflakeModule.d.ts +20 -0
  172. package/dist/providers/typescript/modules/snowflake/SnowflakeModule.d.ts.map +1 -0
  173. package/dist/providers/typescript/modules/snowflake/SnowflakeModule.js +27 -0
  174. package/dist/providers/typescript/modules/snowflake/SnowflakeModule.js.map +1 -0
  175. package/dist/providers/typescript/modules/templateRenderer.d.ts +17 -0
  176. package/dist/providers/typescript/modules/templateRenderer.d.ts.map +1 -0
  177. package/dist/providers/typescript/modules/templateRenderer.js +64 -0
  178. package/dist/providers/typescript/modules/templateRenderer.js.map +1 -0
  179. package/dist/providers/typescript/modules/terse/TerseModule.d.ts +20 -0
  180. package/dist/providers/typescript/modules/terse/TerseModule.d.ts.map +1 -0
  181. package/dist/providers/typescript/modules/terse/TerseModule.js +62 -0
  182. package/dist/providers/typescript/modules/terse/TerseModule.js.map +1 -0
  183. package/dist/providers/typescript/modules/workos/WorkOSModule.d.ts +17 -0
  184. package/dist/providers/typescript/modules/workos/WorkOSModule.d.ts.map +1 -0
  185. package/dist/providers/typescript/modules/workos/WorkOSModule.js +30 -0
  186. package/dist/providers/typescript/modules/workos/WorkOSModule.js.map +1 -0
  187. package/dist/providers/typescript/prepareCodegenData.test.d.ts +2 -0
  188. package/dist/providers/typescript/prepareCodegenData.test.d.ts.map +1 -0
  189. package/dist/providers/typescript/prepareCodegenData.test.js +54 -0
  190. package/dist/providers/typescript/prepareCodegenData.test.js.map +1 -0
  191. package/dist/providers/typescript/projectedTypes.d.ts +11 -0
  192. package/dist/providers/typescript/projectedTypes.d.ts.map +1 -0
  193. package/dist/providers/typescript/projectedTypes.js +53 -0
  194. package/dist/providers/typescript/projectedTypes.js.map +1 -0
  195. package/dist/providers/typescript/projectionPrinter.d.ts +26 -0
  196. package/dist/providers/typescript/projectionPrinter.d.ts.map +1 -0
  197. package/dist/providers/typescript/projectionPrinter.js +110 -0
  198. package/dist/providers/typescript/projectionPrinter.js.map +1 -0
  199. package/dist/providers/typescript/replayLogDedupe.d.ts +6 -0
  200. package/dist/providers/typescript/replayLogDedupe.d.ts.map +1 -0
  201. package/dist/providers/typescript/replayLogDedupe.js +156 -0
  202. package/dist/providers/typescript/replayLogDedupe.js.map +1 -0
  203. package/dist/providers/typescript/templateEngine.d.ts +8 -2
  204. package/dist/providers/typescript/templateEngine.d.ts.map +1 -1
  205. package/dist/providers/typescript/templateEngine.js +241 -29
  206. package/dist/providers/typescript/templateEngine.js.map +1 -1
  207. package/dist/providers/typescript/triggerPayloads.d.ts +7 -0
  208. package/dist/providers/typescript/triggerPayloads.d.ts.map +1 -0
  209. package/dist/providers/typescript/triggerPayloads.js +60 -0
  210. package/dist/providers/typescript/triggerPayloads.js.map +1 -0
  211. package/dist/providers/typescript/triggerTypeDeclarations.d.ts +7 -0
  212. package/dist/providers/typescript/triggerTypeDeclarations.d.ts.map +1 -0
  213. package/dist/providers/typescript/triggerTypeDeclarations.js +42 -0
  214. package/dist/providers/typescript/triggerTypeDeclarations.js.map +1 -0
  215. package/dist/providers/typescript/triggerTypeRegistry.d.ts +7 -0
  216. package/dist/providers/typescript/triggerTypeRegistry.d.ts.map +1 -0
  217. package/dist/providers/typescript/triggerTypeRegistry.js +198 -0
  218. package/dist/providers/typescript/triggerTypeRegistry.js.map +1 -0
  219. package/dist/providers/typescript/typePrinter.d.ts +23 -0
  220. package/dist/providers/typescript/typePrinter.d.ts.map +1 -0
  221. package/dist/providers/typescript/typePrinter.js +123 -0
  222. package/dist/providers/typescript/typePrinter.js.map +1 -0
  223. package/dist/run.d.ts +2 -11
  224. package/dist/run.d.ts.map +1 -1
  225. package/dist/run.js +42 -153
  226. package/dist/run.js.map +1 -1
  227. package/dist/sampleEventId.d.ts +0 -4
  228. package/dist/sampleEventId.d.ts.map +1 -1
  229. package/dist/sampleEventId.js +0 -4
  230. package/dist/sampleEventId.js.map +1 -1
  231. package/dist/shared/ApiRoutes.d.ts +19 -0
  232. package/dist/shared/ApiRoutes.d.ts.map +1 -1
  233. package/dist/shared/ApiRoutes.js +17 -1
  234. package/dist/shared/ApiRoutes.js.map +1 -1
  235. package/dist/shared/Configs.d.ts +24 -2
  236. package/dist/shared/Configs.d.ts.map +1 -1
  237. package/dist/shared/Configs.js +32 -2
  238. package/dist/shared/Configs.js.map +1 -1
  239. package/dist/shared/Integrations.d.ts +18 -1
  240. package/dist/shared/Integrations.d.ts.map +1 -1
  241. package/dist/shared/Integrations.js +10 -1
  242. package/dist/shared/Integrations.js.map +1 -1
  243. package/dist/shared/InvalidationKeys.d.ts +1 -0
  244. package/dist/shared/InvalidationKeys.d.ts.map +1 -1
  245. package/dist/shared/InvalidationKeys.js +3 -0
  246. package/dist/shared/InvalidationKeys.js.map +1 -1
  247. package/dist/shared/ModelEvents.d.ts +9 -0
  248. package/dist/shared/ModelEvents.d.ts.map +1 -1
  249. package/dist/shared/ModelEvents.js +15 -0
  250. package/dist/shared/ModelEvents.js.map +1 -1
  251. package/dist/shared/ToolDisplayUtils.d.ts.map +1 -1
  252. package/dist/shared/ToolDisplayUtils.js +107 -11
  253. package/dist/shared/ToolDisplayUtils.js.map +1 -1
  254. package/dist/shared/types.d.ts +1013 -108
  255. package/dist/shared/types.d.ts.map +1 -1
  256. package/dist/shared/types.js.map +1 -1
  257. package/dist/test.d.ts +2 -1
  258. package/dist/test.d.ts.map +1 -1
  259. package/dist/test.js +43 -23
  260. package/dist/test.js.map +1 -1
  261. package/dist/triggerParseDetail.d.ts +8 -0
  262. package/dist/triggerParseDetail.d.ts.map +1 -0
  263. package/dist/triggerParseDetail.js +30 -0
  264. package/dist/triggerParseDetail.js.map +1 -0
  265. package/dist/util.d.ts +2 -3
  266. package/dist/util.d.ts.map +1 -1
  267. package/dist/util.js +3 -3
  268. package/dist/util.js.map +1 -1
  269. package/package.json +7 -5
  270. package/src/providers/typescript/modules/attio/attio.schemas.hbs +150 -0
  271. package/src/providers/typescript/modules/attio/attio.tools.hbs +192 -0
  272. package/src/providers/typescript/modules/attio/attio.triggers.hbs +130 -0
  273. package/src/providers/typescript/modules/datadog/datadog.tools.hbs +16 -0
  274. package/src/providers/typescript/modules/github/github.tools.hbs +68 -0
  275. package/src/providers/typescript/modules/github/github.triggers.hbs +40 -0
  276. package/src/providers/typescript/modules/gmail/gmail.tools.hbs +17 -0
  277. package/src/providers/typescript/modules/gmail/gmail.triggers.hbs +16 -0
  278. package/src/providers/typescript/modules/hey_reach/hey_reach.tools.hbs +9 -0
  279. package/src/providers/typescript/modules/hey_reach/hey_reach.triggers.hbs +56 -0
  280. package/src/providers/typescript/modules/launchdarkly/launchdarkly.tools.hbs +16 -0
  281. package/src/providers/typescript/modules/linear/linear.tools.hbs +23 -0
  282. package/src/providers/typescript/modules/linear/linear.triggers.hbs +24 -0
  283. package/src/providers/typescript/modules/notion/notion.tools.hbs +20 -0
  284. package/src/providers/typescript/modules/posthog/posthog.tools.hbs +28 -0
  285. package/{templates/typescript/codegen/partials/resend-section.hbs → src/providers/typescript/modules/resend/resend.tools.hbs} +17 -5
  286. package/src/providers/typescript/modules/slack/slack.tools.hbs +18 -0
  287. package/src/providers/typescript/modules/slack/slack.triggers.hbs +28 -0
  288. package/src/providers/typescript/modules/snowflake/snowflake.tools.hbs +12 -0
  289. package/src/providers/typescript/modules/terse/terse.tools.hbs +22 -0
  290. package/src/providers/typescript/modules/terse/terse.triggers.hbs +33 -0
  291. package/src/providers/typescript/modules/workos/workos.tools.hbs +12 -0
  292. package/src/providers/typescript/modules/workos/workos.triggers.hbs +64 -0
  293. package/templates/typescript/codegen/.impeccable/hook.cache.json +1 -0
  294. package/templates/typescript/codegen/common.hbs +6 -0
  295. package/templates/typescript/codegen/partials/tools-slice.hbs +18 -0
  296. package/templates/typescript/codegen/root.hbs +72 -0
  297. package/templates/typescript/codegen/sdk-primitives.hbs +42 -0
  298. package/dist/jsonOutput.d.ts +0 -19
  299. package/dist/jsonOutput.d.ts.map +0 -1
  300. package/dist/jsonOutput.js +0 -25
  301. package/dist/jsonOutput.js.map +0 -1
  302. package/dist/providers/typescript/parkSignals.d.ts +0 -7
  303. package/dist/providers/typescript/parkSignals.d.ts.map +0 -1
  304. package/dist/providers/typescript/parkSignals.js +0 -45
  305. package/dist/providers/typescript/parkSignals.js.map +0 -1
  306. package/dist/replay.d.ts +0 -3
  307. package/dist/replay.d.ts.map +0 -1
  308. package/dist/replay.js +0 -20
  309. package/dist/replay.js.map +0 -1
  310. package/dist/testRelay.d.ts +0 -6
  311. package/dist/testRelay.d.ts.map +0 -1
  312. package/dist/testRelay.js +0 -91
  313. package/dist/testRelay.js.map +0 -1
  314. package/dist/urls.d.ts +0 -3
  315. package/dist/urls.d.ts.map +0 -1
  316. package/dist/urls.js +0 -27
  317. package/dist/urls.js.map +0 -1
  318. package/templates/typescript/codegen/generated.hbs +0 -15
  319. package/templates/typescript/codegen/partials/attio-section.hbs +0 -86
  320. package/templates/typescript/codegen/partials/datadog-section.hbs +0 -3
  321. package/templates/typescript/codegen/partials/github-section.hbs +0 -30
  322. package/templates/typescript/codegen/partials/header.hbs +0 -17
  323. package/templates/typescript/codegen/partials/hey-reach-section.hbs +0 -3
  324. package/templates/typescript/codegen/partials/launchdarkly-section.hbs +0 -3
  325. package/templates/typescript/codegen/partials/linear-section.hbs +0 -5
  326. package/templates/typescript/codegen/partials/notion-section.hbs +0 -5
  327. package/templates/typescript/codegen/partials/posthog-section.hbs +0 -15
  328. package/templates/typescript/codegen/partials/skills-section.hbs +0 -105
  329. package/templates/typescript/codegen/partials/slack-section.hbs +0 -5
  330. package/templates/typescript/codegen/partials/tools-section.hbs +0 -94
  331. package/templates/typescript/codegen/partials/triggers-section.hbs +0 -353
@@ -0,0 +1,37 @@
1
+ import { IntegrationType } from "terse-types";
2
+ import { AttioModule } from "./attio/AttioModule.js";
3
+ import { DatadogModule } from "./datadog/DatadogModule.js";
4
+ import { GithubModule } from "./github/GithubModule.js";
5
+ import { GmailModule } from "./gmail/GmailModule.js";
6
+ import { HeyReachModule } from "./hey_reach/HeyReachModule.js";
7
+ import { LaunchDarklyModule } from "./launchdarkly/LaunchDarklyModule.js";
8
+ import { LinearModule } from "./linear/LinearModule.js";
9
+ import { NotionModule } from "./notion/NotionModule.js";
10
+ import { PosthogModule } from "./posthog/PosthogModule.js";
11
+ import { ResendModule } from "./resend/ResendModule.js";
12
+ import { SlackModule } from "./slack/SlackModule.js";
13
+ import { SnowflakeModule } from "./snowflake/SnowflakeModule.js";
14
+ import { TerseModule } from "./terse/TerseModule.js";
15
+ import { WorkOSModule } from "./workos/WorkOSModule.js";
16
+ /**
17
+ * Exhaustive by construction: adding an IntegrationType won't compile until its
18
+ * module exists here. The terse module lives outside the record because built-ins
19
+ * are always active and never fetched.
20
+ */
21
+ export const integrationModuleRegistry = {
22
+ [IntegrationType.GITHUB]: new GithubModule(),
23
+ [IntegrationType.HEY_REACH]: new HeyReachModule(),
24
+ [IntegrationType.RESEND]: new ResendModule(),
25
+ [IntegrationType.GMAIL]: new GmailModule(),
26
+ [IntegrationType.LINEAR]: new LinearModule(),
27
+ [IntegrationType.SLACK]: new SlackModule(),
28
+ [IntegrationType.NOTION]: new NotionModule(),
29
+ [IntegrationType.POSTHOG]: new PosthogModule(),
30
+ [IntegrationType.DATADOG]: new DatadogModule(),
31
+ [IntegrationType.LAUNCHDARKLY]: new LaunchDarklyModule(),
32
+ [IntegrationType.WORKOS]: new WorkOSModule(),
33
+ [IntegrationType.ATTIO]: new AttioModule(),
34
+ [IntegrationType.SNOWFLAKE]: new SnowflakeModule()
35
+ };
36
+ export const terseModule = new TerseModule();
37
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/providers/typescript/modules/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAuD;IACzF,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,YAAY,EAAE;IAC5C,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,IAAI,cAAc,EAAE;IACjD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,YAAY,EAAE;IAC5C,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,WAAW,EAAE;IAC1C,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,YAAY,EAAE;IAC5C,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,WAAW,EAAE;IAC1C,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,YAAY,EAAE;IAC5C,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,aAAa,EAAE;IAC9C,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,aAAa,EAAE;IAC9C,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,IAAI,kBAAkB,EAAE;IACxD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,YAAY,EAAE;IAC5C,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,WAAW,EAAE;IAC1C,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,IAAI,eAAe,EAAE;CACrD,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA"}
@@ -0,0 +1,32 @@
1
+ import type { ResendTemplate, ToolDefinition } from "terse-types";
2
+ import { IntegrationType } from "terse-types";
3
+ import { IntegrationModule, type ModuleRenderInput, type ToolParamsPrintOptions } from "../IntegrationModule.js";
4
+ export declare class ResendModule extends IntegrationModule<ResendInstanceData, ResendSectionContext> {
5
+ readonly type = IntegrationType.RESEND;
6
+ readonly summaryLabel = "Resend";
7
+ protected readonly sectionImports: string[];
8
+ fetchInstances(apiKey: string): Promise<ResendInstanceData[]>;
9
+ instanceId(instance: ResendInstanceData): string;
10
+ protected get skillsAggregateLines(): readonly string[];
11
+ protected prepareSection(input: ModuleRenderInput<ResendInstanceData>): Promise<ResendSectionContext>;
12
+ protected toolParamsPrintOptions(tool: ToolDefinition, input: ModuleRenderInput<ResendInstanceData>): ToolParamsPrintOptions;
13
+ }
14
+ export interface ResendInstanceData {
15
+ id: string;
16
+ displayName: string;
17
+ templates: ResendTemplate[];
18
+ }
19
+ export interface ResendSectionContext {
20
+ id: string;
21
+ skillToolType: string;
22
+ baseParamsDeclaration?: string;
23
+ templates: Array<{
24
+ staticName: string;
25
+ id: string;
26
+ alias: string | null;
27
+ name: string;
28
+ variablesType: string;
29
+ variablesMetadata: string;
30
+ }>;
31
+ }
32
+ //# sourceMappingURL=ResendModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResendModule.d.ts","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/resend/ResendModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EAAa,eAAe,EAAmB,MAAM,aAAa,CAAA;AAIzE,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAGhH,qBAAa,YAAa,SAAQ,iBAAiB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;IACzF,QAAQ,CAAC,IAAI,0BAAyB;IACtC,QAAQ,CAAC,YAAY,YAAW;IAChC,SAAS,CAAC,QAAQ,CAAC,cAAc,WAAuC;IAElE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAYnE,UAAU,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM;IAIhD,SAAS,KAAK,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAEtD;cAEe,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA6C3G,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,sBAAsB;CAM/H;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,cAAc,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,SAAS,EAAE,KAAK,CAAC;QACb,UAAU,EAAE,MAAM,CAAA;QAClB,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,IAAI,EAAE,MAAM,CAAA;QACZ,aAAa,EAAE,MAAM,CAAA;QACrB,iBAAiB,EAAE,MAAM,CAAA;KAC5B,CAAC,CAAA;CACL"}
@@ -0,0 +1,71 @@
1
+ import { ApiRoutes, IntegrationType, ToolDefinitions } from "terse-types";
2
+ import { fetchWithAuth } from "../../../../api.js";
3
+ import { printType } from "../../typePrinter.js";
4
+ import { IntegrationModule } from "../IntegrationModule.js";
5
+ import { buildSkillToolType, escapeString, toGeneratedIdentifier } from "../moduleHelpers.js";
6
+ export class ResendModule extends IntegrationModule {
7
+ type = IntegrationType.RESEND;
8
+ summaryLabel = "Resend";
9
+ sectionImports = ["ResendOutputConfig", "TypedSkill"];
10
+ async fetchInstances(apiKey) {
11
+ const instances = await fetchWithAuth(ApiRoutes.RESEND.INTEGRATIONS, apiKey);
12
+ return Promise.all(instances.map(async (inst) => {
13
+ const response = await fetchWithAuth(`${ApiRoutes.RESEND.TEMPLATES}?integrationId=${encodeURIComponent(inst.id)}`, apiKey).catch(() => ({
14
+ templates: []
15
+ }));
16
+ return { id: inst.id, displayName: "Resend", templates: response.templates };
17
+ }));
18
+ }
19
+ instanceId(instance) {
20
+ return instance.id;
21
+ }
22
+ get skillsAggregateLines() {
23
+ return [" /** Resend — send transactional email using generated published templates */", " resend: resendSkill,"];
24
+ }
25
+ async prepareSection(input) {
26
+ const instance = this.requireInstance(input);
27
+ const usedNames = new Set();
28
+ const templates = instance.templates.map(template => {
29
+ let staticName = toGeneratedIdentifier(template.alias || template.name || "Template", "Template");
30
+ while (usedNames.has(staticName))
31
+ staticName += "_";
32
+ usedNames.add(staticName);
33
+ const fields = template.variables.map(variable => {
34
+ const optional = variable.fallbackValue !== null ? "?" : "";
35
+ return `"${escapeString(variable.key)}"${optional}: ${variable.type}`;
36
+ });
37
+ const variablesType = fields.length > 0 ? `{ ${fields.join("; ")} }` : "Record<string, never>";
38
+ const variablesMetadata = template.variables
39
+ .map(variable => JSON.stringify({
40
+ key: variable.key,
41
+ type: variable.type,
42
+ required: variable.fallbackValue === null,
43
+ fallbackValue: variable.fallbackValue
44
+ }))
45
+ .join(", ");
46
+ return { staticName, id: template.id, alias: template.alias, name: template.name, variablesType, variablesMetadata };
47
+ });
48
+ const baseParamsDeclaration = templates.length > 0
49
+ ? await printType({
50
+ typeName: "ResendSendTemplateBaseParams",
51
+ schema: ToolDefinitions.resend_send_template.inputSchema,
52
+ io: "input",
53
+ omitFields: ["integrationId", "templateId", "variables"]
54
+ })
55
+ : undefined;
56
+ return {
57
+ id: instance.id,
58
+ skillToolType: buildSkillToolType(input.tools),
59
+ baseParamsDeclaration,
60
+ templates
61
+ };
62
+ }
63
+ toolParamsPrintOptions(tool, input) {
64
+ // The Resend section emits ResendSendTemplateParams as a per-template discriminated union
65
+ const hasTemplates = (input.instance?.templates.length ?? 0) > 0;
66
+ if (tool.name === "resend_send_template" && hasTemplates)
67
+ return { suppress: true };
68
+ return {};
69
+ }
70
+ }
71
+ //# sourceMappingURL=ResendModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResendModule.js","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/resend/ResendModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { IntegrationType } from "terse-types";
2
+ import { IntegrationModule, type ModuleRenderInput } from "../IntegrationModule.js";
3
+ import { type ResourceClassContext } from "../moduleHelpers.js";
4
+ export declare class SlackModule extends IntegrationModule<SlackInstanceData, SlackSectionContext> {
5
+ readonly type = IntegrationType.SLACK;
6
+ readonly summaryLabel = "Slack";
7
+ protected readonly sectionImports: string[];
8
+ fetchInstances(apiKey: string): Promise<SlackInstanceData[]>;
9
+ instanceId(instance: SlackInstanceData): string;
10
+ protected get triggersAggregateLines(): readonly string[];
11
+ protected get skillsAggregateLines(): readonly string[];
12
+ protected prepareSection(input: ModuleRenderInput<SlackInstanceData>): SlackSectionContext;
13
+ }
14
+ export interface SlackInstanceData {
15
+ id: string;
16
+ displayName: string;
17
+ channels: Array<{
18
+ id: string;
19
+ name: string;
20
+ }>;
21
+ users: Array<{
22
+ id: string;
23
+ name: string;
24
+ }>;
25
+ }
26
+ export interface SlackSectionContext {
27
+ id: string;
28
+ skillToolType: string;
29
+ channelClass: ResourceClassContext;
30
+ userClass: ResourceClassContext;
31
+ }
32
+ //# sourceMappingURL=SlackModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlackModule.d.ts","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/slack/SlackModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,KAAK,oBAAoB,EAAiD,MAAM,qBAAqB,CAAA;AAE9G,qBAAa,WAAY,SAAQ,iBAAiB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IACtF,QAAQ,CAAC,IAAI,yBAAwB;IACrC,QAAQ,CAAC,YAAY,WAAU;IAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,WAAuF;IAElH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAoBlE,UAAU,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM;IAI/C,SAAS,KAAK,sBAAsB,IAAI,SAAS,MAAM,EAAE,CAExD;IAED,SAAS,KAAK,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAEtD;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,mBAAmB;CAyB7F;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7C,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,oBAAoB,CAAA;IAClC,SAAS,EAAE,oBAAoB,CAAA;CAClC"}
@@ -0,0 +1,51 @@
1
+ import { ApiRoutes, IntegrationType } from "terse-types";
2
+ import { fetchWithAuth } from "../../../../api.js";
3
+ import { IntegrationModule } from "../IntegrationModule.js";
4
+ import { buildResourceClassContext, buildSkillToolType } from "../moduleHelpers.js";
5
+ export class SlackModule extends IntegrationModule {
6
+ type = IntegrationType.SLACK;
7
+ summaryLabel = "Slack";
8
+ sectionImports = ["SlackConfig", "SlackOutputConfig", "TypedSkill", "SlackEventType", "TypedTrigger"];
9
+ async fetchInstances(apiKey) {
10
+ const instances = await fetchWithAuth(ApiRoutes.SLACK.INTEGRATIONS, apiKey);
11
+ return Promise.all(instances.map(async (inst) => {
12
+ const [channelsResp, usersResp] = await Promise.all([
13
+ fetchWithAuth(`${ApiRoutes.SLACK.CHANNELS}?integrationId=${encodeURIComponent(inst.id)}`, apiKey).catch(() => ({
14
+ channels: []
15
+ })),
16
+ fetchWithAuth(`${ApiRoutes.SLACK.USERS}?integrationId=${encodeURIComponent(inst.id)}`, apiKey).catch(() => ({ users: [] }))
17
+ ]);
18
+ return {
19
+ id: inst.id,
20
+ displayName: inst.teamName || inst.id,
21
+ channels: channelsResp.channels || [],
22
+ users: usersResp.users || []
23
+ };
24
+ }));
25
+ }
26
+ instanceId(instance) {
27
+ return instance.id;
28
+ }
29
+ get triggersAggregateLines() {
30
+ return [" slack: slackTriggers,"];
31
+ }
32
+ get skillsAggregateLines() {
33
+ return [" /** Slack — send messages and manage threads in a specific channel */", " slack: slackSkill,"];
34
+ }
35
+ prepareSection(input) {
36
+ const inst = this.requireInstance(input);
37
+ return {
38
+ id: inst.id,
39
+ skillToolType: buildSkillToolType(input.tools),
40
+ channelClass: buildResourceClassContext("SlackChannel", [
41
+ { classField: "channelId", type: "string", sourceField: "id" },
42
+ { classField: "name", type: "string", sourceField: "name" }
43
+ ], "name", inst.channels),
44
+ userClass: buildResourceClassContext("SlackUser", [
45
+ { classField: "userId", type: "string", sourceField: "id" },
46
+ { classField: "name", type: "string", sourceField: "name" }
47
+ ], "name", inst.users)
48
+ };
49
+ }
50
+ }
51
+ //# sourceMappingURL=SlackModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlackModule.js","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/slack/SlackModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { IntegrationType } from "terse-types";
2
+ import { IntegrationModule, type ModuleRenderInput } from "../IntegrationModule.js";
3
+ export declare class SnowflakeModule extends IntegrationModule<SnowflakeInstanceData, SnowflakeSectionContext> {
4
+ readonly type = IntegrationType.SNOWFLAKE;
5
+ readonly summaryLabel = "Snowflake";
6
+ protected readonly sectionImports: string[];
7
+ fetchInstances(apiKey: string): Promise<SnowflakeInstanceData[]>;
8
+ instanceId(instance: SnowflakeInstanceData): string;
9
+ protected get skillsAggregateLines(): readonly string[];
10
+ protected prepareSection(input: ModuleRenderInput<SnowflakeInstanceData>): SnowflakeSectionContext;
11
+ }
12
+ export interface SnowflakeInstanceData {
13
+ id: string;
14
+ name: string;
15
+ }
16
+ export interface SnowflakeSectionContext {
17
+ id: string;
18
+ skillToolType: string;
19
+ }
20
+ //# sourceMappingURL=SnowflakeModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnowflakeModule.d.ts","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/snowflake/SnowflakeModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGnF,qBAAa,eAAgB,SAAQ,iBAAiB,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;IAClG,QAAQ,CAAC,IAAI,6BAA4B;IACzC,QAAQ,CAAC,YAAY,eAAc;IACnC,SAAS,CAAC,QAAQ,CAAC,cAAc,WAA0C;IAErE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAKtE,UAAU,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;IAInD,SAAS,KAAK,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAEtD;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,uBAAuB;CAOrG;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;CACxB"}
@@ -0,0 +1,27 @@
1
+ import { ApiRoutes, IntegrationType } from "terse-types";
2
+ import { fetchWithAuth } from "../../../../api.js";
3
+ import { IntegrationModule } from "../IntegrationModule.js";
4
+ import { buildSkillToolType } from "../moduleHelpers.js";
5
+ export class SnowflakeModule extends IntegrationModule {
6
+ type = IntegrationType.SNOWFLAKE;
7
+ summaryLabel = "Snowflake";
8
+ sectionImports = ["SnowflakeOutputConfig", "TypedSkill"];
9
+ async fetchInstances(apiKey) {
10
+ const instances = await fetchWithAuth(ApiRoutes.SNOWFLAKE.INTEGRATIONS, apiKey);
11
+ return instances.map(inst => ({ id: inst.id, name: inst.accountIdentifier }));
12
+ }
13
+ instanceId(instance) {
14
+ return instance.id;
15
+ }
16
+ get skillsAggregateLines() {
17
+ return [" /** Snowflake — run SQL queries against your warehouse */", " snowflake: snowflakeSkill,"];
18
+ }
19
+ prepareSection(input) {
20
+ const inst = this.requireInstance(input);
21
+ return {
22
+ id: inst.id,
23
+ skillToolType: buildSkillToolType(input.tools)
24
+ };
25
+ }
26
+ }
27
+ //# sourceMappingURL=SnowflakeModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnowflakeModule.js","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/snowflake/SnowflakeModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAA0B,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,OAAO,eAAgB,SAAQ,iBAAiE;IACzF,IAAI,GAAG,eAAe,CAAC,SAAS,CAAA;IAChC,YAAY,GAAG,WAAW,CAAA;IAChB,cAAc,GAAG,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAA;IAE3E,KAAK,CAAC,cAAc,CAAC,MAAc;QAC/B,MAAM,SAAS,GAAG,MAAM,aAAa,CAAyB,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QACvG,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,UAAU,CAAC,QAA+B;QACtC,OAAO,QAAQ,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,IAAc,oBAAoB;QAC9B,OAAO,CAAC,+DAA+D,EAAE,gCAAgC,CAAC,CAAA;IAC9G,CAAC;IAES,cAAc,CAAC,KAA+C;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;SACjD,CAAA;IACL,CAAC;CACJ"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Renders codegen handlebars templates: the shared ones under templates/typescript/codegen/
3
+ * and the per-integration ones co-located with each module under this directory.
4
+ */
5
+ export declare class ModuleTemplateRenderer {
6
+ private static instance;
7
+ private readonly handlebars;
8
+ private readonly templateCache;
9
+ private constructor();
10
+ static getInstance(): ModuleTemplateRenderer;
11
+ renderModuleTemplate(moduleDir: string, templateFile: string, context: object): string;
12
+ renderCodegenTemplate(relativePath: string, context: object): string;
13
+ readCodegenTemplate(relativePath: string): string;
14
+ private compile;
15
+ }
16
+ export declare function getModulesRoot(): string;
17
+ //# sourceMappingURL=templateRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateRenderer.d.ts","sourceRoot":"","sources":["../../../../src/providers/typescript/modules/templateRenderer.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoC;IAE3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyD;IAEvF,OAAO;IAmBP,MAAM,CAAC,WAAW,IAAI,sBAAsB;IAO5C,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAItF,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpE,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIjD,OAAO,CAAC,OAAO;CAQlB;AAID,wBAAgB,cAAc,IAAI,MAAM,CAGvC"}
@@ -0,0 +1,64 @@
1
+ import Handlebars from "handlebars";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { getTemplatesRoot, readTemplateFile } from "../../templateUtils.js";
6
+ import { escapeString } from "./moduleHelpers.js";
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+ /**
10
+ * Renders codegen handlebars templates: the shared ones under templates/typescript/codegen/
11
+ * and the per-integration ones co-located with each module under this directory.
12
+ */
13
+ export class ModuleTemplateRenderer {
14
+ static instance;
15
+ handlebars;
16
+ templateCache = new Map();
17
+ constructor() {
18
+ this.handlebars = Handlebars.create();
19
+ this.handlebars.registerHelper("sectionHeader", (name) => {
20
+ const dashes = "─".repeat(Math.max(1, 58 - name.length));
21
+ return `// ── ${name} ${dashes}`;
22
+ });
23
+ this.handlebars.registerHelper("escape", (value) => escapeString(String(value ?? "")));
24
+ this.handlebars.registerHelper("eq", (left, right) => left === right);
25
+ this.handlebars.registerHelper("joinPipe", (values) => (Array.isArray(values) ? values.join(" | ") : ""));
26
+ const partialsDir = path.join(getTemplatesRoot(), "typescript", "codegen", "partials");
27
+ for (const entry of fs.readdirSync(partialsDir).sort()) {
28
+ if (!entry.endsWith(".hbs"))
29
+ continue;
30
+ const partialName = path.basename(entry, ".hbs");
31
+ this.handlebars.registerPartial(partialName, fs.readFileSync(path.join(partialsDir, entry), "utf-8"));
32
+ }
33
+ }
34
+ static getInstance() {
35
+ if (!ModuleTemplateRenderer.instance) {
36
+ ModuleTemplateRenderer.instance = new ModuleTemplateRenderer();
37
+ }
38
+ return ModuleTemplateRenderer.instance;
39
+ }
40
+ renderModuleTemplate(moduleDir, templateFile, context) {
41
+ return this.compile(path.join(getModulesRoot(), moduleDir, templateFile))(context);
42
+ }
43
+ renderCodegenTemplate(relativePath, context) {
44
+ return this.compile(path.join(getTemplatesRoot(), "typescript", "codegen", relativePath))(context);
45
+ }
46
+ readCodegenTemplate(relativePath) {
47
+ return readTemplateFile(path.join("typescript", "codegen", relativePath));
48
+ }
49
+ compile(templatePath) {
50
+ let template = this.templateCache.get(templatePath);
51
+ if (!template) {
52
+ template = this.handlebars.compile(fs.readFileSync(templatePath, "utf-8"), { noEscape: true });
53
+ this.templateCache.set(templatePath, template);
54
+ }
55
+ return template;
56
+ }
57
+ }
58
+ // Module templates ship inside the npm package as src/**/*.hbs (see the package.json files
59
+ // globs); resolution therefore always goes through the source tree, even when running from dist.
60
+ export function getModulesRoot() {
61
+ const packageRoot = path.resolve(__dirname, "..", "..", "..", "..");
62
+ return path.join(packageRoot, "src", "providers", "typescript", "modules");
63
+ }
64
+ //# sourceMappingURL=templateRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateRenderer.js","sourceRoot":"","sources":["../../../../src/providers/typescript/modules/templateRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { IntegrationType } from "terse-types";
2
+ import { IntegrationModule } from "../IntegrationModule.js";
3
+ /**
4
+ * The built-in pseudo-integration: platform-native tools, the web/imageEdit/memory
5
+ * skills, and the cron/webhook/webMonitor triggers. Always active, never connected.
6
+ */
7
+ export declare class TerseModule extends IntegrationModule<undefined, undefined> {
8
+ readonly type = IntegrationType.TERSE;
9
+ readonly summaryLabel = "Terse";
10
+ protected readonly sectionImports: string[];
11
+ fetchInstances(): Promise<undefined[]>;
12
+ instanceId(): string;
13
+ protected get requiresInstance(): boolean;
14
+ protected get hasTriggers(): boolean;
15
+ protected get triggerBucket(): string;
16
+ protected get triggersAggregateLines(): readonly string[];
17
+ protected get skillsAggregateLines(): readonly string[];
18
+ protected prepareSection(): undefined;
19
+ }
20
+ //# sourceMappingURL=TerseModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerseModule.d.ts","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/terse/TerseModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D;;;GAGG;AACH,qBAAa,WAAY,SAAQ,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC;IACpE,QAAQ,CAAC,IAAI,yBAAwB;IACrC,QAAQ,CAAC,YAAY,WAAU;IAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,WAYhC;IAEK,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAI5C,UAAU,IAAI,MAAM;IAIpB,SAAS,KAAK,gBAAgB,IAAI,OAAO,CAExC;IAED,SAAS,KAAK,WAAW,IAAI,OAAO,CAEnC;IAED,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;IAED,SAAS,KAAK,sBAAsB,IAAI,SAAS,MAAM,EAAE,CASxD;IAED,SAAS,KAAK,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAStD;IAED,SAAS,CAAC,cAAc,IAAI,SAAS;CAGxC"}
@@ -0,0 +1,62 @@
1
+ import { IntegrationType } from "terse-types";
2
+ import { IntegrationModule } from "../IntegrationModule.js";
3
+ /**
4
+ * The built-in pseudo-integration: platform-native tools, the web/imageEdit/memory
5
+ * skills, and the cron/webhook/webMonitor triggers. Always active, never connected.
6
+ */
7
+ export class TerseModule extends IntegrationModule {
8
+ type = IntegrationType.TERSE;
9
+ summaryLabel = "Terse";
10
+ sectionImports = [
11
+ "TimeTriggerConfig",
12
+ "Timezone",
13
+ "WebConfig",
14
+ "ImageEditConfig",
15
+ "MemoryConfig",
16
+ "TypedSkill",
17
+ "WebhookInputConfig",
18
+ "TypedTrigger",
19
+ "WebMonitorConfig",
20
+ "FrequencyUnit",
21
+ "InferStructuredOutput"
22
+ ];
23
+ async fetchInstances() {
24
+ return [];
25
+ }
26
+ instanceId() {
27
+ return "";
28
+ }
29
+ get requiresInstance() {
30
+ return false;
31
+ }
32
+ get hasTriggers() {
33
+ return true;
34
+ }
35
+ get triggerBucket() {
36
+ return "common";
37
+ }
38
+ get triggersAggregateLines() {
39
+ return [
40
+ " /** Built-in: run on a cron schedule */",
41
+ " schedule: scheduleTriggers,",
42
+ " /** Built-in: trigger via an external HTTP request to a generated URL */",
43
+ " webhook: webhookTriggers,",
44
+ " /** Built-in: trigger when a query against the live web matches a schema */",
45
+ " webMonitor: webMonitorTriggers,"
46
+ ];
47
+ }
48
+ get skillsAggregateLines() {
49
+ return [
50
+ " /** Web — built-in web search, page extraction, and multi-source research */",
51
+ " web: webSkill,",
52
+ " /** ImageEdit — edit and generate images */",
53
+ " imageEdit: imageEditSkill,",
54
+ " /** Memory — built-in persistent memory scoped to this job, surviving across runs */",
55
+ " memory: memorySkill,"
56
+ ];
57
+ }
58
+ prepareSection() {
59
+ return undefined;
60
+ }
61
+ }
62
+ //# sourceMappingURL=TerseModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerseModule.js","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/terse/TerseModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAuC;IAC3D,IAAI,GAAG,eAAe,CAAC,KAAK,CAAA;IAC5B,YAAY,GAAG,OAAO,CAAA;IACZ,cAAc,GAAG;QAChC,mBAAmB;QACnB,UAAU;QACV,WAAW;QACX,iBAAiB;QACjB,cAAc;QACd,YAAY;QACZ,oBAAoB;QACpB,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,uBAAuB;KAC1B,CAAA;IAED,KAAK,CAAC,cAAc;QAChB,OAAO,EAAE,CAAA;IACb,CAAC;IAED,UAAU;QACN,OAAO,EAAE,CAAA;IACb,CAAC;IAED,IAAc,gBAAgB;QAC1B,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,IAAc,WAAW;QACrB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,IAAc,aAAa;QACvB,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,IAAc,sBAAsB;QAChC,OAAO;YACH,6CAA6C;YAC7C,iCAAiC;YACjC,8EAA8E;YAC9E,+BAA+B;YAC/B,iFAAiF;YACjF,qCAAqC;SACxC,CAAA;IACL,CAAC;IAED,IAAc,oBAAoB;QAC9B,OAAO;YACH,kFAAkF;YAClF,oBAAoB;YACpB,iDAAiD;YACjD,gCAAgC;YAChC,0FAA0F;YAC1F,0BAA0B;SAC7B,CAAA;IACL,CAAC;IAES,cAAc;QACpB,OAAO,SAAS,CAAA;IACpB,CAAC;CACJ"}
@@ -0,0 +1,17 @@
1
+ import { IntegrationType } from "terse-types";
2
+ import { type IntegrationInstanceData, IntegrationModule, type ModuleRenderInput } from "../IntegrationModule.js";
3
+ export declare class WorkOSModule extends IntegrationModule<IntegrationInstanceData, WorkOSSectionContext> {
4
+ readonly type = IntegrationType.WORKOS;
5
+ readonly summaryLabel = "WorkOS";
6
+ protected readonly sectionImports: string[];
7
+ fetchInstances(apiKey: string): Promise<IntegrationInstanceData[]>;
8
+ instanceId(instance: IntegrationInstanceData): string;
9
+ protected get triggersAggregateLines(): readonly string[];
10
+ protected get skillsAggregateLines(): readonly string[];
11
+ protected prepareSection(input: ModuleRenderInput<IntegrationInstanceData>): WorkOSSectionContext;
12
+ }
13
+ export interface WorkOSSectionContext {
14
+ id: string;
15
+ skillToolType: string;
16
+ }
17
+ //# sourceMappingURL=WorkOSModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkOSModule.d.ts","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/workos/WorkOSModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,EAAE,KAAK,uBAAuB,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGjH,qBAAa,YAAa,SAAQ,iBAAiB,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;IAC9F,QAAQ,CAAC,IAAI,0BAAyB;IACtC,QAAQ,CAAC,YAAY,YAAW;IAChC,SAAS,CAAC,QAAQ,CAAC,cAAc,WAA+F;IAE1H,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAKxE,UAAU,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM;IAIrD,SAAS,KAAK,sBAAsB,IAAI,SAAS,MAAM,EAAE,CAExD;IAED,SAAS,KAAK,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAEtD;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,GAAG,oBAAoB;CAOpG;AAED,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;CACxB"}
@@ -0,0 +1,30 @@
1
+ import { ApiRoutes, IntegrationType } from "terse-types";
2
+ import { fetchWithAuth } from "../../../../api.js";
3
+ import { IntegrationModule } from "../IntegrationModule.js";
4
+ import { buildSkillToolType } from "../moduleHelpers.js";
5
+ export class WorkOSModule extends IntegrationModule {
6
+ type = IntegrationType.WORKOS;
7
+ summaryLabel = "WorkOS";
8
+ sectionImports = ["WorkOSInputConfig", "WorkOSOutputConfig", "WorkOSEventType", "TypedSkill", "TypedTrigger"];
9
+ async fetchInstances(apiKey) {
10
+ const instances = await fetchWithAuth(ApiRoutes.WORKOS_INTEGRATION.INTEGRATIONS, apiKey);
11
+ return instances.map(inst => ({ id: inst.id, displayName: inst.environment || inst.id }));
12
+ }
13
+ instanceId(instance) {
14
+ return instance.id;
15
+ }
16
+ get triggersAggregateLines() {
17
+ return [" workOS: workOSTriggers,"];
18
+ }
19
+ get skillsAggregateLines() {
20
+ return [" /** WorkOS — manage users, organizations and invitations */", " workOS: workOSSkill,"];
21
+ }
22
+ prepareSection(input) {
23
+ const inst = this.requireInstance(input);
24
+ return {
25
+ id: inst.id,
26
+ skillToolType: buildSkillToolType(input.tools)
27
+ };
28
+ }
29
+ }
30
+ //# sourceMappingURL=WorkOSModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkOSModule.js","sourceRoot":"","sources":["../../../../../src/providers/typescript/modules/workos/WorkOSModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAgC,iBAAiB,EAA0B,MAAM,yBAAyB,CAAA;AACjH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,OAAO,YAAa,SAAQ,iBAAgE;IACrF,IAAI,GAAG,eAAe,CAAC,MAAM,CAAA;IAC7B,YAAY,GAAG,QAAQ,CAAA;IACb,cAAc,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,CAAC,CAAA;IAEhI,KAAK,CAAC,cAAc,CAAC,MAAc;QAC/B,MAAM,SAAS,GAAG,MAAM,aAAa,CAAsB,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QAC7G,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC7F,CAAC;IAED,UAAU,CAAC,QAAiC;QACxC,OAAO,QAAQ,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,IAAc,sBAAsB;QAChC,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAC1C,CAAC;IAED,IAAc,oBAAoB;QAC9B,OAAO,CAAC,iEAAiE,EAAE,0BAA0B,CAAC,CAAA;IAC1G,CAAC;IAES,cAAc,CAAC,KAAiD;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;SACjD,CAAA;IACL,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prepareCodegenData.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareCodegenData.test.d.ts","sourceRoot":"","sources":["../../../src/providers/typescript/prepareCodegenData.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { jsonSchemaToTs } from "./prepareCodegenData.js";
4
+ test("required nullable properties render as optional while preserving null", () => {
5
+ const schema = {
6
+ type: "object",
7
+ properties: {
8
+ thread_ts: {
9
+ anyOf: [{ type: "string" }, { type: "null" }],
10
+ },
11
+ blocks: {
12
+ anyOf: [{ type: "string" }, { type: "null" }],
13
+ },
14
+ message: {
15
+ type: "string",
16
+ },
17
+ },
18
+ required: ["thread_ts", "blocks", "message"],
19
+ };
20
+ assert.equal(jsonSchemaToTs(schema, 0), `{
21
+ thread_ts?: string | null
22
+ blocks?: string | null
23
+ message: string
24
+ }`);
25
+ });
26
+ test("optional nullable properties stay optional", () => {
27
+ const schema = {
28
+ type: "object",
29
+ properties: {
30
+ cursor: {
31
+ anyOf: [{ type: "string" }, { type: "null" }],
32
+ },
33
+ },
34
+ required: [],
35
+ };
36
+ assert.equal(jsonSchemaToTs(schema, 0), `{
37
+ cursor?: string | null
38
+ }`);
39
+ });
40
+ test("required non-nullable properties stay required", () => {
41
+ const schema = {
42
+ type: "object",
43
+ properties: {
44
+ channelId: {
45
+ type: "string",
46
+ },
47
+ },
48
+ required: ["channelId"],
49
+ };
50
+ assert.equal(jsonSchemaToTs(schema, 0), `{
51
+ channelId: string
52
+ }`);
53
+ });
54
+ //# sourceMappingURL=prepareCodegenData.test.js.map