@hasna/connectors 0.4.0 → 0.4.2

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 (390) hide show
  1. package/bin/index.js +189 -2
  2. package/bin/mcp.js +176 -1
  3. package/bin/serve.js +175 -0
  4. package/connectors/connect-airtable/.env.example +11 -0
  5. package/connectors/connect-airtable/CLAUDE.md +121 -0
  6. package/connectors/connect-airtable/README.md +193 -0
  7. package/connectors/connect-airtable/package.json +50 -0
  8. package/connectors/connect-airtable/src/api/client.ts +139 -0
  9. package/connectors/connect-airtable/src/api/index.ts +405 -0
  10. package/connectors/connect-airtable/src/cli/index.ts +637 -0
  11. package/connectors/connect-airtable/src/index.ts +20 -0
  12. package/connectors/connect-airtable/src/types/index.ts +349 -0
  13. package/connectors/connect-airtable/src/utils/config.ts +197 -0
  14. package/connectors/connect-airtable/tsconfig.json +16 -0
  15. package/connectors/connect-amplitude/.env.example +11 -0
  16. package/connectors/connect-amplitude/CLAUDE.md +121 -0
  17. package/connectors/connect-amplitude/README.md +193 -0
  18. package/connectors/connect-amplitude/package.json +51 -0
  19. package/connectors/connect-amplitude/src/api/client.ts +144 -0
  20. package/connectors/connect-amplitude/src/api/index.ts +215 -0
  21. package/connectors/connect-amplitude/src/cli/index.ts +532 -0
  22. package/connectors/connect-amplitude/src/index.ts +22 -0
  23. package/connectors/connect-amplitude/src/types/index.ts +329 -0
  24. package/connectors/connect-amplitude/src/utils/config.ts +208 -0
  25. package/connectors/connect-amplitude/tsconfig.json +16 -0
  26. package/connectors/connect-calendly/.env.example +11 -0
  27. package/connectors/connect-calendly/CLAUDE.md +272 -0
  28. package/connectors/connect-calendly/README.md +193 -0
  29. package/connectors/connect-calendly/package.json +51 -0
  30. package/connectors/connect-calendly/scripts/release.ts +179 -0
  31. package/connectors/connect-calendly/src/api/client.ts +213 -0
  32. package/connectors/connect-calendly/src/api/example.ts +48 -0
  33. package/connectors/connect-calendly/src/api/index.ts +51 -0
  34. package/connectors/connect-calendly/src/cli/index.ts +254 -0
  35. package/connectors/connect-calendly/src/index.ts +103 -0
  36. package/connectors/connect-calendly/src/types/index.ts +237 -0
  37. package/connectors/connect-calendly/src/utils/auth.ts +274 -0
  38. package/connectors/connect-calendly/src/utils/bulk.ts +212 -0
  39. package/connectors/connect-calendly/src/utils/config.ts +326 -0
  40. package/connectors/connect-calendly/src/utils/output.ts +175 -0
  41. package/connectors/connect-calendly/src/utils/settings.ts +114 -0
  42. package/connectors/connect-calendly/src/utils/storage.ts +198 -0
  43. package/connectors/connect-calendly/tsconfig.json +16 -0
  44. package/connectors/connect-convertkit/.env.example +11 -0
  45. package/connectors/connect-convertkit/CLAUDE.md +272 -0
  46. package/connectors/connect-convertkit/README.md +193 -0
  47. package/connectors/connect-convertkit/package.json +51 -0
  48. package/connectors/connect-convertkit/scripts/release.ts +179 -0
  49. package/connectors/connect-convertkit/src/api/client.ts +213 -0
  50. package/connectors/connect-convertkit/src/api/example.ts +48 -0
  51. package/connectors/connect-convertkit/src/api/index.ts +51 -0
  52. package/connectors/connect-convertkit/src/cli/index.ts +254 -0
  53. package/connectors/connect-convertkit/src/index.ts +103 -0
  54. package/connectors/connect-convertkit/src/types/index.ts +237 -0
  55. package/connectors/connect-convertkit/src/utils/auth.ts +274 -0
  56. package/connectors/connect-convertkit/src/utils/bulk.ts +212 -0
  57. package/connectors/connect-convertkit/src/utils/config.ts +326 -0
  58. package/connectors/connect-convertkit/src/utils/output.ts +175 -0
  59. package/connectors/connect-convertkit/src/utils/settings.ts +114 -0
  60. package/connectors/connect-convertkit/src/utils/storage.ts +198 -0
  61. package/connectors/connect-convertkit/tsconfig.json +16 -0
  62. package/connectors/connect-crisp/.env.example +11 -0
  63. package/connectors/connect-crisp/CLAUDE.md +272 -0
  64. package/connectors/connect-crisp/README.md +193 -0
  65. package/connectors/connect-crisp/package.json +51 -0
  66. package/connectors/connect-crisp/scripts/release.ts +179 -0
  67. package/connectors/connect-crisp/src/api/client.ts +213 -0
  68. package/connectors/connect-crisp/src/api/example.ts +48 -0
  69. package/connectors/connect-crisp/src/api/index.ts +51 -0
  70. package/connectors/connect-crisp/src/cli/index.ts +254 -0
  71. package/connectors/connect-crisp/src/index.ts +103 -0
  72. package/connectors/connect-crisp/src/types/index.ts +237 -0
  73. package/connectors/connect-crisp/src/utils/auth.ts +274 -0
  74. package/connectors/connect-crisp/src/utils/bulk.ts +212 -0
  75. package/connectors/connect-crisp/src/utils/config.ts +326 -0
  76. package/connectors/connect-crisp/src/utils/output.ts +175 -0
  77. package/connectors/connect-crisp/src/utils/settings.ts +114 -0
  78. package/connectors/connect-crisp/src/utils/storage.ts +198 -0
  79. package/connectors/connect-crisp/tsconfig.json +16 -0
  80. package/connectors/connect-docusign/.env.example +11 -0
  81. package/connectors/connect-docusign/CLAUDE.md +128 -0
  82. package/connectors/connect-docusign/README.md +193 -0
  83. package/connectors/connect-docusign/package.json +52 -0
  84. package/connectors/connect-docusign/src/api/client.ts +133 -0
  85. package/connectors/connect-docusign/src/api/index.ts +178 -0
  86. package/connectors/connect-docusign/src/cli/index.ts +381 -0
  87. package/connectors/connect-docusign/src/index.ts +23 -0
  88. package/connectors/connect-docusign/src/types/index.ts +208 -0
  89. package/connectors/connect-docusign/src/utils/config.ts +125 -0
  90. package/connectors/connect-docusign/src/utils/output.ts +119 -0
  91. package/connectors/connect-docusign/tsconfig.json +16 -0
  92. package/connectors/connect-drift/.env.example +11 -0
  93. package/connectors/connect-drift/CLAUDE.md +272 -0
  94. package/connectors/connect-drift/README.md +193 -0
  95. package/connectors/connect-drift/package.json +51 -0
  96. package/connectors/connect-drift/scripts/release.ts +179 -0
  97. package/connectors/connect-drift/src/api/client.ts +213 -0
  98. package/connectors/connect-drift/src/api/example.ts +48 -0
  99. package/connectors/connect-drift/src/api/index.ts +51 -0
  100. package/connectors/connect-drift/src/cli/index.ts +254 -0
  101. package/connectors/connect-drift/src/index.ts +103 -0
  102. package/connectors/connect-drift/src/types/index.ts +237 -0
  103. package/connectors/connect-drift/src/utils/auth.ts +274 -0
  104. package/connectors/connect-drift/src/utils/bulk.ts +212 -0
  105. package/connectors/connect-drift/src/utils/config.ts +326 -0
  106. package/connectors/connect-drift/src/utils/output.ts +175 -0
  107. package/connectors/connect-drift/src/utils/settings.ts +114 -0
  108. package/connectors/connect-drift/src/utils/storage.ts +198 -0
  109. package/connectors/connect-drift/tsconfig.json +16 -0
  110. package/connectors/connect-freshdesk/.env.example +11 -0
  111. package/connectors/connect-freshdesk/CLAUDE.md +272 -0
  112. package/connectors/connect-freshdesk/README.md +193 -0
  113. package/connectors/connect-freshdesk/package.json +51 -0
  114. package/connectors/connect-freshdesk/scripts/release.ts +179 -0
  115. package/connectors/connect-freshdesk/src/api/client.ts +213 -0
  116. package/connectors/connect-freshdesk/src/api/example.ts +48 -0
  117. package/connectors/connect-freshdesk/src/api/index.ts +51 -0
  118. package/connectors/connect-freshdesk/src/cli/index.ts +254 -0
  119. package/connectors/connect-freshdesk/src/index.ts +103 -0
  120. package/connectors/connect-freshdesk/src/types/index.ts +237 -0
  121. package/connectors/connect-freshdesk/src/utils/auth.ts +274 -0
  122. package/connectors/connect-freshdesk/src/utils/bulk.ts +212 -0
  123. package/connectors/connect-freshdesk/src/utils/config.ts +326 -0
  124. package/connectors/connect-freshdesk/src/utils/output.ts +175 -0
  125. package/connectors/connect-freshdesk/src/utils/settings.ts +114 -0
  126. package/connectors/connect-freshdesk/src/utils/storage.ts +198 -0
  127. package/connectors/connect-freshdesk/tsconfig.json +16 -0
  128. package/connectors/connect-gumroad/.env.example +11 -0
  129. package/connectors/connect-gumroad/CLAUDE.md +272 -0
  130. package/connectors/connect-gumroad/README.md +193 -0
  131. package/connectors/connect-gumroad/package.json +51 -0
  132. package/connectors/connect-gumroad/scripts/release.ts +179 -0
  133. package/connectors/connect-gumroad/src/api/client.ts +213 -0
  134. package/connectors/connect-gumroad/src/api/example.ts +48 -0
  135. package/connectors/connect-gumroad/src/api/index.ts +51 -0
  136. package/connectors/connect-gumroad/src/cli/index.ts +254 -0
  137. package/connectors/connect-gumroad/src/index.ts +103 -0
  138. package/connectors/connect-gumroad/src/types/index.ts +237 -0
  139. package/connectors/connect-gumroad/src/utils/auth.ts +274 -0
  140. package/connectors/connect-gumroad/src/utils/bulk.ts +212 -0
  141. package/connectors/connect-gumroad/src/utils/config.ts +326 -0
  142. package/connectors/connect-gumroad/src/utils/output.ts +175 -0
  143. package/connectors/connect-gumroad/src/utils/settings.ts +114 -0
  144. package/connectors/connect-gumroad/src/utils/storage.ts +198 -0
  145. package/connectors/connect-gumroad/tsconfig.json +16 -0
  146. package/connectors/connect-hubspot/.env.example +11 -0
  147. package/connectors/connect-hubspot/CLAUDE.md +128 -0
  148. package/connectors/connect-hubspot/README.md +193 -0
  149. package/connectors/connect-hubspot/package.json +52 -0
  150. package/connectors/connect-hubspot/src/api/client.ts +136 -0
  151. package/connectors/connect-hubspot/src/api/index.ts +379 -0
  152. package/connectors/connect-hubspot/src/cli/index.ts +589 -0
  153. package/connectors/connect-hubspot/src/index.ts +21 -0
  154. package/connectors/connect-hubspot/src/types/index.ts +285 -0
  155. package/connectors/connect-hubspot/src/utils/config.ts +205 -0
  156. package/connectors/connect-hubspot/src/utils/output.ts +119 -0
  157. package/connectors/connect-hubspot/tsconfig.json +16 -0
  158. package/connectors/connect-intercom/.env.example +11 -0
  159. package/connectors/connect-intercom/CLAUDE.md +131 -0
  160. package/connectors/connect-intercom/README.md +193 -0
  161. package/connectors/connect-intercom/package.json +52 -0
  162. package/connectors/connect-intercom/src/api/client.ts +132 -0
  163. package/connectors/connect-intercom/src/api/index.ts +366 -0
  164. package/connectors/connect-intercom/src/cli/index.ts +831 -0
  165. package/connectors/connect-intercom/src/index.ts +21 -0
  166. package/connectors/connect-intercom/src/types/index.ts +650 -0
  167. package/connectors/connect-intercom/src/utils/config.ts +157 -0
  168. package/connectors/connect-intercom/src/utils/output.ts +119 -0
  169. package/connectors/connect-intercom/tsconfig.json +16 -0
  170. package/connectors/connect-lemonsqueezy/.env.example +11 -0
  171. package/connectors/connect-lemonsqueezy/CLAUDE.md +128 -0
  172. package/connectors/connect-lemonsqueezy/README.md +193 -0
  173. package/connectors/connect-lemonsqueezy/package.json +52 -0
  174. package/connectors/connect-lemonsqueezy/src/api/client.ts +133 -0
  175. package/connectors/connect-lemonsqueezy/src/api/index.ts +502 -0
  176. package/connectors/connect-lemonsqueezy/src/cli/index.ts +723 -0
  177. package/connectors/connect-lemonsqueezy/src/index.ts +21 -0
  178. package/connectors/connect-lemonsqueezy/src/types/index.ts +353 -0
  179. package/connectors/connect-lemonsqueezy/src/utils/config.ts +205 -0
  180. package/connectors/connect-lemonsqueezy/src/utils/output.ts +119 -0
  181. package/connectors/connect-lemonsqueezy/tsconfig.json +16 -0
  182. package/connectors/connect-linkedin/.env.example +11 -0
  183. package/connectors/connect-linkedin/CLAUDE.md +124 -0
  184. package/connectors/connect-linkedin/README.md +193 -0
  185. package/connectors/connect-linkedin/package.json +52 -0
  186. package/connectors/connect-linkedin/src/api/client.ts +132 -0
  187. package/connectors/connect-linkedin/src/api/index.ts +313 -0
  188. package/connectors/connect-linkedin/src/cli/index.ts +548 -0
  189. package/connectors/connect-linkedin/src/index.ts +21 -0
  190. package/connectors/connect-linkedin/src/types/index.ts +472 -0
  191. package/connectors/connect-linkedin/src/utils/config.ts +157 -0
  192. package/connectors/connect-linkedin/src/utils/output.ts +119 -0
  193. package/connectors/connect-linkedin/tsconfig.json +16 -0
  194. package/connectors/connect-mailchimp/.env.example +11 -0
  195. package/connectors/connect-mailchimp/CLAUDE.md +127 -0
  196. package/connectors/connect-mailchimp/README.md +193 -0
  197. package/connectors/connect-mailchimp/package.json +52 -0
  198. package/connectors/connect-mailchimp/src/api/client.ts +162 -0
  199. package/connectors/connect-mailchimp/src/api/index.ts +580 -0
  200. package/connectors/connect-mailchimp/src/cli/index.ts +822 -0
  201. package/connectors/connect-mailchimp/src/index.ts +23 -0
  202. package/connectors/connect-mailchimp/src/types/index.ts +585 -0
  203. package/connectors/connect-mailchimp/src/utils/config.ts +208 -0
  204. package/connectors/connect-mailchimp/src/utils/output.ts +119 -0
  205. package/connectors/connect-mailchimp/tsconfig.json +16 -0
  206. package/connectors/connect-mongodb/.env.example +11 -0
  207. package/connectors/connect-mongodb/CLAUDE.md +272 -0
  208. package/connectors/connect-mongodb/README.md +193 -0
  209. package/connectors/connect-mongodb/package.json +51 -0
  210. package/connectors/connect-mongodb/scripts/release.ts +179 -0
  211. package/connectors/connect-mongodb/src/api/client.ts +213 -0
  212. package/connectors/connect-mongodb/src/api/example.ts +48 -0
  213. package/connectors/connect-mongodb/src/api/index.ts +51 -0
  214. package/connectors/connect-mongodb/src/cli/index.ts +254 -0
  215. package/connectors/connect-mongodb/src/index.ts +103 -0
  216. package/connectors/connect-mongodb/src/types/index.ts +237 -0
  217. package/connectors/connect-mongodb/src/utils/auth.ts +274 -0
  218. package/connectors/connect-mongodb/src/utils/bulk.ts +212 -0
  219. package/connectors/connect-mongodb/src/utils/config.ts +326 -0
  220. package/connectors/connect-mongodb/src/utils/output.ts +175 -0
  221. package/connectors/connect-mongodb/src/utils/settings.ts +114 -0
  222. package/connectors/connect-mongodb/src/utils/storage.ts +198 -0
  223. package/connectors/connect-mongodb/tsconfig.json +16 -0
  224. package/connectors/connect-netlify/.env.example +11 -0
  225. package/connectors/connect-netlify/CLAUDE.md +170 -0
  226. package/connectors/connect-netlify/README.md +193 -0
  227. package/connectors/connect-netlify/package.json +53 -0
  228. package/connectors/connect-netlify/src/api/client.ts +132 -0
  229. package/connectors/connect-netlify/src/api/index.ts +533 -0
  230. package/connectors/connect-netlify/src/cli/index.ts +985 -0
  231. package/connectors/connect-netlify/src/index.ts +22 -0
  232. package/connectors/connect-netlify/src/types/index.ts +423 -0
  233. package/connectors/connect-netlify/src/utils/config.ts +171 -0
  234. package/connectors/connect-netlify/src/utils/output.ts +119 -0
  235. package/connectors/connect-netlify/tsconfig.json +16 -0
  236. package/connectors/connect-paypal/.env.example +11 -0
  237. package/connectors/connect-paypal/CLAUDE.md +128 -0
  238. package/connectors/connect-paypal/README.md +193 -0
  239. package/connectors/connect-paypal/package.json +51 -0
  240. package/connectors/connect-paypal/src/api/client.ts +182 -0
  241. package/connectors/connect-paypal/src/api/index.ts +235 -0
  242. package/connectors/connect-paypal/src/cli/index.ts +559 -0
  243. package/connectors/connect-paypal/src/index.ts +23 -0
  244. package/connectors/connect-paypal/src/types/index.ts +377 -0
  245. package/connectors/connect-paypal/src/utils/config.ts +125 -0
  246. package/connectors/connect-paypal/src/utils/output.ts +119 -0
  247. package/connectors/connect-paypal/tsconfig.json +16 -0
  248. package/connectors/connect-pinterest/.env.example +11 -0
  249. package/connectors/connect-pinterest/CLAUDE.md +115 -0
  250. package/connectors/connect-pinterest/README.md +193 -0
  251. package/connectors/connect-pinterest/package.json +52 -0
  252. package/connectors/connect-pinterest/src/api/client.ts +125 -0
  253. package/connectors/connect-pinterest/src/api/index.ts +203 -0
  254. package/connectors/connect-pinterest/src/cli/index.ts +653 -0
  255. package/connectors/connect-pinterest/src/index.ts +21 -0
  256. package/connectors/connect-pinterest/src/types/index.ts +268 -0
  257. package/connectors/connect-pinterest/src/utils/config.ts +157 -0
  258. package/connectors/connect-pinterest/src/utils/output.ts +119 -0
  259. package/connectors/connect-pinterest/tsconfig.json +16 -0
  260. package/connectors/connect-posthog/.env.example +11 -0
  261. package/connectors/connect-posthog/CLAUDE.md +272 -0
  262. package/connectors/connect-posthog/README.md +193 -0
  263. package/connectors/connect-posthog/package.json +51 -0
  264. package/connectors/connect-posthog/scripts/release.ts +179 -0
  265. package/connectors/connect-posthog/src/api/client.ts +213 -0
  266. package/connectors/connect-posthog/src/api/example.ts +48 -0
  267. package/connectors/connect-posthog/src/api/index.ts +51 -0
  268. package/connectors/connect-posthog/src/cli/index.ts +254 -0
  269. package/connectors/connect-posthog/src/index.ts +103 -0
  270. package/connectors/connect-posthog/src/types/index.ts +237 -0
  271. package/connectors/connect-posthog/src/utils/auth.ts +274 -0
  272. package/connectors/connect-posthog/src/utils/bulk.ts +212 -0
  273. package/connectors/connect-posthog/src/utils/config.ts +326 -0
  274. package/connectors/connect-posthog/src/utils/output.ts +175 -0
  275. package/connectors/connect-posthog/src/utils/settings.ts +114 -0
  276. package/connectors/connect-posthog/src/utils/storage.ts +198 -0
  277. package/connectors/connect-posthog/tsconfig.json +16 -0
  278. package/connectors/connect-salesforce/.env.example +11 -0
  279. package/connectors/connect-salesforce/CLAUDE.md +128 -0
  280. package/connectors/connect-salesforce/README.md +193 -0
  281. package/connectors/connect-salesforce/package.json +53 -0
  282. package/connectors/connect-salesforce/src/api/client.ts +150 -0
  283. package/connectors/connect-salesforce/src/api/index.ts +367 -0
  284. package/connectors/connect-salesforce/src/cli/index.ts +594 -0
  285. package/connectors/connect-salesforce/src/index.ts +21 -0
  286. package/connectors/connect-salesforce/src/types/index.ts +292 -0
  287. package/connectors/connect-salesforce/src/utils/config.ts +208 -0
  288. package/connectors/connect-salesforce/src/utils/output.ts +119 -0
  289. package/connectors/connect-salesforce/tsconfig.json +16 -0
  290. package/connectors/connect-segment/.env.example +11 -0
  291. package/connectors/connect-segment/CLAUDE.md +272 -0
  292. package/connectors/connect-segment/README.md +193 -0
  293. package/connectors/connect-segment/package.json +51 -0
  294. package/connectors/connect-segment/scripts/release.ts +179 -0
  295. package/connectors/connect-segment/src/api/client.ts +213 -0
  296. package/connectors/connect-segment/src/api/example.ts +48 -0
  297. package/connectors/connect-segment/src/api/index.ts +51 -0
  298. package/connectors/connect-segment/src/cli/index.ts +254 -0
  299. package/connectors/connect-segment/src/index.ts +103 -0
  300. package/connectors/connect-segment/src/types/index.ts +237 -0
  301. package/connectors/connect-segment/src/utils/auth.ts +274 -0
  302. package/connectors/connect-segment/src/utils/bulk.ts +212 -0
  303. package/connectors/connect-segment/src/utils/config.ts +326 -0
  304. package/connectors/connect-segment/src/utils/output.ts +175 -0
  305. package/connectors/connect-segment/src/utils/settings.ts +114 -0
  306. package/connectors/connect-segment/src/utils/storage.ts +198 -0
  307. package/connectors/connect-segment/tsconfig.json +16 -0
  308. package/connectors/connect-sendgrid/.env.example +11 -0
  309. package/connectors/connect-sendgrid/CLAUDE.md +125 -0
  310. package/connectors/connect-sendgrid/README.md +193 -0
  311. package/connectors/connect-sendgrid/package.json +53 -0
  312. package/connectors/connect-sendgrid/src/api/client.ts +137 -0
  313. package/connectors/connect-sendgrid/src/api/index.ts +588 -0
  314. package/connectors/connect-sendgrid/src/cli/index.ts +764 -0
  315. package/connectors/connect-sendgrid/src/index.ts +21 -0
  316. package/connectors/connect-sendgrid/src/types/index.ts +403 -0
  317. package/connectors/connect-sendgrid/src/utils/config.ts +197 -0
  318. package/connectors/connect-sendgrid/src/utils/output.ts +119 -0
  319. package/connectors/connect-sendgrid/tsconfig.json +16 -0
  320. package/connectors/connect-supabase/.env.example +11 -0
  321. package/connectors/connect-supabase/CLAUDE.md +132 -0
  322. package/connectors/connect-supabase/README.md +193 -0
  323. package/connectors/connect-supabase/package.json +52 -0
  324. package/connectors/connect-supabase/src/api/client.ts +231 -0
  325. package/connectors/connect-supabase/src/api/index.ts +439 -0
  326. package/connectors/connect-supabase/src/cli/index.ts +691 -0
  327. package/connectors/connect-supabase/src/index.ts +24 -0
  328. package/connectors/connect-supabase/src/types/index.ts +215 -0
  329. package/connectors/connect-supabase/src/utils/config.ts +219 -0
  330. package/connectors/connect-supabase/tsconfig.json +16 -0
  331. package/connectors/connect-vercel/.env.example +11 -0
  332. package/connectors/connect-vercel/CLAUDE.md +142 -0
  333. package/connectors/connect-vercel/README.md +193 -0
  334. package/connectors/connect-vercel/package.json +52 -0
  335. package/connectors/connect-vercel/src/api/client.ts +139 -0
  336. package/connectors/connect-vercel/src/api/index.ts +384 -0
  337. package/connectors/connect-vercel/src/cli/index.ts +740 -0
  338. package/connectors/connect-vercel/src/index.ts +24 -0
  339. package/connectors/connect-vercel/src/types/index.ts +350 -0
  340. package/connectors/connect-vercel/src/utils/config.ts +182 -0
  341. package/connectors/connect-vercel/src/utils/output.ts +119 -0
  342. package/connectors/connect-vercel/tsconfig.json +16 -0
  343. package/connectors/connect-zendesk/.env.example +10 -0
  344. package/connectors/connect-zendesk/.github/workflows/deploy.yml +51 -0
  345. package/connectors/connect-zendesk/CLAUDE.md +78 -0
  346. package/connectors/connect-zendesk/Makefile +129 -0
  347. package/connectors/connect-zendesk/README.md +295 -0
  348. package/connectors/connect-zendesk/SCAFFOLD.md +178 -0
  349. package/connectors/connect-zendesk/nginx-connector.conf +218 -0
  350. package/connectors/connect-zendesk/nginx.conf +61 -0
  351. package/connectors/connect-zendesk/package.json +71 -0
  352. package/connectors/connect-zendesk/scripts/init.sh +62 -0
  353. package/connectors/connect-zendesk/scripts/publish.ts +210 -0
  354. package/connectors/connect-zendesk/server/index.js +142 -0
  355. package/connectors/connect-zendesk/src/api/automations.ts +95 -0
  356. package/connectors/connect-zendesk/src/api/brands.ts +80 -0
  357. package/connectors/connect-zendesk/src/api/bulk.ts +838 -0
  358. package/connectors/connect-zendesk/src/api/client.test.ts +315 -0
  359. package/connectors/connect-zendesk/src/api/client.ts +173 -0
  360. package/connectors/connect-zendesk/src/api/example.ts +59 -0
  361. package/connectors/connect-zendesk/src/api/groups.ts +60 -0
  362. package/connectors/connect-zendesk/src/api/index.test.ts +111 -0
  363. package/connectors/connect-zendesk/src/api/index.ts +131 -0
  364. package/connectors/connect-zendesk/src/api/macros.ts +124 -0
  365. package/connectors/connect-zendesk/src/api/organizations.ts +85 -0
  366. package/connectors/connect-zendesk/src/api/slas.ts +80 -0
  367. package/connectors/connect-zendesk/src/api/ticket-fields.ts +98 -0
  368. package/connectors/connect-zendesk/src/api/tickets.test.ts +215 -0
  369. package/connectors/connect-zendesk/src/api/tickets.ts +103 -0
  370. package/connectors/connect-zendesk/src/api/triggers.test.ts +204 -0
  371. package/connectors/connect-zendesk/src/api/triggers.ts +125 -0
  372. package/connectors/connect-zendesk/src/api/users.test.ts +180 -0
  373. package/connectors/connect-zendesk/src/api/users.ts +108 -0
  374. package/connectors/connect-zendesk/src/api/views.test.ts +223 -0
  375. package/connectors/connect-zendesk/src/api/views.ts +145 -0
  376. package/connectors/connect-zendesk/src/api/webhooks.test.ts +208 -0
  377. package/connectors/connect-zendesk/src/api/webhooks.ts +118 -0
  378. package/connectors/connect-zendesk/src/cli/index.ts +1478 -0
  379. package/connectors/connect-zendesk/src/index.ts +36 -0
  380. package/connectors/connect-zendesk/src/server/index.ts +204 -0
  381. package/connectors/connect-zendesk/src/types/index.ts +910 -0
  382. package/connectors/connect-zendesk/src/utils/config.test.ts +193 -0
  383. package/connectors/connect-zendesk/src/utils/config.ts +526 -0
  384. package/connectors/connect-zendesk/src/utils/export.ts +338 -0
  385. package/connectors/connect-zendesk/src/utils/logger.ts +105 -0
  386. package/connectors/connect-zendesk/src/utils/output.test.ts +137 -0
  387. package/connectors/connect-zendesk/src/utils/output.ts +119 -0
  388. package/connectors/connect-zendesk/tsconfig.json +31 -0
  389. package/dist/index.js +175 -0
  390. package/package.json +1 -1
@@ -0,0 +1,532 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { Amplitude } from '../api';
5
+ import {
6
+ getApiKey,
7
+ setApiKey,
8
+ getSecretKey,
9
+ setSecretKey,
10
+ clearConfig,
11
+ getCurrentProfile,
12
+ setCurrentProfile,
13
+ listProfiles,
14
+ createProfile,
15
+ deleteProfile,
16
+ setProfileOverride,
17
+ getConfigDir,
18
+ } from '../utils/config';
19
+
20
+ const program = new Command();
21
+
22
+ // Helper to get authenticated client
23
+ function getClient(): Amplitude {
24
+ const apiKey = getApiKey();
25
+ const secretKey = getSecretKey();
26
+ if (!apiKey || !secretKey) {
27
+ console.error(chalk.red('Error: Not authenticated. Run "connect-amplitude auth set-key" and "connect-amplitude auth set-secret" first.'));
28
+ process.exit(1);
29
+ }
30
+ return new Amplitude({ apiKey, secretKey });
31
+ }
32
+
33
+ program
34
+ .name('connect-amplitude')
35
+ .description('Amplitude connector - Analytics data, events, users, and cohorts')
36
+ .version('0.0.1')
37
+ .option('--profile <name>', 'Use a specific profile')
38
+ .hook('preAction', (thisCommand) => {
39
+ const opts = thisCommand.opts();
40
+ if (opts.profile) {
41
+ setProfileOverride(opts.profile);
42
+ }
43
+ });
44
+
45
+ // ============================================
46
+ // Auth Commands
47
+ // ============================================
48
+
49
+ const authCmd = program.command('auth').description('Authentication management');
50
+
51
+ authCmd
52
+ .command('set-key')
53
+ .description('Set API key for the current profile')
54
+ .argument('<key>', 'Amplitude API key')
55
+ .action((key: string) => {
56
+ setApiKey(key);
57
+ console.log(chalk.green(`API key saved to profile "${getCurrentProfile()}"`));
58
+ });
59
+
60
+ authCmd
61
+ .command('set-secret')
62
+ .description('Set secret key for the current profile')
63
+ .argument('<secret>', 'Amplitude secret key')
64
+ .action((secret: string) => {
65
+ setSecretKey(secret);
66
+ console.log(chalk.green(`Secret key saved to profile "${getCurrentProfile()}"`));
67
+ });
68
+
69
+ authCmd
70
+ .command('status')
71
+ .description('Check authentication status')
72
+ .action(() => {
73
+ const apiKey = getApiKey();
74
+ const secretKey = getSecretKey();
75
+
76
+ if (!apiKey || !secretKey) {
77
+ console.log(chalk.yellow('Not authenticated'));
78
+ if (!apiKey) console.log(chalk.gray(' API key: not set'));
79
+ if (!secretKey) console.log(chalk.gray(' Secret key: not set'));
80
+ console.log(chalk.gray('\nRun "connect-amplitude auth set-key <key>" and "connect-amplitude auth set-secret <secret>" to authenticate'));
81
+ return;
82
+ }
83
+
84
+ console.log(chalk.green('Authenticated'));
85
+ console.log(` Profile: ${chalk.cyan(getCurrentProfile())}`);
86
+ console.log(` API Key: ${chalk.white(apiKey.substring(0, 8) + '...')}`);
87
+ console.log(` Secret Key: ${chalk.white(secretKey.substring(0, 8) + '...')}`);
88
+ });
89
+
90
+ authCmd
91
+ .command('clear')
92
+ .description('Clear stored credentials')
93
+ .action(() => {
94
+ clearConfig();
95
+ console.log(chalk.green('Credentials cleared'));
96
+ });
97
+
98
+ // ============================================
99
+ // Profile Commands
100
+ // ============================================
101
+
102
+ const profileCmd = program.command('profile').description('Profile management');
103
+
104
+ profileCmd
105
+ .command('list')
106
+ .description('List all profiles')
107
+ .action(() => {
108
+ const profiles = listProfiles();
109
+ const current = getCurrentProfile();
110
+
111
+ if (profiles.length === 0) {
112
+ console.log(chalk.gray('No profiles configured'));
113
+ return;
114
+ }
115
+
116
+ console.log(chalk.bold('Profiles:'));
117
+ for (const profile of profiles) {
118
+ const marker = profile === current ? chalk.green(' (active)') : '';
119
+ console.log(` ${profile}${marker}`);
120
+ }
121
+ });
122
+
123
+ profileCmd
124
+ .command('use')
125
+ .description('Switch to a profile')
126
+ .argument('<name>', 'Profile name')
127
+ .action((name: string) => {
128
+ try {
129
+ setCurrentProfile(name);
130
+ console.log(chalk.green(`Switched to profile "${name}"`));
131
+ } catch (error) {
132
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
133
+ process.exit(1);
134
+ }
135
+ });
136
+
137
+ profileCmd
138
+ .command('create')
139
+ .description('Create a new profile')
140
+ .argument('<name>', 'Profile name')
141
+ .action((name: string) => {
142
+ try {
143
+ if (createProfile(name)) {
144
+ console.log(chalk.green(`Profile "${name}" created`));
145
+ } else {
146
+ console.log(chalk.yellow(`Profile "${name}" already exists`));
147
+ }
148
+ } catch (error) {
149
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
150
+ process.exit(1);
151
+ }
152
+ });
153
+
154
+ profileCmd
155
+ .command('delete')
156
+ .description('Delete a profile')
157
+ .argument('<name>', 'Profile name')
158
+ .action((name: string) => {
159
+ if (deleteProfile(name)) {
160
+ console.log(chalk.green(`Profile "${name}" deleted`));
161
+ } else {
162
+ console.log(chalk.yellow(`Cannot delete profile "${name}" (doesn't exist or is default)`));
163
+ }
164
+ });
165
+
166
+ profileCmd
167
+ .command('show')
168
+ .description('Show current profile')
169
+ .action(() => {
170
+ console.log(`Current profile: ${chalk.cyan(getCurrentProfile())}`);
171
+ console.log(`Config directory: ${chalk.gray(getConfigDir())}`);
172
+ });
173
+
174
+ // ============================================
175
+ // Events Commands
176
+ // ============================================
177
+
178
+ const eventsCmd = program.command('events').description('Event operations');
179
+
180
+ eventsCmd
181
+ .command('track')
182
+ .description('Track a single event')
183
+ .requiredOption('-t, --type <type>', 'Event type')
184
+ .option('-u, --user <userId>', 'User ID')
185
+ .option('-d, --device <deviceId>', 'Device ID')
186
+ .option('-p, --properties <json>', 'Event properties as JSON')
187
+ .action(async (options) => {
188
+ try {
189
+ if (!options.user && !options.device) {
190
+ console.error(chalk.red('Error: Either --user or --device is required'));
191
+ process.exit(1);
192
+ }
193
+
194
+ const client = getClient();
195
+ const event: Record<string, unknown> = {
196
+ event_type: options.type,
197
+ };
198
+
199
+ if (options.user) event.user_id = options.user;
200
+ if (options.device) event.device_id = options.device;
201
+ if (options.properties) {
202
+ try {
203
+ event.event_properties = JSON.parse(options.properties);
204
+ } catch {
205
+ console.error(chalk.red('Error: Invalid JSON for properties'));
206
+ process.exit(1);
207
+ }
208
+ }
209
+
210
+ const result = await client.trackEvent(event as import('../types').Event);
211
+ console.log(chalk.green('Event tracked successfully'));
212
+ console.log(` Code: ${result.code}`);
213
+ if (result.events_ingested) {
214
+ console.log(` Events ingested: ${result.events_ingested}`);
215
+ }
216
+ } catch (error) {
217
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
218
+ process.exit(1);
219
+ }
220
+ });
221
+
222
+ // ============================================
223
+ // Users Commands
224
+ // ============================================
225
+
226
+ const usersCmd = program.command('users').description('User operations');
227
+
228
+ usersCmd
229
+ .command('search')
230
+ .description('Search for users')
231
+ .argument('<query>', 'User ID or partial match')
232
+ .action(async (query: string) => {
233
+ try {
234
+ const client = getClient();
235
+ const result = await client.searchUsers(query);
236
+
237
+ if (result.matches.length === 0) {
238
+ console.log(chalk.gray('No users found'));
239
+ return;
240
+ }
241
+
242
+ console.log(chalk.bold(`Found ${result.matches.length} user(s):`));
243
+ for (const match of result.matches) {
244
+ console.log(`\n ${chalk.white(match.user_id || `Amplitude ID: ${match.amplitude_id}`)}`);
245
+ console.log(` Amplitude ID: ${chalk.gray(String(match.amplitude_id))}`);
246
+ if (match.platform) console.log(` Platform: ${match.platform}`);
247
+ if (match.country) console.log(` Country: ${match.country}`);
248
+ if (match.last_used) console.log(` Last used: ${match.last_used}`);
249
+ if (match.number_of_events) console.log(` Events: ${match.number_of_events}`);
250
+ }
251
+ } catch (error) {
252
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
253
+ process.exit(1);
254
+ }
255
+ });
256
+
257
+ usersCmd
258
+ .command('activity')
259
+ .description('Get user activity')
260
+ .option('-u, --user <userId>', 'User ID')
261
+ .option('-a, --amplitude-id <id>', 'Amplitude ID')
262
+ .option('-l, --limit <n>', 'Maximum events to return', '20')
263
+ .action(async (options) => {
264
+ try {
265
+ if (!options.user && !options.amplitudeId) {
266
+ console.error(chalk.red('Error: Either --user or --amplitude-id is required'));
267
+ process.exit(1);
268
+ }
269
+
270
+ const client = getClient();
271
+ const result = await client.getUserActivity({
272
+ user: options.user,
273
+ amplitude_id: options.amplitudeId ? parseInt(options.amplitudeId) : undefined,
274
+ limit: parseInt(options.limit),
275
+ });
276
+
277
+ if (result.userData) {
278
+ console.log(chalk.bold('User Data:'));
279
+ console.log(` User ID: ${result.userData.user_id || chalk.gray('N/A')}`);
280
+ console.log(` Sessions: ${result.userData.num_sessions || 0}`);
281
+ console.log(` Events: ${result.userData.num_events || 0}`);
282
+ console.log(` Revenue: $${result.userData.revenue || 0}`);
283
+ if (result.userData.first_used) console.log(` First used: ${result.userData.first_used}`);
284
+ if (result.userData.last_used) console.log(` Last used: ${result.userData.last_used}`);
285
+ }
286
+
287
+ if (result.events.length > 0) {
288
+ console.log(chalk.bold(`\nRecent Events (${result.events.length}):`));
289
+ for (const event of result.events.slice(0, 10)) {
290
+ console.log(`\n ${chalk.cyan(event.event_type || 'Unknown')}`);
291
+ if (event.event_time) console.log(` Time: ${event.event_time}`);
292
+ if (event.platform) console.log(` Platform: ${event.platform}`);
293
+ if (event.country) console.log(` Country: ${event.country}`);
294
+ }
295
+ }
296
+ } catch (error) {
297
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
298
+ process.exit(1);
299
+ }
300
+ });
301
+
302
+ // ============================================
303
+ // Cohorts Commands
304
+ // ============================================
305
+
306
+ const cohortsCmd = program.command('cohorts').description('Cohort operations');
307
+
308
+ cohortsCmd
309
+ .command('list')
310
+ .description('List all cohorts')
311
+ .action(async () => {
312
+ try {
313
+ const client = getClient();
314
+ const result = await client.listCohorts();
315
+
316
+ if (result.cohorts.length === 0) {
317
+ console.log(chalk.gray('No cohorts found'));
318
+ return;
319
+ }
320
+
321
+ console.log(chalk.bold(`Cohorts (${result.cohorts.length}):`));
322
+ for (const cohort of result.cohorts) {
323
+ console.log(`\n ${chalk.white(cohort.name)}`);
324
+ console.log(` ID: ${chalk.gray(cohort.id)}`);
325
+ if (cohort.description) console.log(` Description: ${cohort.description}`);
326
+ if (cohort.size !== undefined) console.log(` Size: ${cohort.size} users`);
327
+ console.log(` Archived: ${cohort.archived ? 'Yes' : 'No'}`);
328
+ if (cohort.last_computed) console.log(` Last computed: ${cohort.last_computed}`);
329
+ }
330
+ } catch (error) {
331
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
332
+ process.exit(1);
333
+ }
334
+ });
335
+
336
+ cohortsCmd
337
+ .command('get')
338
+ .description('Get cohort details')
339
+ .argument('<cohortId>', 'Cohort ID')
340
+ .action(async (cohortId: string) => {
341
+ try {
342
+ const client = getClient();
343
+ const cohort = await client.getCohort(cohortId);
344
+
345
+ console.log(chalk.bold('Cohort Details:'));
346
+ console.log(` Name: ${cohort.name}`);
347
+ console.log(` ID: ${chalk.gray(cohort.id)}`);
348
+ if (cohort.description) console.log(` Description: ${cohort.description}`);
349
+ if (cohort.size !== undefined) console.log(` Size: ${cohort.size} users`);
350
+ console.log(` Archived: ${cohort.archived ? 'Yes' : 'No'}`);
351
+ console.log(` Created: ${cohort.created_at}`);
352
+ if (cohort.last_modified) console.log(` Last modified: ${cohort.last_modified}`);
353
+ if (cohort.last_computed) console.log(` Last computed: ${cohort.last_computed}`);
354
+ } catch (error) {
355
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
356
+ process.exit(1);
357
+ }
358
+ });
359
+
360
+ cohortsCmd
361
+ .command('members')
362
+ .description('Get cohort members')
363
+ .argument('<cohortId>', 'Cohort ID')
364
+ .option('--props', 'Include user properties')
365
+ .action(async (cohortId: string, options) => {
366
+ try {
367
+ const client = getClient();
368
+ const result = await client.getCohortMembership(cohortId, {
369
+ props: options.props ? 1 : undefined,
370
+ });
371
+
372
+ console.log(chalk.bold('Cohort Membership:'));
373
+ console.log(` Cohort ID: ${result.cohort_id}`);
374
+ console.log(` Request ID: ${chalk.gray(result.request_id)}`);
375
+
376
+ if (result.user_ids && result.user_ids.length > 0) {
377
+ console.log(`\n User IDs (${result.user_ids.length}):`);
378
+ for (const userId of result.user_ids.slice(0, 20)) {
379
+ console.log(` ${userId}`);
380
+ }
381
+ if (result.user_ids.length > 20) {
382
+ console.log(chalk.gray(` ... and ${result.user_ids.length - 20} more`));
383
+ }
384
+ }
385
+
386
+ if (result.amplitude_ids && result.amplitude_ids.length > 0) {
387
+ console.log(`\n Amplitude IDs (${result.amplitude_ids.length}):`);
388
+ for (const ampId of result.amplitude_ids.slice(0, 20)) {
389
+ console.log(` ${ampId}`);
390
+ }
391
+ if (result.amplitude_ids.length > 20) {
392
+ console.log(chalk.gray(` ... and ${result.amplitude_ids.length - 20} more`));
393
+ }
394
+ }
395
+ } catch (error) {
396
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
397
+ process.exit(1);
398
+ }
399
+ });
400
+
401
+ // ============================================
402
+ // Charts Commands
403
+ // ============================================
404
+
405
+ const chartsCmd = program.command('charts').description('Chart operations');
406
+
407
+ chartsCmd
408
+ .command('get')
409
+ .description('Get chart data')
410
+ .argument('<chartId>', 'Chart ID')
411
+ .option('-s, --start <date>', 'Start date (YYYYMMDD)')
412
+ .option('-e, --end <date>', 'End date (YYYYMMDD)')
413
+ .action(async (chartId: string, options) => {
414
+ try {
415
+ const client = getClient();
416
+ const result = await client.getChartData(chartId, {
417
+ start: options.start,
418
+ end: options.end,
419
+ });
420
+
421
+ console.log(chalk.bold('Chart Data:'));
422
+ if (result.data && result.data.length > 0) {
423
+ for (const series of result.data) {
424
+ if (series.seriesLabels) {
425
+ console.log(`\n Series: ${series.seriesLabels.join(', ')}`);
426
+ }
427
+ if (series.xValues && series.seriesValues) {
428
+ console.log(' Values:');
429
+ for (let i = 0; i < series.xValues.length && i < 10; i++) {
430
+ const values = series.seriesValues.map(v => v[i] ?? '-').join(', ');
431
+ console.log(` ${series.xValues[i]}: ${values}`);
432
+ }
433
+ if (series.xValues.length > 10) {
434
+ console.log(chalk.gray(` ... and ${series.xValues.length - 10} more data points`));
435
+ }
436
+ }
437
+ }
438
+ } else {
439
+ console.log(chalk.gray(' No data available'));
440
+ }
441
+ } catch (error) {
442
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
443
+ process.exit(1);
444
+ }
445
+ });
446
+
447
+ // ============================================
448
+ // Taxonomy Commands
449
+ // ============================================
450
+
451
+ const taxonomyCmd = program.command('taxonomy').description('Event and property taxonomy');
452
+
453
+ taxonomyCmd
454
+ .command('events')
455
+ .description('List event types')
456
+ .action(async () => {
457
+ try {
458
+ const client = getClient();
459
+ const result = await client.listEventTypes();
460
+
461
+ if (result.data.length === 0) {
462
+ console.log(chalk.gray('No event types found'));
463
+ return;
464
+ }
465
+
466
+ console.log(chalk.bold(`Event Types (${result.data.length}):`));
467
+ for (const eventType of result.data) {
468
+ console.log(`\n ${chalk.cyan(eventType.event_type)}`);
469
+ if (eventType.display_name) console.log(` Display name: ${eventType.display_name}`);
470
+ if (eventType.description) console.log(` Description: ${eventType.description}`);
471
+ if (eventType.category) console.log(` Category: ${eventType.category.name}`);
472
+ }
473
+ } catch (error) {
474
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
475
+ process.exit(1);
476
+ }
477
+ });
478
+
479
+ taxonomyCmd
480
+ .command('event-properties')
481
+ .description('List properties for an event type')
482
+ .argument('<eventType>', 'Event type name')
483
+ .action(async (eventType: string) => {
484
+ try {
485
+ const client = getClient();
486
+ const result = await client.listEventProperties(eventType);
487
+
488
+ if (result.data.length === 0) {
489
+ console.log(chalk.gray('No properties found for this event type'));
490
+ return;
491
+ }
492
+
493
+ console.log(chalk.bold(`Properties for "${eventType}" (${result.data.length}):`));
494
+ for (const prop of result.data) {
495
+ console.log(`\n ${chalk.white(prop.event_property)}`);
496
+ if (prop.type) console.log(` Type: ${prop.type}`);
497
+ if (prop.description) console.log(` Description: ${prop.description}`);
498
+ if (prop.is_required) console.log(` Required: Yes`);
499
+ }
500
+ } catch (error) {
501
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
502
+ process.exit(1);
503
+ }
504
+ });
505
+
506
+ taxonomyCmd
507
+ .command('user-properties')
508
+ .description('List user properties')
509
+ .action(async () => {
510
+ try {
511
+ const client = getClient();
512
+ const result = await client.listUserProperties();
513
+
514
+ if (result.data.length === 0) {
515
+ console.log(chalk.gray('No user properties found'));
516
+ return;
517
+ }
518
+
519
+ console.log(chalk.bold(`User Properties (${result.data.length}):`));
520
+ for (const prop of result.data) {
521
+ console.log(`\n ${chalk.white(prop.user_property)}`);
522
+ if (prop.type) console.log(` Type: ${prop.type}`);
523
+ if (prop.description) console.log(` Description: ${prop.description}`);
524
+ }
525
+ } catch (error) {
526
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
527
+ process.exit(1);
528
+ }
529
+ });
530
+
531
+ // Parse and execute
532
+ program.parse();
@@ -0,0 +1,22 @@
1
+ // Amplitude Connector
2
+ // A TypeScript wrapper for the Amplitude API
3
+
4
+ export { Amplitude } from './api';
5
+ export { AmplitudeClient } from './api/client';
6
+ export * from './types';
7
+
8
+ // Export config utilities
9
+ export {
10
+ getApiKey,
11
+ setApiKey,
12
+ getSecretKey,
13
+ setSecretKey,
14
+ getCurrentProfile,
15
+ setCurrentProfile,
16
+ listProfiles,
17
+ createProfile,
18
+ deleteProfile,
19
+ loadProfile,
20
+ saveProfile,
21
+ clearConfig,
22
+ } from './utils/config';