@hasna/connectors 0.7.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (767) hide show
  1. package/bin/index.js +281 -1
  2. package/bin/mcp.js +281 -1
  3. package/bin/serve.js +280 -0
  4. package/connectors/connect-3scribe/.env.example +11 -0
  5. package/connectors/connect-3scribe/CLAUDE.md +82 -0
  6. package/connectors/connect-3scribe/README.md +193 -0
  7. package/connectors/connect-3scribe/package.json +51 -0
  8. package/connectors/connect-3scribe/scripts/release.ts +179 -0
  9. package/connectors/connect-3scribe/src/api/client.ts +207 -0
  10. package/connectors/connect-3scribe/src/api/index.ts +40 -0
  11. package/connectors/connect-3scribe/src/api/jobs.ts +44 -0
  12. package/connectors/connect-3scribe/src/cli/index.ts +278 -0
  13. package/connectors/connect-3scribe/src/index.ts +96 -0
  14. package/connectors/connect-3scribe/src/types/index.ts +232 -0
  15. package/connectors/connect-3scribe/src/utils/auth.ts +274 -0
  16. package/connectors/connect-3scribe/src/utils/bulk.ts +212 -0
  17. package/connectors/connect-3scribe/src/utils/config.ts +325 -0
  18. package/connectors/connect-3scribe/src/utils/output.ts +175 -0
  19. package/connectors/connect-3scribe/src/utils/settings.ts +114 -0
  20. package/connectors/connect-3scribe/src/utils/storage.ts +198 -0
  21. package/connectors/connect-3scribe/tsconfig.json +16 -0
  22. package/connectors/connect-7todos/.env.example +11 -0
  23. package/connectors/connect-7todos/CLAUDE.md +95 -0
  24. package/connectors/connect-7todos/README.md +193 -0
  25. package/connectors/connect-7todos/package.json +52 -0
  26. package/connectors/connect-7todos/scripts/release.ts +179 -0
  27. package/connectors/connect-7todos/src/api/client.ts +209 -0
  28. package/connectors/connect-7todos/src/api/index.ts +37 -0
  29. package/connectors/connect-7todos/src/api/tasks.ts +22 -0
  30. package/connectors/connect-7todos/src/cli/index.ts +261 -0
  31. package/connectors/connect-7todos/src/index.ts +96 -0
  32. package/connectors/connect-7todos/src/types/index.ts +210 -0
  33. package/connectors/connect-7todos/src/utils/auth.ts +274 -0
  34. package/connectors/connect-7todos/src/utils/bulk.ts +212 -0
  35. package/connectors/connect-7todos/src/utils/config.ts +325 -0
  36. package/connectors/connect-7todos/src/utils/output.ts +175 -0
  37. package/connectors/connect-7todos/src/utils/settings.ts +114 -0
  38. package/connectors/connect-7todos/src/utils/storage.ts +198 -0
  39. package/connectors/connect-7todos/tsconfig.json +16 -0
  40. package/connectors/connect-abstract/.env.example +11 -0
  41. package/connectors/connect-abstract/CLAUDE.md +111 -0
  42. package/connectors/connect-abstract/README.md +193 -0
  43. package/connectors/connect-abstract/package.json +53 -0
  44. package/connectors/connect-abstract/scripts/release.ts +179 -0
  45. package/connectors/connect-abstract/src/api/client.ts +197 -0
  46. package/connectors/connect-abstract/src/api/company.ts +24 -0
  47. package/connectors/connect-abstract/src/api/email.ts +24 -0
  48. package/connectors/connect-abstract/src/api/exchange.ts +64 -0
  49. package/connectors/connect-abstract/src/api/geolocation.ts +25 -0
  50. package/connectors/connect-abstract/src/api/index.ts +65 -0
  51. package/connectors/connect-abstract/src/api/phone.ts +16 -0
  52. package/connectors/connect-abstract/src/cli/index.ts +365 -0
  53. package/connectors/connect-abstract/src/index.ts +102 -0
  54. package/connectors/connect-abstract/src/types/index.ts +336 -0
  55. package/connectors/connect-abstract/src/utils/auth.ts +274 -0
  56. package/connectors/connect-abstract/src/utils/bulk.ts +212 -0
  57. package/connectors/connect-abstract/src/utils/config.ts +323 -0
  58. package/connectors/connect-abstract/src/utils/output.ts +175 -0
  59. package/connectors/connect-abstract/src/utils/settings.ts +114 -0
  60. package/connectors/connect-abstract/src/utils/storage.ts +198 -0
  61. package/connectors/connect-abstract/tsconfig.json +16 -0
  62. package/connectors/connect-abuselpdb/.env.example +11 -0
  63. package/connectors/connect-abuselpdb/CLAUDE.md +120 -0
  64. package/connectors/connect-abuselpdb/README.md +193 -0
  65. package/connectors/connect-abuselpdb/package.json +52 -0
  66. package/connectors/connect-abuselpdb/scripts/release.ts +179 -0
  67. package/connectors/connect-abuselpdb/src/api/blacklist.ts +32 -0
  68. package/connectors/connect-abuselpdb/src/api/check.ts +42 -0
  69. package/connectors/connect-abuselpdb/src/api/client.ts +182 -0
  70. package/connectors/connect-abuselpdb/src/api/index.ts +50 -0
  71. package/connectors/connect-abuselpdb/src/api/report.ts +59 -0
  72. package/connectors/connect-abuselpdb/src/cli/index.ts +339 -0
  73. package/connectors/connect-abuselpdb/src/index.ts +102 -0
  74. package/connectors/connect-abuselpdb/src/types/index.ts +302 -0
  75. package/connectors/connect-abuselpdb/src/utils/auth.ts +274 -0
  76. package/connectors/connect-abuselpdb/src/utils/bulk.ts +212 -0
  77. package/connectors/connect-abuselpdb/src/utils/config.ts +323 -0
  78. package/connectors/connect-abuselpdb/src/utils/output.ts +175 -0
  79. package/connectors/connect-abuselpdb/src/utils/settings.ts +114 -0
  80. package/connectors/connect-abuselpdb/src/utils/storage.ts +198 -0
  81. package/connectors/connect-abuselpdb/tsconfig.json +16 -0
  82. package/connectors/connect-accelo/.env.example +11 -0
  83. package/connectors/connect-accelo/CLAUDE.md +54 -0
  84. package/connectors/connect-accelo/README.md +193 -0
  85. package/connectors/connect-accelo/package.json +52 -0
  86. package/connectors/connect-accelo/scripts/release.ts +179 -0
  87. package/connectors/connect-accelo/src/api/activities.ts +34 -0
  88. package/connectors/connect-accelo/src/api/client.ts +182 -0
  89. package/connectors/connect-accelo/src/api/companies.ts +45 -0
  90. package/connectors/connect-accelo/src/api/contacts.ts +45 -0
  91. package/connectors/connect-accelo/src/api/index.ts +63 -0
  92. package/connectors/connect-accelo/src/api/issues.ts +45 -0
  93. package/connectors/connect-accelo/src/api/jobs.ts +45 -0
  94. package/connectors/connect-accelo/src/api/prospects.ts +45 -0
  95. package/connectors/connect-accelo/src/api/staff.ts +33 -0
  96. package/connectors/connect-accelo/src/api/tasks.ts +45 -0
  97. package/connectors/connect-accelo/src/cli/index.ts +629 -0
  98. package/connectors/connect-accelo/src/index.ts +112 -0
  99. package/connectors/connect-accelo/src/types/index.ts +443 -0
  100. package/connectors/connect-accelo/src/utils/auth.ts +274 -0
  101. package/connectors/connect-accelo/src/utils/bulk.ts +212 -0
  102. package/connectors/connect-accelo/src/utils/config.ts +326 -0
  103. package/connectors/connect-accelo/src/utils/output.ts +175 -0
  104. package/connectors/connect-accelo/src/utils/settings.ts +114 -0
  105. package/connectors/connect-accelo/src/utils/storage.ts +198 -0
  106. package/connectors/connect-accelo/tsconfig.json +16 -0
  107. package/connectors/connect-accredible/.env.example +11 -0
  108. package/connectors/connect-accredible/CLAUDE.md +63 -0
  109. package/connectors/connect-accredible/README.md +193 -0
  110. package/connectors/connect-accredible/package.json +53 -0
  111. package/connectors/connect-accredible/scripts/release.ts +179 -0
  112. package/connectors/connect-accredible/src/api/client.ts +178 -0
  113. package/connectors/connect-accredible/src/api/credentials.ts +33 -0
  114. package/connectors/connect-accredible/src/api/designs.ts +10 -0
  115. package/connectors/connect-accredible/src/api/evidence.ts +13 -0
  116. package/connectors/connect-accredible/src/api/groups.ts +32 -0
  117. package/connectors/connect-accredible/src/api/index.ts +50 -0
  118. package/connectors/connect-accredible/src/api/sso.ts +10 -0
  119. package/connectors/connect-accredible/src/cli/index.ts +463 -0
  120. package/connectors/connect-accredible/src/index.ts +109 -0
  121. package/connectors/connect-accredible/src/types/index.ts +365 -0
  122. package/connectors/connect-accredible/src/utils/auth.ts +274 -0
  123. package/connectors/connect-accredible/src/utils/bulk.ts +212 -0
  124. package/connectors/connect-accredible/src/utils/config.ts +326 -0
  125. package/connectors/connect-accredible/src/utils/output.ts +175 -0
  126. package/connectors/connect-accredible/src/utils/settings.ts +114 -0
  127. package/connectors/connect-accredible/src/utils/storage.ts +198 -0
  128. package/connectors/connect-accredible/tsconfig.json +16 -0
  129. package/connectors/connect-accurai/.env.example +11 -0
  130. package/connectors/connect-accurai/CLAUDE.md +59 -0
  131. package/connectors/connect-accurai/README.md +193 -0
  132. package/connectors/connect-accurai/package.json +54 -0
  133. package/connectors/connect-accurai/scripts/release.ts +179 -0
  134. package/connectors/connect-accurai/src/api/client.ts +177 -0
  135. package/connectors/connect-accurai/src/api/documents.ts +22 -0
  136. package/connectors/connect-accurai/src/api/index.ts +42 -0
  137. package/connectors/connect-accurai/src/api/models.ts +14 -0
  138. package/connectors/connect-accurai/src/api/predictions.ts +18 -0
  139. package/connectors/connect-accurai/src/cli/index.ts +372 -0
  140. package/connectors/connect-accurai/src/index.ts +107 -0
  141. package/connectors/connect-accurai/src/types/index.ts +256 -0
  142. package/connectors/connect-accurai/src/utils/auth.ts +274 -0
  143. package/connectors/connect-accurai/src/utils/bulk.ts +212 -0
  144. package/connectors/connect-accurai/src/utils/config.ts +326 -0
  145. package/connectors/connect-accurai/src/utils/output.ts +175 -0
  146. package/connectors/connect-accurai/src/utils/settings.ts +114 -0
  147. package/connectors/connect-accurai/src/utils/storage.ts +198 -0
  148. package/connectors/connect-accurai/tsconfig.json +16 -0
  149. package/connectors/connect-accuranker/.env.example +11 -0
  150. package/connectors/connect-accuranker/CLAUDE.md +85 -0
  151. package/connectors/connect-accuranker/README.md +193 -0
  152. package/connectors/connect-accuranker/package.json +54 -0
  153. package/connectors/connect-accuranker/scripts/release.ts +179 -0
  154. package/connectors/connect-accuranker/src/api/accounts.ts +14 -0
  155. package/connectors/connect-accuranker/src/api/client.ts +192 -0
  156. package/connectors/connect-accuranker/src/api/domains.ts +26 -0
  157. package/connectors/connect-accuranker/src/api/groups.ts +22 -0
  158. package/connectors/connect-accuranker/src/api/index.ts +54 -0
  159. package/connectors/connect-accuranker/src/api/keywords.ts +30 -0
  160. package/connectors/connect-accuranker/src/api/landing-pages.ts +14 -0
  161. package/connectors/connect-accuranker/src/api/tags.ts +10 -0
  162. package/connectors/connect-accuranker/src/cli/index.ts +550 -0
  163. package/connectors/connect-accuranker/src/index.ts +110 -0
  164. package/connectors/connect-accuranker/src/types/index.ts +342 -0
  165. package/connectors/connect-accuranker/src/utils/auth.ts +274 -0
  166. package/connectors/connect-accuranker/src/utils/bulk.ts +212 -0
  167. package/connectors/connect-accuranker/src/utils/config.ts +326 -0
  168. package/connectors/connect-accuranker/src/utils/output.ts +175 -0
  169. package/connectors/connect-accuranker/src/utils/settings.ts +114 -0
  170. package/connectors/connect-accuranker/src/utils/storage.ts +198 -0
  171. package/connectors/connect-accuranker/tsconfig.json +16 -0
  172. package/connectors/connect-acquire/.env.example +11 -0
  173. package/connectors/connect-acquire/CLAUDE.md +91 -0
  174. package/connectors/connect-acquire/README.md +193 -0
  175. package/connectors/connect-acquire/package.json +52 -0
  176. package/connectors/connect-acquire/scripts/release.ts +179 -0
  177. package/connectors/connect-acquire/src/api/analytics.ts +18 -0
  178. package/connectors/connect-acquire/src/api/cases.ts +45 -0
  179. package/connectors/connect-acquire/src/api/client.ts +180 -0
  180. package/connectors/connect-acquire/src/api/companies.ts +33 -0
  181. package/connectors/connect-acquire/src/api/contacts.ts +45 -0
  182. package/connectors/connect-acquire/src/api/index.ts +55 -0
  183. package/connectors/connect-acquire/src/api/knowledge-base.ts +14 -0
  184. package/connectors/connect-acquire/src/api/notes.ts +24 -0
  185. package/connectors/connect-acquire/src/cli/index.ts +804 -0
  186. package/connectors/connect-acquire/src/index.ts +111 -0
  187. package/connectors/connect-acquire/src/types/index.ts +470 -0
  188. package/connectors/connect-acquire/src/utils/auth.ts +274 -0
  189. package/connectors/connect-acquire/src/utils/bulk.ts +212 -0
  190. package/connectors/connect-acquire/src/utils/config.ts +323 -0
  191. package/connectors/connect-acquire/src/utils/output.ts +175 -0
  192. package/connectors/connect-acquire/src/utils/settings.ts +114 -0
  193. package/connectors/connect-acquire/src/utils/storage.ts +198 -0
  194. package/connectors/connect-acquire/tsconfig.json +16 -0
  195. package/connectors/connect-actionnetwork/.env.example +11 -0
  196. package/connectors/connect-actionnetwork/CLAUDE.md +94 -0
  197. package/connectors/connect-actionnetwork/README.md +193 -0
  198. package/connectors/connect-actionnetwork/package.json +53 -0
  199. package/connectors/connect-actionnetwork/scripts/release.ts +179 -0
  200. package/connectors/connect-actionnetwork/src/api/advocacy.ts +33 -0
  201. package/connectors/connect-actionnetwork/src/api/client.ts +173 -0
  202. package/connectors/connect-actionnetwork/src/api/events.ts +37 -0
  203. package/connectors/connect-actionnetwork/src/api/forms.ts +37 -0
  204. package/connectors/connect-actionnetwork/src/api/fundraising.ts +37 -0
  205. package/connectors/connect-actionnetwork/src/api/index.ts +62 -0
  206. package/connectors/connect-actionnetwork/src/api/messages.ts +25 -0
  207. package/connectors/connect-actionnetwork/src/api/people.ts +26 -0
  208. package/connectors/connect-actionnetwork/src/api/petitions.ts +37 -0
  209. package/connectors/connect-actionnetwork/src/api/tags.ts +36 -0
  210. package/connectors/connect-actionnetwork/src/cli/index.ts +1111 -0
  211. package/connectors/connect-actionnetwork/src/index.ts +113 -0
  212. package/connectors/connect-actionnetwork/src/types/index.ts +529 -0
  213. package/connectors/connect-actionnetwork/src/utils/auth.ts +274 -0
  214. package/connectors/connect-actionnetwork/src/utils/bulk.ts +212 -0
  215. package/connectors/connect-actionnetwork/src/utils/config.ts +325 -0
  216. package/connectors/connect-actionnetwork/src/utils/output.ts +175 -0
  217. package/connectors/connect-actionnetwork/src/utils/settings.ts +114 -0
  218. package/connectors/connect-actionnetwork/src/utils/storage.ts +198 -0
  219. package/connectors/connect-actionnetwork/tsconfig.json +16 -0
  220. package/connectors/connect-activetrail/.env.example +11 -0
  221. package/connectors/connect-activetrail/CLAUDE.md +65 -0
  222. package/connectors/connect-activetrail/README.md +193 -0
  223. package/connectors/connect-activetrail/package.json +53 -0
  224. package/connectors/connect-activetrail/scripts/release.ts +179 -0
  225. package/connectors/connect-activetrail/src/api/automations.ts +33 -0
  226. package/connectors/connect-activetrail/src/api/campaigns.ts +52 -0
  227. package/connectors/connect-activetrail/src/api/client.ts +186 -0
  228. package/connectors/connect-activetrail/src/api/contacts.ts +55 -0
  229. package/connectors/connect-activetrail/src/api/groups.ts +44 -0
  230. package/connectors/connect-activetrail/src/api/index.ts +57 -0
  231. package/connectors/connect-activetrail/src/api/reports.ts +52 -0
  232. package/connectors/connect-activetrail/src/api/templates.ts +33 -0
  233. package/connectors/connect-activetrail/src/api/webhooks.ts +29 -0
  234. package/connectors/connect-activetrail/src/cli/index.ts +989 -0
  235. package/connectors/connect-activetrail/src/index.ts +112 -0
  236. package/connectors/connect-activetrail/src/types/index.ts +389 -0
  237. package/connectors/connect-activetrail/src/utils/auth.ts +274 -0
  238. package/connectors/connect-activetrail/src/utils/bulk.ts +212 -0
  239. package/connectors/connect-activetrail/src/utils/config.ts +326 -0
  240. package/connectors/connect-activetrail/src/utils/output.ts +175 -0
  241. package/connectors/connect-activetrail/src/utils/settings.ts +114 -0
  242. package/connectors/connect-activetrail/src/utils/storage.ts +198 -0
  243. package/connectors/connect-activetrail/tsconfig.json +16 -0
  244. package/connectors/connect-adalo/.env.example +11 -0
  245. package/connectors/connect-adalo/CLAUDE.md +59 -0
  246. package/connectors/connect-adalo/README.md +193 -0
  247. package/connectors/connect-adalo/package.json +52 -0
  248. package/connectors/connect-adalo/scripts/release.ts +179 -0
  249. package/connectors/connect-adalo/src/api/client.ts +180 -0
  250. package/connectors/connect-adalo/src/api/index.ts +37 -0
  251. package/connectors/connect-adalo/src/api/notifications.ts +22 -0
  252. package/connectors/connect-adalo/src/api/records.ts +44 -0
  253. package/connectors/connect-adalo/src/cli/index.ts +320 -0
  254. package/connectors/connect-adalo/src/index.ts +103 -0
  255. package/connectors/connect-adalo/src/types/index.ts +220 -0
  256. package/connectors/connect-adalo/src/utils/auth.ts +274 -0
  257. package/connectors/connect-adalo/src/utils/bulk.ts +212 -0
  258. package/connectors/connect-adalo/src/utils/config.ts +326 -0
  259. package/connectors/connect-adalo/src/utils/output.ts +175 -0
  260. package/connectors/connect-adalo/src/utils/settings.ts +114 -0
  261. package/connectors/connect-adalo/src/utils/storage.ts +198 -0
  262. package/connectors/connect-adalo/tsconfig.json +16 -0
  263. package/connectors/connect-adroll/.env.example +11 -0
  264. package/connectors/connect-adroll/CLAUDE.md +75 -0
  265. package/connectors/connect-adroll/README.md +193 -0
  266. package/connectors/connect-adroll/package.json +52 -0
  267. package/connectors/connect-adroll/scripts/release.ts +179 -0
  268. package/connectors/connect-adroll/src/api/adgroups.ts +31 -0
  269. package/connectors/connect-adroll/src/api/ads.ts +34 -0
  270. package/connectors/connect-adroll/src/api/advertisables.ts +34 -0
  271. package/connectors/connect-adroll/src/api/campaigns.ts +34 -0
  272. package/connectors/connect-adroll/src/api/client.ts +177 -0
  273. package/connectors/connect-adroll/src/api/index.ts +54 -0
  274. package/connectors/connect-adroll/src/api/organizations.ts +17 -0
  275. package/connectors/connect-adroll/src/api/segments.ts +20 -0
  276. package/connectors/connect-adroll/src/cli/index.ts +547 -0
  277. package/connectors/connect-adroll/src/index.ts +111 -0
  278. package/connectors/connect-adroll/src/types/index.ts +307 -0
  279. package/connectors/connect-adroll/src/utils/auth.ts +274 -0
  280. package/connectors/connect-adroll/src/utils/bulk.ts +212 -0
  281. package/connectors/connect-adroll/src/utils/config.ts +323 -0
  282. package/connectors/connect-adroll/src/utils/output.ts +175 -0
  283. package/connectors/connect-adroll/src/utils/settings.ts +114 -0
  284. package/connectors/connect-adroll/src/utils/storage.ts +198 -0
  285. package/connectors/connect-adroll/tsconfig.json +16 -0
  286. package/connectors/connect-affinity/.env.example +11 -0
  287. package/connectors/connect-affinity/CLAUDE.md +60 -0
  288. package/connectors/connect-affinity/README.md +193 -0
  289. package/connectors/connect-affinity/package.json +52 -0
  290. package/connectors/connect-affinity/scripts/release.ts +179 -0
  291. package/connectors/connect-affinity/src/api/client.ts +176 -0
  292. package/connectors/connect-affinity/src/api/fields.ts +18 -0
  293. package/connectors/connect-affinity/src/api/index.ts +54 -0
  294. package/connectors/connect-affinity/src/api/lists.ts +34 -0
  295. package/connectors/connect-affinity/src/api/notes.ts +26 -0
  296. package/connectors/connect-affinity/src/api/opportunities.ts +30 -0
  297. package/connectors/connect-affinity/src/api/organizations.ts +30 -0
  298. package/connectors/connect-affinity/src/api/persons.ts +30 -0
  299. package/connectors/connect-affinity/src/cli/index.ts +631 -0
  300. package/connectors/connect-affinity/src/index.ts +111 -0
  301. package/connectors/connect-affinity/src/types/index.ts +342 -0
  302. package/connectors/connect-affinity/src/utils/auth.ts +274 -0
  303. package/connectors/connect-affinity/src/utils/bulk.ts +212 -0
  304. package/connectors/connect-affinity/src/utils/config.ts +326 -0
  305. package/connectors/connect-affinity/src/utils/output.ts +175 -0
  306. package/connectors/connect-affinity/src/utils/settings.ts +114 -0
  307. package/connectors/connect-affinity/src/utils/storage.ts +198 -0
  308. package/connectors/connect-affinity/tsconfig.json +16 -0
  309. package/connectors/connect-agent/.env.example +11 -0
  310. package/connectors/connect-agent/CLAUDE.md +59 -0
  311. package/connectors/connect-agent/README.md +193 -0
  312. package/connectors/connect-agent/package.json +53 -0
  313. package/connectors/connect-agent/scripts/release.ts +179 -0
  314. package/connectors/connect-agent/src/api/actions.ts +48 -0
  315. package/connectors/connect-agent/src/api/client.ts +176 -0
  316. package/connectors/connect-agent/src/api/index.ts +34 -0
  317. package/connectors/connect-agent/src/cli/index.ts +340 -0
  318. package/connectors/connect-agent/src/index.ts +103 -0
  319. package/connectors/connect-agent/src/types/index.ts +268 -0
  320. package/connectors/connect-agent/src/utils/auth.ts +274 -0
  321. package/connectors/connect-agent/src/utils/bulk.ts +212 -0
  322. package/connectors/connect-agent/src/utils/config.ts +323 -0
  323. package/connectors/connect-agent/src/utils/output.ts +175 -0
  324. package/connectors/connect-agent/src/utils/settings.ts +114 -0
  325. package/connectors/connect-agent/src/utils/storage.ts +198 -0
  326. package/connectors/connect-agent/tsconfig.json +16 -0
  327. package/connectors/connect-agilecrm/.env.example +11 -0
  328. package/connectors/connect-agilecrm/CLAUDE.md +59 -0
  329. package/connectors/connect-agilecrm/README.md +193 -0
  330. package/connectors/connect-agilecrm/package.json +52 -0
  331. package/connectors/connect-agilecrm/scripts/release.ts +179 -0
  332. package/connectors/connect-agilecrm/src/api/client.ts +189 -0
  333. package/connectors/connect-agilecrm/src/api/contacts.ts +84 -0
  334. package/connectors/connect-agilecrm/src/api/deals.ts +56 -0
  335. package/connectors/connect-agilecrm/src/api/index.ts +54 -0
  336. package/connectors/connect-agilecrm/src/api/notes.ts +26 -0
  337. package/connectors/connect-agilecrm/src/api/tasks.ts +38 -0
  338. package/connectors/connect-agilecrm/src/cli/index.ts +589 -0
  339. package/connectors/connect-agilecrm/src/index.ts +103 -0
  340. package/connectors/connect-agilecrm/src/types/index.ts +360 -0
  341. package/connectors/connect-agilecrm/src/utils/auth.ts +274 -0
  342. package/connectors/connect-agilecrm/src/utils/bulk.ts +212 -0
  343. package/connectors/connect-agilecrm/src/utils/config.ts +323 -0
  344. package/connectors/connect-agilecrm/src/utils/output.ts +175 -0
  345. package/connectors/connect-agilecrm/src/utils/settings.ts +114 -0
  346. package/connectors/connect-agilecrm/src/utils/storage.ts +198 -0
  347. package/connectors/connect-agilecrm/tsconfig.json +16 -0
  348. package/connectors/connect-aiagenttool/.env.example +11 -0
  349. package/connectors/connect-aiagenttool/CLAUDE.md +272 -0
  350. package/connectors/connect-aiagenttool/README.md +193 -0
  351. package/connectors/connect-aiagenttool/package.json +51 -0
  352. package/connectors/connect-aiagenttool/scripts/release.ts +179 -0
  353. package/connectors/connect-aiagenttool/src/api/client.ts +213 -0
  354. package/connectors/connect-aiagenttool/src/api/example.ts +48 -0
  355. package/connectors/connect-aiagenttool/src/api/index.ts +51 -0
  356. package/connectors/connect-aiagenttool/src/cli/index.ts +254 -0
  357. package/connectors/connect-aiagenttool/src/index.ts +103 -0
  358. package/connectors/connect-aiagenttool/src/types/index.ts +237 -0
  359. package/connectors/connect-aiagenttool/src/utils/auth.ts +274 -0
  360. package/connectors/connect-aiagenttool/src/utils/bulk.ts +212 -0
  361. package/connectors/connect-aiagenttool/src/utils/config.ts +326 -0
  362. package/connectors/connect-aiagenttool/src/utils/output.ts +175 -0
  363. package/connectors/connect-aiagenttool/src/utils/settings.ts +114 -0
  364. package/connectors/connect-aiagenttool/src/utils/storage.ts +198 -0
  365. package/connectors/connect-aiagenttool/tsconfig.json +16 -0
  366. package/connectors/connect-airbrake/.env.example +11 -0
  367. package/connectors/connect-airbrake/CLAUDE.md +272 -0
  368. package/connectors/connect-airbrake/README.md +193 -0
  369. package/connectors/connect-airbrake/package.json +51 -0
  370. package/connectors/connect-airbrake/scripts/release.ts +179 -0
  371. package/connectors/connect-airbrake/src/api/client.ts +213 -0
  372. package/connectors/connect-airbrake/src/api/example.ts +48 -0
  373. package/connectors/connect-airbrake/src/api/index.ts +51 -0
  374. package/connectors/connect-airbrake/src/cli/index.ts +254 -0
  375. package/connectors/connect-airbrake/src/index.ts +103 -0
  376. package/connectors/connect-airbrake/src/types/index.ts +237 -0
  377. package/connectors/connect-airbrake/src/utils/auth.ts +274 -0
  378. package/connectors/connect-airbrake/src/utils/bulk.ts +212 -0
  379. package/connectors/connect-airbrake/src/utils/config.ts +326 -0
  380. package/connectors/connect-airbrake/src/utils/output.ts +175 -0
  381. package/connectors/connect-airbrake/src/utils/settings.ts +114 -0
  382. package/connectors/connect-airbrake/src/utils/storage.ts +198 -0
  383. package/connectors/connect-airbrake/tsconfig.json +16 -0
  384. package/connectors/connect-airnow/.env.example +11 -0
  385. package/connectors/connect-airnow/CLAUDE.md +272 -0
  386. package/connectors/connect-airnow/README.md +193 -0
  387. package/connectors/connect-airnow/package.json +51 -0
  388. package/connectors/connect-airnow/scripts/release.ts +179 -0
  389. package/connectors/connect-airnow/src/api/client.ts +213 -0
  390. package/connectors/connect-airnow/src/api/example.ts +48 -0
  391. package/connectors/connect-airnow/src/api/index.ts +51 -0
  392. package/connectors/connect-airnow/src/cli/index.ts +254 -0
  393. package/connectors/connect-airnow/src/index.ts +103 -0
  394. package/connectors/connect-airnow/src/types/index.ts +237 -0
  395. package/connectors/connect-airnow/src/utils/auth.ts +274 -0
  396. package/connectors/connect-airnow/src/utils/bulk.ts +212 -0
  397. package/connectors/connect-airnow/src/utils/config.ts +326 -0
  398. package/connectors/connect-airnow/src/utils/output.ts +175 -0
  399. package/connectors/connect-airnow/src/utils/settings.ts +114 -0
  400. package/connectors/connect-airnow/src/utils/storage.ts +198 -0
  401. package/connectors/connect-airnow/tsconfig.json +16 -0
  402. package/connectors/connect-airtop/.env.example +11 -0
  403. package/connectors/connect-airtop/CLAUDE.md +272 -0
  404. package/connectors/connect-airtop/README.md +193 -0
  405. package/connectors/connect-airtop/package.json +51 -0
  406. package/connectors/connect-airtop/scripts/release.ts +179 -0
  407. package/connectors/connect-airtop/src/api/client.ts +213 -0
  408. package/connectors/connect-airtop/src/api/example.ts +48 -0
  409. package/connectors/connect-airtop/src/api/index.ts +51 -0
  410. package/connectors/connect-airtop/src/cli/index.ts +254 -0
  411. package/connectors/connect-airtop/src/index.ts +103 -0
  412. package/connectors/connect-airtop/src/types/index.ts +237 -0
  413. package/connectors/connect-airtop/src/utils/auth.ts +274 -0
  414. package/connectors/connect-airtop/src/utils/bulk.ts +212 -0
  415. package/connectors/connect-airtop/src/utils/config.ts +326 -0
  416. package/connectors/connect-airtop/src/utils/output.ts +175 -0
  417. package/connectors/connect-airtop/src/utils/settings.ts +114 -0
  418. package/connectors/connect-airtop/src/utils/storage.ts +198 -0
  419. package/connectors/connect-airtop/tsconfig.json +16 -0
  420. package/connectors/connect-aitableai/.env.example +11 -0
  421. package/connectors/connect-aitableai/CLAUDE.md +272 -0
  422. package/connectors/connect-aitableai/README.md +193 -0
  423. package/connectors/connect-aitableai/package.json +51 -0
  424. package/connectors/connect-aitableai/scripts/release.ts +179 -0
  425. package/connectors/connect-aitableai/src/api/client.ts +213 -0
  426. package/connectors/connect-aitableai/src/api/example.ts +48 -0
  427. package/connectors/connect-aitableai/src/api/index.ts +51 -0
  428. package/connectors/connect-aitableai/src/cli/index.ts +254 -0
  429. package/connectors/connect-aitableai/src/index.ts +103 -0
  430. package/connectors/connect-aitableai/src/types/index.ts +237 -0
  431. package/connectors/connect-aitableai/src/utils/auth.ts +274 -0
  432. package/connectors/connect-aitableai/src/utils/bulk.ts +212 -0
  433. package/connectors/connect-aitableai/src/utils/config.ts +326 -0
  434. package/connectors/connect-aitableai/src/utils/output.ts +175 -0
  435. package/connectors/connect-aitableai/src/utils/settings.ts +114 -0
  436. package/connectors/connect-aitableai/src/utils/storage.ts +198 -0
  437. package/connectors/connect-aitableai/tsconfig.json +16 -0
  438. package/connectors/connect-alchemy/.env.example +11 -0
  439. package/connectors/connect-alchemy/CLAUDE.md +272 -0
  440. package/connectors/connect-alchemy/README.md +193 -0
  441. package/connectors/connect-alchemy/package.json +51 -0
  442. package/connectors/connect-alchemy/scripts/release.ts +179 -0
  443. package/connectors/connect-alchemy/src/api/client.ts +213 -0
  444. package/connectors/connect-alchemy/src/api/example.ts +48 -0
  445. package/connectors/connect-alchemy/src/api/index.ts +51 -0
  446. package/connectors/connect-alchemy/src/cli/index.ts +254 -0
  447. package/connectors/connect-alchemy/src/index.ts +103 -0
  448. package/connectors/connect-alchemy/src/types/index.ts +237 -0
  449. package/connectors/connect-alchemy/src/utils/auth.ts +274 -0
  450. package/connectors/connect-alchemy/src/utils/bulk.ts +212 -0
  451. package/connectors/connect-alchemy/src/utils/config.ts +326 -0
  452. package/connectors/connect-alchemy/src/utils/output.ts +175 -0
  453. package/connectors/connect-alchemy/src/utils/settings.ts +114 -0
  454. package/connectors/connect-alchemy/src/utils/storage.ts +198 -0
  455. package/connectors/connect-alchemy/tsconfig.json +16 -0
  456. package/connectors/connect-alerty/.env.example +11 -0
  457. package/connectors/connect-alerty/CLAUDE.md +272 -0
  458. package/connectors/connect-alerty/README.md +193 -0
  459. package/connectors/connect-alerty/package.json +51 -0
  460. package/connectors/connect-alerty/scripts/release.ts +179 -0
  461. package/connectors/connect-alerty/src/api/client.ts +213 -0
  462. package/connectors/connect-alerty/src/api/example.ts +48 -0
  463. package/connectors/connect-alerty/src/api/index.ts +51 -0
  464. package/connectors/connect-alerty/src/cli/index.ts +254 -0
  465. package/connectors/connect-alerty/src/index.ts +103 -0
  466. package/connectors/connect-alerty/src/types/index.ts +237 -0
  467. package/connectors/connect-alerty/src/utils/auth.ts +274 -0
  468. package/connectors/connect-alerty/src/utils/bulk.ts +212 -0
  469. package/connectors/connect-alerty/src/utils/config.ts +326 -0
  470. package/connectors/connect-alerty/src/utils/output.ts +175 -0
  471. package/connectors/connect-alerty/src/utils/settings.ts +114 -0
  472. package/connectors/connect-alerty/src/utils/storage.ts +198 -0
  473. package/connectors/connect-alerty/tsconfig.json +16 -0
  474. package/connectors/connect-alienvault/.env.example +11 -0
  475. package/connectors/connect-alienvault/CLAUDE.md +272 -0
  476. package/connectors/connect-alienvault/README.md +193 -0
  477. package/connectors/connect-alienvault/package.json +51 -0
  478. package/connectors/connect-alienvault/scripts/release.ts +179 -0
  479. package/connectors/connect-alienvault/src/api/client.ts +213 -0
  480. package/connectors/connect-alienvault/src/api/example.ts +48 -0
  481. package/connectors/connect-alienvault/src/api/index.ts +51 -0
  482. package/connectors/connect-alienvault/src/cli/index.ts +254 -0
  483. package/connectors/connect-alienvault/src/index.ts +103 -0
  484. package/connectors/connect-alienvault/src/types/index.ts +237 -0
  485. package/connectors/connect-alienvault/src/utils/auth.ts +274 -0
  486. package/connectors/connect-alienvault/src/utils/bulk.ts +212 -0
  487. package/connectors/connect-alienvault/src/utils/config.ts +326 -0
  488. package/connectors/connect-alienvault/src/utils/output.ts +175 -0
  489. package/connectors/connect-alienvault/src/utils/settings.ts +114 -0
  490. package/connectors/connect-alienvault/src/utils/storage.ts +198 -0
  491. package/connectors/connect-alienvault/tsconfig.json +16 -0
  492. package/connectors/connect-alphamoon/.env.example +11 -0
  493. package/connectors/connect-alphamoon/CLAUDE.md +272 -0
  494. package/connectors/connect-alphamoon/README.md +193 -0
  495. package/connectors/connect-alphamoon/package.json +51 -0
  496. package/connectors/connect-alphamoon/scripts/release.ts +179 -0
  497. package/connectors/connect-alphamoon/src/api/client.ts +213 -0
  498. package/connectors/connect-alphamoon/src/api/example.ts +48 -0
  499. package/connectors/connect-alphamoon/src/api/index.ts +51 -0
  500. package/connectors/connect-alphamoon/src/cli/index.ts +254 -0
  501. package/connectors/connect-alphamoon/src/index.ts +103 -0
  502. package/connectors/connect-alphamoon/src/types/index.ts +237 -0
  503. package/connectors/connect-alphamoon/src/utils/auth.ts +274 -0
  504. package/connectors/connect-alphamoon/src/utils/bulk.ts +212 -0
  505. package/connectors/connect-alphamoon/src/utils/config.ts +326 -0
  506. package/connectors/connect-alphamoon/src/utils/output.ts +175 -0
  507. package/connectors/connect-alphamoon/src/utils/settings.ts +114 -0
  508. package/connectors/connect-alphamoon/src/utils/storage.ts +198 -0
  509. package/connectors/connect-alphamoon/tsconfig.json +16 -0
  510. package/connectors/connect-alttextai/.env.example +11 -0
  511. package/connectors/connect-alttextai/CLAUDE.md +272 -0
  512. package/connectors/connect-alttextai/README.md +193 -0
  513. package/connectors/connect-alttextai/package.json +51 -0
  514. package/connectors/connect-alttextai/scripts/release.ts +179 -0
  515. package/connectors/connect-alttextai/src/api/client.ts +213 -0
  516. package/connectors/connect-alttextai/src/api/example.ts +48 -0
  517. package/connectors/connect-alttextai/src/api/index.ts +51 -0
  518. package/connectors/connect-alttextai/src/cli/index.ts +254 -0
  519. package/connectors/connect-alttextai/src/index.ts +103 -0
  520. package/connectors/connect-alttextai/src/types/index.ts +237 -0
  521. package/connectors/connect-alttextai/src/utils/auth.ts +274 -0
  522. package/connectors/connect-alttextai/src/utils/bulk.ts +212 -0
  523. package/connectors/connect-alttextai/src/utils/config.ts +326 -0
  524. package/connectors/connect-alttextai/src/utils/output.ts +175 -0
  525. package/connectors/connect-alttextai/src/utils/settings.ts +114 -0
  526. package/connectors/connect-alttextai/src/utils/storage.ts +198 -0
  527. package/connectors/connect-alttextai/tsconfig.json +16 -0
  528. package/connectors/connect-amadeus/package.json +49 -0
  529. package/connectors/connect-amadeus/src/api/client.ts +135 -0
  530. package/connectors/connect-amadeus/src/api/flights.ts +129 -0
  531. package/connectors/connect-amadeus/src/api/index.ts +34 -0
  532. package/connectors/connect-amadeus/src/cli/index.ts +372 -0
  533. package/connectors/connect-amadeus/src/index.ts +30 -0
  534. package/connectors/connect-amadeus/src/types/index.ts +209 -0
  535. package/connectors/connect-amadeus/src/utils/config.ts +135 -0
  536. package/connectors/connect-amadeus/src/utils/output.ts +124 -0
  537. package/connectors/connect-amadeus/tsconfig.json +15 -0
  538. package/connectors/connect-amazon/.env.example +11 -0
  539. package/connectors/connect-amazon/CLAUDE.md +272 -0
  540. package/connectors/connect-amazon/README.md +193 -0
  541. package/connectors/connect-amazon/package.json +51 -0
  542. package/connectors/connect-amazon/scripts/release.ts +179 -0
  543. package/connectors/connect-amazon/src/api/client.ts +213 -0
  544. package/connectors/connect-amazon/src/api/example.ts +48 -0
  545. package/connectors/connect-amazon/src/api/index.ts +51 -0
  546. package/connectors/connect-amazon/src/cli/index.ts +254 -0
  547. package/connectors/connect-amazon/src/index.ts +103 -0
  548. package/connectors/connect-amazon/src/types/index.ts +237 -0
  549. package/connectors/connect-amazon/src/utils/auth.ts +274 -0
  550. package/connectors/connect-amazon/src/utils/bulk.ts +212 -0
  551. package/connectors/connect-amazon/src/utils/config.ts +326 -0
  552. package/connectors/connect-amazon/src/utils/output.ts +175 -0
  553. package/connectors/connect-amazon/src/utils/settings.ts +114 -0
  554. package/connectors/connect-amazon/src/utils/storage.ts +198 -0
  555. package/connectors/connect-amazon/tsconfig.json +16 -0
  556. package/connectors/connect-amilia/.env.example +11 -0
  557. package/connectors/connect-amilia/CLAUDE.md +272 -0
  558. package/connectors/connect-amilia/README.md +193 -0
  559. package/connectors/connect-amilia/package.json +51 -0
  560. package/connectors/connect-amilia/scripts/release.ts +179 -0
  561. package/connectors/connect-amilia/src/api/client.ts +213 -0
  562. package/connectors/connect-amilia/src/api/example.ts +48 -0
  563. package/connectors/connect-amilia/src/api/index.ts +51 -0
  564. package/connectors/connect-amilia/src/cli/index.ts +254 -0
  565. package/connectors/connect-amilia/src/index.ts +103 -0
  566. package/connectors/connect-amilia/src/types/index.ts +237 -0
  567. package/connectors/connect-amilia/src/utils/auth.ts +274 -0
  568. package/connectors/connect-amilia/src/utils/bulk.ts +212 -0
  569. package/connectors/connect-amilia/src/utils/config.ts +326 -0
  570. package/connectors/connect-amilia/src/utils/output.ts +175 -0
  571. package/connectors/connect-amilia/src/utils/settings.ts +114 -0
  572. package/connectors/connect-amilia/src/utils/storage.ts +198 -0
  573. package/connectors/connect-amilia/tsconfig.json +16 -0
  574. package/connectors/connect-amqpsender/.env.example +11 -0
  575. package/connectors/connect-amqpsender/CLAUDE.md +272 -0
  576. package/connectors/connect-amqpsender/README.md +193 -0
  577. package/connectors/connect-amqpsender/package.json +51 -0
  578. package/connectors/connect-amqpsender/scripts/release.ts +179 -0
  579. package/connectors/connect-amqpsender/src/api/client.ts +213 -0
  580. package/connectors/connect-amqpsender/src/api/example.ts +48 -0
  581. package/connectors/connect-amqpsender/src/api/index.ts +51 -0
  582. package/connectors/connect-amqpsender/src/cli/index.ts +254 -0
  583. package/connectors/connect-amqpsender/src/index.ts +103 -0
  584. package/connectors/connect-amqpsender/src/types/index.ts +237 -0
  585. package/connectors/connect-amqpsender/src/utils/auth.ts +274 -0
  586. package/connectors/connect-amqpsender/src/utils/bulk.ts +212 -0
  587. package/connectors/connect-amqpsender/src/utils/config.ts +326 -0
  588. package/connectors/connect-amqpsender/src/utils/output.ts +175 -0
  589. package/connectors/connect-amqpsender/src/utils/settings.ts +114 -0
  590. package/connectors/connect-amqpsender/src/utils/storage.ts +198 -0
  591. package/connectors/connect-amqpsender/tsconfig.json +16 -0
  592. package/connectors/connect-announcekit/.env.example +11 -0
  593. package/connectors/connect-announcekit/CLAUDE.md +272 -0
  594. package/connectors/connect-announcekit/README.md +193 -0
  595. package/connectors/connect-announcekit/package.json +51 -0
  596. package/connectors/connect-announcekit/scripts/release.ts +179 -0
  597. package/connectors/connect-announcekit/src/api/client.ts +213 -0
  598. package/connectors/connect-announcekit/src/api/example.ts +48 -0
  599. package/connectors/connect-announcekit/src/api/index.ts +51 -0
  600. package/connectors/connect-announcekit/src/cli/index.ts +254 -0
  601. package/connectors/connect-announcekit/src/index.ts +103 -0
  602. package/connectors/connect-announcekit/src/types/index.ts +237 -0
  603. package/connectors/connect-announcekit/src/utils/auth.ts +274 -0
  604. package/connectors/connect-announcekit/src/utils/bulk.ts +212 -0
  605. package/connectors/connect-announcekit/src/utils/config.ts +326 -0
  606. package/connectors/connect-announcekit/src/utils/output.ts +175 -0
  607. package/connectors/connect-announcekit/src/utils/settings.ts +114 -0
  608. package/connectors/connect-announcekit/src/utils/storage.ts +198 -0
  609. package/connectors/connect-announcekit/tsconfig.json +16 -0
  610. package/connectors/connect-anyscale/.env.example +11 -0
  611. package/connectors/connect-anyscale/CLAUDE.md +128 -0
  612. package/connectors/connect-anyscale/README.md +193 -0
  613. package/connectors/connect-anyscale/package.json +51 -0
  614. package/connectors/connect-anyscale/src/api/client.ts +63 -0
  615. package/connectors/connect-anyscale/src/api/index.ts +36 -0
  616. package/connectors/connect-anyscale/src/cli/index.ts +244 -0
  617. package/connectors/connect-anyscale/src/index.ts +19 -0
  618. package/connectors/connect-anyscale/src/types/index.ts +70 -0
  619. package/connectors/connect-anyscale/src/utils/config.ts +103 -0
  620. package/connectors/connect-anyscale/src/utils/output.ts +119 -0
  621. package/connectors/connect-anyscale/tsconfig.json +16 -0
  622. package/connectors/connect-apiary/.env.example +11 -0
  623. package/connectors/connect-apiary/CLAUDE.md +272 -0
  624. package/connectors/connect-apiary/README.md +193 -0
  625. package/connectors/connect-apiary/package.json +51 -0
  626. package/connectors/connect-apiary/scripts/release.ts +179 -0
  627. package/connectors/connect-apiary/src/api/client.ts +213 -0
  628. package/connectors/connect-apiary/src/api/example.ts +48 -0
  629. package/connectors/connect-apiary/src/api/index.ts +51 -0
  630. package/connectors/connect-apiary/src/cli/index.ts +254 -0
  631. package/connectors/connect-apiary/src/index.ts +103 -0
  632. package/connectors/connect-apiary/src/types/index.ts +237 -0
  633. package/connectors/connect-apiary/src/utils/auth.ts +274 -0
  634. package/connectors/connect-apiary/src/utils/bulk.ts +212 -0
  635. package/connectors/connect-apiary/src/utils/config.ts +326 -0
  636. package/connectors/connect-apiary/src/utils/output.ts +175 -0
  637. package/connectors/connect-apiary/src/utils/settings.ts +114 -0
  638. package/connectors/connect-apiary/src/utils/storage.ts +198 -0
  639. package/connectors/connect-apiary/tsconfig.json +16 -0
  640. package/connectors/connect-apiflash/.env.example +11 -0
  641. package/connectors/connect-apiflash/CLAUDE.md +272 -0
  642. package/connectors/connect-apiflash/README.md +193 -0
  643. package/connectors/connect-apiflash/package.json +51 -0
  644. package/connectors/connect-apiflash/scripts/release.ts +179 -0
  645. package/connectors/connect-apiflash/src/api/client.ts +213 -0
  646. package/connectors/connect-apiflash/src/api/example.ts +48 -0
  647. package/connectors/connect-apiflash/src/api/index.ts +51 -0
  648. package/connectors/connect-apiflash/src/cli/index.ts +254 -0
  649. package/connectors/connect-apiflash/src/index.ts +103 -0
  650. package/connectors/connect-apiflash/src/types/index.ts +237 -0
  651. package/connectors/connect-apiflash/src/utils/auth.ts +274 -0
  652. package/connectors/connect-apiflash/src/utils/bulk.ts +212 -0
  653. package/connectors/connect-apiflash/src/utils/config.ts +326 -0
  654. package/connectors/connect-apiflash/src/utils/output.ts +175 -0
  655. package/connectors/connect-apiflash/src/utils/settings.ts +114 -0
  656. package/connectors/connect-apiflash/src/utils/storage.ts +198 -0
  657. package/connectors/connect-apiflash/tsconfig.json +16 -0
  658. package/connectors/connect-apitemplateio/.env.example +11 -0
  659. package/connectors/connect-apitemplateio/CLAUDE.md +272 -0
  660. package/connectors/connect-apitemplateio/README.md +193 -0
  661. package/connectors/connect-apitemplateio/package.json +51 -0
  662. package/connectors/connect-apitemplateio/scripts/release.ts +179 -0
  663. package/connectors/connect-apitemplateio/src/api/client.ts +213 -0
  664. package/connectors/connect-apitemplateio/src/api/example.ts +48 -0
  665. package/connectors/connect-apitemplateio/src/api/index.ts +51 -0
  666. package/connectors/connect-apitemplateio/src/cli/index.ts +254 -0
  667. package/connectors/connect-apitemplateio/src/index.ts +103 -0
  668. package/connectors/connect-apitemplateio/src/types/index.ts +237 -0
  669. package/connectors/connect-apitemplateio/src/utils/auth.ts +274 -0
  670. package/connectors/connect-apitemplateio/src/utils/bulk.ts +212 -0
  671. package/connectors/connect-apitemplateio/src/utils/config.ts +326 -0
  672. package/connectors/connect-apitemplateio/src/utils/output.ts +175 -0
  673. package/connectors/connect-apitemplateio/src/utils/settings.ts +114 -0
  674. package/connectors/connect-apitemplateio/src/utils/storage.ts +198 -0
  675. package/connectors/connect-apitemplateio/tsconfig.json +16 -0
  676. package/connectors/connect-apptivegrid/.env.example +11 -0
  677. package/connectors/connect-apptivegrid/CLAUDE.md +272 -0
  678. package/connectors/connect-apptivegrid/README.md +193 -0
  679. package/connectors/connect-apptivegrid/package.json +51 -0
  680. package/connectors/connect-apptivegrid/scripts/release.ts +179 -0
  681. package/connectors/connect-apptivegrid/src/api/client.ts +213 -0
  682. package/connectors/connect-apptivegrid/src/api/example.ts +48 -0
  683. package/connectors/connect-apptivegrid/src/api/index.ts +51 -0
  684. package/connectors/connect-apptivegrid/src/cli/index.ts +254 -0
  685. package/connectors/connect-apptivegrid/src/index.ts +103 -0
  686. package/connectors/connect-apptivegrid/src/types/index.ts +237 -0
  687. package/connectors/connect-apptivegrid/src/utils/auth.ts +274 -0
  688. package/connectors/connect-apptivegrid/src/utils/bulk.ts +212 -0
  689. package/connectors/connect-apptivegrid/src/utils/config.ts +326 -0
  690. package/connectors/connect-apptivegrid/src/utils/output.ts +175 -0
  691. package/connectors/connect-apptivegrid/src/utils/settings.ts +114 -0
  692. package/connectors/connect-apptivegrid/src/utils/storage.ts +198 -0
  693. package/connectors/connect-apptivegrid/tsconfig.json +16 -0
  694. package/connectors/connect-autom/.env.example +11 -0
  695. package/connectors/connect-autom/CLAUDE.md +272 -0
  696. package/connectors/connect-autom/README.md +193 -0
  697. package/connectors/connect-autom/package.json +51 -0
  698. package/connectors/connect-autom/scripts/release.ts +179 -0
  699. package/connectors/connect-autom/src/api/client.ts +213 -0
  700. package/connectors/connect-autom/src/api/example.ts +48 -0
  701. package/connectors/connect-autom/src/api/index.ts +51 -0
  702. package/connectors/connect-autom/src/cli/index.ts +254 -0
  703. package/connectors/connect-autom/src/index.ts +103 -0
  704. package/connectors/connect-autom/src/types/index.ts +237 -0
  705. package/connectors/connect-autom/src/utils/auth.ts +274 -0
  706. package/connectors/connect-autom/src/utils/bulk.ts +212 -0
  707. package/connectors/connect-autom/src/utils/config.ts +326 -0
  708. package/connectors/connect-autom/src/utils/output.ts +175 -0
  709. package/connectors/connect-autom/src/utils/settings.ts +114 -0
  710. package/connectors/connect-autom/src/utils/storage.ts +198 -0
  711. package/connectors/connect-autom/tsconfig.json +16 -0
  712. package/connectors/connect-automizy/.env.example +11 -0
  713. package/connectors/connect-automizy/CLAUDE.md +272 -0
  714. package/connectors/connect-automizy/README.md +193 -0
  715. package/connectors/connect-automizy/package.json +51 -0
  716. package/connectors/connect-automizy/scripts/release.ts +179 -0
  717. package/connectors/connect-automizy/src/api/client.ts +213 -0
  718. package/connectors/connect-automizy/src/api/example.ts +48 -0
  719. package/connectors/connect-automizy/src/api/index.ts +51 -0
  720. package/connectors/connect-automizy/src/cli/index.ts +254 -0
  721. package/connectors/connect-automizy/src/index.ts +103 -0
  722. package/connectors/connect-automizy/src/types/index.ts +237 -0
  723. package/connectors/connect-automizy/src/utils/auth.ts +274 -0
  724. package/connectors/connect-automizy/src/utils/bulk.ts +212 -0
  725. package/connectors/connect-automizy/src/utils/config.ts +326 -0
  726. package/connectors/connect-automizy/src/utils/output.ts +175 -0
  727. package/connectors/connect-automizy/src/utils/settings.ts +114 -0
  728. package/connectors/connect-automizy/src/utils/storage.ts +198 -0
  729. package/connectors/connect-automizy/tsconfig.json +16 -0
  730. package/connectors/connect-autopilot/.env.example +11 -0
  731. package/connectors/connect-autopilot/CLAUDE.md +272 -0
  732. package/connectors/connect-autopilot/README.md +193 -0
  733. package/connectors/connect-autopilot/package.json +51 -0
  734. package/connectors/connect-autopilot/scripts/release.ts +179 -0
  735. package/connectors/connect-autopilot/src/api/client.ts +213 -0
  736. package/connectors/connect-autopilot/src/api/example.ts +48 -0
  737. package/connectors/connect-autopilot/src/api/index.ts +51 -0
  738. package/connectors/connect-autopilot/src/cli/index.ts +254 -0
  739. package/connectors/connect-autopilot/src/index.ts +103 -0
  740. package/connectors/connect-autopilot/src/types/index.ts +237 -0
  741. package/connectors/connect-autopilot/src/utils/auth.ts +274 -0
  742. package/connectors/connect-autopilot/src/utils/bulk.ts +212 -0
  743. package/connectors/connect-autopilot/src/utils/config.ts +326 -0
  744. package/connectors/connect-autopilot/src/utils/output.ts +175 -0
  745. package/connectors/connect-autopilot/src/utils/settings.ts +114 -0
  746. package/connectors/connect-autopilot/src/utils/storage.ts +198 -0
  747. package/connectors/connect-autopilot/tsconfig.json +16 -0
  748. package/connectors/connect-awscognito/.env.example +11 -0
  749. package/connectors/connect-awscognito/CLAUDE.md +272 -0
  750. package/connectors/connect-awscognito/README.md +193 -0
  751. package/connectors/connect-awscognito/package.json +51 -0
  752. package/connectors/connect-awscognito/scripts/release.ts +179 -0
  753. package/connectors/connect-awscognito/src/api/client.ts +213 -0
  754. package/connectors/connect-awscognito/src/api/example.ts +48 -0
  755. package/connectors/connect-awscognito/src/api/index.ts +51 -0
  756. package/connectors/connect-awscognito/src/cli/index.ts +254 -0
  757. package/connectors/connect-awscognito/src/index.ts +103 -0
  758. package/connectors/connect-awscognito/src/types/index.ts +237 -0
  759. package/connectors/connect-awscognito/src/utils/auth.ts +274 -0
  760. package/connectors/connect-awscognito/src/utils/bulk.ts +212 -0
  761. package/connectors/connect-awscognito/src/utils/config.ts +326 -0
  762. package/connectors/connect-awscognito/src/utils/output.ts +175 -0
  763. package/connectors/connect-awscognito/src/utils/settings.ts +114 -0
  764. package/connectors/connect-awscognito/src/utils/storage.ts +198 -0
  765. package/connectors/connect-awscognito/tsconfig.json +16 -0
  766. package/dist/index.js +280 -0
  767. package/package.json +1 -1
@@ -0,0 +1,1111 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { Connector } from '../api';
5
+ import {
6
+ getApiKey,
7
+ setApiKey,
8
+ clearConfig,
9
+ getConfigDir,
10
+ setProfileOverride,
11
+ getCurrentProfile,
12
+ setCurrentProfile,
13
+ listProfiles,
14
+ createProfile,
15
+ deleteProfile,
16
+ profileExists,
17
+ loadProfile,
18
+ } from '../utils/config';
19
+ import type { OutputFormat } from '../utils/output';
20
+ import { success, error, info, print, warn, setVerboseMode, debug } from '../utils/output';
21
+
22
+ const CONNECTOR_NAME = 'connect-actionnetwork';
23
+ const VERSION = '0.1.0';
24
+
25
+ const program = new Command();
26
+
27
+ program
28
+ .name(CONNECTOR_NAME)
29
+ .description('Action Network API connector - progressive organizing platform')
30
+ .version(VERSION)
31
+ .option('-k, --api-key <key>', 'API key (overrides config)')
32
+ .option('-f, --format <format>', 'Output format (json, pretty)', 'pretty')
33
+ .option('-p, --profile <profile>', 'Use a specific profile')
34
+ .option('-v, --verbose', 'Enable verbose output for debugging')
35
+ .hook('preAction', (thisCommand) => {
36
+ const opts = thisCommand.opts();
37
+
38
+ if (opts.verbose) {
39
+ setVerboseMode(true);
40
+ debug('Verbose mode enabled');
41
+ }
42
+
43
+ if (opts.profile) {
44
+ if (!profileExists(opts.profile)) {
45
+ error(`Profile "${opts.profile}" does not exist. Create it with "${CONNECTOR_NAME} profile create ${opts.profile}"`);
46
+ process.exit(1);
47
+ }
48
+ setProfileOverride(opts.profile);
49
+ debug(`Using profile: ${opts.profile}`);
50
+ }
51
+
52
+ if (opts.apiKey) {
53
+ process.env.ACTION_NETWORK_API_KEY = opts.apiKey;
54
+ debug('API key set from command line flag');
55
+ }
56
+ });
57
+
58
+ function getFormat(cmd: Command): OutputFormat {
59
+ const parent = cmd.parent;
60
+ return (parent?.opts().format || 'pretty') as OutputFormat;
61
+ }
62
+
63
+ function getClient(): Connector {
64
+ const apiKey = getApiKey();
65
+ if (!apiKey) {
66
+ error(`No API key configured. Run "${CONNECTOR_NAME} config set-key <key>" or set ACTION_NETWORK_API_KEY environment variable.`);
67
+ process.exit(1);
68
+ }
69
+ return new Connector({ apiKey });
70
+ }
71
+
72
+ // ============================================
73
+ // Profile Commands
74
+ // ============================================
75
+ const profileCmd = program
76
+ .command('profile')
77
+ .description('Manage configuration profiles');
78
+
79
+ profileCmd
80
+ .command('list')
81
+ .description('List all profiles')
82
+ .action(() => {
83
+ const profiles = listProfiles();
84
+ const current = getCurrentProfile();
85
+
86
+ if (profiles.length === 0) {
87
+ info('No profiles found. Use "profile create <name>" to create one.');
88
+ return;
89
+ }
90
+
91
+ success(`Profiles:`);
92
+ profiles.forEach(p => {
93
+ const isActive = p === current ? chalk.green(' (active)') : '';
94
+ console.log(` ${p}${isActive}`);
95
+ });
96
+ });
97
+
98
+ profileCmd
99
+ .command('use <name>')
100
+ .description('Switch to a profile')
101
+ .action((name: string) => {
102
+ if (!profileExists(name)) {
103
+ error(`Profile "${name}" does not exist. Create it with "profile create ${name}"`);
104
+ process.exit(1);
105
+ }
106
+ setCurrentProfile(name);
107
+ success(`Switched to profile: ${name}`);
108
+ });
109
+
110
+ profileCmd
111
+ .command('create <name>')
112
+ .description('Create a new profile')
113
+ .option('--api-key <key>', 'API key')
114
+ .option('--use', 'Switch to this profile after creation')
115
+ .action((name: string, opts) => {
116
+ if (profileExists(name)) {
117
+ error(`Profile "${name}" already exists`);
118
+ process.exit(1);
119
+ }
120
+
121
+ createProfile(name, {
122
+ apiKey: opts.apiKey,
123
+ });
124
+ success(`Profile "${name}" created`);
125
+
126
+ if (opts.use) {
127
+ setCurrentProfile(name);
128
+ info(`Switched to profile: ${name}`);
129
+ }
130
+ });
131
+
132
+ profileCmd
133
+ .command('delete <name>')
134
+ .description('Delete a profile')
135
+ .action((name: string) => {
136
+ if (name === 'default') {
137
+ error('Cannot delete the default profile');
138
+ process.exit(1);
139
+ }
140
+ if (deleteProfile(name)) {
141
+ success(`Profile "${name}" deleted`);
142
+ } else {
143
+ error(`Profile "${name}" not found`);
144
+ process.exit(1);
145
+ }
146
+ });
147
+
148
+ profileCmd
149
+ .command('show [name]')
150
+ .description('Show profile configuration')
151
+ .action((name?: string) => {
152
+ const profileName = name || getCurrentProfile();
153
+ const config = loadProfile(profileName);
154
+ const active = getCurrentProfile();
155
+
156
+ console.log(chalk.bold(`Profile: ${profileName}${profileName === active ? chalk.green(' (active)') : ''}`));
157
+ info(`API Key: ${config.apiKey ? `${config.apiKey.substring(0, 8)}...` : chalk.gray('not set')}`);
158
+ });
159
+
160
+ // ============================================
161
+ // Config Commands
162
+ // ============================================
163
+ const configCmd = program
164
+ .command('config')
165
+ .description('Manage CLI configuration (for active profile)');
166
+
167
+ configCmd
168
+ .command('set-key <apiKey>')
169
+ .description('Set API key (OSDI-API-Token)')
170
+ .action((apiKey: string) => {
171
+ setApiKey(apiKey);
172
+ success(`API key saved to profile: ${getCurrentProfile()}`);
173
+ });
174
+
175
+ configCmd
176
+ .command('show')
177
+ .description('Show current configuration')
178
+ .action(() => {
179
+ const profileName = getCurrentProfile();
180
+ const apiKey = getApiKey();
181
+
182
+ console.log(chalk.bold(`Active Profile: ${profileName}`));
183
+ info(`Config directory: ${getConfigDir()}`);
184
+ info(`API Key: ${apiKey ? `${apiKey.substring(0, 8)}...` : chalk.gray('not set')}`);
185
+ });
186
+
187
+ configCmd
188
+ .command('clear')
189
+ .description('Clear configuration for active profile')
190
+ .action(() => {
191
+ clearConfig();
192
+ success(`Configuration cleared for profile: ${getCurrentProfile()}`);
193
+ });
194
+
195
+ // ============================================
196
+ // People Commands
197
+ // ============================================
198
+ const peopleCmd = program
199
+ .command('people')
200
+ .description('Manage people/activists');
201
+
202
+ peopleCmd
203
+ .command('list')
204
+ .description('List people')
205
+ .option('--page <number>', 'Page number')
206
+ .option('--per-page <number>', 'Results per page')
207
+ .option('--filter <odata>', 'OData filter expression')
208
+ .action(async (opts) => {
209
+ try {
210
+ const client = getClient();
211
+ const result = await client.people.list({
212
+ page: opts.page ? parseInt(opts.page) : undefined,
213
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
214
+ filter: opts.filter,
215
+ });
216
+ print(result, getFormat(peopleCmd));
217
+ } catch (err) {
218
+ error(String(err));
219
+ process.exit(1);
220
+ }
221
+ });
222
+
223
+ peopleCmd
224
+ .command('get <personId>')
225
+ .description('Get a person by ID')
226
+ .action(async (personId: string) => {
227
+ try {
228
+ const client = getClient();
229
+ const result = await client.people.get(personId);
230
+ print(result, getFormat(peopleCmd));
231
+ } catch (err) {
232
+ error(String(err));
233
+ process.exit(1);
234
+ }
235
+ });
236
+
237
+ peopleCmd
238
+ .command('signup')
239
+ .description('Sign up a new person (or update if exists)')
240
+ .requiredOption('--email <email>', 'Email address')
241
+ .option('--given-name <name>', 'First name')
242
+ .option('--family-name <name>', 'Last name')
243
+ .option('--phone <number>', 'Phone number')
244
+ .option('--postal-code <code>', 'Postal/ZIP code')
245
+ .option('--country <code>', 'Country code')
246
+ .action(async (opts) => {
247
+ try {
248
+ const client = getClient();
249
+ const params: Record<string, unknown> = {
250
+ person: {
251
+ email_addresses: [{ address: opts.email }],
252
+ ...(opts.givenName && { given_name: opts.givenName }),
253
+ ...(opts.familyName && { family_name: opts.familyName }),
254
+ ...(opts.phone && { phone_numbers: [{ number: opts.phone }] }),
255
+ ...(opts.postalCode && {
256
+ postal_addresses: [{
257
+ postal_code: opts.postalCode,
258
+ ...(opts.country && { country: opts.country }),
259
+ }],
260
+ }),
261
+ },
262
+ };
263
+ const result = await client.people.signup(params as never);
264
+ success('Person signed up!');
265
+ print(result, getFormat(peopleCmd));
266
+ } catch (err) {
267
+ error(String(err));
268
+ process.exit(1);
269
+ }
270
+ });
271
+
272
+ peopleCmd
273
+ .command('update <personId>')
274
+ .description('Update a person')
275
+ .option('--given-name <name>', 'First name')
276
+ .option('--family-name <name>', 'Last name')
277
+ .option('--email <email>', 'Email address')
278
+ .option('--phone <number>', 'Phone number')
279
+ .action(async (personId: string, opts) => {
280
+ try {
281
+ const client = getClient();
282
+ const params: Record<string, unknown> = {};
283
+ if (opts.givenName) params.given_name = opts.givenName;
284
+ if (opts.familyName) params.family_name = opts.familyName;
285
+ if (opts.email) params.email_addresses = [{ address: opts.email }];
286
+ if (opts.phone) params.phone_numbers = [{ number: opts.phone }];
287
+ const result = await client.people.update(personId, params as never);
288
+ success('Person updated!');
289
+ print(result, getFormat(peopleCmd));
290
+ } catch (err) {
291
+ error(String(err));
292
+ process.exit(1);
293
+ }
294
+ });
295
+
296
+ // ============================================
297
+ // Petitions Commands
298
+ // ============================================
299
+ const petitionsCmd = program
300
+ .command('petitions')
301
+ .description('Manage petitions');
302
+
303
+ petitionsCmd
304
+ .command('list')
305
+ .description('List petitions')
306
+ .option('--page <number>', 'Page number')
307
+ .option('--per-page <number>', 'Results per page')
308
+ .option('--filter <odata>', 'OData filter expression')
309
+ .action(async (opts) => {
310
+ try {
311
+ const client = getClient();
312
+ const result = await client.petitions.list({
313
+ page: opts.page ? parseInt(opts.page) : undefined,
314
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
315
+ filter: opts.filter,
316
+ });
317
+ print(result, getFormat(petitionsCmd));
318
+ } catch (err) {
319
+ error(String(err));
320
+ process.exit(1);
321
+ }
322
+ });
323
+
324
+ petitionsCmd
325
+ .command('get <petitionId>')
326
+ .description('Get a petition by ID')
327
+ .action(async (petitionId: string) => {
328
+ try {
329
+ const client = getClient();
330
+ const result = await client.petitions.get(petitionId);
331
+ print(result, getFormat(petitionsCmd));
332
+ } catch (err) {
333
+ error(String(err));
334
+ process.exit(1);
335
+ }
336
+ });
337
+
338
+ petitionsCmd
339
+ .command('create')
340
+ .description('Create a new petition')
341
+ .requiredOption('--title <title>', 'Petition title')
342
+ .option('--description <text>', 'Petition description')
343
+ .option('--target <target>', 'Petition target')
344
+ .action(async (opts) => {
345
+ try {
346
+ const client = getClient();
347
+ const result = await client.petitions.create({
348
+ title: opts.title,
349
+ description: opts.description,
350
+ target: opts.target,
351
+ } as never);
352
+ success('Petition created!');
353
+ print(result, getFormat(petitionsCmd));
354
+ } catch (err) {
355
+ error(String(err));
356
+ process.exit(1);
357
+ }
358
+ });
359
+
360
+ petitionsCmd
361
+ .command('update <petitionId>')
362
+ .description('Update a petition')
363
+ .option('--title <title>', 'Petition title')
364
+ .option('--description <text>', 'Petition description')
365
+ .action(async (petitionId: string, opts) => {
366
+ try {
367
+ const client = getClient();
368
+ const params: Record<string, unknown> = {};
369
+ if (opts.title) params.title = opts.title;
370
+ if (opts.description) params.description = opts.description;
371
+ const result = await client.petitions.update(petitionId, params as never);
372
+ success('Petition updated!');
373
+ print(result, getFormat(petitionsCmd));
374
+ } catch (err) {
375
+ error(String(err));
376
+ process.exit(1);
377
+ }
378
+ });
379
+
380
+ petitionsCmd
381
+ .command('signatures <petitionId>')
382
+ .description('List signatures for a petition')
383
+ .option('--page <number>', 'Page number')
384
+ .option('--per-page <number>', 'Results per page')
385
+ .action(async (petitionId: string, opts) => {
386
+ try {
387
+ const client = getClient();
388
+ const result = await client.petitions.listSignatures(petitionId, {
389
+ page: opts.page ? parseInt(opts.page) : undefined,
390
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
391
+ });
392
+ print(result, getFormat(petitionsCmd));
393
+ } catch (err) {
394
+ error(String(err));
395
+ process.exit(1);
396
+ }
397
+ });
398
+
399
+ petitionsCmd
400
+ .command('sign <petitionId>')
401
+ .description('Record a signature on a petition')
402
+ .requiredOption('--email <email>', 'Signer email')
403
+ .option('--given-name <name>', 'First name')
404
+ .option('--family-name <name>', 'Last name')
405
+ .action(async (petitionId: string, opts) => {
406
+ try {
407
+ const client = getClient();
408
+ const result = await client.petitions.createSignature(petitionId, {
409
+ person: {
410
+ email_addresses: [{ address: opts.email }],
411
+ ...(opts.givenName && { given_name: opts.givenName }),
412
+ ...(opts.familyName && { family_name: opts.familyName }),
413
+ },
414
+ } as never);
415
+ success('Signature recorded!');
416
+ print(result, getFormat(petitionsCmd));
417
+ } catch (err) {
418
+ error(String(err));
419
+ process.exit(1);
420
+ }
421
+ });
422
+
423
+ // ============================================
424
+ // Events Commands
425
+ // ============================================
426
+ const eventsCmd = program
427
+ .command('events')
428
+ .description('Manage events');
429
+
430
+ eventsCmd
431
+ .command('list')
432
+ .description('List events')
433
+ .option('--page <number>', 'Page number')
434
+ .option('--per-page <number>', 'Results per page')
435
+ .option('--filter <odata>', 'OData filter expression')
436
+ .action(async (opts) => {
437
+ try {
438
+ const client = getClient();
439
+ const result = await client.events.list({
440
+ page: opts.page ? parseInt(opts.page) : undefined,
441
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
442
+ filter: opts.filter,
443
+ });
444
+ print(result, getFormat(eventsCmd));
445
+ } catch (err) {
446
+ error(String(err));
447
+ process.exit(1);
448
+ }
449
+ });
450
+
451
+ eventsCmd
452
+ .command('get <eventId>')
453
+ .description('Get an event by ID')
454
+ .action(async (eventId: string) => {
455
+ try {
456
+ const client = getClient();
457
+ const result = await client.events.get(eventId);
458
+ print(result, getFormat(eventsCmd));
459
+ } catch (err) {
460
+ error(String(err));
461
+ process.exit(1);
462
+ }
463
+ });
464
+
465
+ eventsCmd
466
+ .command('create')
467
+ .description('Create a new event')
468
+ .requiredOption('--title <title>', 'Event title')
469
+ .option('--description <text>', 'Event description')
470
+ .option('--start-date <date>', 'Start date (ISO 8601)')
471
+ .option('--venue <venue>', 'Venue name')
472
+ .option('--location <address>', 'Location address')
473
+ .action(async (opts) => {
474
+ try {
475
+ const client = getClient();
476
+ const result = await client.events.create({
477
+ title: opts.title,
478
+ description: opts.description,
479
+ start_date: opts.startDate,
480
+ ...(opts.venue && { location: { venue: opts.venue, address_lines: opts.location ? [opts.location] : undefined } }),
481
+ } as never);
482
+ success('Event created!');
483
+ print(result, getFormat(eventsCmd));
484
+ } catch (err) {
485
+ error(String(err));
486
+ process.exit(1);
487
+ }
488
+ });
489
+
490
+ eventsCmd
491
+ .command('update <eventId>')
492
+ .description('Update an event')
493
+ .option('--title <title>', 'Event title')
494
+ .option('--description <text>', 'Event description')
495
+ .option('--start-date <date>', 'Start date (ISO 8601)')
496
+ .action(async (eventId: string, opts) => {
497
+ try {
498
+ const client = getClient();
499
+ const params: Record<string, unknown> = {};
500
+ if (opts.title) params.title = opts.title;
501
+ if (opts.description) params.description = opts.description;
502
+ if (opts.startDate) params.start_date = opts.startDate;
503
+ const result = await client.events.update(eventId, params as never);
504
+ success('Event updated!');
505
+ print(result, getFormat(eventsCmd));
506
+ } catch (err) {
507
+ error(String(err));
508
+ process.exit(1);
509
+ }
510
+ });
511
+
512
+ eventsCmd
513
+ .command('attendances <eventId>')
514
+ .description('List attendances for an event')
515
+ .option('--page <number>', 'Page number')
516
+ .option('--per-page <number>', 'Results per page')
517
+ .action(async (eventId: string, opts) => {
518
+ try {
519
+ const client = getClient();
520
+ const result = await client.events.listAttendances(eventId, {
521
+ page: opts.page ? parseInt(opts.page) : undefined,
522
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
523
+ });
524
+ print(result, getFormat(eventsCmd));
525
+ } catch (err) {
526
+ error(String(err));
527
+ process.exit(1);
528
+ }
529
+ });
530
+
531
+ eventsCmd
532
+ .command('attend <eventId>')
533
+ .description('Record an attendance for an event')
534
+ .requiredOption('--email <email>', 'Attendee email')
535
+ .option('--given-name <name>', 'First name')
536
+ .option('--family-name <name>', 'Last name')
537
+ .action(async (eventId: string, opts) => {
538
+ try {
539
+ const client = getClient();
540
+ const result = await client.events.createAttendance(eventId, {
541
+ person: {
542
+ email_addresses: [{ address: opts.email }],
543
+ ...(opts.givenName && { given_name: opts.givenName }),
544
+ ...(opts.familyName && { family_name: opts.familyName }),
545
+ },
546
+ } as never);
547
+ success('Attendance recorded!');
548
+ print(result, getFormat(eventsCmd));
549
+ } catch (err) {
550
+ error(String(err));
551
+ process.exit(1);
552
+ }
553
+ });
554
+
555
+ // ============================================
556
+ // Forms Commands
557
+ // ============================================
558
+ const formsCmd = program
559
+ .command('forms')
560
+ .description('Manage forms');
561
+
562
+ formsCmd
563
+ .command('list')
564
+ .description('List forms')
565
+ .option('--page <number>', 'Page number')
566
+ .option('--per-page <number>', 'Results per page')
567
+ .option('--filter <odata>', 'OData filter expression')
568
+ .action(async (opts) => {
569
+ try {
570
+ const client = getClient();
571
+ const result = await client.forms.list({
572
+ page: opts.page ? parseInt(opts.page) : undefined,
573
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
574
+ filter: opts.filter,
575
+ });
576
+ print(result, getFormat(formsCmd));
577
+ } catch (err) {
578
+ error(String(err));
579
+ process.exit(1);
580
+ }
581
+ });
582
+
583
+ formsCmd
584
+ .command('get <formId>')
585
+ .description('Get a form by ID')
586
+ .action(async (formId: string) => {
587
+ try {
588
+ const client = getClient();
589
+ const result = await client.forms.get(formId);
590
+ print(result, getFormat(formsCmd));
591
+ } catch (err) {
592
+ error(String(err));
593
+ process.exit(1);
594
+ }
595
+ });
596
+
597
+ formsCmd
598
+ .command('create')
599
+ .description('Create a new form')
600
+ .requiredOption('--title <title>', 'Form title')
601
+ .option('--description <text>', 'Form description')
602
+ .action(async (opts) => {
603
+ try {
604
+ const client = getClient();
605
+ const result = await client.forms.create({
606
+ title: opts.title,
607
+ description: opts.description,
608
+ } as never);
609
+ success('Form created!');
610
+ print(result, getFormat(formsCmd));
611
+ } catch (err) {
612
+ error(String(err));
613
+ process.exit(1);
614
+ }
615
+ });
616
+
617
+ formsCmd
618
+ .command('update <formId>')
619
+ .description('Update a form')
620
+ .option('--title <title>', 'Form title')
621
+ .option('--description <text>', 'Form description')
622
+ .action(async (formId: string, opts) => {
623
+ try {
624
+ const client = getClient();
625
+ const params: Record<string, unknown> = {};
626
+ if (opts.title) params.title = opts.title;
627
+ if (opts.description) params.description = opts.description;
628
+ const result = await client.forms.update(formId, params as never);
629
+ success('Form updated!');
630
+ print(result, getFormat(formsCmd));
631
+ } catch (err) {
632
+ error(String(err));
633
+ process.exit(1);
634
+ }
635
+ });
636
+
637
+ formsCmd
638
+ .command('submissions <formId>')
639
+ .description('List submissions for a form')
640
+ .option('--page <number>', 'Page number')
641
+ .option('--per-page <number>', 'Results per page')
642
+ .action(async (formId: string, opts) => {
643
+ try {
644
+ const client = getClient();
645
+ const result = await client.forms.listSubmissions(formId, {
646
+ page: opts.page ? parseInt(opts.page) : undefined,
647
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
648
+ });
649
+ print(result, getFormat(formsCmd));
650
+ } catch (err) {
651
+ error(String(err));
652
+ process.exit(1);
653
+ }
654
+ });
655
+
656
+ formsCmd
657
+ .command('submit <formId>')
658
+ .description('Create a submission for a form')
659
+ .requiredOption('--email <email>', 'Submitter email')
660
+ .option('--given-name <name>', 'First name')
661
+ .option('--family-name <name>', 'Last name')
662
+ .action(async (formId: string, opts) => {
663
+ try {
664
+ const client = getClient();
665
+ const result = await client.forms.createSubmission(formId, {
666
+ person: {
667
+ email_addresses: [{ address: opts.email }],
668
+ ...(opts.givenName && { given_name: opts.givenName }),
669
+ ...(opts.familyName && { family_name: opts.familyName }),
670
+ },
671
+ } as never);
672
+ success('Submission recorded!');
673
+ print(result, getFormat(formsCmd));
674
+ } catch (err) {
675
+ error(String(err));
676
+ process.exit(1);
677
+ }
678
+ });
679
+
680
+ // ============================================
681
+ // Fundraising Commands
682
+ // ============================================
683
+ const fundraisingCmd = program
684
+ .command('fundraising')
685
+ .description('Manage fundraising pages and donations');
686
+
687
+ fundraisingCmd
688
+ .command('list')
689
+ .description('List fundraising pages')
690
+ .option('--page <number>', 'Page number')
691
+ .option('--per-page <number>', 'Results per page')
692
+ .option('--filter <odata>', 'OData filter expression')
693
+ .action(async (opts) => {
694
+ try {
695
+ const client = getClient();
696
+ const result = await client.fundraising.list({
697
+ page: opts.page ? parseInt(opts.page) : undefined,
698
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
699
+ filter: opts.filter,
700
+ });
701
+ print(result, getFormat(fundraisingCmd));
702
+ } catch (err) {
703
+ error(String(err));
704
+ process.exit(1);
705
+ }
706
+ });
707
+
708
+ fundraisingCmd
709
+ .command('get <pageId>')
710
+ .description('Get a fundraising page by ID')
711
+ .action(async (pageId: string) => {
712
+ try {
713
+ const client = getClient();
714
+ const result = await client.fundraising.get(pageId);
715
+ print(result, getFormat(fundraisingCmd));
716
+ } catch (err) {
717
+ error(String(err));
718
+ process.exit(1);
719
+ }
720
+ });
721
+
722
+ fundraisingCmd
723
+ .command('create')
724
+ .description('Create a new fundraising page')
725
+ .requiredOption('--title <title>', 'Fundraising page title')
726
+ .option('--description <text>', 'Page description')
727
+ .action(async (opts) => {
728
+ try {
729
+ const client = getClient();
730
+ const result = await client.fundraising.create({
731
+ title: opts.title,
732
+ description: opts.description,
733
+ } as never);
734
+ success('Fundraising page created!');
735
+ print(result, getFormat(fundraisingCmd));
736
+ } catch (err) {
737
+ error(String(err));
738
+ process.exit(1);
739
+ }
740
+ });
741
+
742
+ fundraisingCmd
743
+ .command('update <pageId>')
744
+ .description('Update a fundraising page')
745
+ .option('--title <title>', 'Page title')
746
+ .option('--description <text>', 'Page description')
747
+ .action(async (pageId: string, opts) => {
748
+ try {
749
+ const client = getClient();
750
+ const params: Record<string, unknown> = {};
751
+ if (opts.title) params.title = opts.title;
752
+ if (opts.description) params.description = opts.description;
753
+ const result = await client.fundraising.update(pageId, params as never);
754
+ success('Fundraising page updated!');
755
+ print(result, getFormat(fundraisingCmd));
756
+ } catch (err) {
757
+ error(String(err));
758
+ process.exit(1);
759
+ }
760
+ });
761
+
762
+ fundraisingCmd
763
+ .command('donations <pageId>')
764
+ .description('List donations for a fundraising page')
765
+ .option('--page <number>', 'Page number')
766
+ .option('--per-page <number>', 'Results per page')
767
+ .action(async (pageId: string, opts) => {
768
+ try {
769
+ const client = getClient();
770
+ const result = await client.fundraising.listDonations(pageId, {
771
+ page: opts.page ? parseInt(opts.page) : undefined,
772
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
773
+ });
774
+ print(result, getFormat(fundraisingCmd));
775
+ } catch (err) {
776
+ error(String(err));
777
+ process.exit(1);
778
+ }
779
+ });
780
+
781
+ fundraisingCmd
782
+ .command('donate <pageId>')
783
+ .description('Record a donation')
784
+ .requiredOption('--email <email>', 'Donor email')
785
+ .requiredOption('--amount <amount>', 'Donation amount (e.g., "20.00")')
786
+ .option('--currency <code>', 'Currency code (default: USD)', 'USD')
787
+ .option('--given-name <name>', 'First name')
788
+ .option('--family-name <name>', 'Last name')
789
+ .action(async (pageId: string, opts) => {
790
+ try {
791
+ const client = getClient();
792
+ const result = await client.fundraising.createDonation(pageId, {
793
+ recipients: [{
794
+ amount: opts.amount,
795
+ display_name: 'Donation',
796
+ }],
797
+ currency: opts.currency,
798
+ person: {
799
+ email_addresses: [{ address: opts.email }],
800
+ ...(opts.givenName && { given_name: opts.givenName }),
801
+ ...(opts.familyName && { family_name: opts.familyName }),
802
+ },
803
+ } as never);
804
+ success('Donation recorded!');
805
+ print(result, getFormat(fundraisingCmd));
806
+ } catch (err) {
807
+ error(String(err));
808
+ process.exit(1);
809
+ }
810
+ });
811
+
812
+ // ============================================
813
+ // Tags Commands
814
+ // ============================================
815
+ const tagsCmd = program
816
+ .command('tags')
817
+ .description('Manage tags and taggings');
818
+
819
+ tagsCmd
820
+ .command('list')
821
+ .description('List tags')
822
+ .option('--page <number>', 'Page number')
823
+ .option('--per-page <number>', 'Results per page')
824
+ .action(async (opts) => {
825
+ try {
826
+ const client = getClient();
827
+ const result = await client.tags.list({
828
+ page: opts.page ? parseInt(opts.page) : undefined,
829
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
830
+ });
831
+ print(result, getFormat(tagsCmd));
832
+ } catch (err) {
833
+ error(String(err));
834
+ process.exit(1);
835
+ }
836
+ });
837
+
838
+ tagsCmd
839
+ .command('get <tagId>')
840
+ .description('Get a tag by ID')
841
+ .action(async (tagId: string) => {
842
+ try {
843
+ const client = getClient();
844
+ const result = await client.tags.get(tagId);
845
+ print(result, getFormat(tagsCmd));
846
+ } catch (err) {
847
+ error(String(err));
848
+ process.exit(1);
849
+ }
850
+ });
851
+
852
+ tagsCmd
853
+ .command('create')
854
+ .description('Create a new tag')
855
+ .requiredOption('--name <name>', 'Tag name')
856
+ .action(async (opts) => {
857
+ try {
858
+ const client = getClient();
859
+ const result = await client.tags.create({
860
+ name: opts.name,
861
+ });
862
+ success('Tag created!');
863
+ print(result, getFormat(tagsCmd));
864
+ } catch (err) {
865
+ error(String(err));
866
+ process.exit(1);
867
+ }
868
+ });
869
+
870
+ tagsCmd
871
+ .command('taggings <tagId>')
872
+ .description('List taggings (people tagged) for a tag')
873
+ .option('--page <number>', 'Page number')
874
+ .option('--per-page <number>', 'Results per page')
875
+ .action(async (tagId: string, opts) => {
876
+ try {
877
+ const client = getClient();
878
+ const result = await client.tags.listTaggings(tagId, {
879
+ page: opts.page ? parseInt(opts.page) : undefined,
880
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
881
+ });
882
+ print(result, getFormat(tagsCmd));
883
+ } catch (err) {
884
+ error(String(err));
885
+ process.exit(1);
886
+ }
887
+ });
888
+
889
+ tagsCmd
890
+ .command('tag-person <tagId>')
891
+ .description('Tag a person')
892
+ .requiredOption('--person-url <url>', 'Person API URL (from _links.self.href)')
893
+ .action(async (tagId: string, opts) => {
894
+ try {
895
+ const client = getClient();
896
+ const result = await client.tags.createTagging(tagId, {
897
+ _links: {
898
+ 'osdi:person': { href: opts.personUrl },
899
+ },
900
+ } as never);
901
+ success('Person tagged!');
902
+ print(result, getFormat(tagsCmd));
903
+ } catch (err) {
904
+ error(String(err));
905
+ process.exit(1);
906
+ }
907
+ });
908
+
909
+ tagsCmd
910
+ .command('untag <tagId> <taggingId>')
911
+ .description('Remove a tagging')
912
+ .action(async (tagId: string, taggingId: string) => {
913
+ try {
914
+ const client = getClient();
915
+ await client.tags.deleteTagging(tagId, taggingId);
916
+ success('Tagging removed!');
917
+ } catch (err) {
918
+ error(String(err));
919
+ process.exit(1);
920
+ }
921
+ });
922
+
923
+ // ============================================
924
+ // Messages Commands
925
+ // ============================================
926
+ const messagesCmd = program
927
+ .command('messages')
928
+ .description('Manage email messages');
929
+
930
+ messagesCmd
931
+ .command('list')
932
+ .description('List messages')
933
+ .option('--page <number>', 'Page number')
934
+ .option('--per-page <number>', 'Results per page')
935
+ .action(async (opts) => {
936
+ try {
937
+ const client = getClient();
938
+ const result = await client.messages.list({
939
+ page: opts.page ? parseInt(opts.page) : undefined,
940
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
941
+ });
942
+ print(result, getFormat(messagesCmd));
943
+ } catch (err) {
944
+ error(String(err));
945
+ process.exit(1);
946
+ }
947
+ });
948
+
949
+ messagesCmd
950
+ .command('get <messageId>')
951
+ .description('Get a message by ID')
952
+ .action(async (messageId: string) => {
953
+ try {
954
+ const client = getClient();
955
+ const result = await client.messages.get(messageId);
956
+ print(result, getFormat(messagesCmd));
957
+ } catch (err) {
958
+ error(String(err));
959
+ process.exit(1);
960
+ }
961
+ });
962
+
963
+ messagesCmd
964
+ .command('create')
965
+ .description('Create a new message')
966
+ .requiredOption('--subject <subject>', 'Email subject')
967
+ .option('--body <html>', 'Email body (HTML)')
968
+ .option('--from <name>', 'From name')
969
+ .option('--reply-to <email>', 'Reply-to email')
970
+ .action(async (opts) => {
971
+ try {
972
+ const client = getClient();
973
+ const result = await client.messages.create({
974
+ subject: opts.subject,
975
+ body: opts.body,
976
+ from: opts.from,
977
+ reply_to: opts.replyTo,
978
+ } as never);
979
+ success('Message created!');
980
+ print(result, getFormat(messagesCmd));
981
+ } catch (err) {
982
+ error(String(err));
983
+ process.exit(1);
984
+ }
985
+ });
986
+
987
+ messagesCmd
988
+ .command('update <messageId>')
989
+ .description('Update a message')
990
+ .option('--subject <subject>', 'Email subject')
991
+ .option('--body <html>', 'Email body (HTML)')
992
+ .action(async (messageId: string, opts) => {
993
+ try {
994
+ const client = getClient();
995
+ const params: Record<string, unknown> = {};
996
+ if (opts.subject) params.subject = opts.subject;
997
+ if (opts.body) params.body = opts.body;
998
+ const result = await client.messages.update(messageId, params as never);
999
+ success('Message updated!');
1000
+ print(result, getFormat(messagesCmd));
1001
+ } catch (err) {
1002
+ error(String(err));
1003
+ process.exit(1);
1004
+ }
1005
+ });
1006
+
1007
+ // ============================================
1008
+ // Advocacy Commands
1009
+ // ============================================
1010
+ const advocacyCmd = program
1011
+ .command('advocacy')
1012
+ .description('Manage advocacy campaigns');
1013
+
1014
+ advocacyCmd
1015
+ .command('list')
1016
+ .description('List advocacy campaigns')
1017
+ .option('--page <number>', 'Page number')
1018
+ .option('--per-page <number>', 'Results per page')
1019
+ .option('--filter <odata>', 'OData filter expression')
1020
+ .action(async (opts) => {
1021
+ try {
1022
+ const client = getClient();
1023
+ const result = await client.advocacy.list({
1024
+ page: opts.page ? parseInt(opts.page) : undefined,
1025
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
1026
+ filter: opts.filter,
1027
+ });
1028
+ print(result, getFormat(advocacyCmd));
1029
+ } catch (err) {
1030
+ error(String(err));
1031
+ process.exit(1);
1032
+ }
1033
+ });
1034
+
1035
+ advocacyCmd
1036
+ .command('get <campaignId>')
1037
+ .description('Get an advocacy campaign by ID')
1038
+ .action(async (campaignId: string) => {
1039
+ try {
1040
+ const client = getClient();
1041
+ const result = await client.advocacy.get(campaignId);
1042
+ print(result, getFormat(advocacyCmd));
1043
+ } catch (err) {
1044
+ error(String(err));
1045
+ process.exit(1);
1046
+ }
1047
+ });
1048
+
1049
+ advocacyCmd
1050
+ .command('create')
1051
+ .description('Create a new advocacy campaign')
1052
+ .requiredOption('--title <title>', 'Campaign title')
1053
+ .option('--description <text>', 'Campaign description')
1054
+ .option('--target <target>', 'Campaign target')
1055
+ .action(async (opts) => {
1056
+ try {
1057
+ const client = getClient();
1058
+ const result = await client.advocacy.create({
1059
+ title: opts.title,
1060
+ description: opts.description,
1061
+ target: opts.target,
1062
+ } as never);
1063
+ success('Advocacy campaign created!');
1064
+ print(result, getFormat(advocacyCmd));
1065
+ } catch (err) {
1066
+ error(String(err));
1067
+ process.exit(1);
1068
+ }
1069
+ });
1070
+
1071
+ advocacyCmd
1072
+ .command('update <campaignId>')
1073
+ .description('Update an advocacy campaign')
1074
+ .option('--title <title>', 'Campaign title')
1075
+ .option('--description <text>', 'Campaign description')
1076
+ .action(async (campaignId: string, opts) => {
1077
+ try {
1078
+ const client = getClient();
1079
+ const params: Record<string, unknown> = {};
1080
+ if (opts.title) params.title = opts.title;
1081
+ if (opts.description) params.description = opts.description;
1082
+ const result = await client.advocacy.update(campaignId, params as never);
1083
+ success('Advocacy campaign updated!');
1084
+ print(result, getFormat(advocacyCmd));
1085
+ } catch (err) {
1086
+ error(String(err));
1087
+ process.exit(1);
1088
+ }
1089
+ });
1090
+
1091
+ advocacyCmd
1092
+ .command('outreaches <campaignId>')
1093
+ .description('List outreaches for an advocacy campaign')
1094
+ .option('--page <number>', 'Page number')
1095
+ .option('--per-page <number>', 'Results per page')
1096
+ .action(async (campaignId: string, opts) => {
1097
+ try {
1098
+ const client = getClient();
1099
+ const result = await client.advocacy.listOutreaches(campaignId, {
1100
+ page: opts.page ? parseInt(opts.page) : undefined,
1101
+ per_page: opts.perPage ? parseInt(opts.perPage) : undefined,
1102
+ });
1103
+ print(result, getFormat(advocacyCmd));
1104
+ } catch (err) {
1105
+ error(String(err));
1106
+ process.exit(1);
1107
+ }
1108
+ });
1109
+
1110
+ // Parse and execute
1111
+ program.parse();