@hasna/connectors 0.0.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 (1269) hide show
  1. package/README.md +304 -0
  2. package/bin/index.js +5281 -0
  3. package/connectors/connect-anthropic/.env.example +4 -0
  4. package/connectors/connect-anthropic/.npmrc.example +2 -0
  5. package/connectors/connect-anthropic/AGENTS.md +97 -0
  6. package/connectors/connect-anthropic/CLAUDE.md +97 -0
  7. package/connectors/connect-anthropic/GEMINI.md +97 -0
  8. package/connectors/connect-anthropic/README.md +106 -0
  9. package/connectors/connect-anthropic/package.json +60 -0
  10. package/connectors/connect-anthropic/src/api/client.ts +122 -0
  11. package/connectors/connect-anthropic/src/api/index.ts +51 -0
  12. package/connectors/connect-anthropic/src/api/messages.ts +109 -0
  13. package/connectors/connect-anthropic/src/cli/index.ts +336 -0
  14. package/connectors/connect-anthropic/src/index.ts +24 -0
  15. package/connectors/connect-anthropic/src/types/index.ts +198 -0
  16. package/connectors/connect-anthropic/src/utils/config.ts +208 -0
  17. package/connectors/connect-anthropic/src/utils/output.ts +119 -0
  18. package/connectors/connect-anthropic/tsconfig.json +16 -0
  19. package/connectors/connect-aws/.env.example +11 -0
  20. package/connectors/connect-aws/.npmrc.example +2 -0
  21. package/connectors/connect-aws/AGENTS.md +145 -0
  22. package/connectors/connect-aws/CLAUDE.md +145 -0
  23. package/connectors/connect-aws/GEMINI.md +145 -0
  24. package/connectors/connect-aws/README.md +131 -0
  25. package/connectors/connect-aws/package.json +51 -0
  26. package/connectors/connect-aws/src/api/client.ts +349 -0
  27. package/connectors/connect-aws/src/api/dynamodb.ts +542 -0
  28. package/connectors/connect-aws/src/api/index.ts +71 -0
  29. package/connectors/connect-aws/src/api/lambda.ts +326 -0
  30. package/connectors/connect-aws/src/api/s3.ts +305 -0
  31. package/connectors/connect-aws/src/cli/index.ts +614 -0
  32. package/connectors/connect-aws/src/index.ts +28 -0
  33. package/connectors/connect-aws/src/types/index.ts +276 -0
  34. package/connectors/connect-aws/src/utils/config.ts +230 -0
  35. package/connectors/connect-aws/src/utils/output.ts +119 -0
  36. package/connectors/connect-aws/tsconfig.json +16 -0
  37. package/connectors/connect-brandsight/.env.example +8 -0
  38. package/connectors/connect-brandsight/.npmrc.example +2 -0
  39. package/connectors/connect-brandsight/AGENTS.md +128 -0
  40. package/connectors/connect-brandsight/CLAUDE.md +128 -0
  41. package/connectors/connect-brandsight/GEMINI.md +128 -0
  42. package/connectors/connect-brandsight/README.md +129 -0
  43. package/connectors/connect-brandsight/package.json +56 -0
  44. package/connectors/connect-brandsight/src/api/client.ts +171 -0
  45. package/connectors/connect-brandsight/src/api/domains.ts +387 -0
  46. package/connectors/connect-brandsight/src/api/example.ts +59 -0
  47. package/connectors/connect-brandsight/src/api/index.ts +50 -0
  48. package/connectors/connect-brandsight/src/cli/index.ts +775 -0
  49. package/connectors/connect-brandsight/src/index.ts +11 -0
  50. package/connectors/connect-brandsight/src/types/index.ts +197 -0
  51. package/connectors/connect-brandsight/src/utils/config.ts +244 -0
  52. package/connectors/connect-brandsight/src/utils/contacts.ts +204 -0
  53. package/connectors/connect-brandsight/src/utils/output.ts +119 -0
  54. package/connectors/connect-brandsight/tsconfig.json +29 -0
  55. package/connectors/connect-browseruse/.env.example +7 -0
  56. package/connectors/connect-browseruse/.npmrc.example +2 -0
  57. package/connectors/connect-browseruse/AGENTS.md +172 -0
  58. package/connectors/connect-browseruse/CLAUDE.md +172 -0
  59. package/connectors/connect-browseruse/GEMINI.md +172 -0
  60. package/connectors/connect-browseruse/README.md +153 -0
  61. package/connectors/connect-browseruse/package.json +52 -0
  62. package/connectors/connect-browseruse/src/api/billing.ts +32 -0
  63. package/connectors/connect-browseruse/src/api/browsers.ts +50 -0
  64. package/connectors/connect-browseruse/src/api/client.ts +168 -0
  65. package/connectors/connect-browseruse/src/api/files.ts +70 -0
  66. package/connectors/connect-browseruse/src/api/index.ts +95 -0
  67. package/connectors/connect-browseruse/src/api/profiles.ts +59 -0
  68. package/connectors/connect-browseruse/src/api/sessions.ts +88 -0
  69. package/connectors/connect-browseruse/src/api/skills.ts +194 -0
  70. package/connectors/connect-browseruse/src/api/tasks.ts +127 -0
  71. package/connectors/connect-browseruse/src/cli/index.ts +888 -0
  72. package/connectors/connect-browseruse/src/index.ts +35 -0
  73. package/connectors/connect-browseruse/src/types/index.ts +312 -0
  74. package/connectors/connect-browseruse/src/utils/config.ts +212 -0
  75. package/connectors/connect-browseruse/src/utils/output.ts +119 -0
  76. package/connectors/connect-browseruse/tsconfig.json +16 -0
  77. package/connectors/connect-cloudflare/.env.example +10 -0
  78. package/connectors/connect-cloudflare/.npmrc.example +2 -0
  79. package/connectors/connect-cloudflare/AGENTS.md +84 -0
  80. package/connectors/connect-cloudflare/CLAUDE.md +84 -0
  81. package/connectors/connect-cloudflare/GEMINI.md +84 -0
  82. package/connectors/connect-cloudflare/README.md +94 -0
  83. package/connectors/connect-cloudflare/package.json +59 -0
  84. package/connectors/connect-cloudflare/scripts/init.sh +62 -0
  85. package/connectors/connect-cloudflare/src/api/accounts.ts +352 -0
  86. package/connectors/connect-cloudflare/src/api/analytics.ts +638 -0
  87. package/connectors/connect-cloudflare/src/api/bulk.ts +1104 -0
  88. package/connectors/connect-cloudflare/src/api/cache.ts +192 -0
  89. package/connectors/connect-cloudflare/src/api/client.ts +201 -0
  90. package/connectors/connect-cloudflare/src/api/dns.ts +109 -0
  91. package/connectors/connect-cloudflare/src/api/firewall.ts +405 -0
  92. package/connectors/connect-cloudflare/src/api/index.ts +150 -0
  93. package/connectors/connect-cloudflare/src/api/kv.ts +171 -0
  94. package/connectors/connect-cloudflare/src/api/pages.ts +241 -0
  95. package/connectors/connect-cloudflare/src/api/r2.ts +270 -0
  96. package/connectors/connect-cloudflare/src/api/ssl.ts +416 -0
  97. package/connectors/connect-cloudflare/src/api/workers.ts +235 -0
  98. package/connectors/connect-cloudflare/src/api/zones.ts +121 -0
  99. package/connectors/connect-cloudflare/src/cli/index.ts +1644 -0
  100. package/connectors/connect-cloudflare/src/index.ts +21 -0
  101. package/connectors/connect-cloudflare/src/types/index.ts +754 -0
  102. package/connectors/connect-cloudflare/src/utils/config.ts +365 -0
  103. package/connectors/connect-cloudflare/src/utils/output.ts +119 -0
  104. package/connectors/connect-cloudflare/tsconfig.json +29 -0
  105. package/connectors/connect-discord/.env.example +9 -0
  106. package/connectors/connect-discord/.npmrc.example +2 -0
  107. package/connectors/connect-discord/AGENTS.md +187 -0
  108. package/connectors/connect-discord/CLAUDE.md +187 -0
  109. package/connectors/connect-discord/GEMINI.md +187 -0
  110. package/connectors/connect-discord/README.md +158 -0
  111. package/connectors/connect-discord/package.json +55 -0
  112. package/connectors/connect-discord/src/api/channels.ts +451 -0
  113. package/connectors/connect-discord/src/api/client.ts +147 -0
  114. package/connectors/connect-discord/src/api/commands.ts +212 -0
  115. package/connectors/connect-discord/src/api/gateway.ts +27 -0
  116. package/connectors/connect-discord/src/api/guilds.ts +434 -0
  117. package/connectors/connect-discord/src/api/index.ts +82 -0
  118. package/connectors/connect-discord/src/api/invites.ts +27 -0
  119. package/connectors/connect-discord/src/api/users.ts +66 -0
  120. package/connectors/connect-discord/src/api/webhooks.ts +188 -0
  121. package/connectors/connect-discord/src/cli/index.ts +788 -0
  122. package/connectors/connect-discord/src/index.ts +35 -0
  123. package/connectors/connect-discord/src/types/index.ts +545 -0
  124. package/connectors/connect-discord/src/utils/config.ts +219 -0
  125. package/connectors/connect-discord/src/utils/output.ts +119 -0
  126. package/connectors/connect-discord/tsconfig.json +16 -0
  127. package/connectors/connect-docker/.env.example +11 -0
  128. package/connectors/connect-docker/.npmrc.example +2 -0
  129. package/connectors/connect-docker/AGENTS.md +112 -0
  130. package/connectors/connect-docker/CLAUDE.md +112 -0
  131. package/connectors/connect-docker/GEMINI.md +112 -0
  132. package/connectors/connect-docker/README.md +97 -0
  133. package/connectors/connect-docker/package.json +57 -0
  134. package/connectors/connect-docker/src/api/client.ts +181 -0
  135. package/connectors/connect-docker/src/api/example.ts +79 -0
  136. package/connectors/connect-docker/src/api/index.ts +63 -0
  137. package/connectors/connect-docker/src/cli/index.ts +318 -0
  138. package/connectors/connect-docker/src/index.ts +30 -0
  139. package/connectors/connect-docker/src/types/index.ts +172 -0
  140. package/connectors/connect-docker/src/utils/config.ts +238 -0
  141. package/connectors/connect-docker/src/utils/output.ts +119 -0
  142. package/connectors/connect-docker/tsconfig.json +16 -0
  143. package/connectors/connect-e2b/.env.example +7 -0
  144. package/connectors/connect-e2b/.npmrc.example +2 -0
  145. package/connectors/connect-e2b/AGENTS.md +126 -0
  146. package/connectors/connect-e2b/CLAUDE.md +126 -0
  147. package/connectors/connect-e2b/GEMINI.md +126 -0
  148. package/connectors/connect-e2b/README.md +135 -0
  149. package/connectors/connect-e2b/package.json +51 -0
  150. package/connectors/connect-e2b/src/api/client.ts +150 -0
  151. package/connectors/connect-e2b/src/api/code.ts +188 -0
  152. package/connectors/connect-e2b/src/api/filesystem.ts +168 -0
  153. package/connectors/connect-e2b/src/api/index.ts +131 -0
  154. package/connectors/connect-e2b/src/api/sandbox.ts +91 -0
  155. package/connectors/connect-e2b/src/cli/index.ts +481 -0
  156. package/connectors/connect-e2b/src/index.ts +28 -0
  157. package/connectors/connect-e2b/src/types/index.ts +136 -0
  158. package/connectors/connect-e2b/src/utils/config.ts +231 -0
  159. package/connectors/connect-e2b/src/utils/output.ts +119 -0
  160. package/connectors/connect-e2b/tsconfig.json +16 -0
  161. package/connectors/connect-elevenlabs/.env.example +15 -0
  162. package/connectors/connect-elevenlabs/.npmrc.example +2 -0
  163. package/connectors/connect-elevenlabs/AGENTS.md +80 -0
  164. package/connectors/connect-elevenlabs/CLAUDE.md +80 -0
  165. package/connectors/connect-elevenlabs/GEMINI.md +80 -0
  166. package/connectors/connect-elevenlabs/README.md +98 -0
  167. package/connectors/connect-elevenlabs/package.json +57 -0
  168. package/connectors/connect-elevenlabs/src/api/client.ts +175 -0
  169. package/connectors/connect-elevenlabs/src/api/history.ts +103 -0
  170. package/connectors/connect-elevenlabs/src/api/index.ts +101 -0
  171. package/connectors/connect-elevenlabs/src/api/models.ts +49 -0
  172. package/connectors/connect-elevenlabs/src/api/sound-effects.ts +62 -0
  173. package/connectors/connect-elevenlabs/src/api/sts.ts +109 -0
  174. package/connectors/connect-elevenlabs/src/api/stt.ts +93 -0
  175. package/connectors/connect-elevenlabs/src/api/tts.ts +175 -0
  176. package/connectors/connect-elevenlabs/src/api/user.ts +43 -0
  177. package/connectors/connect-elevenlabs/src/api/voices.ts +169 -0
  178. package/connectors/connect-elevenlabs/src/cli/index.ts +739 -0
  179. package/connectors/connect-elevenlabs/src/index.ts +40 -0
  180. package/connectors/connect-elevenlabs/src/types/index.ts +432 -0
  181. package/connectors/connect-elevenlabs/src/utils/config.ts +242 -0
  182. package/connectors/connect-elevenlabs/src/utils/output.ts +119 -0
  183. package/connectors/connect-elevenlabs/tsconfig.json +16 -0
  184. package/connectors/connect-exa/.npmrc.example +2 -0
  185. package/connectors/connect-exa/AGENTS.md +76 -0
  186. package/connectors/connect-exa/CLAUDE.md +76 -0
  187. package/connectors/connect-exa/GEMINI.md +76 -0
  188. package/connectors/connect-exa/README.md +94 -0
  189. package/connectors/connect-exa/package.json +59 -0
  190. package/connectors/connect-exa/src/api/answer.ts +150 -0
  191. package/connectors/connect-exa/src/api/client.ts +171 -0
  192. package/connectors/connect-exa/src/api/contents.ts +150 -0
  193. package/connectors/connect-exa/src/api/context.ts +84 -0
  194. package/connectors/connect-exa/src/api/index.ts +77 -0
  195. package/connectors/connect-exa/src/api/research.ts +154 -0
  196. package/connectors/connect-exa/src/api/search.ts +153 -0
  197. package/connectors/connect-exa/src/api/similar.ts +138 -0
  198. package/connectors/connect-exa/src/api/team.ts +165 -0
  199. package/connectors/connect-exa/src/api/websets.ts +228 -0
  200. package/connectors/connect-exa/src/cli/index.ts +813 -0
  201. package/connectors/connect-exa/src/index.ts +32 -0
  202. package/connectors/connect-exa/src/types/index.ts +410 -0
  203. package/connectors/connect-exa/src/utils/config.ts +336 -0
  204. package/connectors/connect-exa/src/utils/output.ts +119 -0
  205. package/connectors/connect-exa/tsconfig.json +21 -0
  206. package/connectors/connect-figma/.npmrc.example +2 -0
  207. package/connectors/connect-figma/AGENTS.md +185 -0
  208. package/connectors/connect-figma/CLAUDE.md +185 -0
  209. package/connectors/connect-figma/GEMINI.md +185 -0
  210. package/connectors/connect-figma/README.md +164 -0
  211. package/connectors/connect-figma/package.json +50 -0
  212. package/connectors/connect-figma/src/api/client.ts +111 -0
  213. package/connectors/connect-figma/src/api/comments.ts +114 -0
  214. package/connectors/connect-figma/src/api/components.ts +82 -0
  215. package/connectors/connect-figma/src/api/devresources.ts +78 -0
  216. package/connectors/connect-figma/src/api/files.ts +132 -0
  217. package/connectors/connect-figma/src/api/index.ts +86 -0
  218. package/connectors/connect-figma/src/api/projects.ts +36 -0
  219. package/connectors/connect-figma/src/api/styles.ts +46 -0
  220. package/connectors/connect-figma/src/api/teams.ts +17 -0
  221. package/connectors/connect-figma/src/api/users.ts +16 -0
  222. package/connectors/connect-figma/src/api/variables.ts +73 -0
  223. package/connectors/connect-figma/src/api/webhooks.ts +97 -0
  224. package/connectors/connect-figma/src/cli/index.ts +960 -0
  225. package/connectors/connect-figma/src/index.ts +34 -0
  226. package/connectors/connect-figma/src/types/index.ts +593 -0
  227. package/connectors/connect-figma/src/utils/config.ts +197 -0
  228. package/connectors/connect-figma/src/utils/output.ts +119 -0
  229. package/connectors/connect-figma/tsconfig.json +16 -0
  230. package/connectors/connect-firecrawl/.env.example +7 -0
  231. package/connectors/connect-firecrawl/.npmrc.example +2 -0
  232. package/connectors/connect-firecrawl/AGENTS.md +104 -0
  233. package/connectors/connect-firecrawl/CLAUDE.md +104 -0
  234. package/connectors/connect-firecrawl/GEMINI.md +104 -0
  235. package/connectors/connect-firecrawl/README.md +95 -0
  236. package/connectors/connect-firecrawl/package.json +51 -0
  237. package/connectors/connect-firecrawl/src/api/client.ts +123 -0
  238. package/connectors/connect-firecrawl/src/api/crawl.ts +93 -0
  239. package/connectors/connect-firecrawl/src/api/index.ts +61 -0
  240. package/connectors/connect-firecrawl/src/api/map.ts +51 -0
  241. package/connectors/connect-firecrawl/src/api/scrape.ts +71 -0
  242. package/connectors/connect-firecrawl/src/api/search.ts +61 -0
  243. package/connectors/connect-firecrawl/src/cli/index.ts +432 -0
  244. package/connectors/connect-firecrawl/src/index.ts +24 -0
  245. package/connectors/connect-firecrawl/src/types/index.ts +216 -0
  246. package/connectors/connect-firecrawl/src/utils/config.ts +208 -0
  247. package/connectors/connect-firecrawl/src/utils/output.ts +119 -0
  248. package/connectors/connect-firecrawl/tsconfig.json +16 -0
  249. package/connectors/connect-github/.env.example +11 -0
  250. package/connectors/connect-github/.npmrc.example +2 -0
  251. package/connectors/connect-github/AGENTS.md +150 -0
  252. package/connectors/connect-github/CLAUDE.md +150 -0
  253. package/connectors/connect-github/GEMINI.md +150 -0
  254. package/connectors/connect-github/README.md +126 -0
  255. package/connectors/connect-github/package.json +49 -0
  256. package/connectors/connect-github/src/api/client.ts +137 -0
  257. package/connectors/connect-github/src/api/index.ts +62 -0
  258. package/connectors/connect-github/src/api/issues.ts +186 -0
  259. package/connectors/connect-github/src/api/pulls.ts +284 -0
  260. package/connectors/connect-github/src/api/repos.ts +155 -0
  261. package/connectors/connect-github/src/api/users.ts +139 -0
  262. package/connectors/connect-github/src/cli/index.ts +732 -0
  263. package/connectors/connect-github/src/index.ts +24 -0
  264. package/connectors/connect-github/src/types/index.ts +497 -0
  265. package/connectors/connect-github/src/utils/config.ts +208 -0
  266. package/connectors/connect-github/src/utils/output.ts +119 -0
  267. package/connectors/connect-github/tsconfig.json +16 -0
  268. package/connectors/connect-gmail/.env.example +8 -0
  269. package/connectors/connect-gmail/.npmrc.example +2 -0
  270. package/connectors/connect-gmail/AGENTS.md +79 -0
  271. package/connectors/connect-gmail/CLAUDE.md +79 -0
  272. package/connectors/connect-gmail/GEMINI.md +79 -0
  273. package/connectors/connect-gmail/README.md +97 -0
  274. package/connectors/connect-gmail/package.json +58 -0
  275. package/connectors/connect-gmail/src/api/attachments.ts +141 -0
  276. package/connectors/connect-gmail/src/api/bulk.ts +661 -0
  277. package/connectors/connect-gmail/src/api/client.ts +131 -0
  278. package/connectors/connect-gmail/src/api/drafts.ts +198 -0
  279. package/connectors/connect-gmail/src/api/export.ts +312 -0
  280. package/connectors/connect-gmail/src/api/filters.ts +127 -0
  281. package/connectors/connect-gmail/src/api/index.ts +63 -0
  282. package/connectors/connect-gmail/src/api/labels.ts +123 -0
  283. package/connectors/connect-gmail/src/api/messages.ts +527 -0
  284. package/connectors/connect-gmail/src/api/profile.ts +72 -0
  285. package/connectors/connect-gmail/src/api/threads.ts +85 -0
  286. package/connectors/connect-gmail/src/cli/index.ts +2143 -0
  287. package/connectors/connect-gmail/src/index.ts +30 -0
  288. package/connectors/connect-gmail/src/types/index.ts +202 -0
  289. package/connectors/connect-gmail/src/utils/auth.ts +247 -0
  290. package/connectors/connect-gmail/src/utils/config.ts +466 -0
  291. package/connectors/connect-gmail/src/utils/contacts.ts +147 -0
  292. package/connectors/connect-gmail/src/utils/markdown.ts +110 -0
  293. package/connectors/connect-gmail/src/utils/output.ts +119 -0
  294. package/connectors/connect-gmail/src/utils/settings.ts +87 -0
  295. package/connectors/connect-gmail/tsconfig.json +16 -0
  296. package/connectors/connect-google/.env.example +10 -0
  297. package/connectors/connect-google/.npmrc.example +2 -0
  298. package/connectors/connect-google/AGENTS.md +76 -0
  299. package/connectors/connect-google/CLAUDE.md +76 -0
  300. package/connectors/connect-google/GEMINI.md +76 -0
  301. package/connectors/connect-google/README.md +94 -0
  302. package/connectors/connect-google/package.json +60 -0
  303. package/connectors/connect-google/src/api/calendar.ts +339 -0
  304. package/connectors/connect-google/src/api/client.ts +201 -0
  305. package/connectors/connect-google/src/api/docs.ts +372 -0
  306. package/connectors/connect-google/src/api/drive.ts +370 -0
  307. package/connectors/connect-google/src/api/gmail.ts +338 -0
  308. package/connectors/connect-google/src/api/index.ts +66 -0
  309. package/connectors/connect-google/src/api/sheets.ts +343 -0
  310. package/connectors/connect-google/src/cli/index.ts +1232 -0
  311. package/connectors/connect-google/src/index.ts +27 -0
  312. package/connectors/connect-google/src/types/index.ts +1893 -0
  313. package/connectors/connect-google/src/utils/config.ts +248 -0
  314. package/connectors/connect-google/src/utils/output.ts +119 -0
  315. package/connectors/connect-google/tsconfig.json +21 -0
  316. package/connectors/connect-googlecalendar/.npmrc.example +2 -0
  317. package/connectors/connect-googlecalendar/AGENTS.md +117 -0
  318. package/connectors/connect-googlecalendar/CLAUDE.md +117 -0
  319. package/connectors/connect-googlecalendar/GEMINI.md +117 -0
  320. package/connectors/connect-googlecalendar/README.md +97 -0
  321. package/connectors/connect-googlecalendar/package.json +57 -0
  322. package/connectors/connect-googlecalendar/src/api/calendars.ts +106 -0
  323. package/connectors/connect-googlecalendar/src/api/client.ts +266 -0
  324. package/connectors/connect-googlecalendar/src/api/events.ts +266 -0
  325. package/connectors/connect-googlecalendar/src/api/index.ts +96 -0
  326. package/connectors/connect-googlecalendar/src/cli/index.ts +819 -0
  327. package/connectors/connect-googlecalendar/src/index.ts +30 -0
  328. package/connectors/connect-googlecalendar/src/types/index.ts +347 -0
  329. package/connectors/connect-googlecalendar/src/utils/config.ts +251 -0
  330. package/connectors/connect-googlecalendar/src/utils/output.ts +119 -0
  331. package/connectors/connect-googlecalendar/tsconfig.json +16 -0
  332. package/connectors/connect-googlecloud/.env.example +11 -0
  333. package/connectors/connect-googlecloud/.npmrc.example +2 -0
  334. package/connectors/connect-googlecloud/AGENTS.md +110 -0
  335. package/connectors/connect-googlecloud/CLAUDE.md +110 -0
  336. package/connectors/connect-googlecloud/GEMINI.md +110 -0
  337. package/connectors/connect-googlecloud/README.md +96 -0
  338. package/connectors/connect-googlecloud/package.json +56 -0
  339. package/connectors/connect-googlecloud/src/api/client.ts +208 -0
  340. package/connectors/connect-googlecloud/src/api/index.ts +53 -0
  341. package/connectors/connect-googlecloud/src/api/projects.ts +75 -0
  342. package/connectors/connect-googlecloud/src/cli/index.ts +305 -0
  343. package/connectors/connect-googlecloud/src/index.ts +28 -0
  344. package/connectors/connect-googlecloud/src/types/index.ts +100 -0
  345. package/connectors/connect-googlecloud/src/utils/config.ts +232 -0
  346. package/connectors/connect-googlecloud/src/utils/output.ts +119 -0
  347. package/connectors/connect-googlecloud/tsconfig.json +16 -0
  348. package/connectors/connect-googlecontacts/.npmrc.example +2 -0
  349. package/connectors/connect-googlecontacts/AGENTS.md +181 -0
  350. package/connectors/connect-googlecontacts/CLAUDE.md +181 -0
  351. package/connectors/connect-googlecontacts/GEMINI.md +181 -0
  352. package/connectors/connect-googlecontacts/README.md +117 -0
  353. package/connectors/connect-googlecontacts/package.json +56 -0
  354. package/connectors/connect-googlecontacts/src/api/client.ts +306 -0
  355. package/connectors/connect-googlecontacts/src/api/contacts.ts +236 -0
  356. package/connectors/connect-googlecontacts/src/api/index.ts +99 -0
  357. package/connectors/connect-googlecontacts/src/cli/index.ts +654 -0
  358. package/connectors/connect-googlecontacts/src/index.ts +34 -0
  359. package/connectors/connect-googlecontacts/src/types/index.ts +254 -0
  360. package/connectors/connect-googlecontacts/src/utils/config.ts +337 -0
  361. package/connectors/connect-googlecontacts/src/utils/output.ts +119 -0
  362. package/connectors/connect-googlecontacts/tsconfig.json +16 -0
  363. package/connectors/connect-googledocs/.env.example +11 -0
  364. package/connectors/connect-googledocs/.npmrc.example +2 -0
  365. package/connectors/connect-googledocs/AGENTS.md +130 -0
  366. package/connectors/connect-googledocs/CLAUDE.md +130 -0
  367. package/connectors/connect-googledocs/GEMINI.md +130 -0
  368. package/connectors/connect-googledocs/README.md +112 -0
  369. package/connectors/connect-googledocs/package.json +50 -0
  370. package/connectors/connect-googledocs/src/api/client.ts +159 -0
  371. package/connectors/connect-googledocs/src/api/content.ts +219 -0
  372. package/connectors/connect-googledocs/src/api/documents.ts +52 -0
  373. package/connectors/connect-googledocs/src/api/index.ts +65 -0
  374. package/connectors/connect-googledocs/src/api/styles.ts +386 -0
  375. package/connectors/connect-googledocs/src/cli/index.ts +364 -0
  376. package/connectors/connect-googledocs/src/index.ts +24 -0
  377. package/connectors/connect-googledocs/src/types/index.ts +767 -0
  378. package/connectors/connect-googledocs/src/utils/config.ts +208 -0
  379. package/connectors/connect-googledocs/src/utils/output.ts +119 -0
  380. package/connectors/connect-googledocs/tsconfig.json +16 -0
  381. package/connectors/connect-googledrive/.npmrc.example +2 -0
  382. package/connectors/connect-googledrive/AGENTS.md +76 -0
  383. package/connectors/connect-googledrive/CLAUDE.md +76 -0
  384. package/connectors/connect-googledrive/GEMINI.md +76 -0
  385. package/connectors/connect-googledrive/README.md +94 -0
  386. package/connectors/connect-googledrive/package.json +55 -0
  387. package/connectors/connect-googledrive/src/api/client.ts +216 -0
  388. package/connectors/connect-googledrive/src/api/drives.ts +186 -0
  389. package/connectors/connect-googledrive/src/api/files.ts +305 -0
  390. package/connectors/connect-googledrive/src/api/folders.ts +133 -0
  391. package/connectors/connect-googledrive/src/api/index.ts +47 -0
  392. package/connectors/connect-googledrive/src/api/storage.ts +48 -0
  393. package/connectors/connect-googledrive/src/api/trash.ts +47 -0
  394. package/connectors/connect-googledrive/src/cli/index.ts +933 -0
  395. package/connectors/connect-googledrive/src/index.ts +30 -0
  396. package/connectors/connect-googledrive/src/types/index.ts +378 -0
  397. package/connectors/connect-googledrive/src/utils/auth.ts +207 -0
  398. package/connectors/connect-googledrive/src/utils/config.ts +440 -0
  399. package/connectors/connect-googledrive/src/utils/output.ts +135 -0
  400. package/connectors/connect-googledrive/tsconfig.json +25 -0
  401. package/connectors/connect-googlegemini/.env.example +7 -0
  402. package/connectors/connect-googlegemini/.npmrc.example +2 -0
  403. package/connectors/connect-googlegemini/AGENTS.md +184 -0
  404. package/connectors/connect-googlegemini/CLAUDE.md +184 -0
  405. package/connectors/connect-googlegemini/GEMINI.md +184 -0
  406. package/connectors/connect-googlegemini/README.md +143 -0
  407. package/connectors/connect-googlegemini/package.json +55 -0
  408. package/connectors/connect-googlegemini/src/api/client.ts +219 -0
  409. package/connectors/connect-googlegemini/src/api/embeddings.ts +142 -0
  410. package/connectors/connect-googlegemini/src/api/files.ts +152 -0
  411. package/connectors/connect-googlegemini/src/api/generate.ts +187 -0
  412. package/connectors/connect-googlegemini/src/api/images.ts +216 -0
  413. package/connectors/connect-googlegemini/src/api/index.ts +103 -0
  414. package/connectors/connect-googlegemini/src/api/models.ts +102 -0
  415. package/connectors/connect-googlegemini/src/api/speech.ts +195 -0
  416. package/connectors/connect-googlegemini/src/api/video.ts +224 -0
  417. package/connectors/connect-googlegemini/src/cli/index.ts +702 -0
  418. package/connectors/connect-googlegemini/src/index.ts +34 -0
  419. package/connectors/connect-googlegemini/src/types/index.ts +324 -0
  420. package/connectors/connect-googlegemini/src/utils/config.ts +139 -0
  421. package/connectors/connect-googlegemini/src/utils/output.ts +169 -0
  422. package/connectors/connect-googlegemini/tsconfig.json +15 -0
  423. package/connectors/connect-googlemaps/.npmrc.example +2 -0
  424. package/connectors/connect-googlemaps/AGENTS.md +143 -0
  425. package/connectors/connect-googlemaps/CLAUDE.md +143 -0
  426. package/connectors/connect-googlemaps/GEMINI.md +143 -0
  427. package/connectors/connect-googlemaps/README.md +152 -0
  428. package/connectors/connect-googlemaps/package.json +29 -0
  429. package/connectors/connect-googlemaps/src/api/index.ts +315 -0
  430. package/connectors/connect-googlemaps/src/cli/index.ts +423 -0
  431. package/connectors/connect-googlemaps/src/index.ts +3 -0
  432. package/connectors/connect-googlemaps/src/types/index.ts +268 -0
  433. package/connectors/connect-googlemaps/src/utils/config.ts +59 -0
  434. package/connectors/connect-googlemaps/src/utils/output.ts +178 -0
  435. package/connectors/connect-googlemaps/tsconfig.json +17 -0
  436. package/connectors/connect-googlesheets/.env.example +15 -0
  437. package/connectors/connect-googlesheets/.npmrc.example +2 -0
  438. package/connectors/connect-googlesheets/AGENTS.md +144 -0
  439. package/connectors/connect-googlesheets/CLAUDE.md +144 -0
  440. package/connectors/connect-googlesheets/GEMINI.md +144 -0
  441. package/connectors/connect-googlesheets/README.md +124 -0
  442. package/connectors/connect-googlesheets/package.json +51 -0
  443. package/connectors/connect-googlesheets/src/api/client.ts +230 -0
  444. package/connectors/connect-googlesheets/src/api/index.ts +113 -0
  445. package/connectors/connect-googlesheets/src/api/sheets.ts +249 -0
  446. package/connectors/connect-googlesheets/src/api/spreadsheets.ts +150 -0
  447. package/connectors/connect-googlesheets/src/api/values.ts +209 -0
  448. package/connectors/connect-googlesheets/src/cli/index.ts +544 -0
  449. package/connectors/connect-googlesheets/src/index.ts +32 -0
  450. package/connectors/connect-googlesheets/src/types/index.ts +764 -0
  451. package/connectors/connect-googlesheets/src/utils/config.ts +289 -0
  452. package/connectors/connect-googlesheets/src/utils/output.ts +119 -0
  453. package/connectors/connect-googlesheets/tsconfig.json +16 -0
  454. package/connectors/connect-googletasks/.env.example +6 -0
  455. package/connectors/connect-googletasks/.npmrc.example +2 -0
  456. package/connectors/connect-googletasks/AGENTS.md +122 -0
  457. package/connectors/connect-googletasks/CLAUDE.md +122 -0
  458. package/connectors/connect-googletasks/GEMINI.md +122 -0
  459. package/connectors/connect-googletasks/README.md +131 -0
  460. package/connectors/connect-googletasks/package.json +50 -0
  461. package/connectors/connect-googletasks/src/api/index.ts +321 -0
  462. package/connectors/connect-googletasks/src/cli/index.ts +542 -0
  463. package/connectors/connect-googletasks/src/index.ts +42 -0
  464. package/connectors/connect-googletasks/src/types/index.ts +167 -0
  465. package/connectors/connect-googletasks/src/utils/config.ts +287 -0
  466. package/connectors/connect-googletasks/src/utils/output.ts +145 -0
  467. package/connectors/connect-googletasks/tsconfig.json +16 -0
  468. package/connectors/connect-hedra/.env.example +7 -0
  469. package/connectors/connect-hedra/.npmrc.example +2 -0
  470. package/connectors/connect-hedra/AGENTS.md +101 -0
  471. package/connectors/connect-hedra/CLAUDE.md +101 -0
  472. package/connectors/connect-hedra/GEMINI.md +101 -0
  473. package/connectors/connect-hedra/README.md +95 -0
  474. package/connectors/connect-hedra/package.json +57 -0
  475. package/connectors/connect-hedra/src/api/characters.ts +44 -0
  476. package/connectors/connect-hedra/src/api/client.ts +136 -0
  477. package/connectors/connect-hedra/src/api/index.ts +57 -0
  478. package/connectors/connect-hedra/src/api/projects.ts +44 -0
  479. package/connectors/connect-hedra/src/api/voices.ts +23 -0
  480. package/connectors/connect-hedra/src/cli/index.ts +314 -0
  481. package/connectors/connect-hedra/src/index.ts +24 -0
  482. package/connectors/connect-hedra/src/types/index.ts +103 -0
  483. package/connectors/connect-hedra/src/utils/config.ts +211 -0
  484. package/connectors/connect-hedra/src/utils/output.ts +119 -0
  485. package/connectors/connect-hedra/tsconfig.json +16 -0
  486. package/connectors/connect-heygen/.env.example +11 -0
  487. package/connectors/connect-heygen/.npmrc.example +2 -0
  488. package/connectors/connect-heygen/AGENTS.md +102 -0
  489. package/connectors/connect-heygen/CLAUDE.md +102 -0
  490. package/connectors/connect-heygen/GEMINI.md +102 -0
  491. package/connectors/connect-heygen/README.md +96 -0
  492. package/connectors/connect-heygen/package.json +57 -0
  493. package/connectors/connect-heygen/src/api/client.ts +134 -0
  494. package/connectors/connect-heygen/src/api/example.ts +48 -0
  495. package/connectors/connect-heygen/src/api/index.ts +49 -0
  496. package/connectors/connect-heygen/src/cli/index.ts +242 -0
  497. package/connectors/connect-heygen/src/index.ts +24 -0
  498. package/connectors/connect-heygen/src/types/index.ts +69 -0
  499. package/connectors/connect-heygen/src/utils/config.ts +209 -0
  500. package/connectors/connect-heygen/src/utils/output.ts +119 -0
  501. package/connectors/connect-heygen/tsconfig.json +16 -0
  502. package/connectors/connect-huggingface/.env.example +10 -0
  503. package/connectors/connect-huggingface/.npmrc.example +2 -0
  504. package/connectors/connect-huggingface/AGENTS.md +113 -0
  505. package/connectors/connect-huggingface/CLAUDE.md +113 -0
  506. package/connectors/connect-huggingface/GEMINI.md +113 -0
  507. package/connectors/connect-huggingface/README.md +97 -0
  508. package/connectors/connect-huggingface/package.json +57 -0
  509. package/connectors/connect-huggingface/src/api/client.ts +136 -0
  510. package/connectors/connect-huggingface/src/api/example.ts +48 -0
  511. package/connectors/connect-huggingface/src/api/index.ts +49 -0
  512. package/connectors/connect-huggingface/src/cli/index.ts +243 -0
  513. package/connectors/connect-huggingface/src/index.ts +24 -0
  514. package/connectors/connect-huggingface/src/types/index.ts +69 -0
  515. package/connectors/connect-huggingface/src/utils/config.ts +211 -0
  516. package/connectors/connect-huggingface/src/utils/output.ts +119 -0
  517. package/connectors/connect-huggingface/tsconfig.json +16 -0
  518. package/connectors/connect-icons8/.env.example +7 -0
  519. package/connectors/connect-icons8/.npmrc.example +2 -0
  520. package/connectors/connect-icons8/AGENTS.md +101 -0
  521. package/connectors/connect-icons8/CLAUDE.md +101 -0
  522. package/connectors/connect-icons8/GEMINI.md +101 -0
  523. package/connectors/connect-icons8/README.md +95 -0
  524. package/connectors/connect-icons8/package.json +55 -0
  525. package/connectors/connect-icons8/src/api/client.ts +137 -0
  526. package/connectors/connect-icons8/src/api/example.ts +64 -0
  527. package/connectors/connect-icons8/src/api/index.ts +48 -0
  528. package/connectors/connect-icons8/src/cli/index.ts +286 -0
  529. package/connectors/connect-icons8/src/index.ts +24 -0
  530. package/connectors/connect-icons8/src/types/index.ts +114 -0
  531. package/connectors/connect-icons8/src/utils/config.ts +211 -0
  532. package/connectors/connect-icons8/src/utils/output.ts +119 -0
  533. package/connectors/connect-icons8/tsconfig.json +16 -0
  534. package/connectors/connect-maropost/.env.example +13 -0
  535. package/connectors/connect-maropost/.npmrc.example +2 -0
  536. package/connectors/connect-maropost/AGENTS.md +110 -0
  537. package/connectors/connect-maropost/CLAUDE.md +110 -0
  538. package/connectors/connect-maropost/GEMINI.md +110 -0
  539. package/connectors/connect-maropost/README.md +96 -0
  540. package/connectors/connect-maropost/package.json +51 -0
  541. package/connectors/connect-maropost/src/api/campaigns.ts +129 -0
  542. package/connectors/connect-maropost/src/api/client.ts +162 -0
  543. package/connectors/connect-maropost/src/api/contacts.ts +128 -0
  544. package/connectors/connect-maropost/src/api/index.ts +91 -0
  545. package/connectors/connect-maropost/src/api/journeys.ts +60 -0
  546. package/connectors/connect-maropost/src/api/lists.ts +80 -0
  547. package/connectors/connect-maropost/src/api/reports.ts +123 -0
  548. package/connectors/connect-maropost/src/api/transactional.ts +109 -0
  549. package/connectors/connect-maropost/src/cli/index.ts +958 -0
  550. package/connectors/connect-maropost/src/index.ts +33 -0
  551. package/connectors/connect-maropost/src/types/index.ts +340 -0
  552. package/connectors/connect-maropost/src/utils/config.ts +213 -0
  553. package/connectors/connect-maropost/src/utils/output.ts +119 -0
  554. package/connectors/connect-maropost/tsconfig.json +16 -0
  555. package/connectors/connect-mercury/.env.example +5 -0
  556. package/connectors/connect-mercury/.npmrc.example +2 -0
  557. package/connectors/connect-mercury/AGENTS.md +137 -0
  558. package/connectors/connect-mercury/CLAUDE.md +137 -0
  559. package/connectors/connect-mercury/GEMINI.md +137 -0
  560. package/connectors/connect-mercury/README.md +146 -0
  561. package/connectors/connect-mercury/package.json +60 -0
  562. package/connectors/connect-mercury/src/api/accounts.ts +79 -0
  563. package/connectors/connect-mercury/src/api/attachments.ts +24 -0
  564. package/connectors/connect-mercury/src/api/categories.ts +40 -0
  565. package/connectors/connect-mercury/src/api/client.ts +134 -0
  566. package/connectors/connect-mercury/src/api/credit.ts +38 -0
  567. package/connectors/connect-mercury/src/api/customers.ts +53 -0
  568. package/connectors/connect-mercury/src/api/events.ts +63 -0
  569. package/connectors/connect-mercury/src/api/index.ts +97 -0
  570. package/connectors/connect-mercury/src/api/invoices.ts +102 -0
  571. package/connectors/connect-mercury/src/api/organization.ts +88 -0
  572. package/connectors/connect-mercury/src/api/recipients.ts +84 -0
  573. package/connectors/connect-mercury/src/api/transactions.ts +128 -0
  574. package/connectors/connect-mercury/src/api/transfers.ts +96 -0
  575. package/connectors/connect-mercury/src/api/treasury.ts +82 -0
  576. package/connectors/connect-mercury/src/api/webhooks.ts +90 -0
  577. package/connectors/connect-mercury/src/cli/index.ts +1263 -0
  578. package/connectors/connect-mercury/src/index.ts +33 -0
  579. package/connectors/connect-mercury/src/types/index.ts +505 -0
  580. package/connectors/connect-mercury/src/utils/config.ts +393 -0
  581. package/connectors/connect-mercury/src/utils/output.ts +119 -0
  582. package/connectors/connect-mercury/tsconfig.json +16 -0
  583. package/connectors/connect-meta/.npmrc.example +2 -0
  584. package/connectors/connect-meta/AGENTS.md +76 -0
  585. package/connectors/connect-meta/CLAUDE.md +76 -0
  586. package/connectors/connect-meta/GEMINI.md +76 -0
  587. package/connectors/connect-meta/README.md +94 -0
  588. package/connectors/connect-meta/package.json +61 -0
  589. package/connectors/connect-meta/src/api/accounts.ts +120 -0
  590. package/connectors/connect-meta/src/api/ads.ts +274 -0
  591. package/connectors/connect-meta/src/api/adsets.ts +263 -0
  592. package/connectors/connect-meta/src/api/audiences.ts +392 -0
  593. package/connectors/connect-meta/src/api/business.ts +495 -0
  594. package/connectors/connect-meta/src/api/campaigns.ts +191 -0
  595. package/connectors/connect-meta/src/api/catalogs.ts +500 -0
  596. package/connectors/connect-meta/src/api/client.ts +154 -0
  597. package/connectors/connect-meta/src/api/creatives.ts +357 -0
  598. package/connectors/connect-meta/src/api/index.ts +100 -0
  599. package/connectors/connect-meta/src/api/insights.ts +357 -0
  600. package/connectors/connect-meta/src/api/instagram.ts +449 -0
  601. package/connectors/connect-meta/src/api/pages.ts +330 -0
  602. package/connectors/connect-meta/src/api/pixels.ts +408 -0
  603. package/connectors/connect-meta/src/cli/index.ts +1585 -0
  604. package/connectors/connect-meta/src/index.ts +44 -0
  605. package/connectors/connect-meta/src/types/index.ts +1523 -0
  606. package/connectors/connect-meta/src/utils/config.ts +458 -0
  607. package/connectors/connect-meta/src/utils/output.ts +152 -0
  608. package/connectors/connect-meta/tsconfig.json +18 -0
  609. package/connectors/connect-midjourney/.env.example +13 -0
  610. package/connectors/connect-midjourney/.npmrc.example +2 -0
  611. package/connectors/connect-midjourney/AGENTS.md +104 -0
  612. package/connectors/connect-midjourney/CLAUDE.md +104 -0
  613. package/connectors/connect-midjourney/GEMINI.md +104 -0
  614. package/connectors/connect-midjourney/README.md +96 -0
  615. package/connectors/connect-midjourney/package.json +57 -0
  616. package/connectors/connect-midjourney/src/api/client.ts +143 -0
  617. package/connectors/connect-midjourney/src/api/imagine.ts +84 -0
  618. package/connectors/connect-midjourney/src/api/index.ts +50 -0
  619. package/connectors/connect-midjourney/src/cli/index.ts +343 -0
  620. package/connectors/connect-midjourney/src/index.ts +24 -0
  621. package/connectors/connect-midjourney/src/types/index.ts +98 -0
  622. package/connectors/connect-midjourney/src/utils/config.ts +219 -0
  623. package/connectors/connect-midjourney/src/utils/output.ts +119 -0
  624. package/connectors/connect-midjourney/tsconfig.json +16 -0
  625. package/connectors/connect-mistral/.env.example +4 -0
  626. package/connectors/connect-mistral/.npmrc.example +2 -0
  627. package/connectors/connect-mistral/AGENTS.md +100 -0
  628. package/connectors/connect-mistral/CLAUDE.md +100 -0
  629. package/connectors/connect-mistral/GEMINI.md +100 -0
  630. package/connectors/connect-mistral/README.md +109 -0
  631. package/connectors/connect-mistral/package.json +60 -0
  632. package/connectors/connect-mistral/src/api/chat.ts +113 -0
  633. package/connectors/connect-mistral/src/api/client.ts +122 -0
  634. package/connectors/connect-mistral/src/api/embeddings.ts +52 -0
  635. package/connectors/connect-mistral/src/api/index.ts +62 -0
  636. package/connectors/connect-mistral/src/cli/index.ts +371 -0
  637. package/connectors/connect-mistral/src/index.ts +24 -0
  638. package/connectors/connect-mistral/src/types/index.ts +183 -0
  639. package/connectors/connect-mistral/src/utils/config.ts +208 -0
  640. package/connectors/connect-mistral/src/utils/output.ts +119 -0
  641. package/connectors/connect-mistral/tsconfig.json +16 -0
  642. package/connectors/connect-mixpanel/.env.example +8 -0
  643. package/connectors/connect-mixpanel/.npmrc.example +2 -0
  644. package/connectors/connect-mixpanel/AGENTS.md +178 -0
  645. package/connectors/connect-mixpanel/CLAUDE.md +178 -0
  646. package/connectors/connect-mixpanel/GEMINI.md +178 -0
  647. package/connectors/connect-mixpanel/README.md +149 -0
  648. package/connectors/connect-mixpanel/package.json +54 -0
  649. package/connectors/connect-mixpanel/src/api/client.ts +352 -0
  650. package/connectors/connect-mixpanel/src/api/engage.ts +209 -0
  651. package/connectors/connect-mixpanel/src/api/export.ts +122 -0
  652. package/connectors/connect-mixpanel/src/api/funnels.ts +136 -0
  653. package/connectors/connect-mixpanel/src/api/index.ts +97 -0
  654. package/connectors/connect-mixpanel/src/api/insights.ts +198 -0
  655. package/connectors/connect-mixpanel/src/api/retention.ts +139 -0
  656. package/connectors/connect-mixpanel/src/api/track.ts +69 -0
  657. package/connectors/connect-mixpanel/src/cli/index.ts +678 -0
  658. package/connectors/connect-mixpanel/src/index.ts +32 -0
  659. package/connectors/connect-mixpanel/src/types/index.ts +262 -0
  660. package/connectors/connect-mixpanel/src/utils/config.ts +255 -0
  661. package/connectors/connect-mixpanel/src/utils/output.ts +119 -0
  662. package/connectors/connect-mixpanel/tsconfig.json +16 -0
  663. package/connectors/connect-notion/.env.example +10 -0
  664. package/connectors/connect-notion/.npmrc.example +2 -0
  665. package/connectors/connect-notion/AGENTS.md +75 -0
  666. package/connectors/connect-notion/CLAUDE.md +211 -0
  667. package/connectors/connect-notion/GEMINI.md +54 -0
  668. package/connectors/connect-notion/README.md +244 -0
  669. package/connectors/connect-notion/package.json +56 -0
  670. package/connectors/connect-notion/src/api/blocks.ts +463 -0
  671. package/connectors/connect-notion/src/api/bulk.ts +614 -0
  672. package/connectors/connect-notion/src/api/client.ts +127 -0
  673. package/connectors/connect-notion/src/api/comments.ts +142 -0
  674. package/connectors/connect-notion/src/api/databases.ts +652 -0
  675. package/connectors/connect-notion/src/api/export.ts +487 -0
  676. package/connectors/connect-notion/src/api/index.ts +72 -0
  677. package/connectors/connect-notion/src/api/pages.ts +465 -0
  678. package/connectors/connect-notion/src/api/search.ts +202 -0
  679. package/connectors/connect-notion/src/api/users.ts +99 -0
  680. package/connectors/connect-notion/src/cli/index.ts +1666 -0
  681. package/connectors/connect-notion/src/index.ts +16 -0
  682. package/connectors/connect-notion/src/types/index.ts +723 -0
  683. package/connectors/connect-notion/src/utils/auth.ts +186 -0
  684. package/connectors/connect-notion/src/utils/config.ts +434 -0
  685. package/connectors/connect-notion/src/utils/output.ts +119 -0
  686. package/connectors/connect-notion/tsconfig.json +29 -0
  687. package/connectors/connect-openai/.env.example +4 -0
  688. package/connectors/connect-openai/.npmrc.example +2 -0
  689. package/connectors/connect-openai/AGENTS.md +77 -0
  690. package/connectors/connect-openai/CLAUDE.md +77 -0
  691. package/connectors/connect-openai/GEMINI.md +77 -0
  692. package/connectors/connect-openai/README.md +95 -0
  693. package/connectors/connect-openai/package.json +61 -0
  694. package/connectors/connect-openai/src/api/chat.ts +134 -0
  695. package/connectors/connect-openai/src/api/client.ts +128 -0
  696. package/connectors/connect-openai/src/api/embeddings.ts +57 -0
  697. package/connectors/connect-openai/src/api/images.ts +75 -0
  698. package/connectors/connect-openai/src/api/index.ts +67 -0
  699. package/connectors/connect-openai/src/cli/index.ts +459 -0
  700. package/connectors/connect-openai/src/index.ts +26 -0
  701. package/connectors/connect-openai/src/types/index.ts +241 -0
  702. package/connectors/connect-openai/src/utils/config.ts +219 -0
  703. package/connectors/connect-openai/src/utils/output.ts +119 -0
  704. package/connectors/connect-openai/tsconfig.json +16 -0
  705. package/connectors/connect-openweathermap/.env.example +2 -0
  706. package/connectors/connect-openweathermap/.npmrc.example +2 -0
  707. package/connectors/connect-openweathermap/AGENTS.md +106 -0
  708. package/connectors/connect-openweathermap/CLAUDE.md +106 -0
  709. package/connectors/connect-openweathermap/GEMINI.md +106 -0
  710. package/connectors/connect-openweathermap/README.md +115 -0
  711. package/connectors/connect-openweathermap/package.json +52 -0
  712. package/connectors/connect-openweathermap/src/api/client.ts +76 -0
  713. package/connectors/connect-openweathermap/src/api/index.ts +24 -0
  714. package/connectors/connect-openweathermap/src/api/weather.ts +108 -0
  715. package/connectors/connect-openweathermap/src/cli/index.ts +470 -0
  716. package/connectors/connect-openweathermap/src/index.ts +33 -0
  717. package/connectors/connect-openweathermap/src/types/index.ts +275 -0
  718. package/connectors/connect-openweathermap/src/utils/config.ts +82 -0
  719. package/connectors/connect-openweathermap/src/utils/output.ts +106 -0
  720. package/connectors/connect-openweathermap/tsconfig.json +16 -0
  721. package/connectors/connect-pandadoc/.env.example +13 -0
  722. package/connectors/connect-pandadoc/.npmrc.example +2 -0
  723. package/connectors/connect-pandadoc/AGENTS.md +76 -0
  724. package/connectors/connect-pandadoc/CLAUDE.md +76 -0
  725. package/connectors/connect-pandadoc/GEMINI.md +76 -0
  726. package/connectors/connect-pandadoc/README.md +94 -0
  727. package/connectors/connect-pandadoc/package.json +57 -0
  728. package/connectors/connect-pandadoc/src/api/catalogs.ts +58 -0
  729. package/connectors/connect-pandadoc/src/api/client.ts +169 -0
  730. package/connectors/connect-pandadoc/src/api/contacts.ts +58 -0
  731. package/connectors/connect-pandadoc/src/api/content-library.ts +57 -0
  732. package/connectors/connect-pandadoc/src/api/documents.ts +263 -0
  733. package/connectors/connect-pandadoc/src/api/folders.ts +58 -0
  734. package/connectors/connect-pandadoc/src/api/forms.ts +37 -0
  735. package/connectors/connect-pandadoc/src/api/index.ts +83 -0
  736. package/connectors/connect-pandadoc/src/api/members.ts +42 -0
  737. package/connectors/connect-pandadoc/src/api/templates.ts +61 -0
  738. package/connectors/connect-pandadoc/src/api/webhooks.ts +81 -0
  739. package/connectors/connect-pandadoc/src/cli/index.ts +1212 -0
  740. package/connectors/connect-pandadoc/src/index.ts +39 -0
  741. package/connectors/connect-pandadoc/src/types/index.ts +454 -0
  742. package/connectors/connect-pandadoc/src/utils/config.ts +259 -0
  743. package/connectors/connect-pandadoc/src/utils/output.ts +119 -0
  744. package/connectors/connect-pandadoc/tsconfig.json +16 -0
  745. package/connectors/connect-quo/.env.example +7 -0
  746. package/connectors/connect-quo/.npmrc.example +2 -0
  747. package/connectors/connect-quo/AGENTS.md +76 -0
  748. package/connectors/connect-quo/CLAUDE.md +76 -0
  749. package/connectors/connect-quo/GEMINI.md +76 -0
  750. package/connectors/connect-quo/README.md +94 -0
  751. package/connectors/connect-quo/package.json +58 -0
  752. package/connectors/connect-quo/src/api/calls.ts +64 -0
  753. package/connectors/connect-quo/src/api/client.ts +133 -0
  754. package/connectors/connect-quo/src/api/contacts.ts +57 -0
  755. package/connectors/connect-quo/src/api/conversations.ts +45 -0
  756. package/connectors/connect-quo/src/api/custom-fields.ts +17 -0
  757. package/connectors/connect-quo/src/api/index.ts +76 -0
  758. package/connectors/connect-quo/src/api/messages.ts +50 -0
  759. package/connectors/connect-quo/src/api/phone-numbers.ts +24 -0
  760. package/connectors/connect-quo/src/api/users.ts +24 -0
  761. package/connectors/connect-quo/src/api/webhooks.ts +121 -0
  762. package/connectors/connect-quo/src/cli/index.ts +713 -0
  763. package/connectors/connect-quo/src/index.ts +32 -0
  764. package/connectors/connect-quo/src/types/index.ts +361 -0
  765. package/connectors/connect-quo/src/utils/config.ts +242 -0
  766. package/connectors/connect-quo/src/utils/output.ts +119 -0
  767. package/connectors/connect-quo/tsconfig.json +16 -0
  768. package/connectors/connect-reddit/.npmrc.example +2 -0
  769. package/connectors/connect-reddit/AGENTS.md +176 -0
  770. package/connectors/connect-reddit/CLAUDE.md +176 -0
  771. package/connectors/connect-reddit/GEMINI.md +176 -0
  772. package/connectors/connect-reddit/README.md +160 -0
  773. package/connectors/connect-reddit/package.json +50 -0
  774. package/connectors/connect-reddit/src/api/client.ts +299 -0
  775. package/connectors/connect-reddit/src/api/comments.ts +268 -0
  776. package/connectors/connect-reddit/src/api/index.ts +113 -0
  777. package/connectors/connect-reddit/src/api/posts.ts +298 -0
  778. package/connectors/connect-reddit/src/api/search.ts +235 -0
  779. package/connectors/connect-reddit/src/api/subreddits.ts +279 -0
  780. package/connectors/connect-reddit/src/api/users.ts +403 -0
  781. package/connectors/connect-reddit/src/cli/index.ts +766 -0
  782. package/connectors/connect-reddit/src/index.ts +36 -0
  783. package/connectors/connect-reddit/src/types/index.ts +295 -0
  784. package/connectors/connect-reddit/src/utils/config.ts +281 -0
  785. package/connectors/connect-reddit/src/utils/output.ts +138 -0
  786. package/connectors/connect-reddit/tsconfig.json +16 -0
  787. package/connectors/connect-reducto/.npmrc.example +2 -0
  788. package/connectors/connect-reducto/AGENTS.md +136 -0
  789. package/connectors/connect-reducto/CLAUDE.md +136 -0
  790. package/connectors/connect-reducto/GEMINI.md +136 -0
  791. package/connectors/connect-reducto/README.md +145 -0
  792. package/connectors/connect-reducto/package.json +48 -0
  793. package/connectors/connect-reducto/src/api/index.ts +362 -0
  794. package/connectors/connect-reducto/src/cli/index.ts +582 -0
  795. package/connectors/connect-reducto/src/index.ts +48 -0
  796. package/connectors/connect-reducto/src/types/index.ts +204 -0
  797. package/connectors/connect-reducto/src/utils/config.ts +144 -0
  798. package/connectors/connect-reducto/src/utils/output.ts +256 -0
  799. package/connectors/connect-reducto/tsconfig.json +18 -0
  800. package/connectors/connect-resend/.npmrc.example +2 -0
  801. package/connectors/connect-resend/AGENTS.md +76 -0
  802. package/connectors/connect-resend/CLAUDE.md +76 -0
  803. package/connectors/connect-resend/GEMINI.md +76 -0
  804. package/connectors/connect-resend/README.md +94 -0
  805. package/connectors/connect-resend/package.json +58 -0
  806. package/connectors/connect-resend/src/api/api-keys.ts +41 -0
  807. package/connectors/connect-resend/src/api/audiences.ts +46 -0
  808. package/connectors/connect-resend/src/api/broadcasts.ts +65 -0
  809. package/connectors/connect-resend/src/api/client.ts +132 -0
  810. package/connectors/connect-resend/src/api/contacts.ts +64 -0
  811. package/connectors/connect-resend/src/api/domains.ts +64 -0
  812. package/connectors/connect-resend/src/api/emails.ts +66 -0
  813. package/connectors/connect-resend/src/api/index.ts +77 -0
  814. package/connectors/connect-resend/src/api/templates.ts +65 -0
  815. package/connectors/connect-resend/src/api/webhooks.ts +55 -0
  816. package/connectors/connect-resend/src/cli/index.ts +1029 -0
  817. package/connectors/connect-resend/src/index.ts +32 -0
  818. package/connectors/connect-resend/src/types/index.ts +327 -0
  819. package/connectors/connect-resend/src/utils/config.ts +228 -0
  820. package/connectors/connect-resend/src/utils/output.ts +119 -0
  821. package/connectors/connect-resend/tsconfig.json +21 -0
  822. package/connectors/connect-revolut/.npmrc.example +2 -0
  823. package/connectors/connect-revolut/AGENTS.md +162 -0
  824. package/connectors/connect-revolut/CLAUDE.md +162 -0
  825. package/connectors/connect-revolut/GEMINI.md +162 -0
  826. package/connectors/connect-revolut/README.md +145 -0
  827. package/connectors/connect-revolut/package.json +54 -0
  828. package/connectors/connect-revolut/src/api/accounts.ts +46 -0
  829. package/connectors/connect-revolut/src/api/cards.ts +87 -0
  830. package/connectors/connect-revolut/src/api/client.ts +128 -0
  831. package/connectors/connect-revolut/src/api/counterparties.ts +64 -0
  832. package/connectors/connect-revolut/src/api/exchange.ts +87 -0
  833. package/connectors/connect-revolut/src/api/index.ts +85 -0
  834. package/connectors/connect-revolut/src/api/payments.ts +64 -0
  835. package/connectors/connect-revolut/src/api/transactions.ts +62 -0
  836. package/connectors/connect-revolut/src/cli/index.ts +674 -0
  837. package/connectors/connect-revolut/src/index.ts +32 -0
  838. package/connectors/connect-revolut/src/types/index.ts +306 -0
  839. package/connectors/connect-revolut/src/utils/config.ts +212 -0
  840. package/connectors/connect-revolut/src/utils/output.ts +77 -0
  841. package/connectors/connect-revolut/tsconfig.json +16 -0
  842. package/connectors/connect-sedo/.env.example +7 -0
  843. package/connectors/connect-sedo/.npmrc.example +2 -0
  844. package/connectors/connect-sedo/AGENTS.md +111 -0
  845. package/connectors/connect-sedo/CLAUDE.md +111 -0
  846. package/connectors/connect-sedo/GEMINI.md +111 -0
  847. package/connectors/connect-sedo/README.md +112 -0
  848. package/connectors/connect-sedo/package.json +54 -0
  849. package/connectors/connect-sedo/src/api/client.ts +139 -0
  850. package/connectors/connect-sedo/src/api/domains.ts +246 -0
  851. package/connectors/connect-sedo/src/api/index.ts +30 -0
  852. package/connectors/connect-sedo/src/cli/index.ts +490 -0
  853. package/connectors/connect-sedo/src/index.ts +18 -0
  854. package/connectors/connect-sedo/src/types/index.ts +104 -0
  855. package/connectors/connect-sedo/src/utils/config.ts +234 -0
  856. package/connectors/connect-sedo/src/utils/output.ts +62 -0
  857. package/connectors/connect-sedo/tsconfig.json +29 -0
  858. package/connectors/connect-sentry/.env.example +10 -0
  859. package/connectors/connect-sentry/.npmrc.example +2 -0
  860. package/connectors/connect-sentry/AGENTS.md +102 -0
  861. package/connectors/connect-sentry/CLAUDE.md +102 -0
  862. package/connectors/connect-sentry/GEMINI.md +102 -0
  863. package/connectors/connect-sentry/README.md +96 -0
  864. package/connectors/connect-sentry/package.json +55 -0
  865. package/connectors/connect-sentry/src/api/client.ts +136 -0
  866. package/connectors/connect-sentry/src/api/example.ts +48 -0
  867. package/connectors/connect-sentry/src/api/index.ts +49 -0
  868. package/connectors/connect-sentry/src/cli/index.ts +242 -0
  869. package/connectors/connect-sentry/src/index.ts +24 -0
  870. package/connectors/connect-sentry/src/types/index.ts +69 -0
  871. package/connectors/connect-sentry/src/utils/config.ts +210 -0
  872. package/connectors/connect-sentry/src/utils/output.ts +119 -0
  873. package/connectors/connect-sentry/tsconfig.json +16 -0
  874. package/connectors/connect-shadcn/.env.example +5 -0
  875. package/connectors/connect-shadcn/.npmrc.example +2 -0
  876. package/connectors/connect-shadcn/AGENTS.md +104 -0
  877. package/connectors/connect-shadcn/CLAUDE.md +104 -0
  878. package/connectors/connect-shadcn/GEMINI.md +104 -0
  879. package/connectors/connect-shadcn/README.md +94 -0
  880. package/connectors/connect-shadcn/package.json +55 -0
  881. package/connectors/connect-shadcn/src/api/client.ts +91 -0
  882. package/connectors/connect-shadcn/src/api/components.ts +146 -0
  883. package/connectors/connect-shadcn/src/api/index.ts +50 -0
  884. package/connectors/connect-shadcn/src/cli/index.ts +320 -0
  885. package/connectors/connect-shadcn/src/index.ts +22 -0
  886. package/connectors/connect-shadcn/src/types/index.ts +89 -0
  887. package/connectors/connect-shadcn/src/utils/config.ts +208 -0
  888. package/connectors/connect-shadcn/src/utils/output.ts +119 -0
  889. package/connectors/connect-shadcn/tsconfig.json +16 -0
  890. package/connectors/connect-shopify/.npmrc.example +2 -0
  891. package/connectors/connect-shopify/AGENTS.md +170 -0
  892. package/connectors/connect-shopify/CLAUDE.md +170 -0
  893. package/connectors/connect-shopify/GEMINI.md +170 -0
  894. package/connectors/connect-shopify/README.md +153 -0
  895. package/connectors/connect-shopify/package.json +29 -0
  896. package/connectors/connect-shopify/src/api/client.ts +163 -0
  897. package/connectors/connect-shopify/src/api/collections.ts +322 -0
  898. package/connectors/connect-shopify/src/api/customers.ts +239 -0
  899. package/connectors/connect-shopify/src/api/index.ts +89 -0
  900. package/connectors/connect-shopify/src/api/inventory.ts +236 -0
  901. package/connectors/connect-shopify/src/api/orders.ts +367 -0
  902. package/connectors/connect-shopify/src/api/products.ts +252 -0
  903. package/connectors/connect-shopify/src/api/shop.ts +50 -0
  904. package/connectors/connect-shopify/src/cli/index.ts +870 -0
  905. package/connectors/connect-shopify/src/index.ts +35 -0
  906. package/connectors/connect-shopify/src/types/index.ts +262 -0
  907. package/connectors/connect-shopify/src/utils/config.ts +240 -0
  908. package/connectors/connect-shopify/src/utils/output.ts +119 -0
  909. package/connectors/connect-shopify/tsconfig.json +17 -0
  910. package/connectors/connect-snap/.npmrc.example +2 -0
  911. package/connectors/connect-snap/AGENTS.md +76 -0
  912. package/connectors/connect-snap/CLAUDE.md +76 -0
  913. package/connectors/connect-snap/GEMINI.md +76 -0
  914. package/connectors/connect-snap/README.md +94 -0
  915. package/connectors/connect-snap/package.json +62 -0
  916. package/connectors/connect-snap/src/api/accounts.ts +81 -0
  917. package/connectors/connect-snap/src/api/ads.ts +102 -0
  918. package/connectors/connect-snap/src/api/adsquads.ts +130 -0
  919. package/connectors/connect-snap/src/api/audiences.ts +208 -0
  920. package/connectors/connect-snap/src/api/campaigns.ts +92 -0
  921. package/connectors/connect-snap/src/api/catalogs.ts +313 -0
  922. package/connectors/connect-snap/src/api/client.ts +324 -0
  923. package/connectors/connect-snap/src/api/conversions.ts +403 -0
  924. package/connectors/connect-snap/src/api/creatives.ts +232 -0
  925. package/connectors/connect-snap/src/api/index.ts +124 -0
  926. package/connectors/connect-snap/src/api/leads.ts +299 -0
  927. package/connectors/connect-snap/src/api/media.ts +246 -0
  928. package/connectors/connect-snap/src/api/organizations.ts +30 -0
  929. package/connectors/connect-snap/src/api/pixels.ts +215 -0
  930. package/connectors/connect-snap/src/api/stats.ts +305 -0
  931. package/connectors/connect-snap/src/api/targeting.ts +255 -0
  932. package/connectors/connect-snap/src/cli/index.ts +1810 -0
  933. package/connectors/connect-snap/src/index.ts +52 -0
  934. package/connectors/connect-snap/src/types/index.ts +1226 -0
  935. package/connectors/connect-snap/src/utils/config.ts +509 -0
  936. package/connectors/connect-snap/src/utils/output.ts +139 -0
  937. package/connectors/connect-snap/tsconfig.json +16 -0
  938. package/connectors/connect-stabilityai/.npmrc.example +2 -0
  939. package/connectors/connect-stabilityai/AGENTS.md +76 -0
  940. package/connectors/connect-stabilityai/CLAUDE.md +76 -0
  941. package/connectors/connect-stabilityai/GEMINI.md +76 -0
  942. package/connectors/connect-stabilityai/README.md +94 -0
  943. package/connectors/connect-stabilityai/package.json +63 -0
  944. package/connectors/connect-stabilityai/src/api/3d.ts +99 -0
  945. package/connectors/connect-stabilityai/src/api/client.ts +238 -0
  946. package/connectors/connect-stabilityai/src/api/edit.ts +130 -0
  947. package/connectors/connect-stabilityai/src/api/engines.ts +41 -0
  948. package/connectors/connect-stabilityai/src/api/image-to-image.ts +150 -0
  949. package/connectors/connect-stabilityai/src/api/index.ts +81 -0
  950. package/connectors/connect-stabilityai/src/api/inpaint.ts +153 -0
  951. package/connectors/connect-stabilityai/src/api/outpaint.ts +117 -0
  952. package/connectors/connect-stabilityai/src/api/text-to-image.ts +181 -0
  953. package/connectors/connect-stabilityai/src/api/upscale.ts +113 -0
  954. package/connectors/connect-stabilityai/src/api/user.ts +24 -0
  955. package/connectors/connect-stabilityai/src/cli/index.ts +859 -0
  956. package/connectors/connect-stabilityai/src/index.ts +37 -0
  957. package/connectors/connect-stabilityai/src/types/index.ts +315 -0
  958. package/connectors/connect-stabilityai/src/utils/config.ts +340 -0
  959. package/connectors/connect-stabilityai/src/utils/output.ts +119 -0
  960. package/connectors/connect-stabilityai/tsconfig.json +21 -0
  961. package/connectors/connect-stripe/.env.example +10 -0
  962. package/connectors/connect-stripe/.npmrc.example +2 -0
  963. package/connectors/connect-stripe/AGENTS.md +204 -0
  964. package/connectors/connect-stripe/CLAUDE.md +204 -0
  965. package/connectors/connect-stripe/GEMINI.md +204 -0
  966. package/connectors/connect-stripe/README.md +181 -0
  967. package/connectors/connect-stripe/package.json +55 -0
  968. package/connectors/connect-stripe/src/api/balance.ts +28 -0
  969. package/connectors/connect-stripe/src/api/billing-portal.ts +64 -0
  970. package/connectors/connect-stripe/src/api/charges.ts +65 -0
  971. package/connectors/connect-stripe/src/api/checkout-sessions.ts +55 -0
  972. package/connectors/connect-stripe/src/api/client.ts +190 -0
  973. package/connectors/connect-stripe/src/api/coupons.ts +52 -0
  974. package/connectors/connect-stripe/src/api/customers.ts +65 -0
  975. package/connectors/connect-stripe/src/api/events.ts +28 -0
  976. package/connectors/connect-stripe/src/api/index.ts +118 -0
  977. package/connectors/connect-stripe/src/api/invoice-items.ts +52 -0
  978. package/connectors/connect-stripe/src/api/invoices.ts +102 -0
  979. package/connectors/connect-stripe/src/api/payment-intents.ts +81 -0
  980. package/connectors/connect-stripe/src/api/payment-links.ts +57 -0
  981. package/connectors/connect-stripe/src/api/payment-methods.ts +59 -0
  982. package/connectors/connect-stripe/src/api/prices.ts +57 -0
  983. package/connectors/connect-stripe/src/api/products.ts +65 -0
  984. package/connectors/connect-stripe/src/api/promotion-codes.ts +44 -0
  985. package/connectors/connect-stripe/src/api/subscription-items.ts +53 -0
  986. package/connectors/connect-stripe/src/api/subscriptions.ts +73 -0
  987. package/connectors/connect-stripe/src/api/webhooks.ts +52 -0
  988. package/connectors/connect-stripe/src/cli/index.ts +1995 -0
  989. package/connectors/connect-stripe/src/index.ts +44 -0
  990. package/connectors/connect-stripe/src/types/index.ts +2147 -0
  991. package/connectors/connect-stripe/src/utils/config.ts +220 -0
  992. package/connectors/connect-stripe/src/utils/output.ts +119 -0
  993. package/connectors/connect-stripe/tsconfig.json +16 -0
  994. package/connectors/connect-stripeatlas/.env.example +11 -0
  995. package/connectors/connect-stripeatlas/.npmrc.example +2 -0
  996. package/connectors/connect-stripeatlas/AGENTS.md +102 -0
  997. package/connectors/connect-stripeatlas/CLAUDE.md +102 -0
  998. package/connectors/connect-stripeatlas/GEMINI.md +102 -0
  999. package/connectors/connect-stripeatlas/README.md +95 -0
  1000. package/connectors/connect-stripeatlas/package.json +57 -0
  1001. package/connectors/connect-stripeatlas/src/api/client.ts +77 -0
  1002. package/connectors/connect-stripeatlas/src/api/example.ts +60 -0
  1003. package/connectors/connect-stripeatlas/src/api/index.ts +65 -0
  1004. package/connectors/connect-stripeatlas/src/cli/index.ts +270 -0
  1005. package/connectors/connect-stripeatlas/src/index.ts +29 -0
  1006. package/connectors/connect-stripeatlas/src/types/index.ts +93 -0
  1007. package/connectors/connect-stripeatlas/src/utils/config.ts +228 -0
  1008. package/connectors/connect-stripeatlas/src/utils/output.ts +119 -0
  1009. package/connectors/connect-stripeatlas/tsconfig.json +16 -0
  1010. package/connectors/connect-substack/.env.example +4 -0
  1011. package/connectors/connect-substack/.npmrc.example +2 -0
  1012. package/connectors/connect-substack/AGENTS.md +168 -0
  1013. package/connectors/connect-substack/CLAUDE.md +168 -0
  1014. package/connectors/connect-substack/GEMINI.md +168 -0
  1015. package/connectors/connect-substack/README.md +146 -0
  1016. package/connectors/connect-substack/package.json +51 -0
  1017. package/connectors/connect-substack/src/api/client.ts +147 -0
  1018. package/connectors/connect-substack/src/api/comments.ts +68 -0
  1019. package/connectors/connect-substack/src/api/index.ts +77 -0
  1020. package/connectors/connect-substack/src/api/posts.ts +135 -0
  1021. package/connectors/connect-substack/src/api/publication.ts +126 -0
  1022. package/connectors/connect-substack/src/api/stats.ts +113 -0
  1023. package/connectors/connect-substack/src/api/subscribers.ts +97 -0
  1024. package/connectors/connect-substack/src/cli/index.ts +531 -0
  1025. package/connectors/connect-substack/src/index.ts +31 -0
  1026. package/connectors/connect-substack/src/types/index.ts +257 -0
  1027. package/connectors/connect-substack/src/utils/config.ts +208 -0
  1028. package/connectors/connect-substack/src/utils/output.ts +143 -0
  1029. package/connectors/connect-substack/tsconfig.json +16 -0
  1030. package/connectors/connect-tiktok/.npmrc.example +2 -0
  1031. package/connectors/connect-tiktok/AGENTS.md +76 -0
  1032. package/connectors/connect-tiktok/CLAUDE.md +76 -0
  1033. package/connectors/connect-tiktok/GEMINI.md +76 -0
  1034. package/connectors/connect-tiktok/README.md +94 -0
  1035. package/connectors/connect-tiktok/package.json +60 -0
  1036. package/connectors/connect-tiktok/src/api/adgroups.ts +144 -0
  1037. package/connectors/connect-tiktok/src/api/ads.ts +160 -0
  1038. package/connectors/connect-tiktok/src/api/advertisers.ts +104 -0
  1039. package/connectors/connect-tiktok/src/api/audiences.ts +246 -0
  1040. package/connectors/connect-tiktok/src/api/business.ts +273 -0
  1041. package/connectors/connect-tiktok/src/api/campaigns.ts +116 -0
  1042. package/connectors/connect-tiktok/src/api/catalogs.ts +326 -0
  1043. package/connectors/connect-tiktok/src/api/client.ts +137 -0
  1044. package/connectors/connect-tiktok/src/api/creatives.ts +293 -0
  1045. package/connectors/connect-tiktok/src/api/events.ts +314 -0
  1046. package/connectors/connect-tiktok/src/api/identity.ts +255 -0
  1047. package/connectors/connect-tiktok/src/api/index.ts +105 -0
  1048. package/connectors/connect-tiktok/src/api/pixels.ts +188 -0
  1049. package/connectors/connect-tiktok/src/api/reports.ts +290 -0
  1050. package/connectors/connect-tiktok/src/api/targeting.ts +326 -0
  1051. package/connectors/connect-tiktok/src/cli/index.ts +1329 -0
  1052. package/connectors/connect-tiktok/src/index.ts +39 -0
  1053. package/connectors/connect-tiktok/src/types/index.ts +1052 -0
  1054. package/connectors/connect-tiktok/src/utils/config.ts +419 -0
  1055. package/connectors/connect-tiktok/src/utils/output.ts +136 -0
  1056. package/connectors/connect-tiktok/tsconfig.json +16 -0
  1057. package/connectors/connect-tinker/.env.example +8 -0
  1058. package/connectors/connect-tinker/.npmrc.example +2 -0
  1059. package/connectors/connect-tinker/AGENTS.md +189 -0
  1060. package/connectors/connect-tinker/CLAUDE.md +189 -0
  1061. package/connectors/connect-tinker/GEMINI.md +189 -0
  1062. package/connectors/connect-tinker/README.md +157 -0
  1063. package/connectors/connect-tinker/package.json +55 -0
  1064. package/connectors/connect-tinker/src/api/client.ts +146 -0
  1065. package/connectors/connect-tinker/src/api/index.ts +100 -0
  1066. package/connectors/connect-tinker/src/api/sampling.ts +163 -0
  1067. package/connectors/connect-tinker/src/api/state.ts +147 -0
  1068. package/connectors/connect-tinker/src/api/training.ts +152 -0
  1069. package/connectors/connect-tinker/src/cli/index.ts +775 -0
  1070. package/connectors/connect-tinker/src/index.ts +28 -0
  1071. package/connectors/connect-tinker/src/types/index.ts +287 -0
  1072. package/connectors/connect-tinker/src/utils/config.ts +230 -0
  1073. package/connectors/connect-tinker/src/utils/output.ts +139 -0
  1074. package/connectors/connect-tinker/tsconfig.json +16 -0
  1075. package/connectors/connect-twilio/.npmrc.example +2 -0
  1076. package/connectors/connect-twilio/AGENTS.md +76 -0
  1077. package/connectors/connect-twilio/CLAUDE.md +76 -0
  1078. package/connectors/connect-twilio/GEMINI.md +76 -0
  1079. package/connectors/connect-twilio/README.md +94 -0
  1080. package/connectors/connect-twilio/package.json +72 -0
  1081. package/connectors/connect-twilio/src/api/accounts.ts +352 -0
  1082. package/connectors/connect-twilio/src/api/calls.ts +120 -0
  1083. package/connectors/connect-twilio/src/api/client.ts +181 -0
  1084. package/connectors/connect-twilio/src/api/conversations.ts +313 -0
  1085. package/connectors/connect-twilio/src/api/index.ts +91 -0
  1086. package/connectors/connect-twilio/src/api/lookup.ts +271 -0
  1087. package/connectors/connect-twilio/src/api/messages.ts +107 -0
  1088. package/connectors/connect-twilio/src/api/numbers.ts +152 -0
  1089. package/connectors/connect-twilio/src/api/verify.ts +213 -0
  1090. package/connectors/connect-twilio/src/api/video.ts +305 -0
  1091. package/connectors/connect-twilio/src/cli/index.ts +1093 -0
  1092. package/connectors/connect-twilio/src/index.ts +34 -0
  1093. package/connectors/connect-twilio/src/types/index.ts +983 -0
  1094. package/connectors/connect-twilio/src/utils/config.ts +424 -0
  1095. package/connectors/connect-twilio/src/utils/output.ts +119 -0
  1096. package/connectors/connect-twilio/tsconfig.json +16 -0
  1097. package/connectors/connect-uspto/.env.example +13 -0
  1098. package/connectors/connect-uspto/.npmrc.example +2 -0
  1099. package/connectors/connect-uspto/AGENTS.md +80 -0
  1100. package/connectors/connect-uspto/CLAUDE.md +80 -0
  1101. package/connectors/connect-uspto/GEMINI.md +80 -0
  1102. package/connectors/connect-uspto/README.md +98 -0
  1103. package/connectors/connect-uspto/package.json +54 -0
  1104. package/connectors/connect-uspto/src/api/browser.ts +335 -0
  1105. package/connectors/connect-uspto/src/api/client.ts +186 -0
  1106. package/connectors/connect-uspto/src/api/index.ts +104 -0
  1107. package/connectors/connect-uspto/src/api/patents.ts +290 -0
  1108. package/connectors/connect-uspto/src/api/ptab.ts +150 -0
  1109. package/connectors/connect-uspto/src/api/trademarks.ts +302 -0
  1110. package/connectors/connect-uspto/src/cli/index.ts +713 -0
  1111. package/connectors/connect-uspto/src/index.ts +26 -0
  1112. package/connectors/connect-uspto/src/types/index.ts +302 -0
  1113. package/connectors/connect-uspto/src/utils/config.ts +235 -0
  1114. package/connectors/connect-uspto/src/utils/output.ts +119 -0
  1115. package/connectors/connect-uspto/tsconfig.json +16 -0
  1116. package/connectors/connect-webflow/.npmrc.example +2 -0
  1117. package/connectors/connect-webflow/AGENTS.md +193 -0
  1118. package/connectors/connect-webflow/CLAUDE.md +193 -0
  1119. package/connectors/connect-webflow/GEMINI.md +193 -0
  1120. package/connectors/connect-webflow/README.md +173 -0
  1121. package/connectors/connect-webflow/package.json +29 -0
  1122. package/connectors/connect-webflow/src/api/assets.ts +89 -0
  1123. package/connectors/connect-webflow/src/api/client.ts +121 -0
  1124. package/connectors/connect-webflow/src/api/collections.ts +46 -0
  1125. package/connectors/connect-webflow/src/api/forms.ts +75 -0
  1126. package/connectors/connect-webflow/src/api/index.ts +93 -0
  1127. package/connectors/connect-webflow/src/api/items.ts +141 -0
  1128. package/connectors/connect-webflow/src/api/orders.ts +89 -0
  1129. package/connectors/connect-webflow/src/api/pages.ts +76 -0
  1130. package/connectors/connect-webflow/src/api/products.ts +160 -0
  1131. package/connectors/connect-webflow/src/api/sites.ts +41 -0
  1132. package/connectors/connect-webflow/src/api/users.ts +81 -0
  1133. package/connectors/connect-webflow/src/cli/index.ts +1048 -0
  1134. package/connectors/connect-webflow/src/index.ts +35 -0
  1135. package/connectors/connect-webflow/src/types/index.ts +488 -0
  1136. package/connectors/connect-webflow/src/utils/config.ts +208 -0
  1137. package/connectors/connect-webflow/src/utils/output.ts +119 -0
  1138. package/connectors/connect-webflow/tsconfig.json +17 -0
  1139. package/connectors/connect-wix/.npmrc.example +2 -0
  1140. package/connectors/connect-wix/AGENTS.md +181 -0
  1141. package/connectors/connect-wix/CLAUDE.md +181 -0
  1142. package/connectors/connect-wix/GEMINI.md +181 -0
  1143. package/connectors/connect-wix/README.md +163 -0
  1144. package/connectors/connect-wix/package.json +29 -0
  1145. package/connectors/connect-wix/src/api/bookings.ts +575 -0
  1146. package/connectors/connect-wix/src/api/client.ts +147 -0
  1147. package/connectors/connect-wix/src/api/contacts.ts +308 -0
  1148. package/connectors/connect-wix/src/api/index.ts +90 -0
  1149. package/connectors/connect-wix/src/api/inventory.ts +195 -0
  1150. package/connectors/connect-wix/src/api/members.ts +172 -0
  1151. package/connectors/connect-wix/src/api/orders.ts +415 -0
  1152. package/connectors/connect-wix/src/api/products.ts +453 -0
  1153. package/connectors/connect-wix/src/api/sites.ts +77 -0
  1154. package/connectors/connect-wix/src/cli/index.ts +1009 -0
  1155. package/connectors/connect-wix/src/index.ts +35 -0
  1156. package/connectors/connect-wix/src/types/index.ts +786 -0
  1157. package/connectors/connect-wix/src/utils/config.ts +219 -0
  1158. package/connectors/connect-wix/src/utils/output.ts +119 -0
  1159. package/connectors/connect-wix/tsconfig.json +17 -0
  1160. package/connectors/connect-x/.env.example +11 -0
  1161. package/connectors/connect-x/.npmrc.example +2 -0
  1162. package/connectors/connect-x/AGENTS.md +84 -0
  1163. package/connectors/connect-x/CLAUDE.md +84 -0
  1164. package/connectors/connect-x/GEMINI.md +84 -0
  1165. package/connectors/connect-x/README.md +102 -0
  1166. package/connectors/connect-x/package.json +59 -0
  1167. package/connectors/connect-x/src/api/client.ts +392 -0
  1168. package/connectors/connect-x/src/api/index.ts +171 -0
  1169. package/connectors/connect-x/src/api/media.ts +323 -0
  1170. package/connectors/connect-x/src/api/oauth.ts +408 -0
  1171. package/connectors/connect-x/src/api/oauth1.ts +351 -0
  1172. package/connectors/connect-x/src/api/tweets.ts +339 -0
  1173. package/connectors/connect-x/src/api/users.ts +259 -0
  1174. package/connectors/connect-x/src/cli/index.ts +1205 -0
  1175. package/connectors/connect-x/src/index.ts +92 -0
  1176. package/connectors/connect-x/src/types/index.ts +230 -0
  1177. package/connectors/connect-x/src/utils/config.ts +496 -0
  1178. package/connectors/connect-x/src/utils/output.ts +119 -0
  1179. package/connectors/connect-x/tsconfig.json +16 -0
  1180. package/connectors/connect-xads/.env.example +11 -0
  1181. package/connectors/connect-xads/.npmrc.example +2 -0
  1182. package/connectors/connect-xads/AGENTS.md +183 -0
  1183. package/connectors/connect-xads/CLAUDE.md +183 -0
  1184. package/connectors/connect-xads/GEMINI.md +183 -0
  1185. package/connectors/connect-xads/README.md +161 -0
  1186. package/connectors/connect-xads/package.json +52 -0
  1187. package/connectors/connect-xads/src/api/accounts.ts +70 -0
  1188. package/connectors/connect-xads/src/api/analytics.ts +165 -0
  1189. package/connectors/connect-xads/src/api/audiences.ts +143 -0
  1190. package/connectors/connect-xads/src/api/campaigns.ts +113 -0
  1191. package/connectors/connect-xads/src/api/client.ts +315 -0
  1192. package/connectors/connect-xads/src/api/index.ts +91 -0
  1193. package/connectors/connect-xads/src/api/line-items.ts +126 -0
  1194. package/connectors/connect-xads/src/api/media.ts +96 -0
  1195. package/connectors/connect-xads/src/api/promoted-tweets.ts +97 -0
  1196. package/connectors/connect-xads/src/api/targeting.ts +165 -0
  1197. package/connectors/connect-xads/src/cli/index.ts +1036 -0
  1198. package/connectors/connect-xads/src/index.ts +41 -0
  1199. package/connectors/connect-xads/src/types/index.ts +474 -0
  1200. package/connectors/connect-xads/src/utils/config.ts +176 -0
  1201. package/connectors/connect-xads/src/utils/output.ts +177 -0
  1202. package/connectors/connect-xads/tsconfig.json +15 -0
  1203. package/connectors/connect-xai/.env.example +4 -0
  1204. package/connectors/connect-xai/.npmrc.example +2 -0
  1205. package/connectors/connect-xai/AGENTS.md +97 -0
  1206. package/connectors/connect-xai/CLAUDE.md +97 -0
  1207. package/connectors/connect-xai/GEMINI.md +97 -0
  1208. package/connectors/connect-xai/README.md +106 -0
  1209. package/connectors/connect-xai/package.json +60 -0
  1210. package/connectors/connect-xai/src/api/chat.ts +114 -0
  1211. package/connectors/connect-xai/src/api/client.ts +122 -0
  1212. package/connectors/connect-xai/src/api/index.ts +58 -0
  1213. package/connectors/connect-xai/src/cli/index.ts +330 -0
  1214. package/connectors/connect-xai/src/index.ts +24 -0
  1215. package/connectors/connect-xai/src/types/index.ts +172 -0
  1216. package/connectors/connect-xai/src/utils/config.ts +208 -0
  1217. package/connectors/connect-xai/src/utils/output.ts +119 -0
  1218. package/connectors/connect-xai/tsconfig.json +16 -0
  1219. package/connectors/connect-youtube/.npmrc.example +2 -0
  1220. package/connectors/connect-youtube/AGENTS.md +76 -0
  1221. package/connectors/connect-youtube/CLAUDE.md +76 -0
  1222. package/connectors/connect-youtube/GEMINI.md +76 -0
  1223. package/connectors/connect-youtube/README.md +94 -0
  1224. package/connectors/connect-youtube/package.json +61 -0
  1225. package/connectors/connect-youtube/src/api/analytics.ts +364 -0
  1226. package/connectors/connect-youtube/src/api/captions.ts +196 -0
  1227. package/connectors/connect-youtube/src/api/categories.ts +107 -0
  1228. package/connectors/connect-youtube/src/api/channels.ts +149 -0
  1229. package/connectors/connect-youtube/src/api/client.ts +278 -0
  1230. package/connectors/connect-youtube/src/api/commentThreads.ts +215 -0
  1231. package/connectors/connect-youtube/src/api/comments.ts +179 -0
  1232. package/connectors/connect-youtube/src/api/index.ts +113 -0
  1233. package/connectors/connect-youtube/src/api/live.ts +480 -0
  1234. package/connectors/connect-youtube/src/api/members.ts +119 -0
  1235. package/connectors/connect-youtube/src/api/playlistItems.ts +184 -0
  1236. package/connectors/connect-youtube/src/api/playlists.ts +174 -0
  1237. package/connectors/connect-youtube/src/api/search.ts +222 -0
  1238. package/connectors/connect-youtube/src/api/subscriptions.ts +164 -0
  1239. package/connectors/connect-youtube/src/api/thumbnails.ts +73 -0
  1240. package/connectors/connect-youtube/src/api/videos.ts +217 -0
  1241. package/connectors/connect-youtube/src/api/watermarks.ts +110 -0
  1242. package/connectors/connect-youtube/src/cli/index.ts +1768 -0
  1243. package/connectors/connect-youtube/src/index.ts +41 -0
  1244. package/connectors/connect-youtube/src/types/index.ts +1207 -0
  1245. package/connectors/connect-youtube/src/utils/auth.ts +236 -0
  1246. package/connectors/connect-youtube/src/utils/config.ts +529 -0
  1247. package/connectors/connect-youtube/src/utils/output.ts +157 -0
  1248. package/connectors/connect-youtube/tsconfig.json +16 -0
  1249. package/connectors/connect-zoom/.npmrc.example +2 -0
  1250. package/connectors/connect-zoom/AGENTS.md +164 -0
  1251. package/connectors/connect-zoom/CLAUDE.md +164 -0
  1252. package/connectors/connect-zoom/GEMINI.md +164 -0
  1253. package/connectors/connect-zoom/README.md +145 -0
  1254. package/connectors/connect-zoom/package.json +51 -0
  1255. package/connectors/connect-zoom/src/api/client.ts +177 -0
  1256. package/connectors/connect-zoom/src/api/index.ts +81 -0
  1257. package/connectors/connect-zoom/src/api/meetings.ts +126 -0
  1258. package/connectors/connect-zoom/src/api/recordings.ts +129 -0
  1259. package/connectors/connect-zoom/src/api/reports.ts +178 -0
  1260. package/connectors/connect-zoom/src/api/users.ts +52 -0
  1261. package/connectors/connect-zoom/src/api/webinars.ts +115 -0
  1262. package/connectors/connect-zoom/src/cli/index.ts +735 -0
  1263. package/connectors/connect-zoom/src/index.ts +26 -0
  1264. package/connectors/connect-zoom/src/types/index.ts +311 -0
  1265. package/connectors/connect-zoom/src/utils/config.ts +241 -0
  1266. package/connectors/connect-zoom/src/utils/output.ts +119 -0
  1267. package/connectors/connect-zoom/tsconfig.json +16 -0
  1268. package/dist/index.js +580 -0
  1269. package/package.json +68 -0
@@ -0,0 +1,1329 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { TikTok } from '../api';
5
+ import {
6
+ getAccessToken,
7
+ setAccessToken,
8
+ clearConfig,
9
+ getConfigDir,
10
+ getBaseConfigDir,
11
+ setProfileOverride,
12
+ getCurrentProfile,
13
+ setCurrentProfile,
14
+ listProfiles,
15
+ createProfile,
16
+ deleteProfile,
17
+ profileExists,
18
+ loadProfile,
19
+ getAdvertiserId,
20
+ getDefaultAdvertiserId,
21
+ setDefaultAdvertiserId,
22
+ setNamedAdvertiser,
23
+ removeNamedAdvertiser,
24
+ listNamedAdvertisers,
25
+ getExportsDir,
26
+ getImportsDir,
27
+ } from '../utils/config';
28
+ import type { OutputFormat } from '../utils/output';
29
+ import { success, error, info, print, formatMoney, formatNumber, formatPercent } from '../utils/output';
30
+
31
+ const CONNECTOR_NAME = 'connect-tiktok';
32
+ const VERSION = '0.1.0';
33
+
34
+ const program = new Command();
35
+
36
+ program
37
+ .name(CONNECTOR_NAME)
38
+ .description('TikTok Marketing API CLI - Campaigns, ads, audiences, creatives, and analytics')
39
+ .version(VERSION)
40
+ .option('-t, --token <token>', 'Access token (overrides config)')
41
+ .option('-a, --advertiser <id>', 'Advertiser ID (overrides config)')
42
+ .option('-f, --format <format>', 'Output format (json, pretty)', 'pretty')
43
+ .option('-p, --profile <profile>', 'Use a specific profile')
44
+ .hook('preAction', (thisCommand) => {
45
+ const opts = thisCommand.opts();
46
+ if (opts.profile) {
47
+ if (!profileExists(opts.profile)) {
48
+ error(`Profile "${opts.profile}" does not exist. Create it with "${CONNECTOR_NAME} profile create ${opts.profile}"`);
49
+ process.exit(1);
50
+ }
51
+ setProfileOverride(opts.profile);
52
+ }
53
+ if (opts.token) {
54
+ process.env.TIKTOK_ACCESS_TOKEN = opts.token;
55
+ }
56
+ if (opts.advertiser) {
57
+ process.env.TIKTOK_ADVERTISER_ID = opts.advertiser;
58
+ }
59
+ });
60
+
61
+ function getFormat(cmd: Command): OutputFormat {
62
+ const parent = cmd.parent;
63
+ return (parent?.opts().format || 'pretty') as OutputFormat;
64
+ }
65
+
66
+ function getClient(): TikTok {
67
+ const accessToken = getAccessToken();
68
+ if (!accessToken) {
69
+ error(`No access token configured. Run "${CONNECTOR_NAME} config set-token <token>" or set TIKTOK_ACCESS_TOKEN environment variable.`);
70
+ process.exit(1);
71
+ }
72
+ const advertiserId = getDefaultAdvertiserId();
73
+ return new TikTok({ accessToken, advertiserId });
74
+ }
75
+
76
+ function resolveAdvertiserId(nameOrId?: string): string {
77
+ const resolved = getAdvertiserId(nameOrId);
78
+ if (!resolved) {
79
+ error(`No advertiser ID specified. Use --advertiser or set default with "${CONNECTOR_NAME} config set-advertiser <id>"`);
80
+ process.exit(1);
81
+ }
82
+ return resolved;
83
+ }
84
+
85
+ // ============================================
86
+ // Profile Commands
87
+ // ============================================
88
+ const profileCmd = program
89
+ .command('profile')
90
+ .description('Manage configuration profiles');
91
+
92
+ profileCmd
93
+ .command('list')
94
+ .description('List all profiles')
95
+ .action(() => {
96
+ const profiles = listProfiles();
97
+ const current = getCurrentProfile();
98
+
99
+ if (profiles.length === 0) {
100
+ info('No profiles found. Use "profile create <name>" to create one.');
101
+ return;
102
+ }
103
+
104
+ success(`Profiles:`);
105
+ profiles.forEach(p => {
106
+ const isActive = p === current ? chalk.green(' (active)') : '';
107
+ console.log(` ${p}${isActive}`);
108
+ });
109
+ });
110
+
111
+ profileCmd
112
+ .command('use <name>')
113
+ .description('Switch to a profile')
114
+ .action((name: string) => {
115
+ if (!profileExists(name)) {
116
+ error(`Profile "${name}" does not exist. Create it with "profile create ${name}"`);
117
+ process.exit(1);
118
+ }
119
+ setCurrentProfile(name);
120
+ success(`Switched to profile: ${name}`);
121
+ });
122
+
123
+ profileCmd
124
+ .command('create <name>')
125
+ .description('Create a new profile')
126
+ .option('--token <token>', 'Access token')
127
+ .option('--advertiser <id>', 'Default advertiser ID')
128
+ .option('--use', 'Switch to this profile after creation')
129
+ .action((name: string, opts) => {
130
+ if (profileExists(name)) {
131
+ error(`Profile "${name}" already exists`);
132
+ process.exit(1);
133
+ }
134
+
135
+ createProfile(name, {
136
+ accessToken: opts.token,
137
+ defaultAdvertiserId: opts.advertiser,
138
+ });
139
+ success(`Profile "${name}" created`);
140
+
141
+ if (opts.use) {
142
+ setCurrentProfile(name);
143
+ info(`Switched to profile: ${name}`);
144
+ }
145
+ });
146
+
147
+ profileCmd
148
+ .command('delete <name>')
149
+ .description('Delete a profile')
150
+ .action((name: string) => {
151
+ if (name === 'default') {
152
+ error('Cannot delete the default profile');
153
+ process.exit(1);
154
+ }
155
+ if (deleteProfile(name)) {
156
+ success(`Profile "${name}" deleted`);
157
+ } else {
158
+ error(`Profile "${name}" not found`);
159
+ process.exit(1);
160
+ }
161
+ });
162
+
163
+ profileCmd
164
+ .command('show [name]')
165
+ .description('Show profile configuration')
166
+ .action((name?: string) => {
167
+ const profileName = name || getCurrentProfile();
168
+ const config = loadProfile(profileName);
169
+ const active = getCurrentProfile();
170
+
171
+ console.log(chalk.bold(`Profile: ${profileName}${profileName === active ? chalk.green(' (active)') : ''}`));
172
+ info(`Access Token: ${config.accessToken ? `${config.accessToken.substring(0, 8)}...` : chalk.gray('not set')}`);
173
+ info(`Default Advertiser: ${config.defaultAdvertiserId || chalk.gray('not set')}`);
174
+ });
175
+
176
+ // ============================================
177
+ // Config Commands
178
+ // ============================================
179
+ const configCmd = program
180
+ .command('config')
181
+ .description('Manage CLI configuration (for active profile)');
182
+
183
+ configCmd
184
+ .command('set-token <token>')
185
+ .description('Set access token')
186
+ .action((token: string) => {
187
+ setAccessToken(token);
188
+ success(`Access token saved to profile: ${getCurrentProfile()}`);
189
+ });
190
+
191
+ configCmd
192
+ .command('show')
193
+ .description('Show current configuration')
194
+ .action(() => {
195
+ const profileName = getCurrentProfile();
196
+ const accessToken = getAccessToken();
197
+ const defaultAdvertiser = getDefaultAdvertiserId();
198
+ const namedAdvertisers = listNamedAdvertisers();
199
+
200
+ console.log(chalk.bold(`Active Profile: ${profileName}`));
201
+ console.log();
202
+ info(`Base directory: ${getBaseConfigDir()}`);
203
+ info(`Profile directory: ${getConfigDir()}`);
204
+ info(`Exports directory: ${getExportsDir()}`);
205
+ info(`Imports directory: ${getImportsDir()}`);
206
+ console.log();
207
+ info(`Access Token: ${accessToken ? `${accessToken.substring(0, 8)}...` : chalk.gray('not set')}`);
208
+ info(`Default Advertiser: ${defaultAdvertiser || chalk.gray('not set')}`);
209
+
210
+ const advertiserNames = Object.keys(namedAdvertisers);
211
+ if (advertiserNames.length > 0) {
212
+ console.log();
213
+ info(`Named Advertisers:`);
214
+ advertiserNames.forEach(name => {
215
+ console.log(` ${chalk.cyan(name)}: ${namedAdvertisers[name]}`);
216
+ });
217
+ }
218
+ });
219
+
220
+ configCmd
221
+ .command('set-advertiser <advertiserId>')
222
+ .description('Set default advertiser ID')
223
+ .action((advertiserId: string) => {
224
+ setDefaultAdvertiserId(advertiserId);
225
+ success(`Default advertiser set: ${advertiserId}`);
226
+ });
227
+
228
+ configCmd
229
+ .command('set-named-advertiser <name> <advertiserId>')
230
+ .description('Set a named advertiser (e.g., main, test)')
231
+ .action((name: string, advertiserId: string) => {
232
+ setNamedAdvertiser(name, advertiserId);
233
+ success(`Advertiser "${name}" set to: ${advertiserId}`);
234
+ });
235
+
236
+ configCmd
237
+ .command('remove-named-advertiser <name>')
238
+ .description('Remove a named advertiser')
239
+ .action((name: string) => {
240
+ if (removeNamedAdvertiser(name)) {
241
+ success(`Named advertiser "${name}" removed`);
242
+ } else {
243
+ error(`Named advertiser "${name}" not found`);
244
+ process.exit(1);
245
+ }
246
+ });
247
+
248
+ configCmd
249
+ .command('clear')
250
+ .description('Clear configuration for active profile')
251
+ .action(() => {
252
+ clearConfig();
253
+ success(`Configuration cleared for profile: ${getCurrentProfile()}`);
254
+ });
255
+
256
+ // ============================================
257
+ // Advertiser Commands
258
+ // ============================================
259
+ const advertiserCmd = program
260
+ .command('advertiser')
261
+ .description('Manage advertiser accounts');
262
+
263
+ advertiserCmd
264
+ .command('info [advertiserId]')
265
+ .description('Get advertiser info')
266
+ .action(async (advertiserId?: string) => {
267
+ try {
268
+ const client = getClient();
269
+ const advId = resolveAdvertiserId(advertiserId);
270
+ const result = await client.advertisers.get(advId);
271
+ print(result, getFormat(advertiserCmd));
272
+ } catch (err) {
273
+ error(String(err));
274
+ process.exit(1);
275
+ }
276
+ });
277
+
278
+ advertiserCmd
279
+ .command('balance [advertiserId]')
280
+ .description('Get advertiser balance')
281
+ .action(async (advertiserId?: string) => {
282
+ try {
283
+ const client = getClient();
284
+ const advId = resolveAdvertiserId(advertiserId);
285
+ const result = await client.advertisers.getBalance(advId);
286
+
287
+ if (getFormat(advertiserCmd) === 'json') {
288
+ print(result, 'json');
289
+ } else {
290
+ console.log(chalk.bold('Advertiser Balance:'));
291
+ console.log(` Balance: ${formatMoney(result.balance)}`);
292
+ console.log(` Cash: ${formatMoney(result.cash)}`);
293
+ console.log(` Grant: ${formatMoney(result.grant)}`);
294
+ console.log(` Transfer In: ${formatMoney(result.transfer_in)}`);
295
+ console.log(` Transfer Out: ${formatMoney(result.transfer_out)}`);
296
+ }
297
+ } catch (err) {
298
+ error(String(err));
299
+ process.exit(1);
300
+ }
301
+ });
302
+
303
+ // ============================================
304
+ // Campaign Commands
305
+ // ============================================
306
+ const campaignsCmd = program
307
+ .command('campaigns')
308
+ .description('Manage campaigns');
309
+
310
+ campaignsCmd
311
+ .command('list')
312
+ .description('List campaigns')
313
+ .option('--advertiser <id>', 'Advertiser ID')
314
+ .option('-l, --limit <number>', 'Maximum results', '20')
315
+ .option('--page <number>', 'Page number')
316
+ .option('--status <status>', 'Filter by status')
317
+ .option('--objective <objective>', 'Filter by objective')
318
+ .action(async (opts) => {
319
+ try {
320
+ const client = getClient();
321
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
322
+ const result = await client.campaigns.list({
323
+ advertiser_id: advertiserId,
324
+ page: opts.page ? parseInt(opts.page) : undefined,
325
+ page_size: parseInt(opts.limit),
326
+ filtering: opts.status || opts.objective ? {
327
+ primary_status: opts.status,
328
+ objective_type: opts.objective,
329
+ } : undefined,
330
+ });
331
+
332
+ if (getFormat(campaignsCmd) === 'json') {
333
+ print(result, 'json');
334
+ } else {
335
+ success(`Campaigns (${result.page_info?.total_number || result.list?.length || 0} total):`);
336
+ result.list?.forEach(campaign => {
337
+ const statusColor = campaign.operation_status === 'ENABLE' ? chalk.green : chalk.yellow;
338
+ console.log(` ${chalk.bold(campaign.campaign_name)} [${statusColor(campaign.operation_status)}]`);
339
+ console.log(` ID: ${campaign.campaign_id}`);
340
+ console.log(` Objective: ${campaign.objective_type}`);
341
+ console.log(` Budget: ${campaign.budget ? formatMoney(campaign.budget) : 'Unlimited'}`);
342
+ console.log();
343
+ });
344
+ }
345
+ } catch (err) {
346
+ error(String(err));
347
+ process.exit(1);
348
+ }
349
+ });
350
+
351
+ campaignsCmd
352
+ .command('get <campaignId>')
353
+ .description('Get campaign details')
354
+ .option('--advertiser <id>', 'Advertiser ID')
355
+ .action(async (campaignId: string, opts) => {
356
+ try {
357
+ const client = getClient();
358
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
359
+ const result = await client.campaigns.get(advertiserId, campaignId);
360
+ print(result, getFormat(campaignsCmd));
361
+ } catch (err) {
362
+ error(String(err));
363
+ process.exit(1);
364
+ }
365
+ });
366
+
367
+ campaignsCmd
368
+ .command('create')
369
+ .description('Create a campaign')
370
+ .requiredOption('-n, --name <name>', 'Campaign name')
371
+ .requiredOption('-o, --objective <objective>', 'Objective type (REACH, TRAFFIC, VIDEO_VIEWS, ENGAGEMENT, APP_PROMOTION, LEAD_GENERATION, WEBSITE_CONVERSIONS, PRODUCT_SALES)')
372
+ .option('--advertiser <id>', 'Advertiser ID')
373
+ .option('--budget <amount>', 'Budget amount')
374
+ .option('--budget-mode <mode>', 'Budget mode (BUDGET_MODE_INFINITE, BUDGET_MODE_DAY, BUDGET_MODE_TOTAL)', 'BUDGET_MODE_INFINITE')
375
+ .option('--status <status>', 'Operation status (ENABLE, DISABLE)', 'ENABLE')
376
+ .action(async (opts) => {
377
+ try {
378
+ const client = getClient();
379
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
380
+ const result = await client.campaigns.create({
381
+ advertiser_id: advertiserId,
382
+ campaign_name: opts.name,
383
+ objective_type: opts.objective,
384
+ budget_mode: opts.budgetMode,
385
+ budget: opts.budget ? parseFloat(opts.budget) : undefined,
386
+ operation_status: opts.status,
387
+ });
388
+ success('Campaign created!');
389
+ print(result, getFormat(campaignsCmd));
390
+ } catch (err) {
391
+ error(String(err));
392
+ process.exit(1);
393
+ }
394
+ });
395
+
396
+ campaignsCmd
397
+ .command('update <campaignId>')
398
+ .description('Update a campaign')
399
+ .option('--advertiser <id>', 'Advertiser ID')
400
+ .option('-n, --name <name>', 'Campaign name')
401
+ .option('--budget <amount>', 'Budget amount')
402
+ .option('--status <status>', 'Operation status (ENABLE, DISABLE)')
403
+ .action(async (campaignId: string, opts) => {
404
+ try {
405
+ const client = getClient();
406
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
407
+ const result = await client.campaigns.update({
408
+ advertiser_id: advertiserId,
409
+ campaign_id: campaignId,
410
+ campaign_name: opts.name,
411
+ budget: opts.budget ? parseFloat(opts.budget) : undefined,
412
+ operation_status: opts.status,
413
+ });
414
+ success('Campaign updated!');
415
+ print(result, getFormat(campaignsCmd));
416
+ } catch (err) {
417
+ error(String(err));
418
+ process.exit(1);
419
+ }
420
+ });
421
+
422
+ campaignsCmd
423
+ .command('enable <campaignIds...>')
424
+ .description('Enable campaigns')
425
+ .option('--advertiser <id>', 'Advertiser ID')
426
+ .action(async (campaignIds: string[], opts) => {
427
+ try {
428
+ const client = getClient();
429
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
430
+ const result = await client.campaigns.enable(advertiserId, campaignIds);
431
+ success(`Enabled ${result.campaign_ids.length} campaign(s)`);
432
+ } catch (err) {
433
+ error(String(err));
434
+ process.exit(1);
435
+ }
436
+ });
437
+
438
+ campaignsCmd
439
+ .command('disable <campaignIds...>')
440
+ .description('Disable campaigns')
441
+ .option('--advertiser <id>', 'Advertiser ID')
442
+ .action(async (campaignIds: string[], opts) => {
443
+ try {
444
+ const client = getClient();
445
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
446
+ const result = await client.campaigns.disable(advertiserId, campaignIds);
447
+ success(`Disabled ${result.campaign_ids.length} campaign(s)`);
448
+ } catch (err) {
449
+ error(String(err));
450
+ process.exit(1);
451
+ }
452
+ });
453
+
454
+ campaignsCmd
455
+ .command('delete <campaignIds...>')
456
+ .description('Delete campaigns')
457
+ .option('--advertiser <id>', 'Advertiser ID')
458
+ .action(async (campaignIds: string[], opts) => {
459
+ try {
460
+ const client = getClient();
461
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
462
+ const result = await client.campaigns.delete(advertiserId, campaignIds);
463
+ success(`Deleted ${result.campaign_ids.length} campaign(s)`);
464
+ } catch (err) {
465
+ error(String(err));
466
+ process.exit(1);
467
+ }
468
+ });
469
+
470
+ // ============================================
471
+ // Ad Group Commands
472
+ // ============================================
473
+ const adgroupsCmd = program
474
+ .command('adgroups')
475
+ .description('Manage ad groups');
476
+
477
+ adgroupsCmd
478
+ .command('list')
479
+ .description('List ad groups')
480
+ .option('--advertiser <id>', 'Advertiser ID')
481
+ .option('--campaign <id>', 'Filter by campaign ID')
482
+ .option('-l, --limit <number>', 'Maximum results', '20')
483
+ .option('--page <number>', 'Page number')
484
+ .action(async (opts) => {
485
+ try {
486
+ const client = getClient();
487
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
488
+ const result = await client.adgroups.list({
489
+ advertiser_id: advertiserId,
490
+ page: opts.page ? parseInt(opts.page) : undefined,
491
+ page_size: parseInt(opts.limit),
492
+ filtering: opts.campaign ? { campaign_ids: [opts.campaign] } : undefined,
493
+ });
494
+
495
+ if (getFormat(adgroupsCmd) === 'json') {
496
+ print(result, 'json');
497
+ } else {
498
+ success(`Ad Groups (${result.page_info?.total_number || result.list?.length || 0} total):`);
499
+ result.list?.forEach(adgroup => {
500
+ const statusColor = adgroup.operation_status === 'ENABLE' ? chalk.green : chalk.yellow;
501
+ console.log(` ${chalk.bold(adgroup.adgroup_name)} [${statusColor(adgroup.operation_status)}]`);
502
+ console.log(` ID: ${adgroup.adgroup_id}`);
503
+ console.log(` Campaign: ${adgroup.campaign_id}`);
504
+ console.log(` Optimization: ${adgroup.optimization_goal}`);
505
+ console.log(` Budget: ${adgroup.budget ? formatMoney(adgroup.budget) : 'Unlimited'}`);
506
+ console.log();
507
+ });
508
+ }
509
+ } catch (err) {
510
+ error(String(err));
511
+ process.exit(1);
512
+ }
513
+ });
514
+
515
+ adgroupsCmd
516
+ .command('get <adgroupId>')
517
+ .description('Get ad group details')
518
+ .option('--advertiser <id>', 'Advertiser ID')
519
+ .action(async (adgroupId: string, opts) => {
520
+ try {
521
+ const client = getClient();
522
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
523
+ const result = await client.adgroups.get(advertiserId, adgroupId);
524
+ print(result, getFormat(adgroupsCmd));
525
+ } catch (err) {
526
+ error(String(err));
527
+ process.exit(1);
528
+ }
529
+ });
530
+
531
+ adgroupsCmd
532
+ .command('enable <adgroupIds...>')
533
+ .description('Enable ad groups')
534
+ .option('--advertiser <id>', 'Advertiser ID')
535
+ .action(async (adgroupIds: string[], opts) => {
536
+ try {
537
+ const client = getClient();
538
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
539
+ const result = await client.adgroups.enable(advertiserId, adgroupIds);
540
+ success(`Enabled ${result.adgroup_ids.length} ad group(s)`);
541
+ } catch (err) {
542
+ error(String(err));
543
+ process.exit(1);
544
+ }
545
+ });
546
+
547
+ adgroupsCmd
548
+ .command('disable <adgroupIds...>')
549
+ .description('Disable ad groups')
550
+ .option('--advertiser <id>', 'Advertiser ID')
551
+ .action(async (adgroupIds: string[], opts) => {
552
+ try {
553
+ const client = getClient();
554
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
555
+ const result = await client.adgroups.disable(advertiserId, adgroupIds);
556
+ success(`Disabled ${result.adgroup_ids.length} ad group(s)`);
557
+ } catch (err) {
558
+ error(String(err));
559
+ process.exit(1);
560
+ }
561
+ });
562
+
563
+ adgroupsCmd
564
+ .command('delete <adgroupIds...>')
565
+ .description('Delete ad groups')
566
+ .option('--advertiser <id>', 'Advertiser ID')
567
+ .action(async (adgroupIds: string[], opts) => {
568
+ try {
569
+ const client = getClient();
570
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
571
+ const result = await client.adgroups.delete(advertiserId, adgroupIds);
572
+ success(`Deleted ${result.adgroup_ids.length} ad group(s)`);
573
+ } catch (err) {
574
+ error(String(err));
575
+ process.exit(1);
576
+ }
577
+ });
578
+
579
+ // ============================================
580
+ // Ad Commands
581
+ // ============================================
582
+ const adsCmd = program
583
+ .command('ads')
584
+ .description('Manage ads');
585
+
586
+ adsCmd
587
+ .command('list')
588
+ .description('List ads')
589
+ .option('--advertiser <id>', 'Advertiser ID')
590
+ .option('--campaign <id>', 'Filter by campaign ID')
591
+ .option('--adgroup <id>', 'Filter by ad group ID')
592
+ .option('-l, --limit <number>', 'Maximum results', '20')
593
+ .option('--page <number>', 'Page number')
594
+ .action(async (opts) => {
595
+ try {
596
+ const client = getClient();
597
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
598
+ const result = await client.ads.list({
599
+ advertiser_id: advertiserId,
600
+ page: opts.page ? parseInt(opts.page) : undefined,
601
+ page_size: parseInt(opts.limit),
602
+ filtering: (opts.campaign || opts.adgroup) ? {
603
+ campaign_ids: opts.campaign ? [opts.campaign] : undefined,
604
+ adgroup_ids: opts.adgroup ? [opts.adgroup] : undefined,
605
+ } : undefined,
606
+ });
607
+
608
+ if (getFormat(adsCmd) === 'json') {
609
+ print(result, 'json');
610
+ } else {
611
+ success(`Ads (${result.page_info?.total_number || result.list?.length || 0} total):`);
612
+ result.list?.forEach(ad => {
613
+ const statusColor = ad.operation_status === 'ENABLE' ? chalk.green : chalk.yellow;
614
+ console.log(` ${chalk.bold(ad.ad_name)} [${statusColor(ad.operation_status)}]`);
615
+ console.log(` ID: ${ad.ad_id}`);
616
+ console.log(` Ad Group: ${ad.adgroup_id}`);
617
+ console.log(` Format: ${ad.ad_format}`);
618
+ console.log();
619
+ });
620
+ }
621
+ } catch (err) {
622
+ error(String(err));
623
+ process.exit(1);
624
+ }
625
+ });
626
+
627
+ adsCmd
628
+ .command('get <adId>')
629
+ .description('Get ad details')
630
+ .option('--advertiser <id>', 'Advertiser ID')
631
+ .action(async (adId: string, opts) => {
632
+ try {
633
+ const client = getClient();
634
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
635
+ const result = await client.ads.get(advertiserId, adId);
636
+ print(result, getFormat(adsCmd));
637
+ } catch (err) {
638
+ error(String(err));
639
+ process.exit(1);
640
+ }
641
+ });
642
+
643
+ adsCmd
644
+ .command('enable <adIds...>')
645
+ .description('Enable ads')
646
+ .option('--advertiser <id>', 'Advertiser ID')
647
+ .action(async (adIds: string[], opts) => {
648
+ try {
649
+ const client = getClient();
650
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
651
+ const result = await client.ads.enable(advertiserId, adIds);
652
+ success(`Enabled ${result.ad_ids.length} ad(s)`);
653
+ } catch (err) {
654
+ error(String(err));
655
+ process.exit(1);
656
+ }
657
+ });
658
+
659
+ adsCmd
660
+ .command('disable <adIds...>')
661
+ .description('Disable ads')
662
+ .option('--advertiser <id>', 'Advertiser ID')
663
+ .action(async (adIds: string[], opts) => {
664
+ try {
665
+ const client = getClient();
666
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
667
+ const result = await client.ads.disable(advertiserId, adIds);
668
+ success(`Disabled ${result.ad_ids.length} ad(s)`);
669
+ } catch (err) {
670
+ error(String(err));
671
+ process.exit(1);
672
+ }
673
+ });
674
+
675
+ adsCmd
676
+ .command('delete <adIds...>')
677
+ .description('Delete ads')
678
+ .option('--advertiser <id>', 'Advertiser ID')
679
+ .action(async (adIds: string[], opts) => {
680
+ try {
681
+ const client = getClient();
682
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
683
+ const result = await client.ads.delete(advertiserId, adIds);
684
+ success(`Deleted ${result.ad_ids.length} ad(s)`);
685
+ } catch (err) {
686
+ error(String(err));
687
+ process.exit(1);
688
+ }
689
+ });
690
+
691
+ // ============================================
692
+ // Creatives Commands
693
+ // ============================================
694
+ const creativesCmd = program
695
+ .command('creatives')
696
+ .description('Manage creative assets');
697
+
698
+ creativesCmd
699
+ .command('images')
700
+ .description('List images')
701
+ .option('--advertiser <id>', 'Advertiser ID')
702
+ .option('-l, --limit <number>', 'Maximum results', '20')
703
+ .option('--page <number>', 'Page number')
704
+ .action(async (opts) => {
705
+ try {
706
+ const client = getClient();
707
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
708
+ const result = await client.creatives.listImages(advertiserId, {
709
+ page: opts.page ? parseInt(opts.page) : undefined,
710
+ page_size: parseInt(opts.limit),
711
+ });
712
+ print(result, getFormat(creativesCmd));
713
+ } catch (err) {
714
+ error(String(err));
715
+ process.exit(1);
716
+ }
717
+ });
718
+
719
+ creativesCmd
720
+ .command('videos')
721
+ .description('List videos')
722
+ .option('--advertiser <id>', 'Advertiser ID')
723
+ .option('-l, --limit <number>', 'Maximum results', '20')
724
+ .option('--page <number>', 'Page number')
725
+ .action(async (opts) => {
726
+ try {
727
+ const client = getClient();
728
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
729
+ const result = await client.creatives.listVideos(advertiserId, {
730
+ page: opts.page ? parseInt(opts.page) : undefined,
731
+ page_size: parseInt(opts.limit),
732
+ });
733
+ print(result, getFormat(creativesCmd));
734
+ } catch (err) {
735
+ error(String(err));
736
+ process.exit(1);
737
+ }
738
+ });
739
+
740
+ creativesCmd
741
+ .command('upload-image <url>')
742
+ .description('Upload an image by URL')
743
+ .option('--advertiser <id>', 'Advertiser ID')
744
+ .option('-n, --name <name>', 'File name')
745
+ .action(async (url: string, opts) => {
746
+ try {
747
+ const client = getClient();
748
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
749
+ const result = await client.creatives.uploadImageByUrl(advertiserId, url, opts.name);
750
+ success('Image uploaded!');
751
+ print(result, getFormat(creativesCmd));
752
+ } catch (err) {
753
+ error(String(err));
754
+ process.exit(1);
755
+ }
756
+ });
757
+
758
+ creativesCmd
759
+ .command('upload-video <url>')
760
+ .description('Upload a video by URL')
761
+ .option('--advertiser <id>', 'Advertiser ID')
762
+ .option('-n, --name <name>', 'File name')
763
+ .action(async (url: string, opts) => {
764
+ try {
765
+ const client = getClient();
766
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
767
+ const result = await client.creatives.uploadVideoByUrl(advertiserId, url, opts.name);
768
+ success('Video uploaded!');
769
+ print(result, getFormat(creativesCmd));
770
+ } catch (err) {
771
+ error(String(err));
772
+ process.exit(1);
773
+ }
774
+ });
775
+
776
+ // ============================================
777
+ // Audiences Commands
778
+ // ============================================
779
+ const audiencesCmd = program
780
+ .command('audiences')
781
+ .description('Manage custom audiences');
782
+
783
+ audiencesCmd
784
+ .command('list')
785
+ .description('List audiences')
786
+ .option('--advertiser <id>', 'Advertiser ID')
787
+ .option('-l, --limit <number>', 'Maximum results', '20')
788
+ .option('--page <number>', 'Page number')
789
+ .action(async (opts) => {
790
+ try {
791
+ const client = getClient();
792
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
793
+ const result = await client.audiences.list({
794
+ advertiser_id: advertiserId,
795
+ page: opts.page ? parseInt(opts.page) : undefined,
796
+ page_size: parseInt(opts.limit),
797
+ });
798
+
799
+ if (getFormat(audiencesCmd) === 'json') {
800
+ print(result, 'json');
801
+ } else {
802
+ success(`Audiences (${result.page_info?.total_number || result.list?.length || 0} total):`);
803
+ result.list?.forEach(audience => {
804
+ console.log(` ${chalk.bold(audience.name)} [${audience.status}]`);
805
+ console.log(` ID: ${audience.audience_id}`);
806
+ console.log(` Type: ${audience.audience_type}`);
807
+ console.log(` Size: ${formatNumber(audience.cover_num)}`);
808
+ console.log();
809
+ });
810
+ }
811
+ } catch (err) {
812
+ error(String(err));
813
+ process.exit(1);
814
+ }
815
+ });
816
+
817
+ audiencesCmd
818
+ .command('get <audienceId>')
819
+ .description('Get audience details')
820
+ .option('--advertiser <id>', 'Advertiser ID')
821
+ .action(async (audienceId: string, opts) => {
822
+ try {
823
+ const client = getClient();
824
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
825
+ const result = await client.audiences.get(advertiserId, audienceId);
826
+ print(result, getFormat(audiencesCmd));
827
+ } catch (err) {
828
+ error(String(err));
829
+ process.exit(1);
830
+ }
831
+ });
832
+
833
+ audiencesCmd
834
+ .command('delete <audienceIds...>')
835
+ .description('Delete audiences')
836
+ .option('--advertiser <id>', 'Advertiser ID')
837
+ .action(async (audienceIds: string[], opts) => {
838
+ try {
839
+ const client = getClient();
840
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
841
+ const result = await client.audiences.delete(advertiserId, audienceIds);
842
+ success(`Deleted ${result.custom_audience_ids.length} audience(s)`);
843
+ } catch (err) {
844
+ error(String(err));
845
+ process.exit(1);
846
+ }
847
+ });
848
+
849
+ // ============================================
850
+ // Targeting Commands
851
+ // ============================================
852
+ const targetingCmd = program
853
+ .command('targeting')
854
+ .description('View targeting options');
855
+
856
+ targetingCmd
857
+ .command('locations')
858
+ .description('Search location targeting options')
859
+ .requiredOption('-q, --query <query>', 'Search query')
860
+ .option('--advertiser <id>', 'Advertiser ID')
861
+ .action(async (opts) => {
862
+ try {
863
+ const client = getClient();
864
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
865
+ const result = await client.targeting.searchLocations(advertiserId, opts.query);
866
+ print(result, getFormat(targetingCmd));
867
+ } catch (err) {
868
+ error(String(err));
869
+ process.exit(1);
870
+ }
871
+ });
872
+
873
+ targetingCmd
874
+ .command('interests')
875
+ .description('Get interest categories')
876
+ .option('--advertiser <id>', 'Advertiser ID')
877
+ .action(async (opts) => {
878
+ try {
879
+ const client = getClient();
880
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
881
+ const result = await client.targeting.getInterestCategories(advertiserId);
882
+ print(result, getFormat(targetingCmd));
883
+ } catch (err) {
884
+ error(String(err));
885
+ process.exit(1);
886
+ }
887
+ });
888
+
889
+ targetingCmd
890
+ .command('languages')
891
+ .description('Get language options')
892
+ .option('--advertiser <id>', 'Advertiser ID')
893
+ .action(async (opts) => {
894
+ try {
895
+ const client = getClient();
896
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
897
+ const result = await client.targeting.getLanguages(advertiserId);
898
+ print(result, getFormat(targetingCmd));
899
+ } catch (err) {
900
+ error(String(err));
901
+ process.exit(1);
902
+ }
903
+ });
904
+
905
+ targetingCmd
906
+ .command('devices')
907
+ .description('Get device model options')
908
+ .option('--advertiser <id>', 'Advertiser ID')
909
+ .option('--brand <brand>', 'Filter by brand')
910
+ .option('--os <os>', 'Filter by OS (IOS, ANDROID)')
911
+ .action(async (opts) => {
912
+ try {
913
+ const client = getClient();
914
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
915
+ const result = await client.targeting.getDeviceModels(advertiserId, {
916
+ brand: opts.brand,
917
+ os: opts.os,
918
+ });
919
+ print(result, getFormat(targetingCmd));
920
+ } catch (err) {
921
+ error(String(err));
922
+ process.exit(1);
923
+ }
924
+ });
925
+
926
+ // ============================================
927
+ // Reports Commands
928
+ // ============================================
929
+ const reportsCmd = program
930
+ .command('reports')
931
+ .description('View performance reports');
932
+
933
+ reportsCmd
934
+ .command('summary')
935
+ .description('Get advertiser summary report')
936
+ .option('--advertiser <id>', 'Advertiser ID')
937
+ .requiredOption('-s, --start <date>', 'Start date (YYYY-MM-DD)')
938
+ .requiredOption('-e, --end <date>', 'End date (YYYY-MM-DD)')
939
+ .action(async (opts) => {
940
+ try {
941
+ const client = getClient();
942
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
943
+ const result = await client.reports.getAdvertiserSummary({
944
+ advertiser_id: advertiserId,
945
+ metrics: ['spend', 'impressions', 'clicks', 'ctr', 'cpc', 'cpm', 'conversion', 'cost_per_conversion'],
946
+ start_date: opts.start,
947
+ end_date: opts.end,
948
+ });
949
+
950
+ if (getFormat(reportsCmd) === 'json') {
951
+ print(result, 'json');
952
+ } else {
953
+ console.log(chalk.bold('Advertiser Summary:'));
954
+ console.log(` Spend: ${formatMoney(Number(result.metrics.spend) || 0)}`);
955
+ console.log(` Impressions: ${formatNumber(Number(result.metrics.impressions) || 0)}`);
956
+ console.log(` Clicks: ${formatNumber(Number(result.metrics.clicks) || 0)}`);
957
+ console.log(` CTR: ${formatPercent(Number(result.metrics.ctr) || 0)}`);
958
+ console.log(` CPC: ${formatMoney(Number(result.metrics.cpc) || 0)}`);
959
+ console.log(` CPM: ${formatMoney(Number(result.metrics.cpm) || 0)}`);
960
+ console.log(` Conversions: ${formatNumber(Number(result.metrics.conversion) || 0)}`);
961
+ console.log(` Cost/Conv: ${formatMoney(Number(result.metrics.cost_per_conversion) || 0)}`);
962
+ }
963
+ } catch (err) {
964
+ error(String(err));
965
+ process.exit(1);
966
+ }
967
+ });
968
+
969
+ reportsCmd
970
+ .command('campaigns')
971
+ .description('Get campaign level report')
972
+ .option('--advertiser <id>', 'Advertiser ID')
973
+ .requiredOption('-s, --start <date>', 'Start date (YYYY-MM-DD)')
974
+ .requiredOption('-e, --end <date>', 'End date (YYYY-MM-DD)')
975
+ .option('-l, --limit <number>', 'Maximum results', '20')
976
+ .action(async (opts) => {
977
+ try {
978
+ const client = getClient();
979
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
980
+ const result = await client.reports.getCampaignReport({
981
+ advertiser_id: advertiserId,
982
+ metrics: ['spend', 'impressions', 'clicks', 'ctr', 'conversion', 'cost_per_conversion'],
983
+ start_date: opts.start,
984
+ end_date: opts.end,
985
+ page_size: parseInt(opts.limit),
986
+ });
987
+ print(result, getFormat(reportsCmd));
988
+ } catch (err) {
989
+ error(String(err));
990
+ process.exit(1);
991
+ }
992
+ });
993
+
994
+ reportsCmd
995
+ .command('adgroups')
996
+ .description('Get ad group level report')
997
+ .option('--advertiser <id>', 'Advertiser ID')
998
+ .option('--campaign <id>', 'Filter by campaign ID')
999
+ .requiredOption('-s, --start <date>', 'Start date (YYYY-MM-DD)')
1000
+ .requiredOption('-e, --end <date>', 'End date (YYYY-MM-DD)')
1001
+ .option('-l, --limit <number>', 'Maximum results', '20')
1002
+ .action(async (opts) => {
1003
+ try {
1004
+ const client = getClient();
1005
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1006
+ const result = await client.reports.getAdGroupReport({
1007
+ advertiser_id: advertiserId,
1008
+ campaign_ids: opts.campaign ? [opts.campaign] : undefined,
1009
+ metrics: ['spend', 'impressions', 'clicks', 'ctr', 'conversion', 'cost_per_conversion'],
1010
+ start_date: opts.start,
1011
+ end_date: opts.end,
1012
+ page_size: parseInt(opts.limit),
1013
+ });
1014
+ print(result, getFormat(reportsCmd));
1015
+ } catch (err) {
1016
+ error(String(err));
1017
+ process.exit(1);
1018
+ }
1019
+ });
1020
+
1021
+ reportsCmd
1022
+ .command('ads')
1023
+ .description('Get ad level report')
1024
+ .option('--advertiser <id>', 'Advertiser ID')
1025
+ .option('--campaign <id>', 'Filter by campaign ID')
1026
+ .option('--adgroup <id>', 'Filter by ad group ID')
1027
+ .requiredOption('-s, --start <date>', 'Start date (YYYY-MM-DD)')
1028
+ .requiredOption('-e, --end <date>', 'End date (YYYY-MM-DD)')
1029
+ .option('-l, --limit <number>', 'Maximum results', '20')
1030
+ .action(async (opts) => {
1031
+ try {
1032
+ const client = getClient();
1033
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1034
+ const result = await client.reports.getAdReport({
1035
+ advertiser_id: advertiserId,
1036
+ campaign_ids: opts.campaign ? [opts.campaign] : undefined,
1037
+ adgroup_ids: opts.adgroup ? [opts.adgroup] : undefined,
1038
+ metrics: ['spend', 'impressions', 'clicks', 'ctr', 'conversion', 'cost_per_conversion'],
1039
+ start_date: opts.start,
1040
+ end_date: opts.end,
1041
+ page_size: parseInt(opts.limit),
1042
+ });
1043
+ print(result, getFormat(reportsCmd));
1044
+ } catch (err) {
1045
+ error(String(err));
1046
+ process.exit(1);
1047
+ }
1048
+ });
1049
+
1050
+ // ============================================
1051
+ // Pixels Commands
1052
+ // ============================================
1053
+ const pixelsCmd = program
1054
+ .command('pixels')
1055
+ .description('Manage pixels');
1056
+
1057
+ pixelsCmd
1058
+ .command('list')
1059
+ .description('List pixels')
1060
+ .option('--advertiser <id>', 'Advertiser ID')
1061
+ .action(async (opts) => {
1062
+ try {
1063
+ const client = getClient();
1064
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1065
+ const result = await client.pixels.list(advertiserId);
1066
+ print(result, getFormat(pixelsCmd));
1067
+ } catch (err) {
1068
+ error(String(err));
1069
+ process.exit(1);
1070
+ }
1071
+ });
1072
+
1073
+ pixelsCmd
1074
+ .command('get <pixelId>')
1075
+ .description('Get pixel details')
1076
+ .option('--advertiser <id>', 'Advertiser ID')
1077
+ .action(async (pixelId: string, opts) => {
1078
+ try {
1079
+ const client = getClient();
1080
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1081
+ const result = await client.pixels.get(advertiserId, pixelId);
1082
+ print(result, getFormat(pixelsCmd));
1083
+ } catch (err) {
1084
+ error(String(err));
1085
+ process.exit(1);
1086
+ }
1087
+ });
1088
+
1089
+ pixelsCmd
1090
+ .command('create')
1091
+ .description('Create a pixel')
1092
+ .requiredOption('-n, --name <name>', 'Pixel name')
1093
+ .option('--advertiser <id>', 'Advertiser ID')
1094
+ .option('--advanced-matching', 'Enable advanced matching')
1095
+ .action(async (opts) => {
1096
+ try {
1097
+ const client = getClient();
1098
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1099
+ const result = await client.pixels.create({
1100
+ advertiser_id: advertiserId,
1101
+ pixel_name: opts.name,
1102
+ advanced_matching: opts.advancedMatching,
1103
+ });
1104
+ success('Pixel created!');
1105
+ print(result, getFormat(pixelsCmd));
1106
+ } catch (err) {
1107
+ error(String(err));
1108
+ process.exit(1);
1109
+ }
1110
+ });
1111
+
1112
+ pixelsCmd
1113
+ .command('code <pixelId>')
1114
+ .description('Get pixel code snippet')
1115
+ .option('--advertiser <id>', 'Advertiser ID')
1116
+ .action(async (pixelId: string, opts) => {
1117
+ try {
1118
+ const client = getClient();
1119
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1120
+ const result = await client.pixels.getCode(advertiserId, pixelId);
1121
+ print(result, getFormat(pixelsCmd));
1122
+ } catch (err) {
1123
+ error(String(err));
1124
+ process.exit(1);
1125
+ }
1126
+ });
1127
+
1128
+ // ============================================
1129
+ // Business Center Commands
1130
+ // ============================================
1131
+ const businessCmd = program
1132
+ .command('business')
1133
+ .description('Manage Business Center');
1134
+
1135
+ businessCmd
1136
+ .command('list')
1137
+ .description('List Business Centers')
1138
+ .action(async () => {
1139
+ try {
1140
+ const client = getClient();
1141
+ const result = await client.business.list();
1142
+ print(result, getFormat(businessCmd));
1143
+ } catch (err) {
1144
+ error(String(err));
1145
+ process.exit(1);
1146
+ }
1147
+ });
1148
+
1149
+ businessCmd
1150
+ .command('members <bcId>')
1151
+ .description('List Business Center members')
1152
+ .action(async (bcId: string) => {
1153
+ try {
1154
+ const client = getClient();
1155
+ const result = await client.business.listMembers(bcId);
1156
+ print(result, getFormat(businessCmd));
1157
+ } catch (err) {
1158
+ error(String(err));
1159
+ process.exit(1);
1160
+ }
1161
+ });
1162
+
1163
+ businessCmd
1164
+ .command('advertisers <bcId>')
1165
+ .description('List advertisers under Business Center')
1166
+ .action(async (bcId: string) => {
1167
+ try {
1168
+ const client = getClient();
1169
+ const result = await client.business.listAdvertisers(bcId);
1170
+ print(result, getFormat(businessCmd));
1171
+ } catch (err) {
1172
+ error(String(err));
1173
+ process.exit(1);
1174
+ }
1175
+ });
1176
+
1177
+ businessCmd
1178
+ .command('balance <bcId>')
1179
+ .description('Get Business Center balance')
1180
+ .action(async (bcId: string) => {
1181
+ try {
1182
+ const client = getClient();
1183
+ const result = await client.business.getBalance(bcId);
1184
+ print(result, getFormat(businessCmd));
1185
+ } catch (err) {
1186
+ error(String(err));
1187
+ process.exit(1);
1188
+ }
1189
+ });
1190
+
1191
+ // ============================================
1192
+ // Catalogs Commands
1193
+ // ============================================
1194
+ const catalogsCmd = program
1195
+ .command('catalogs')
1196
+ .description('Manage product catalogs');
1197
+
1198
+ catalogsCmd
1199
+ .command('list <bcId>')
1200
+ .description('List catalogs')
1201
+ .action(async (bcId: string) => {
1202
+ try {
1203
+ const client = getClient();
1204
+ const result = await client.catalogs.list(bcId);
1205
+ print(result, getFormat(catalogsCmd));
1206
+ } catch (err) {
1207
+ error(String(err));
1208
+ process.exit(1);
1209
+ }
1210
+ });
1211
+
1212
+ catalogsCmd
1213
+ .command('get <bcId> <catalogId>')
1214
+ .description('Get catalog details')
1215
+ .action(async (bcId: string, catalogId: string) => {
1216
+ try {
1217
+ const client = getClient();
1218
+ const result = await client.catalogs.get(bcId, catalogId);
1219
+ print(result, getFormat(catalogsCmd));
1220
+ } catch (err) {
1221
+ error(String(err));
1222
+ process.exit(1);
1223
+ }
1224
+ });
1225
+
1226
+ catalogsCmd
1227
+ .command('create')
1228
+ .description('Create a catalog')
1229
+ .requiredOption('--bc <bcId>', 'Business Center ID')
1230
+ .requiredOption('-n, --name <name>', 'Catalog name')
1231
+ .option('--type <type>', 'Catalog type (PRODUCT, VEHICLE, HOTEL, FLIGHT, DESTINATION, HOME_LISTING)', 'PRODUCT')
1232
+ .action(async (opts) => {
1233
+ try {
1234
+ const client = getClient();
1235
+ const result = await client.catalogs.create({
1236
+ bc_id: opts.bc,
1237
+ catalog_name: opts.name,
1238
+ catalog_type: opts.type,
1239
+ });
1240
+ success('Catalog created!');
1241
+ print(result, getFormat(catalogsCmd));
1242
+ } catch (err) {
1243
+ error(String(err));
1244
+ process.exit(1);
1245
+ }
1246
+ });
1247
+
1248
+ catalogsCmd
1249
+ .command('products <bcId> <catalogId>')
1250
+ .description('List products in catalog')
1251
+ .option('-l, --limit <number>', 'Maximum results', '20')
1252
+ .action(async (bcId: string, catalogId: string, opts) => {
1253
+ try {
1254
+ const client = getClient();
1255
+ const result = await client.catalogs.listProducts(bcId, catalogId, {
1256
+ page_size: parseInt(opts.limit),
1257
+ });
1258
+ print(result, getFormat(catalogsCmd));
1259
+ } catch (err) {
1260
+ error(String(err));
1261
+ process.exit(1);
1262
+ }
1263
+ });
1264
+
1265
+ // ============================================
1266
+ // Identity Commands
1267
+ // ============================================
1268
+ const identityCmd = program
1269
+ .command('identity')
1270
+ .description('Manage TikTok identities for Spark Ads');
1271
+
1272
+ identityCmd
1273
+ .command('list')
1274
+ .description('List identities')
1275
+ .option('--advertiser <id>', 'Advertiser ID')
1276
+ .action(async (opts) => {
1277
+ try {
1278
+ const client = getClient();
1279
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1280
+ const result = await client.identity.list(advertiserId);
1281
+ print(result, getFormat(identityCmd));
1282
+ } catch (err) {
1283
+ error(String(err));
1284
+ process.exit(1);
1285
+ }
1286
+ });
1287
+
1288
+ identityCmd
1289
+ .command('create')
1290
+ .description('Create a customized identity')
1291
+ .option('--advertiser <id>', 'Advertiser ID')
1292
+ .requiredOption('-n, --name <name>', 'Display name')
1293
+ .option('--image <url>', 'Profile image URL')
1294
+ .action(async (opts) => {
1295
+ try {
1296
+ const client = getClient();
1297
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1298
+ const result = await client.identity.create({
1299
+ advertiser_id: advertiserId,
1300
+ identity_type: 'CUSTOMIZED_USER',
1301
+ display_name: opts.name,
1302
+ profile_image: opts.image,
1303
+ });
1304
+ success('Identity created!');
1305
+ print(result, getFormat(identityCmd));
1306
+ } catch (err) {
1307
+ error(String(err));
1308
+ process.exit(1);
1309
+ }
1310
+ });
1311
+
1312
+ identityCmd
1313
+ .command('auth-info <authCode>')
1314
+ .description('Get authorization info for a TikTok post')
1315
+ .option('--advertiser <id>', 'Advertiser ID')
1316
+ .action(async (authCode: string, opts) => {
1317
+ try {
1318
+ const client = getClient();
1319
+ const advertiserId = resolveAdvertiserId(opts.advertiser);
1320
+ const result = await client.identity.getAuthInfo(advertiserId, authCode);
1321
+ print(result, getFormat(identityCmd));
1322
+ } catch (err) {
1323
+ error(String(err));
1324
+ process.exit(1);
1325
+ }
1326
+ });
1327
+
1328
+ // Parse and execute
1329
+ program.parse();