@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,1585 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { Meta } 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
+ getAdAccountId,
20
+ getDefaultAdAccountId,
21
+ setDefaultAdAccountId,
22
+ setNamedAdAccount,
23
+ removeNamedAdAccount,
24
+ listNamedAdAccounts,
25
+ getDefaultPixelId,
26
+ setDefaultPixelId,
27
+ getDefaultBusinessId,
28
+ setDefaultBusinessId,
29
+ getDefaultPageId,
30
+ setDefaultPageId,
31
+ getExportsDir,
32
+ getImportsDir,
33
+ formatAdAccountId,
34
+ } from '../utils/config';
35
+ import type { OutputFormat } from '../utils/output';
36
+ import { success, error, info, print, formatMoney, formatNumber, formatPercent } from '../utils/output';
37
+
38
+ const CONNECTOR_NAME = 'connect-meta';
39
+ const VERSION = '0.1.0';
40
+
41
+ const program = new Command();
42
+
43
+ program
44
+ .name(CONNECTOR_NAME)
45
+ .description('Meta Marketing API CLI - Facebook/Instagram ads, campaigns, audiences, and insights')
46
+ .version(VERSION)
47
+ .option('-t, --token <token>', 'Access token (overrides config)')
48
+ .option('-f, --format <format>', 'Output format (json, pretty)', 'pretty')
49
+ .option('-p, --profile <profile>', 'Use a specific profile')
50
+ .hook('preAction', (thisCommand) => {
51
+ const opts = thisCommand.opts();
52
+ if (opts.profile) {
53
+ if (!profileExists(opts.profile)) {
54
+ error(`Profile "${opts.profile}" does not exist. Create it with "${CONNECTOR_NAME} profile create ${opts.profile}"`);
55
+ process.exit(1);
56
+ }
57
+ setProfileOverride(opts.profile);
58
+ }
59
+ if (opts.token) {
60
+ process.env.META_ACCESS_TOKEN = opts.token;
61
+ }
62
+ });
63
+
64
+ function getFormat(cmd: Command): OutputFormat {
65
+ const parent = cmd.parent;
66
+ return (parent?.opts().format || 'pretty') as OutputFormat;
67
+ }
68
+
69
+ function getClient(): Meta {
70
+ const accessToken = getAccessToken();
71
+ if (!accessToken) {
72
+ error(`No access token configured. Run "${CONNECTOR_NAME} config set-token <token>" or set META_ACCESS_TOKEN environment variable.`);
73
+ process.exit(1);
74
+ }
75
+ return new Meta({ accessToken });
76
+ }
77
+
78
+ function resolveAdAccountId(nameOrId?: string): string {
79
+ const resolved = getAdAccountId(nameOrId);
80
+ if (!resolved) {
81
+ error(`No ad account specified. Use --account or set default with "${CONNECTOR_NAME} config set-account <id>"`);
82
+ process.exit(1);
83
+ }
84
+ return formatAdAccountId(resolved);
85
+ }
86
+
87
+ // ============================================
88
+ // Profile Commands
89
+ // ============================================
90
+ const profileCmd = program
91
+ .command('profile')
92
+ .description('Manage configuration profiles');
93
+
94
+ profileCmd
95
+ .command('list')
96
+ .description('List all profiles')
97
+ .action(() => {
98
+ const profiles = listProfiles();
99
+ const current = getCurrentProfile();
100
+
101
+ if (profiles.length === 0) {
102
+ info('No profiles found. Use "profile create <name>" to create one.');
103
+ return;
104
+ }
105
+
106
+ success(`Profiles:`);
107
+ profiles.forEach(p => {
108
+ const isActive = p === current ? chalk.green(' (active)') : '';
109
+ console.log(` ${p}${isActive}`);
110
+ });
111
+ });
112
+
113
+ profileCmd
114
+ .command('use <name>')
115
+ .description('Switch to a profile')
116
+ .action((name: string) => {
117
+ if (!profileExists(name)) {
118
+ error(`Profile "${name}" does not exist. Create it with "profile create ${name}"`);
119
+ process.exit(1);
120
+ }
121
+ setCurrentProfile(name);
122
+ success(`Switched to profile: ${name}`);
123
+ });
124
+
125
+ profileCmd
126
+ .command('create <name>')
127
+ .description('Create a new profile')
128
+ .option('--token <token>', 'Access token')
129
+ .option('--use', 'Switch to this profile after creation')
130
+ .action((name: string, opts) => {
131
+ if (profileExists(name)) {
132
+ error(`Profile "${name}" already exists`);
133
+ process.exit(1);
134
+ }
135
+
136
+ createProfile(name, {
137
+ accessToken: opts.token,
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, 10)}...` : chalk.gray('not set')}`);
173
+ info(`Default Ad Account: ${config.defaultAdAccountId || chalk.gray('not set')}`);
174
+ info(`Default Pixel: ${config.defaultPixelId || chalk.gray('not set')}`);
175
+ info(`Default Business: ${config.defaultBusinessId || chalk.gray('not set')}`);
176
+ info(`Default Page: ${config.defaultPageId || chalk.gray('not set')}`);
177
+ });
178
+
179
+ // ============================================
180
+ // Config Commands
181
+ // ============================================
182
+ const configCmd = program
183
+ .command('config')
184
+ .description('Manage CLI configuration (for active profile)');
185
+
186
+ configCmd
187
+ .command('set-token <accessToken>')
188
+ .description('Set access token')
189
+ .action((accessToken: string) => {
190
+ setAccessToken(accessToken);
191
+ success(`Access token saved to profile: ${getCurrentProfile()}`);
192
+ });
193
+
194
+ configCmd
195
+ .command('show')
196
+ .description('Show current configuration')
197
+ .action(() => {
198
+ const profileName = getCurrentProfile();
199
+ const accessToken = getAccessToken();
200
+ const defaultAccount = getDefaultAdAccountId();
201
+ const defaultPixel = getDefaultPixelId();
202
+ const defaultBusiness = getDefaultBusinessId();
203
+ const defaultPage = getDefaultPageId();
204
+ const namedAccounts = listNamedAdAccounts();
205
+
206
+ console.log(chalk.bold(`Active Profile: ${profileName}`));
207
+ console.log();
208
+ info(`Base directory: ${getBaseConfigDir()}`);
209
+ info(`Profile directory: ${getConfigDir()}`);
210
+ info(`Exports directory: ${getExportsDir()}`);
211
+ info(`Imports directory: ${getImportsDir()}`);
212
+ console.log();
213
+ info(`Access Token: ${accessToken ? `${accessToken.substring(0, 10)}...` : chalk.gray('not set')}`);
214
+ info(`Default Ad Account: ${defaultAccount || chalk.gray('not set')}`);
215
+ info(`Default Pixel: ${defaultPixel || chalk.gray('not set')}`);
216
+ info(`Default Business: ${defaultBusiness || chalk.gray('not set')}`);
217
+ info(`Default Page: ${defaultPage || chalk.gray('not set')}`);
218
+
219
+ const accountNames = Object.keys(namedAccounts);
220
+ if (accountNames.length > 0) {
221
+ console.log();
222
+ info(`Named Ad Accounts:`);
223
+ accountNames.forEach(name => {
224
+ console.log(` ${chalk.cyan(name)}: ${namedAccounts[name]}`);
225
+ });
226
+ }
227
+ });
228
+
229
+ configCmd
230
+ .command('set-account <adAccountId>')
231
+ .description('Set default ad account ID')
232
+ .action((adAccountId: string) => {
233
+ setDefaultAdAccountId(adAccountId);
234
+ success(`Default ad account set: ${adAccountId}`);
235
+ });
236
+
237
+ configCmd
238
+ .command('set-pixel <pixelId>')
239
+ .description('Set default pixel ID')
240
+ .action((pixelId: string) => {
241
+ setDefaultPixelId(pixelId);
242
+ success(`Default pixel set: ${pixelId}`);
243
+ });
244
+
245
+ configCmd
246
+ .command('set-business <businessId>')
247
+ .description('Set default business ID')
248
+ .action((businessId: string) => {
249
+ setDefaultBusinessId(businessId);
250
+ success(`Default business set: ${businessId}`);
251
+ });
252
+
253
+ configCmd
254
+ .command('set-page <pageId>')
255
+ .description('Set default page ID')
256
+ .action((pageId: string) => {
257
+ setDefaultPageId(pageId);
258
+ success(`Default page set: ${pageId}`);
259
+ });
260
+
261
+ configCmd
262
+ .command('set-named-account <name> <adAccountId>')
263
+ .description('Set a named ad account (e.g., main, client1)')
264
+ .action((name: string, adAccountId: string) => {
265
+ setNamedAdAccount(name, adAccountId);
266
+ success(`Account "${name}" set to: ${adAccountId}`);
267
+ });
268
+
269
+ configCmd
270
+ .command('remove-named-account <name>')
271
+ .description('Remove a named ad account')
272
+ .action((name: string) => {
273
+ if (removeNamedAdAccount(name)) {
274
+ success(`Named account "${name}" removed`);
275
+ } else {
276
+ error(`Named account "${name}" not found`);
277
+ process.exit(1);
278
+ }
279
+ });
280
+
281
+ configCmd
282
+ .command('clear')
283
+ .description('Clear configuration for active profile')
284
+ .action(() => {
285
+ clearConfig();
286
+ success(`Configuration cleared for profile: ${getCurrentProfile()}`);
287
+ });
288
+
289
+ // ============================================
290
+ // Accounts Commands
291
+ // ============================================
292
+ const accountsCmd = program
293
+ .command('accounts')
294
+ .description('Manage ad accounts');
295
+
296
+ accountsCmd
297
+ .command('list')
298
+ .description('List ad accounts')
299
+ .option('-l, --limit <number>', 'Maximum results')
300
+ .option('--business <id>', 'List accounts for a business')
301
+ .action(async (opts) => {
302
+ try {
303
+ const client = getClient();
304
+ const result = opts.business
305
+ ? await client.accounts.listForBusiness(opts.business, { limit: opts.limit ? parseInt(opts.limit) : undefined })
306
+ : await client.accounts.list({ limit: opts.limit ? parseInt(opts.limit) : undefined });
307
+
308
+ if (getFormat(accountsCmd) === 'json') {
309
+ print(result, 'json');
310
+ } else {
311
+ success(`Ad Accounts:`);
312
+ result.data.forEach(account => {
313
+ console.log(` ${chalk.bold(account.name)} (${account.currency})`);
314
+ console.log(` ID: ${account.id}`);
315
+ console.log(` Account ID: ${account.account_id}`);
316
+ console.log(` Status: ${account.account_status}`);
317
+ console.log(` Spent: ${account.amount_spent}`);
318
+ console.log(` Timezone: ${account.timezone_name}`);
319
+ console.log();
320
+ });
321
+ }
322
+ } catch (err) {
323
+ error(String(err));
324
+ process.exit(1);
325
+ }
326
+ });
327
+
328
+ accountsCmd
329
+ .command('get [account]')
330
+ .description('Get ad account details (account: ID, name, or default)')
331
+ .action(async (account?: string) => {
332
+ try {
333
+ const client = getClient();
334
+ const accountId = resolveAdAccountId(account);
335
+ const result = await client.accounts.get(accountId);
336
+ print(result, getFormat(accountsCmd));
337
+ } catch (err) {
338
+ error(String(err));
339
+ process.exit(1);
340
+ }
341
+ });
342
+
343
+ // ============================================
344
+ // Campaigns Commands
345
+ // ============================================
346
+ const campaignsCmd = program
347
+ .command('campaigns')
348
+ .description('Manage campaigns');
349
+
350
+ campaignsCmd
351
+ .command('list [account]')
352
+ .description('List campaigns')
353
+ .option('-l, --limit <number>', 'Maximum results')
354
+ .option('-s, --status <status>', 'Filter by status (ACTIVE, PAUSED, etc.)')
355
+ .action(async (account: string | undefined, opts) => {
356
+ try {
357
+ const client = getClient();
358
+ const accountId = resolveAdAccountId(account);
359
+ const result = await client.campaigns.list(accountId, {
360
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
361
+ effective_status: opts.status ? [opts.status] : undefined,
362
+ });
363
+
364
+ if (getFormat(campaignsCmd) === 'json') {
365
+ print(result, 'json');
366
+ } else {
367
+ success(`Campaigns:`);
368
+ result.data.forEach(campaign => {
369
+ const statusColor = campaign.effective_status === 'ACTIVE' ? chalk.green : chalk.yellow;
370
+ console.log(` ${chalk.bold(campaign.name)}`);
371
+ console.log(` ID: ${campaign.id}`);
372
+ console.log(` Objective: ${campaign.objective}`);
373
+ console.log(` Status: ${statusColor(campaign.effective_status)}`);
374
+ if (campaign.daily_budget) console.log(` Daily Budget: ${campaign.daily_budget}`);
375
+ if (campaign.lifetime_budget) console.log(` Lifetime Budget: ${campaign.lifetime_budget}`);
376
+ console.log();
377
+ });
378
+ }
379
+ } catch (err) {
380
+ error(String(err));
381
+ process.exit(1);
382
+ }
383
+ });
384
+
385
+ campaignsCmd
386
+ .command('get <campaignId>')
387
+ .description('Get campaign details')
388
+ .action(async (campaignId: string) => {
389
+ try {
390
+ const client = getClient();
391
+ const result = await client.campaigns.get(campaignId);
392
+ print(result, getFormat(campaignsCmd));
393
+ } catch (err) {
394
+ error(String(err));
395
+ process.exit(1);
396
+ }
397
+ });
398
+
399
+ campaignsCmd
400
+ .command('create')
401
+ .description('Create a campaign')
402
+ .option('-a, --account <account>', 'Ad account (ID, name, or default)')
403
+ .requiredOption('-n, --name <name>', 'Campaign name')
404
+ .requiredOption('-o, --objective <objective>', 'Campaign objective')
405
+ .option('-s, --status <status>', 'Status (ACTIVE, PAUSED)', 'PAUSED')
406
+ .option('--daily-budget <amount>', 'Daily budget in cents')
407
+ .option('--lifetime-budget <amount>', 'Lifetime budget in cents')
408
+ .option('--special-ad-category <category>', 'Special ad category (NONE, EMPLOYMENT, HOUSING, CREDIT)')
409
+ .action(async (opts) => {
410
+ try {
411
+ const client = getClient();
412
+ const accountId = resolveAdAccountId(opts.account);
413
+ const result = await client.campaigns.create(accountId, {
414
+ name: opts.name,
415
+ objective: opts.objective,
416
+ status: opts.status,
417
+ daily_budget: opts.dailyBudget,
418
+ lifetime_budget: opts.lifetimeBudget,
419
+ special_ad_categories: opts.specialAdCategory ? [opts.specialAdCategory] : ['NONE'],
420
+ });
421
+ success('Campaign created!');
422
+ print(result, getFormat(campaignsCmd));
423
+ } catch (err) {
424
+ error(String(err));
425
+ process.exit(1);
426
+ }
427
+ });
428
+
429
+ campaignsCmd
430
+ .command('pause <campaignId>')
431
+ .description('Pause a campaign')
432
+ .action(async (campaignId: string) => {
433
+ try {
434
+ const client = getClient();
435
+ await client.campaigns.pause(campaignId);
436
+ success('Campaign paused');
437
+ } catch (err) {
438
+ error(String(err));
439
+ process.exit(1);
440
+ }
441
+ });
442
+
443
+ campaignsCmd
444
+ .command('activate <campaignId>')
445
+ .description('Activate a campaign')
446
+ .action(async (campaignId: string) => {
447
+ try {
448
+ const client = getClient();
449
+ await client.campaigns.activate(campaignId);
450
+ success('Campaign activated');
451
+ } catch (err) {
452
+ error(String(err));
453
+ process.exit(1);
454
+ }
455
+ });
456
+
457
+ campaignsCmd
458
+ .command('delete <campaignId>')
459
+ .description('Delete a campaign')
460
+ .action(async (campaignId: string) => {
461
+ try {
462
+ const client = getClient();
463
+ await client.campaigns.delete(campaignId);
464
+ success('Campaign deleted');
465
+ } catch (err) {
466
+ error(String(err));
467
+ process.exit(1);
468
+ }
469
+ });
470
+
471
+ campaignsCmd
472
+ .command('insights <campaignId>')
473
+ .description('Get campaign insights')
474
+ .option('-d, --date-preset <preset>', 'Date preset (last_7d, last_30d, etc.)', 'last_7d')
475
+ .action(async (campaignId: string, opts) => {
476
+ try {
477
+ const client = getClient();
478
+ const result = await client.campaigns.getInsights(campaignId, {
479
+ date_preset: opts.datePreset,
480
+ });
481
+ print(result.data, getFormat(campaignsCmd));
482
+ } catch (err) {
483
+ error(String(err));
484
+ process.exit(1);
485
+ }
486
+ });
487
+
488
+ // ============================================
489
+ // Ad Sets Commands
490
+ // ============================================
491
+ const adsetsCmd = program
492
+ .command('adsets')
493
+ .description('Manage ad sets');
494
+
495
+ adsetsCmd
496
+ .command('list [account]')
497
+ .description('List ad sets')
498
+ .option('-l, --limit <number>', 'Maximum results')
499
+ .option('-s, --status <status>', 'Filter by status')
500
+ .option('-c, --campaign <id>', 'Filter by campaign')
501
+ .action(async (account: string | undefined, opts) => {
502
+ try {
503
+ const client = getClient();
504
+
505
+ let result;
506
+ if (opts.campaign) {
507
+ result = await client.adsets.listByCampaign(opts.campaign, {
508
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
509
+ effective_status: opts.status ? [opts.status] : undefined,
510
+ });
511
+ } else {
512
+ const accountId = resolveAdAccountId(account);
513
+ result = await client.adsets.list(accountId, {
514
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
515
+ effective_status: opts.status ? [opts.status] : undefined,
516
+ });
517
+ }
518
+
519
+ if (getFormat(adsetsCmd) === 'json') {
520
+ print(result, 'json');
521
+ } else {
522
+ success(`Ad Sets:`);
523
+ result.data.forEach(adset => {
524
+ const statusColor = adset.effective_status === 'ACTIVE' ? chalk.green : chalk.yellow;
525
+ console.log(` ${chalk.bold(adset.name)}`);
526
+ console.log(` ID: ${adset.id}`);
527
+ console.log(` Campaign: ${adset.campaign_id}`);
528
+ console.log(` Status: ${statusColor(adset.effective_status)}`);
529
+ if (adset.daily_budget) console.log(` Daily Budget: ${adset.daily_budget}`);
530
+ if (adset.optimization_goal) console.log(` Optimization: ${adset.optimization_goal}`);
531
+ console.log();
532
+ });
533
+ }
534
+ } catch (err) {
535
+ error(String(err));
536
+ process.exit(1);
537
+ }
538
+ });
539
+
540
+ adsetsCmd
541
+ .command('get <adsetId>')
542
+ .description('Get ad set details')
543
+ .action(async (adsetId: string) => {
544
+ try {
545
+ const client = getClient();
546
+ const result = await client.adsets.get(adsetId);
547
+ print(result, getFormat(adsetsCmd));
548
+ } catch (err) {
549
+ error(String(err));
550
+ process.exit(1);
551
+ }
552
+ });
553
+
554
+ adsetsCmd
555
+ .command('pause <adsetId>')
556
+ .description('Pause an ad set')
557
+ .action(async (adsetId: string) => {
558
+ try {
559
+ const client = getClient();
560
+ await client.adsets.pause(adsetId);
561
+ success('Ad set paused');
562
+ } catch (err) {
563
+ error(String(err));
564
+ process.exit(1);
565
+ }
566
+ });
567
+
568
+ adsetsCmd
569
+ .command('activate <adsetId>')
570
+ .description('Activate an ad set')
571
+ .action(async (adsetId: string) => {
572
+ try {
573
+ const client = getClient();
574
+ await client.adsets.activate(adsetId);
575
+ success('Ad set activated');
576
+ } catch (err) {
577
+ error(String(err));
578
+ process.exit(1);
579
+ }
580
+ });
581
+
582
+ adsetsCmd
583
+ .command('delete <adsetId>')
584
+ .description('Delete an ad set')
585
+ .action(async (adsetId: string) => {
586
+ try {
587
+ const client = getClient();
588
+ await client.adsets.delete(adsetId);
589
+ success('Ad set deleted');
590
+ } catch (err) {
591
+ error(String(err));
592
+ process.exit(1);
593
+ }
594
+ });
595
+
596
+ adsetsCmd
597
+ .command('insights <adsetId>')
598
+ .description('Get ad set insights')
599
+ .option('-d, --date-preset <preset>', 'Date preset', 'last_7d')
600
+ .action(async (adsetId: string, opts) => {
601
+ try {
602
+ const client = getClient();
603
+ const result = await client.adsets.getInsights(adsetId, {
604
+ date_preset: opts.datePreset,
605
+ });
606
+ print(result.data, getFormat(adsetsCmd));
607
+ } catch (err) {
608
+ error(String(err));
609
+ process.exit(1);
610
+ }
611
+ });
612
+
613
+ // ============================================
614
+ // Ads Commands
615
+ // ============================================
616
+ const adsCmd = program
617
+ .command('ads')
618
+ .description('Manage ads');
619
+
620
+ adsCmd
621
+ .command('list [account]')
622
+ .description('List ads')
623
+ .option('-l, --limit <number>', 'Maximum results')
624
+ .option('-s, --status <status>', 'Filter by status')
625
+ .option('--adset <id>', 'Filter by ad set')
626
+ .option('--campaign <id>', 'Filter by campaign')
627
+ .action(async (account: string | undefined, opts) => {
628
+ try {
629
+ const client = getClient();
630
+
631
+ let result;
632
+ if (opts.adset) {
633
+ result = await client.ads.listByAdSet(opts.adset, {
634
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
635
+ effective_status: opts.status ? [opts.status] : undefined,
636
+ });
637
+ } else if (opts.campaign) {
638
+ result = await client.ads.listByCampaign(opts.campaign, {
639
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
640
+ effective_status: opts.status ? [opts.status] : undefined,
641
+ });
642
+ } else {
643
+ const accountId = resolveAdAccountId(account);
644
+ result = await client.ads.list(accountId, {
645
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
646
+ effective_status: opts.status ? [opts.status] : undefined,
647
+ });
648
+ }
649
+
650
+ if (getFormat(adsCmd) === 'json') {
651
+ print(result, 'json');
652
+ } else {
653
+ success(`Ads:`);
654
+ result.data.forEach(ad => {
655
+ const statusColor = ad.effective_status === 'ACTIVE' ? chalk.green : chalk.yellow;
656
+ console.log(` ${chalk.bold(ad.name)}`);
657
+ console.log(` ID: ${ad.id}`);
658
+ console.log(` Ad Set: ${ad.adset_id}`);
659
+ console.log(` Status: ${statusColor(ad.effective_status)}`);
660
+ if (ad.creative) console.log(` Creative: ${ad.creative.id}`);
661
+ console.log();
662
+ });
663
+ }
664
+ } catch (err) {
665
+ error(String(err));
666
+ process.exit(1);
667
+ }
668
+ });
669
+
670
+ adsCmd
671
+ .command('get <adId>')
672
+ .description('Get ad details')
673
+ .action(async (adId: string) => {
674
+ try {
675
+ const client = getClient();
676
+ const result = await client.ads.get(adId);
677
+ print(result, getFormat(adsCmd));
678
+ } catch (err) {
679
+ error(String(err));
680
+ process.exit(1);
681
+ }
682
+ });
683
+
684
+ adsCmd
685
+ .command('pause <adId>')
686
+ .description('Pause an ad')
687
+ .action(async (adId: string) => {
688
+ try {
689
+ const client = getClient();
690
+ await client.ads.pause(adId);
691
+ success('Ad paused');
692
+ } catch (err) {
693
+ error(String(err));
694
+ process.exit(1);
695
+ }
696
+ });
697
+
698
+ adsCmd
699
+ .command('activate <adId>')
700
+ .description('Activate an ad')
701
+ .action(async (adId: string) => {
702
+ try {
703
+ const client = getClient();
704
+ await client.ads.activate(adId);
705
+ success('Ad activated');
706
+ } catch (err) {
707
+ error(String(err));
708
+ process.exit(1);
709
+ }
710
+ });
711
+
712
+ adsCmd
713
+ .command('delete <adId>')
714
+ .description('Delete an ad')
715
+ .action(async (adId: string) => {
716
+ try {
717
+ const client = getClient();
718
+ await client.ads.delete(adId);
719
+ success('Ad deleted');
720
+ } catch (err) {
721
+ error(String(err));
722
+ process.exit(1);
723
+ }
724
+ });
725
+
726
+ adsCmd
727
+ .command('preview <adId>')
728
+ .description('Get ad preview')
729
+ .option('--format <format>', 'Preview format (DESKTOP_FEED_STANDARD, MOBILE_FEED_STANDARD, etc.)', 'DESKTOP_FEED_STANDARD')
730
+ .action(async (adId: string, opts) => {
731
+ try {
732
+ const client = getClient();
733
+ const result = await client.ads.getPreview(adId, opts.format);
734
+ print(result, getFormat(adsCmd));
735
+ } catch (err) {
736
+ error(String(err));
737
+ process.exit(1);
738
+ }
739
+ });
740
+
741
+ adsCmd
742
+ .command('insights <adId>')
743
+ .description('Get ad insights')
744
+ .option('-d, --date-preset <preset>', 'Date preset', 'last_7d')
745
+ .action(async (adId: string, opts) => {
746
+ try {
747
+ const client = getClient();
748
+ const result = await client.ads.getInsights(adId, {
749
+ date_preset: opts.datePreset,
750
+ });
751
+ print(result.data, getFormat(adsCmd));
752
+ } catch (err) {
753
+ error(String(err));
754
+ process.exit(1);
755
+ }
756
+ });
757
+
758
+ // ============================================
759
+ // Creatives Commands
760
+ // ============================================
761
+ const creativesCmd = program
762
+ .command('creatives')
763
+ .description('Manage ad creatives');
764
+
765
+ creativesCmd
766
+ .command('list [account]')
767
+ .description('List ad creatives')
768
+ .option('-l, --limit <number>', 'Maximum results')
769
+ .action(async (account: string | undefined, opts) => {
770
+ try {
771
+ const client = getClient();
772
+ const accountId = resolveAdAccountId(account);
773
+ const result = await client.creatives.list(accountId, {
774
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
775
+ });
776
+ print(result, getFormat(creativesCmd));
777
+ } catch (err) {
778
+ error(String(err));
779
+ process.exit(1);
780
+ }
781
+ });
782
+
783
+ creativesCmd
784
+ .command('get <creativeId>')
785
+ .description('Get creative details')
786
+ .action(async (creativeId: string) => {
787
+ try {
788
+ const client = getClient();
789
+ const result = await client.creatives.get(creativeId);
790
+ print(result, getFormat(creativesCmd));
791
+ } catch (err) {
792
+ error(String(err));
793
+ process.exit(1);
794
+ }
795
+ });
796
+
797
+ creativesCmd
798
+ .command('delete <creativeId>')
799
+ .description('Delete a creative')
800
+ .action(async (creativeId: string) => {
801
+ try {
802
+ const client = getClient();
803
+ await client.creatives.delete(creativeId);
804
+ success('Creative deleted');
805
+ } catch (err) {
806
+ error(String(err));
807
+ process.exit(1);
808
+ }
809
+ });
810
+
811
+ creativesCmd
812
+ .command('images [account]')
813
+ .description('List ad images')
814
+ .option('-l, --limit <number>', 'Maximum results')
815
+ .action(async (account: string | undefined, opts) => {
816
+ try {
817
+ const client = getClient();
818
+ const accountId = resolveAdAccountId(account);
819
+ const result = await client.creatives.listImages(accountId, {
820
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
821
+ });
822
+ print(result, getFormat(creativesCmd));
823
+ } catch (err) {
824
+ error(String(err));
825
+ process.exit(1);
826
+ }
827
+ });
828
+
829
+ creativesCmd
830
+ .command('videos [account]')
831
+ .description('List ad videos')
832
+ .option('-l, --limit <number>', 'Maximum results')
833
+ .action(async (account: string | undefined, opts) => {
834
+ try {
835
+ const client = getClient();
836
+ const accountId = resolveAdAccountId(account);
837
+ const result = await client.creatives.listVideos(accountId, {
838
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
839
+ });
840
+ print(result, getFormat(creativesCmd));
841
+ } catch (err) {
842
+ error(String(err));
843
+ process.exit(1);
844
+ }
845
+ });
846
+
847
+ // ============================================
848
+ // Audiences Commands
849
+ // ============================================
850
+ const audiencesCmd = program
851
+ .command('audiences')
852
+ .description('Manage audiences');
853
+
854
+ audiencesCmd
855
+ .command('list [account]')
856
+ .description('List custom audiences')
857
+ .option('-l, --limit <number>', 'Maximum results')
858
+ .action(async (account: string | undefined, opts) => {
859
+ try {
860
+ const client = getClient();
861
+ const accountId = resolveAdAccountId(account);
862
+ const result = await client.audiences.list(accountId, {
863
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
864
+ });
865
+
866
+ if (getFormat(audiencesCmd) === 'json') {
867
+ print(result, 'json');
868
+ } else {
869
+ success(`Custom Audiences:`);
870
+ result.data.forEach(audience => {
871
+ console.log(` ${chalk.bold(audience.name)}`);
872
+ console.log(` ID: ${audience.id}`);
873
+ console.log(` Type: ${audience.subtype}`);
874
+ if (audience.approximate_count_lower_bound && audience.approximate_count_upper_bound) {
875
+ console.log(` Size: ${formatNumber(audience.approximate_count_lower_bound)} - ${formatNumber(audience.approximate_count_upper_bound)}`);
876
+ }
877
+ console.log();
878
+ });
879
+ }
880
+ } catch (err) {
881
+ error(String(err));
882
+ process.exit(1);
883
+ }
884
+ });
885
+
886
+ audiencesCmd
887
+ .command('get <audienceId>')
888
+ .description('Get audience details')
889
+ .action(async (audienceId: string) => {
890
+ try {
891
+ const client = getClient();
892
+ const result = await client.audiences.get(audienceId);
893
+ print(result, getFormat(audiencesCmd));
894
+ } catch (err) {
895
+ error(String(err));
896
+ process.exit(1);
897
+ }
898
+ });
899
+
900
+ audiencesCmd
901
+ .command('create')
902
+ .description('Create a custom audience')
903
+ .option('-a, --account <account>', 'Ad account')
904
+ .requiredOption('-n, --name <name>', 'Audience name')
905
+ .option('-d, --description <desc>', 'Description')
906
+ .option('-t, --type <type>', 'Subtype (CUSTOM, WEBSITE, APP, etc.)', 'CUSTOM')
907
+ .action(async (opts) => {
908
+ try {
909
+ const client = getClient();
910
+ const accountId = resolveAdAccountId(opts.account);
911
+ const result = await client.audiences.create(accountId, {
912
+ name: opts.name,
913
+ description: opts.description,
914
+ subtype: opts.type,
915
+ });
916
+ success('Audience created!');
917
+ print(result, getFormat(audiencesCmd));
918
+ } catch (err) {
919
+ error(String(err));
920
+ process.exit(1);
921
+ }
922
+ });
923
+
924
+ audiencesCmd
925
+ .command('delete <audienceId>')
926
+ .description('Delete an audience')
927
+ .action(async (audienceId: string) => {
928
+ try {
929
+ const client = getClient();
930
+ await client.audiences.delete(audienceId);
931
+ success('Audience deleted');
932
+ } catch (err) {
933
+ error(String(err));
934
+ process.exit(1);
935
+ }
936
+ });
937
+
938
+ audiencesCmd
939
+ .command('saved [account]')
940
+ .description('List saved audiences')
941
+ .option('-l, --limit <number>', 'Maximum results')
942
+ .action(async (account: string | undefined, opts) => {
943
+ try {
944
+ const client = getClient();
945
+ const accountId = resolveAdAccountId(account);
946
+ const result = await client.audiences.listSavedAudiences(accountId, {
947
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
948
+ });
949
+ print(result, getFormat(audiencesCmd));
950
+ } catch (err) {
951
+ error(String(err));
952
+ process.exit(1);
953
+ }
954
+ });
955
+
956
+ // ============================================
957
+ // Insights Commands
958
+ // ============================================
959
+ const insightsCmd = program
960
+ .command('insights')
961
+ .description('Get performance insights');
962
+
963
+ insightsCmd
964
+ .command('account [account]')
965
+ .description('Get account insights')
966
+ .option('-d, --date-preset <preset>', 'Date preset (today, yesterday, last_7d, last_30d, etc.)', 'last_7d')
967
+ .option('--since <date>', 'Start date (YYYY-MM-DD)')
968
+ .option('--until <date>', 'End date (YYYY-MM-DD)')
969
+ .option('-b, --breakdown <breakdown>', 'Breakdown (age, gender, country, device_platform, etc.)')
970
+ .option('-l, --level <level>', 'Level (account, campaign, adset, ad)')
971
+ .action(async (account: string | undefined, opts) => {
972
+ try {
973
+ const client = getClient();
974
+ const accountId = resolveAdAccountId(account);
975
+
976
+ const params: Record<string, unknown> = {
977
+ date_preset: opts.since ? undefined : opts.datePreset,
978
+ time_range: opts.since && opts.until ? { since: opts.since, until: opts.until } : undefined,
979
+ level: opts.level,
980
+ };
981
+
982
+ if (opts.breakdown) {
983
+ params.breakdowns = [opts.breakdown];
984
+ }
985
+
986
+ const result = await client.insights.getAccountInsights(accountId, params as never);
987
+
988
+ if (getFormat(insightsCmd) === 'json') {
989
+ print(result, 'json');
990
+ } else {
991
+ success(`Account Insights (${opts.datePreset || `${opts.since} to ${opts.until}`}):`);
992
+ result.data.forEach(insight => {
993
+ console.log(` Period: ${insight.date_start} to ${insight.date_stop}`);
994
+ console.log(` Impressions: ${formatNumber(insight.impressions || '0')}`);
995
+ console.log(` Clicks: ${formatNumber(insight.clicks || '0')}`);
996
+ console.log(` Spend: ${insight.spend || '0'}`);
997
+ console.log(` Reach: ${formatNumber(insight.reach || '0')}`);
998
+ console.log(` CPC: ${insight.cpc || 'N/A'}`);
999
+ console.log(` CPM: ${insight.cpm || 'N/A'}`);
1000
+ console.log(` CTR: ${insight.ctr ? formatPercent(insight.ctr) : 'N/A'}`);
1001
+ console.log();
1002
+ });
1003
+ }
1004
+ } catch (err) {
1005
+ error(String(err));
1006
+ process.exit(1);
1007
+ }
1008
+ });
1009
+
1010
+ insightsCmd
1011
+ .command('daily [account]')
1012
+ .description('Get daily insights breakdown')
1013
+ .option('-d, --date-preset <preset>', 'Date preset', 'last_7d')
1014
+ .action(async (account: string | undefined, opts) => {
1015
+ try {
1016
+ const client = getClient();
1017
+ const accountId = resolveAdAccountId(account);
1018
+ const result = await client.insights.getDailyInsights(accountId, {
1019
+ date_preset: opts.datePreset,
1020
+ });
1021
+ print(result.data, getFormat(insightsCmd));
1022
+ } catch (err) {
1023
+ error(String(err));
1024
+ process.exit(1);
1025
+ }
1026
+ });
1027
+
1028
+ insightsCmd
1029
+ .command('demographics [account]')
1030
+ .description('Get demographic insights (age/gender)')
1031
+ .option('-d, --date-preset <preset>', 'Date preset', 'last_7d')
1032
+ .action(async (account: string | undefined, opts) => {
1033
+ try {
1034
+ const client = getClient();
1035
+ const accountId = resolveAdAccountId(account);
1036
+ const result = await client.insights.getDemographicInsights(accountId, {
1037
+ date_preset: opts.datePreset,
1038
+ });
1039
+ print(result.data, getFormat(insightsCmd));
1040
+ } catch (err) {
1041
+ error(String(err));
1042
+ process.exit(1);
1043
+ }
1044
+ });
1045
+
1046
+ insightsCmd
1047
+ .command('geo [account]')
1048
+ .description('Get geographic insights')
1049
+ .option('-d, --date-preset <preset>', 'Date preset', 'last_7d')
1050
+ .action(async (account: string | undefined, opts) => {
1051
+ try {
1052
+ const client = getClient();
1053
+ const accountId = resolveAdAccountId(account);
1054
+ const result = await client.insights.getGeoInsights(accountId, {
1055
+ date_preset: opts.datePreset,
1056
+ });
1057
+ print(result.data, getFormat(insightsCmd));
1058
+ } catch (err) {
1059
+ error(String(err));
1060
+ process.exit(1);
1061
+ }
1062
+ });
1063
+
1064
+ insightsCmd
1065
+ .command('platform [account]')
1066
+ .description('Get platform insights (Facebook, Instagram, etc.)')
1067
+ .option('-d, --date-preset <preset>', 'Date preset', 'last_7d')
1068
+ .action(async (account: string | undefined, opts) => {
1069
+ try {
1070
+ const client = getClient();
1071
+ const accountId = resolveAdAccountId(account);
1072
+ const result = await client.insights.getPlatformInsights(accountId, {
1073
+ date_preset: opts.datePreset,
1074
+ });
1075
+ print(result.data, getFormat(insightsCmd));
1076
+ } catch (err) {
1077
+ error(String(err));
1078
+ process.exit(1);
1079
+ }
1080
+ });
1081
+
1082
+ // ============================================
1083
+ // Pages Commands
1084
+ // ============================================
1085
+ const pagesCmd = program
1086
+ .command('pages')
1087
+ .description('Manage Facebook pages');
1088
+
1089
+ pagesCmd
1090
+ .command('list')
1091
+ .description('List pages')
1092
+ .option('-l, --limit <number>', 'Maximum results')
1093
+ .option('--business <id>', 'List pages for a business')
1094
+ .action(async (opts) => {
1095
+ try {
1096
+ const client = getClient();
1097
+ const result = opts.business
1098
+ ? await client.pages.listForBusiness(opts.business, { limit: opts.limit ? parseInt(opts.limit) : undefined })
1099
+ : await client.pages.list({ limit: opts.limit ? parseInt(opts.limit) : undefined });
1100
+
1101
+ if (getFormat(pagesCmd) === 'json') {
1102
+ print(result, 'json');
1103
+ } else {
1104
+ success(`Pages:`);
1105
+ result.data.forEach(page => {
1106
+ console.log(` ${chalk.bold(page.name)}`);
1107
+ console.log(` ID: ${page.id}`);
1108
+ console.log(` Category: ${page.category}`);
1109
+ if (page.fan_count) console.log(` Fans: ${formatNumber(page.fan_count)}`);
1110
+ if (page.username) console.log(` Username: @${page.username}`);
1111
+ console.log();
1112
+ });
1113
+ }
1114
+ } catch (err) {
1115
+ error(String(err));
1116
+ process.exit(1);
1117
+ }
1118
+ });
1119
+
1120
+ pagesCmd
1121
+ .command('get <pageId>')
1122
+ .description('Get page details')
1123
+ .action(async (pageId: string) => {
1124
+ try {
1125
+ const client = getClient();
1126
+ const result = await client.pages.get(pageId);
1127
+ print(result, getFormat(pagesCmd));
1128
+ } catch (err) {
1129
+ error(String(err));
1130
+ process.exit(1);
1131
+ }
1132
+ });
1133
+
1134
+ pagesCmd
1135
+ .command('posts <pageId>')
1136
+ .description('List page posts')
1137
+ .option('-l, --limit <number>', 'Maximum results')
1138
+ .action(async (pageId: string, opts) => {
1139
+ try {
1140
+ const client = getClient();
1141
+ const result = await client.pages.getPosts(pageId, {
1142
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1143
+ });
1144
+ print(result, getFormat(pagesCmd));
1145
+ } catch (err) {
1146
+ error(String(err));
1147
+ process.exit(1);
1148
+ }
1149
+ });
1150
+
1151
+ pagesCmd
1152
+ .command('insights <pageId>')
1153
+ .description('Get page insights')
1154
+ .option('-m, --metric <metrics>', 'Comma-separated metrics')
1155
+ .option('-p, --period <period>', 'Period (day, week, days_28, month, lifetime)', 'day')
1156
+ .action(async (pageId: string, opts) => {
1157
+ try {
1158
+ const client = getClient();
1159
+ const result = await client.pages.getInsights(pageId, {
1160
+ metric: opts.metric ? opts.metric.split(',') : undefined,
1161
+ period: opts.period,
1162
+ });
1163
+ print(result, getFormat(pagesCmd));
1164
+ } catch (err) {
1165
+ error(String(err));
1166
+ process.exit(1);
1167
+ }
1168
+ });
1169
+
1170
+ // ============================================
1171
+ // Instagram Commands
1172
+ // ============================================
1173
+ const instagramCmd = program
1174
+ .command('instagram')
1175
+ .description('Manage Instagram accounts');
1176
+
1177
+ instagramCmd
1178
+ .command('get <pageId>')
1179
+ .description('Get Instagram account connected to a page')
1180
+ .action(async (pageId: string) => {
1181
+ try {
1182
+ const client = getClient();
1183
+ const result = await client.instagram.getAccountForPage(pageId);
1184
+ if (result) {
1185
+ print(result, getFormat(instagramCmd));
1186
+ } else {
1187
+ info('No Instagram account connected to this page');
1188
+ }
1189
+ } catch (err) {
1190
+ error(String(err));
1191
+ process.exit(1);
1192
+ }
1193
+ });
1194
+
1195
+ instagramCmd
1196
+ .command('media <instagramAccountId>')
1197
+ .description('List Instagram media')
1198
+ .option('-l, --limit <number>', 'Maximum results')
1199
+ .action(async (instagramAccountId: string, opts) => {
1200
+ try {
1201
+ const client = getClient();
1202
+ const result = await client.instagram.listMedia(instagramAccountId, {
1203
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1204
+ });
1205
+ print(result, getFormat(instagramCmd));
1206
+ } catch (err) {
1207
+ error(String(err));
1208
+ process.exit(1);
1209
+ }
1210
+ });
1211
+
1212
+ instagramCmd
1213
+ .command('insights <instagramAccountId>')
1214
+ .description('Get Instagram account insights')
1215
+ .option('-p, --period <period>', 'Period (day, week, days_28, lifetime)', 'day')
1216
+ .action(async (instagramAccountId: string, opts) => {
1217
+ try {
1218
+ const client = getClient();
1219
+ const result = await client.instagram.getAccountInsights(instagramAccountId, {
1220
+ period: opts.period,
1221
+ });
1222
+ print(result, getFormat(instagramCmd));
1223
+ } catch (err) {
1224
+ error(String(err));
1225
+ process.exit(1);
1226
+ }
1227
+ });
1228
+
1229
+ instagramCmd
1230
+ .command('stories <instagramAccountId>')
1231
+ .description('Get Instagram stories')
1232
+ .option('-l, --limit <number>', 'Maximum results')
1233
+ .action(async (instagramAccountId: string, opts) => {
1234
+ try {
1235
+ const client = getClient();
1236
+ const result = await client.instagram.getStories(instagramAccountId, {
1237
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1238
+ });
1239
+ print(result, getFormat(instagramCmd));
1240
+ } catch (err) {
1241
+ error(String(err));
1242
+ process.exit(1);
1243
+ }
1244
+ });
1245
+
1246
+ // ============================================
1247
+ // Pixels Commands
1248
+ // ============================================
1249
+ const pixelsCmd = program
1250
+ .command('pixels')
1251
+ .description('Manage conversion pixels');
1252
+
1253
+ pixelsCmd
1254
+ .command('list [account]')
1255
+ .description('List pixels')
1256
+ .option('-l, --limit <number>', 'Maximum results')
1257
+ .option('--business <id>', 'List pixels for a business')
1258
+ .action(async (account: string | undefined, opts) => {
1259
+ try {
1260
+ const client = getClient();
1261
+
1262
+ const result = opts.business
1263
+ ? await client.pixels.listForBusiness(opts.business, { limit: opts.limit ? parseInt(opts.limit) : undefined })
1264
+ : await client.pixels.list(resolveAdAccountId(account), { limit: opts.limit ? parseInt(opts.limit) : undefined });
1265
+
1266
+ if (getFormat(pixelsCmd) === 'json') {
1267
+ print(result, 'json');
1268
+ } else {
1269
+ success(`Pixels:`);
1270
+ result.data.forEach(pixel => {
1271
+ console.log(` ${chalk.bold(pixel.name)}`);
1272
+ console.log(` ID: ${pixel.id}`);
1273
+ if (pixel.last_fired_time) console.log(` Last Fired: ${pixel.last_fired_time}`);
1274
+ console.log();
1275
+ });
1276
+ }
1277
+ } catch (err) {
1278
+ error(String(err));
1279
+ process.exit(1);
1280
+ }
1281
+ });
1282
+
1283
+ pixelsCmd
1284
+ .command('get <pixelId>')
1285
+ .description('Get pixel details')
1286
+ .action(async (pixelId: string) => {
1287
+ try {
1288
+ const client = getClient();
1289
+ const result = await client.pixels.get(pixelId);
1290
+ print(result, getFormat(pixelsCmd));
1291
+ } catch (err) {
1292
+ error(String(err));
1293
+ process.exit(1);
1294
+ }
1295
+ });
1296
+
1297
+ pixelsCmd
1298
+ .command('code <pixelId>')
1299
+ .description('Get pixel code snippet')
1300
+ .action(async (pixelId: string) => {
1301
+ try {
1302
+ const client = getClient();
1303
+ const result = await client.pixels.getCode(pixelId);
1304
+ if (result.code) {
1305
+ console.log(result.code);
1306
+ } else {
1307
+ info('No pixel code available');
1308
+ }
1309
+ } catch (err) {
1310
+ error(String(err));
1311
+ process.exit(1);
1312
+ }
1313
+ });
1314
+
1315
+ pixelsCmd
1316
+ .command('stats <pixelId>')
1317
+ .description('Get pixel event stats')
1318
+ .action(async (pixelId: string) => {
1319
+ try {
1320
+ const client = getClient();
1321
+ const result = await client.pixels.getStats(pixelId);
1322
+ print(result, getFormat(pixelsCmd));
1323
+ } catch (err) {
1324
+ error(String(err));
1325
+ process.exit(1);
1326
+ }
1327
+ });
1328
+
1329
+ pixelsCmd
1330
+ .command('send-event <pixelId>')
1331
+ .description('Send a test event via Conversions API')
1332
+ .requiredOption('-e, --event <name>', 'Event name (Purchase, Lead, etc.)')
1333
+ .option('--email <email>', 'User email (will be hashed)')
1334
+ .option('--value <amount>', 'Event value')
1335
+ .option('--currency <code>', 'Currency code', 'USD')
1336
+ .option('--test-code <code>', 'Test event code')
1337
+ .action(async (pixelId: string, opts) => {
1338
+ try {
1339
+ const client = getClient();
1340
+ const event = client.pixels.createEvent({
1341
+ eventName: opts.event,
1342
+ actionSource: 'website',
1343
+ userData: {
1344
+ email: opts.email,
1345
+ },
1346
+ customData: opts.value ? {
1347
+ value: parseFloat(opts.value),
1348
+ currency: opts.currency,
1349
+ } : undefined,
1350
+ });
1351
+
1352
+ const result = await client.pixels.sendEvent(pixelId, event, opts.testCode);
1353
+ success(`Event sent! Received: ${result.events_received}`);
1354
+ print(result, getFormat(pixelsCmd));
1355
+ } catch (err) {
1356
+ error(String(err));
1357
+ process.exit(1);
1358
+ }
1359
+ });
1360
+
1361
+ // ============================================
1362
+ // Catalogs Commands
1363
+ // ============================================
1364
+ const catalogsCmd = program
1365
+ .command('catalogs')
1366
+ .description('Manage product catalogs');
1367
+
1368
+ catalogsCmd
1369
+ .command('list <businessId>')
1370
+ .description('List product catalogs')
1371
+ .option('-l, --limit <number>', 'Maximum results')
1372
+ .action(async (businessId: string, opts) => {
1373
+ try {
1374
+ const client = getClient();
1375
+ const result = await client.catalogs.list(businessId, {
1376
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1377
+ });
1378
+ print(result, getFormat(catalogsCmd));
1379
+ } catch (err) {
1380
+ error(String(err));
1381
+ process.exit(1);
1382
+ }
1383
+ });
1384
+
1385
+ catalogsCmd
1386
+ .command('get <catalogId>')
1387
+ .description('Get catalog details')
1388
+ .action(async (catalogId: string) => {
1389
+ try {
1390
+ const client = getClient();
1391
+ const result = await client.catalogs.get(catalogId);
1392
+ print(result, getFormat(catalogsCmd));
1393
+ } catch (err) {
1394
+ error(String(err));
1395
+ process.exit(1);
1396
+ }
1397
+ });
1398
+
1399
+ catalogsCmd
1400
+ .command('products <catalogId>')
1401
+ .description('List products in a catalog')
1402
+ .option('-l, --limit <number>', 'Maximum results')
1403
+ .action(async (catalogId: string, opts) => {
1404
+ try {
1405
+ const client = getClient();
1406
+ const result = await client.catalogs.listProducts(catalogId, {
1407
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1408
+ });
1409
+ print(result, getFormat(catalogsCmd));
1410
+ } catch (err) {
1411
+ error(String(err));
1412
+ process.exit(1);
1413
+ }
1414
+ });
1415
+
1416
+ catalogsCmd
1417
+ .command('feeds <catalogId>')
1418
+ .description('List product feeds')
1419
+ .option('-l, --limit <number>', 'Maximum results')
1420
+ .action(async (catalogId: string, opts) => {
1421
+ try {
1422
+ const client = getClient();
1423
+ const result = await client.catalogs.listFeeds(catalogId, {
1424
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1425
+ });
1426
+ print(result, getFormat(catalogsCmd));
1427
+ } catch (err) {
1428
+ error(String(err));
1429
+ process.exit(1);
1430
+ }
1431
+ });
1432
+
1433
+ catalogsCmd
1434
+ .command('product-sets <catalogId>')
1435
+ .description('List product sets')
1436
+ .option('-l, --limit <number>', 'Maximum results')
1437
+ .action(async (catalogId: string, opts) => {
1438
+ try {
1439
+ const client = getClient();
1440
+ const result = await client.catalogs.listProductSets(catalogId, {
1441
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1442
+ });
1443
+ print(result, getFormat(catalogsCmd));
1444
+ } catch (err) {
1445
+ error(String(err));
1446
+ process.exit(1);
1447
+ }
1448
+ });
1449
+
1450
+ // ============================================
1451
+ // Business Commands
1452
+ // ============================================
1453
+ const businessCmd = program
1454
+ .command('business')
1455
+ .description('Manage Business Manager');
1456
+
1457
+ businessCmd
1458
+ .command('list')
1459
+ .description('List businesses')
1460
+ .option('-l, --limit <number>', 'Maximum results')
1461
+ .action(async (opts) => {
1462
+ try {
1463
+ const client = getClient();
1464
+ const result = await client.business.list({
1465
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1466
+ });
1467
+
1468
+ if (getFormat(businessCmd) === 'json') {
1469
+ print(result, 'json');
1470
+ } else {
1471
+ success(`Businesses:`);
1472
+ result.data.forEach(biz => {
1473
+ console.log(` ${chalk.bold(biz.name)}`);
1474
+ console.log(` ID: ${biz.id}`);
1475
+ if (biz.verification_status) console.log(` Verification: ${biz.verification_status}`);
1476
+ console.log();
1477
+ });
1478
+ }
1479
+ } catch (err) {
1480
+ error(String(err));
1481
+ process.exit(1);
1482
+ }
1483
+ });
1484
+
1485
+ businessCmd
1486
+ .command('get <businessId>')
1487
+ .description('Get business details')
1488
+ .action(async (businessId: string) => {
1489
+ try {
1490
+ const client = getClient();
1491
+ const result = await client.business.get(businessId);
1492
+ print(result, getFormat(businessCmd));
1493
+ } catch (err) {
1494
+ error(String(err));
1495
+ process.exit(1);
1496
+ }
1497
+ });
1498
+
1499
+ businessCmd
1500
+ .command('users <businessId>')
1501
+ .description('List business users')
1502
+ .option('-l, --limit <number>', 'Maximum results')
1503
+ .action(async (businessId: string, opts) => {
1504
+ try {
1505
+ const client = getClient();
1506
+ const result = await client.business.listUsers(businessId, {
1507
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1508
+ });
1509
+ print(result, getFormat(businessCmd));
1510
+ } catch (err) {
1511
+ error(String(err));
1512
+ process.exit(1);
1513
+ }
1514
+ });
1515
+
1516
+ businessCmd
1517
+ .command('ad-accounts <businessId>')
1518
+ .description('List ad accounts in business')
1519
+ .option('-l, --limit <number>', 'Maximum results')
1520
+ .action(async (businessId: string, opts) => {
1521
+ try {
1522
+ const client = getClient();
1523
+ const result = await client.business.listAdAccounts(businessId, {
1524
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1525
+ });
1526
+ print(result, getFormat(businessCmd));
1527
+ } catch (err) {
1528
+ error(String(err));
1529
+ process.exit(1);
1530
+ }
1531
+ });
1532
+
1533
+ businessCmd
1534
+ .command('pages-owned <businessId>')
1535
+ .description('List pages owned by business')
1536
+ .option('-l, --limit <number>', 'Maximum results')
1537
+ .action(async (businessId: string, opts) => {
1538
+ try {
1539
+ const client = getClient();
1540
+ const result = await client.business.listPages(businessId, {
1541
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1542
+ });
1543
+ print(result, getFormat(businessCmd));
1544
+ } catch (err) {
1545
+ error(String(err));
1546
+ process.exit(1);
1547
+ }
1548
+ });
1549
+
1550
+ businessCmd
1551
+ .command('pixels-owned <businessId>')
1552
+ .description('List pixels owned by business')
1553
+ .option('-l, --limit <number>', 'Maximum results')
1554
+ .action(async (businessId: string, opts) => {
1555
+ try {
1556
+ const client = getClient();
1557
+ const result = await client.business.listPixels(businessId, {
1558
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1559
+ });
1560
+ print(result, getFormat(businessCmd));
1561
+ } catch (err) {
1562
+ error(String(err));
1563
+ process.exit(1);
1564
+ }
1565
+ });
1566
+
1567
+ businessCmd
1568
+ .command('instagram-accounts <businessId>')
1569
+ .description('List Instagram accounts in business')
1570
+ .option('-l, --limit <number>', 'Maximum results')
1571
+ .action(async (businessId: string, opts) => {
1572
+ try {
1573
+ const client = getClient();
1574
+ const result = await client.business.listInstagramAccounts(businessId, {
1575
+ limit: opts.limit ? parseInt(opts.limit) : undefined,
1576
+ });
1577
+ print(result, getFormat(businessCmd));
1578
+ } catch (err) {
1579
+ error(String(err));
1580
+ process.exit(1);
1581
+ }
1582
+ });
1583
+
1584
+ // Parse and execute
1585
+ program.parse();